Язык SQL. Операторы Select, Insert, Delete, Update. Пример
Одним из языков, появившихся в результате разработки реляционной модели данных, является Structured Query Language (SQL), который в настоящее время получил очень широкое распространение и фактически превратился в стандартный язык реляционных баз данных. SQL является примером языка преобразования данных, или же языка, предназначенного для работы с таблицами с целью преобразования входных данных к требуемому выходному виду.
Язык SQL, который определен стандартом ISO, имеет два основных компонента;
• язык DDL (Data Definition Language), предназначенный для определения структур базы данных и управления доступом к данным;
• язык DML (Data Manipulation Language), предназначенный для выборки и обновления данных.
Язык SQL – это непроцедурный язык, поэтому в нем необходимо указывать, какая информация должна быть получена, а не как ее можно получить. Иначе говоря, язык SQL не требует указания методов доступа к данным.
Структура команд задается набором ключевых слов, представляющих собой обычные слова английского языка, такие как CREATE TABLE (Создать таблицу), INSERT (Вставить), SELECT (Выбрать), UPDATE (Обновить), Delete (удалить).
В настоящее время для языка SQL существуют международные стандарты, формально определяющие его как стандартный язык создания и манипулирования реляционными базами данных, каковым он фактически и является.
Для построения примеров операторов SQL будем использовать базу данных со следующей структурой:
Для определения формата операторов SQL мы будем применять следующую расширенную форму системы обозначений BNF (Backus Naur Form — форма Бэкуса-Наура).
• Прописные буквы будут использоваться для записи зарезервированных слов и должны указываться в операторах точно так же, как это будет показано.
• Строчные буквы будут использоваться для записи слов, определяемых пользователем.
• Вертикальная черта (|) указывает на необходимость выбора одного из нескольких приведенных значений, например a | b | с.
• Фигурные скобки определяют обязательный элемент, например {а}.
• Квадратные скобки определяют необязательный элемент, например [а].
Оператор SELECT
Назначение оператора SELECT состоит в выборке и отображении данных одной или более таблиц базы данных. Оператор SELECT является чаще всего используемой командой языка SQL. Общий формат оператора SELECT имеет следующий вид:
SELECT [DISTINCT | ALL] {* | [ColumnExpression [AS newName]] [,…]}
FROM TableName [alias] [,…]
[WHERE condition]
[GROUP BY ColumnList] [HAVING condition]
[ORDER BY ColumnList];
Здесь параметр columnExpression представляет собой имя столбца или выражение из нескольких имен. Параметр TableName является именем существующей в базе данных таблицы (или представления), к которой необходимо получить доступ. Необязательный параметр alias — это сокращение, устанавливаемое для имени таблицы TableName. Обработка элементов оператора SELECT выполняется в следующей последовательности.
• FROM. Определяются имена используемой таблицы или нескольких таблиц.
• WHERE. Выполняется фильтрация строк объекта в соответствии с заданными условиями.
• GROUP BY. Образуются группы строк, имеющих одно и то же значение в указанном столбце.
• HAVING. Фильтруются группы строк объекта в соответствиис указанным условием.
• SELECT. Устанавливается, какие столбцы должны присутствовать в выходных данных.
• ORDER BY. Определяется упорядоченность результатов выполнения оператора.
Порядок конструкций в операторе SELECT не может быть изменен. Только две конструкции оператора — SELECT и FROM — являются обязательными, все остальные конструкции могут быть опущены.
Пример использования оператора SELECT:
Задание: Создайте отчет о заработной плате всех работников с указанием только табельного номера работника(staffNo), его имени и фамилии, а также сведений о зарплате.
SELECT staffNo, fName, lName, salary
FROM Staff;
В этом примере на основе таблицы Staff создается новая таблица, включающая только указанные в запросе столбцы staffNo, fName, lName и salary, причем именно в этом порядке. Результат выполнения данного запроса приведен в таблице.
Оператор 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');
Оператор 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’;
Оператор Delete позволяет удалять строки данных из указанной таблицы. Этот оператор имеет следующий формат:
DELETE FROM tableName
[WHERE searchCondition];
Как и в случае операторов INSERT и UPDATE, параметр TableName представляет собой таблицы базы данных. Параметр searchCondition является необязательным — если он опущен, из таблицы будут удалены все существующие в ней строки. Однако сама по себе таблица удалена не будет. Если необходимо удалить не только содержимое таблицы, но и ее определение, следует использовать оператор DROP TABLE. Если конструкция WHERE присутствует, из таблицы будут удалены только те строки, которые удовлетворяют условию отбора, заданному параметром searchCondition
Пример использования оператора Delete.
Задание: Удалить все записи об осмотрах сдаваемого в аренду объекта с учетным номером PG4.
DELETE FROM Viewing
WHERE propertyNo = 'PG4'; |
|
|