Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Структура языка SQL

Читайте также:
  1. A. підприємство - це відокремлена економічна структура, яка займається виробництвом та реалізацією певних товарів та послуг з метою отримання доходу; Верно
  2. I. Дистрибутивный анализ. Дистрибутивная структура языка на фонемном уровне.
  3. I. Намеренное изобретение и Божественное создание языка.
  4. I. Понятие, структура и функции религии. Социологические теории религии.
  5. I. Пражский структурализм.
  6. II. Копенгагенский структурализм.
  7. II. СТРУКТУРА СТУДЕНЧЕСКОЙ НАУЧНОЙ РАБОТЫ
  8. II. Структура уроков
  9. III. Американский структурализм.
  10. III. ПРИМЕРНАЯ СТРУКТУРА КУРСОВОЙ РАБОТЫ

Нужно заметить, что в настоящее время, ни одна система не реализует стандарт SQL в полном объеме. Кроме того, во всех диалектах языка имеются возможности, не являющиеся стандартными. Таким образом, можно сказать, что каждый диалект - это надмножество некоторого подмножества стандарта SQL. Это затрудняет переносимость приложений, разработанных для одних СУБД в другие СУБД.

Язык SQL оперирует терминами, несколько отличающимися от терминов реляционной теории, например, вместо "отношений" используются "таблицы", вместо "кортежей" - "строки", вместо "атрибутов" - "колонки" или "столбцы".

Стандарт языка SQL, хотя и основан на реляционной теории, но во многих местах отходит он нее. Например, отношение в реляционной модели данных не допускает наличия одинаковых кортежей, а таблицы в терминологии SQL могут иметь одинаковые строки. Имеются и другие отличия.

Язык SQL является реляционно-полным. Это означает, что любой оператор реляционной алгебры может быть выражен подходящим оператором SQL.

24) Оператор SELECT, используемые опции. Примеры

Оператор SELECT (выбрать) языка SQL является самым важным и самым часто используемым оператором. Он предназначен для выборки информации из таблиц базы данных. Упрощенный синтаксис оператора SELECT выглядит следующим образом.

SELECT [DISTINCT] <список атрибутов>FROM <список таблиц>[WHERE <условие выборки>][ORDER BY <список атрибутов>][GROUP BY <список атрибутов>][HAVING <условие>][UNION <выражение с оператором SELECT];

SELECT – устанавливается, какие столбцы должны присутствовать в выходных данных;

FROM – определяются имена используемых таблиц

WHERE – выполняется фильтрация строк объекта в соответствии с заданными условиями; ORDER BY – определяется упорядоченность результатов выполнения операторов.

В квадратных скобках указаны не обязательные элементы в запросе. Ключевое слово SELECT сообщает базе данных, что данная запись, является запросом на извлечение информации. После слова SELECT через запятую перечисляются наименования полей (список атрибутов), содержимое которых запрашивается. Обязательным ключевым словом в запросе SELECT является слово FROM (из какой таблицы извлекать). За ключевым словом FROM указывается список разделенных запятыми имен таблиц, из которых извлекается информация.

Пример

Написать запрос который выведет Имена и фамилии всех студентов из таблицы STUDENT которые проживают в городе Новгород.

SELECT SURNAME, NAMEFROM STUDENTWHERE CITY = 'Новгород'

25) Агрегатные функции языка SQL, их использование в запросах. Примеры.

Для подведения итогов по данным, содержащимся в БД, в языке SQL предусмотрены агрегатные (статистические) функции. Агрегатная функция берет в качестве аргумента какой-либо столбец (для множества строк), а возвращает одно значение, определяемое типом функции:

AVG - среднее значение в столбце;

SUM - сумма значений в столбце;

MAX - наибольшее значение в столбце;

MIN - наименьшее значение в столбце;

COUNT - количество значений в столбце.

Аргументами агрегатных функций могут быть как столбцы таблицы, так и результаты выражений над ними. При этом выражение может быть сколь угодно сложным.

Вложенность агрегатных функций не допускается, однако из этих функций можно составлять любые выражения.

Для функций SUM и AVG столбец должен содержать числовые значения.

