Иллюстрированный самоучитель по Kylix
ac3ae3b5

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



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

Главным оператором манипулирования данными является оператор 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. Дополнительную информацию вы можете почерпнуть из специальной литературы, посвященной данному языку.

Назад
Содержание


Содержание раздела