- •Структурированный язык запросов sql. Оператор delete. Структура оператора и примеры использования. Примеры использования delete с вложенными подзапросами.
- •Структурированный язык запросов sql. Оператор insert. Структура оператора и примеры использования. Использование insert с вложенными подзапросами.
- •Структурированный язык запросов sql. Оператор update. Структура оператора и примеры использования. Использование update с вложенными подзапросами.
- •Выборка данных оператором select. Структура оператора и примеры использования. Способы задания отображаемых полей. Использование distinct. Выборка значений с упорядочиванием.
- •Использование фразы where в операторах sql. Способы задания логических выражений в sql. Операторы in, like, between. Использование значения null в логических выражениях.
- •7 Вложенные подзапросы. Типы вложенных подзапросов. Способы включения вложенных подзапросов. Примеры использования вложенных подзапросов с разными способами включения.
- •Создание таблиц
- •Пример создания таблиц
- •Модификация таблиц
- •Удаление таблиц
- •Создание представлений. Правила создания модифицируемых представлений. Достоинства и недостатки представлений. Особенности определения полей представлений. Примеры использования.
- •Хранимые процедуры InterBase. Виды хранимых процедур. Расширения языка sql для использования в хранимых процедурах. Примеры создания хранимых процедур и их вызова.
- •Расширения языка sql для использования в хранимых процедурах и триггерах. Циклы и ветвления. Обработка исключений и ошибок.
- •Генераторы InterBase. Создание генераторов. Установка значений генераторов. Получение значений генераторов из
- •Триггеры InterBase. Типы триггеров. Контекстные переменные. Примеры создания триггеров для автоинкрементных полей и протоколирования изменений.
- •17. Транзакции в InterBase. Механизм транзакций. Параметры транзакций. Уровни изоляции и способы их задания в InterBase. Управление транзакциями. Примеры использования.
- •18. Библиотека доступа InterBase eXpress. Основные компоненты. Подключение к базе данных InterBase и организация просмотра и модификации данных.
- •20.Особенности системы защиты данных в InterBase. Пользователи и роли: создание и удаление. Вида прав. Раздача
Структурированный язык запросов sql. Оператор insert. Структура оператора и примеры использования. Использование insert с вложенными подзапросами.
SQL (Structured Query Language — «язык структурированных запросов») — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается на исчислении кортежей. Все языки манипулирования данными (ЯМД), созданные до появления реляционных баз данных и разработанные для многих систем управления базами данных (СУБД) персональных компьютеров, были ориентированы на операции с данными, представленными в виде логических записей файлов. Это требовало от пользователей детального знания организации хранения данных и достаточных усилий для указания не только того, какие данные нужны, но и того, где они размещены и как шаг за шагом получить их. SQL (Structured Query Language - структуризованный язык запросов) ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных. Язык SQL представляет собой совокупность операторов, инструкций и вычисляемых функций. Операторы SQL делятся на операторы определения данных (Data Definition Language, DDL): CREATE создает объект, БД (саму базу, таблицу, представление, пользователя и т. д.), ALTER изменяет объект, DROP удаляет объект.
Операторы манипуляции данными (Data Manipulation Language, DML): SELECT считывает данные, удовлетворяющие заданным условиям, INSERT добавляет новые данные, UPDATE изменяет существующие данные, DELETE удаляет данные. Операторы определения доступа к данным (Data Control Language, DCL): GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом
REVOKE отзывает ранее выданные разрешения, DENY задает запрет, имеющий приоритет над разрешением. Операторы управления транзакциями (Transaction Control Language, TCL): COMMIT применяет транзакцию, ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции,
SAVEPOINT делит транзакцию на более мелкие участки.
Итак, теперь вы знаете, как извлечь строки из базы данных самыми различными способами. Но как поместить их в определенное место базы данных? На помощь здесь приходит оператор INSERT, имеющий
следующий основной синтаксис:
INSERT INTO имя-таблицы [(список-столбцов)]
VALUES (список-значений) котором они содержатся в таблице
Если значения добавляются для каждого из столбцов в том порядке, лице, то параметр список-столбцов не используется:
INSERT INTO Employee
VALUES (123, 'Bob Jones', 35000, 'MIS')
Если вы планируете задать значения только для некоторых столбцов, необходимо включить список этих столбцов. Присваиваемые значения затем должны перечисляться в том порядке, в котором указаны имена столбцов. Это бывает полезно в том случае, если для некоторого столбца в таблице установлены значения, используемые по умолчанию или вы хотите присвоить столбцу значение NULL. В следующем примере добавляется запись для нового сотрудника, при этом значение поля Salary остается равным NULL:
INSERT INTO Employee (EmpId, EmpName, Dept) i VALUES (123, 'Joe Bob Griffin', 'Sales')
Кроме того, можно вставить строки с использованием значений, возвращаемых оператором SELECT, вме-сто используемого ранее оператора VALUES. Например, если отдел MIS перешел работать в новую фирму, то вы можете добавить в таблицу FormerEmployee новые записи с использованием следующего оператора:
INSERT INTO FormerEmployee (EmpId, EmpName, Reason)
SELECT EmpId, EmpName, 'Outsourced' FROM Employee WHERE Dept = 'MIS'
Язык SQL разрешает использовать в других операторах языка DML подзапросы, которые являются внутренними запросами, определяемыми оператором SELECT.
Подзапрос - очень мощное средство языка SQL. Он позволяет строить сложные иерархии запросов, многократно выполняемые в процессе построения результирующего набора или выполнения одного из операторов изменения данных (DELETE, INSERT, UPDATE).
Подзапрос позволяет решать следующие задачи:
определять набор строк, добавляемый в таблицу на одно выполнение оператора INSERT;
определять данные, включаемые в представление, создаваемое оператором CREATE VIEW ;
определять значения, модифицируемые оператором UPDATE;
указывать одно или несколько значений во фразах WHERE и HAVING оператора SELECT;
определять во фразе FROM таблицу как результат выполнения подзапроса;
применять коррелированные подзапросы.
Подзапрос называется коррелированным, если запрос, содержащийся в предикате, имеет ссылку на значение из таблицы (внешней к данному запросу), которая проверяется посредством данного предиката.
Следующий оператор INSERT демонстрирует копирование строк таблицы tbl2, выполняемое на основе подзапроса:
INSERT INTO tbl1(f1,f2,f3)
(SELECT f1,f2,f3 FROM tbl2);
Очевидно, что количество полей, указываемое списком полей, и типы данных этих полей должны совпадать с количеством полей и их типами данных в конструкторе значений таблицы или в результирующем наборе, формируемом подзапросом.