Специальная функция COUNT (*) служит для подсчета всех без исключения строк в таблице (включая дубликаты).

Аргументу всех функций, кроме COUNT (*), может предшествовать ключевое слово DISTINCT (различный), указывающее, что избыточные дублирующие значения должны быть исключены перед тем, как будет применяться функция.

Если не используется предложение GROUP BY, но в предложении SELECT используется какая-либо агрегатная функция, то в качестве возвращаемых элементов нельзя указывать по отдельности столбцы таблиц (можно лишь в качестве аргументов агрегатных функций)

.

Первые две функции (сумма и среднее) могут быть вычислены только по числовым столбцам, максимальное и минимальное значения могут быть определены для столбцов всех типов (кроме больших объектов), при этом строки текста сравниваются в лексикографическом, а даты - в хронологическом порядке. Например:

Подсчитать средний балл по всем студентам и предметам SELECT AVG (mark) avg mark FROM mark

26) Группирование результатов в запросах

При группировке формируются группы с одинаковыми значениями в столбце группировки (или нескольких столбцах), запрос возвращает столько строк, сколько получилось групп. Фактически количество групп совпадает с количеством уникальных значений в столбце группировки, поэтому группировку принято выполнять по столбцам, содержащим большое количество повторяющихся значений. Тогда количество групп будет значительно меньше, чем количество строк в таблице.

 

27) Создание многотабличных запросов

Опция Тип создаваемой связи
Inner join   (Внутреннее объединение) Создает объединение, в котором выбираются только те записи, которые содержат совпадающие значения в полях связи
Left join   (Объединение слева) Создает объединение, в котором выбираются все записи из левой таблицы, а также записи из правой таблицы, значения поля связи которого совпадают со значениями поля связи левой таблицы
Right join   (Объединение справа) Создает объединение, в котором выбираются все записи из правой таблицы, а также записи из левой таблицы, значения поля связи которого совпадают со значениями поля связи правой таблицы
Full join (Полное объединение) Создает объединение, в котором выбираются все записи из правой и левой таблиц

28) Язык SQL. Оператор добавления записей INSERT. Пример использования

Оператор Insert предназначен для добавления новых данных в таблицу. Он имеет следующий формат:
INSERT INTO TableName [(columnList)] VALUES (dataValueList);
Здесь параметр TableName (Имя таблицы) может представлять имя таблицы базы данных. Параметр columnList (Список столбцов) представляет собой список, состоящий из имен одного или более столбцов, разделенных запятыми. Параметр columnList является необязательным. Если он опущен, то предполагается использование списка из имен всех столбцов таблицы, указанных в том порядке, в котором они были описаны в операторе CREATE TABLE. Параметр dataValueList (Список значений данных) должен следующим образом соответствовать параметру columnList:
количество элементов в обоих списках должно быть одинаковым;
должно существовать прямое соответствие между позицией одного и того же элемента в обоих списках
типы данных элементов списка dataValueList должны быть совместимы с типом данных соответствующих столбцов таблицы.
Пример использования оператора Insert.
Задание: Поместите в таблицу staff новую запись, содержащую данные во всех столбцах.
INSERT INTO Staff VALUES('SG16', 'Alan', 'Brown', 'Assistant’, 'M’, DATE '1957-05-25',8300, 'B003');

29) Язык SQL. Оператор изменения записей UPDATE. Пример использования

Оператор Update позволяет изменять содержимое уже существующих строк указанной таблицы. Этот оператор имеет следующий формат:
UPDATE tableName
SET columnNamel = dataValuel [, columnName2 = dataValue2 … ]
[WHERE searchCondition];
Здесь параметр tableName представляет имя таблицы базы данных. В конструкции SET указываются имена одного или более столбцов, данные в которых необходимо изменить. Конструкция WHERE является необязательной. Если она опущена, значения указанных столбцов будут изменены во всех строках таблицы. Если конструкция WHERE присутствует, то обновлены будут только те строки, которые удовлетворяют условию поиска, заданному в параметре searchCondition. Параметры dataValue1, dataValue2... представляют новые значения соответствующих столбцов и должны быть совместимы с ними по типу данных.
Пример использования оператора Update.
Задание: Всем менеджерам компании повысить заработную плату на 5%.
UPDATE Staff
SET salary = salary*1.05
WHERE position = 'Manager’;

