Операторы манипулирования данными

Главным оператором манипулирования данными является оператор SELECT. Этот оператор используется для отбора данных, соответствующих сложным условиям. Оператор SELECT имеет вид:

SELECT [ DISTINCT ]
<Список полей> или *
FROM <Список таблиц>
[ WHERE <Условия выбора записей>]
[ORDER BY <Список полей для сортировки>]
[GROUP BY <Список полей для группировки>]
[HAVING <Условия группировки полей>]
[UNION <Вложенный оператор SELECT>]

Результатом выполнения данного оператора будет набор записей, удовлетворяющих заданным условиям.

Параметр DISTINCT определяет, будут ли включаться в результирующий набор данных повторяющиеся записи. Если он присутствует в операторе SELECT, то повторяющиеся записи будут исключены из набора данных.

Если в список полей входят поля нескольких таблиц, для указания принадлежности поля к той или иной таблице используют составной оператор, включающий имя таблицы и, через точку, имя поля:

<Имя таблицы>.<Имя поля>

Операнд WHERE определяет критерии, которым должны удовлетворять записи в результирующем наборе данных.

Операнд GROUP BY позволяет группировать записи. Иногда бывает необходимо выполнить какие-либо операции над группой записей.

Операнд HAVING используется вместе с GROUP BY и позволяет выбирать записи внутри групп.

Операнд ORDER BY содержит список полей, определяющих порядок сортировки записей результирующего набора данных. По умолчанию сортировка выполняется в порядке возрастания значений. Для сортировки в порядке убывания значений необходимо после имени поля поставить параметр DESC.

Операнд UNION используется для организации вложенных операторов SELECT. Вложенные операторы SELECT называют иногда подзапросами.

Приведем примеры выбора записей с использованием оператора SELECT.

Пример 17.1. Выбор всех полей таблицы

SELECT * FROM MyTable

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

Пример 17.2. Выбор данных из трех полей таблицы

SELECY Number, Surname, Telefon 
      FROM MyTable

В результате выполнения примера 17.2 будут выбраны все записи из полей Number, Surname и Telefon таблицы MyTable.

Пример 17.3.Выборуникальных значений

SELECT DISTINCT Surname 
       FROM MyTable

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

Пример 17.4.Выбор данных из двух таблиц

SELECT * FROM MyTable1, MyTable2

Выбирает все данные из таблиц МуTable1 и MyTable2. Первыми будут располагаться поля таблицы MyTable1, а затем — поля второй таблицы.

Пример 17.5.Выбор записей по значениям числового поля

SELECT Name, Surname 
       FROM МуТаble 
       WHERE (Number>l) and (Number<100);

Результирующим набором данных будут имена и фамилии первых ста человек, занесенных в таблицу МуTable.

Пример 17.6. Выбор записей по значению символьного поля

SELECT Name
FROM MyTable WHERE Surname='Иванов' ;

Результатом будет набор имен, фамилии которых Иванов.

Пример 17.7.Проверка частичного совпадения по символьному полю

SELECT Name, Surname 
       FROM MyTable 
       WHERE Surname LIKE 'И';

Будут выбраны имена и фамилии людей, занесенных в таблицу МyTable, фамилии которых начинаются на букву И.

В выражениях операции LIKE можно использовать шаблоны. Символы шаблонов:

Пример 17.8. Проверка частичного совпадения по шаблону

SELECT Name, Surname 
       FROM MyTable 
       WHERE Surname LIKE '%' || 'OB' || '%';

Будут выбраны имена и фамилии людей, в состав фамилий которых входят символы ов.

Операнд ORDER BY служит для упорядочения (сортировки) значений полей.

Пример 17.9. Сортировка записей по полю

SELECT * FROM MyTable 
       ORDER BY Name

Таким образом, набор данных будет отсортирован в порядке возрастания по полю Name.

Пример 17.10. Сортировка по двум полям

SELECT * FROM MyTable
ORDER BY Name, Surname DESC

Будет произведена сортировка данных сначала по полю Name в порядке возрастания, затем — по полю Surname в порядке убывания.

Оператор UPDATE служит для изменения значений полей в группе записей и имеет следующий формат:

UPDATE <Имя таблицы>
SET <Имя поля> = <Выражение>,
. . .
SET <Имя поля> = <Выражение> [WHERE <Условия выбора>];

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

Пример 17.11. Изменение значений поля

UPDATE MyTable
SET Oklad = Oklad + 1000; WHERE Oklad < 1000;

Изменит сумму оклада (Oklad) сотрудника, если оклад менее 1000 руб. К сумме оклада прибавится еще 1000 руб.

Оператор INSERT служит для вставки записей в таблицу и имеет следующий формат:

INSERT INTO <Имя таблицы> 
       (<Список полей>) 
       VALUES (<Список значений>);

Таким образом, к таблице <Имя таблицы> будет добавлена одна запись.

Пример 17.12. Добавление записи в таблицу

INSERT INTO MyTable
(Name, Surname, Telefon) VALUES ('Иван', 'Иванов', 2341234);

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

Оператор DELETE служит для удаления записей из таблицы и имеет следующий формат:

DELETE* FROM <Имя таблицы>
         [WHERE <Условия выбора>];

Из таблицы будут удалены все записи, которые удовлетворяют условию выбора.

Пример 17.13.Удаление записей из таблицы

DELETE FROM MyTable
WHERE Surname = 'Иванов';

Удаляет из таблицы МуТаble все записи, содержащие фамилию Иванов.

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

Hosted by uCoz