30) Язык SQL. Оператор удаления записей DELETE. Пример использования

Оператор Delete позволяет удалять строки данных из указанной таблицы. Этот оператор имеет следующий формат:
DELETE FROM tableName
[WHERE searchCondition];
Как и в случае операторов INSERT и UPDATE, параметр TableName представляет собой таблицы базы данных. Параметр searchCondition является необязательным — если он опущен, из таблицы будут удалены все существующие в ней строки. Однако сама по себе таблица удалена не будет. Если необходимо удалить не только содержимое таблицы, но и ее определение, следует использовать оператор DROP TABLE. Если конструкция WHERE присутствует, из таблицы будут удалены только те строки, которые удовлетворяют условию отбора, заданному параметром searchCondition
Пример использования оператора Delete.
Задание: Удалить все записи об осмотрах сдаваемого в аренду объекта с учетным номером PG4.
DELETE FROM Viewing
WHERE propertyNo = 'PG4';

31) Язык SQL. Операторы определения данных. Создание таблиц CREATE TABLE

CONSTRAINT — необязательное ключевое слово, после кото­рого указывается название ограничения на значения столбца (имя_ограничения). Имена ограничений должны быть уникальны в пределах базы данных.

DEFAULT — задает значение по умолчанию для столбца. Это значение будет использовано при вставке строки, если для столбца явно не указано никакое значение.

NULL|NOT NULL — ключевые слова, разрешающие (NULL) или запрещающие (NOT NULL) хранение в столбце значений NULL. Если для столбца не задано значение по умолчанию, то при вставке строки с неизвестным значением для столбца будет пред­приниматься попытка вставки в столбец значения NULL. Если при этом для столбца указано ограничение NOT NULL, то попытка вставки строки будет отклонена, и пользователь получит соответст­вующее сообщение об ошибке.

PRIMARY KEY — определение первичного ключа на уровне од­ного столбца (т. е. первичный ключ будет состоять только из значе­ний одного столбца). Если необходимо сформировать первичный ключ на базе двух и более столбцов, то такое ограничение целостно­сти должно быть задано на уровне таблицы. При этом следует пом­нить, что для каждой таблицы может быть создан только один пер­вичный ключ.

UNIQUE — указание на создание для столбца ограничения це­лостности UNIQUE, что позволит гарантировать уникальность каж­дого отдельного значения в столбце в пределах этого столбца. В таб­лице может быть создано несколько ограничений целостности UNIQUE.

FOREIGN KEY... REFERENCES — указание на то, что столбец будет служить внешним ключом для таблицы, имя которой задается с помощью параметра <имя_главной_таблицы>.

(имя столбца [,...,n] ) — столбец или список перечисленных че­рез запятую столбцов главной таблицы, входящих в ограничение FOREIGN KEY. При этом столбцы, входящие во внешний ключ, могут ссылаться только на столбцы первичного ключа или столбцы с ограничением UNIQUE таблицы.

ON DELETE {CASCADE | NO ACTION} — эти ключевые слова определяют действия, предпринимаемые при удалении строки из главной таблицы. Если указано ключевое слово CASCADE, то при удалении строки из главной (родительской) таблицы строка в зави­симой таблице также будет удалена. При указании ключевого слова NO ACTION в подобном случае будет выдана ошибка. Значением по умолчанию является вариант NO ACTION.

ON UPDATE {CASCADE | NO ACTION} - эти ключевые слова определяют действия, предпринимаемые при модификации строки главной таблицы. Если указано ключевое слово CASCADE, то при модификации строки из главной (родительской) таблицы строка в зависимой таблице также будет модифицирована. При использова­нии ключевого слова NO ACTION в подобном случае будет выдана ошибка. Значением по умолчанию является вариант NO ACTION.

CHECK — ограничение целостности, инициирующее контроль вводимых в столбец (или столбцы) значений;




Дата добавления: 2015-02-16; просмотров: 81 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав