Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (<, >, =, <=, >=, <>, LIKE, BETWEEN...) конкатенации (||) логические (NOT, AND, OR) Добавление строк, INSERT INSERT INTO название_таблицы VALUES (значение1[, значение2]); INSERT INSERT INTO PHONENOTE.NOTE VALUES (1, 'IVANOV', 'IVAN', 'PR. POBEDI, 40'); INSERT IINSERT INTO PHONENOTE.PHONE VALUES (1, 1, NULL); INSERT INSERT INTO PHONENOTE.NOTE(NOTE_ID, LASTNAME, FIRSTNAME) VALUES (1, 'Смирнов', 'Андрей'); Удаление строк, DELETE DELETE FROM название_таблицы WHERE условие; DELETE Пример: Удалить все записи из таблицы NOTE DELETE FROM PHONENOTE.NOTE; Пример: Удалить первую запись из таблицы NOTE DELETE FROM PHONENOTE.NOTE WHERE NOTE_ID=1; Модификация строк, UPDATE UPDATE название_таблицы SET название_поля1= значение[, название_поля2= значение] WHERE условие; UPDATE UPDATE PHONENOTE.NOTE SET ADDRESS='г. Челябинск'; UPDATE UPDATE PHONENOTE.NOTE SET ADDRESS='г. Челябинск' WHERE ADDRESS IS NULL; UPDATE UPDATE PHONENOTE.NOTE SET ADDRESS='г. Челябинск' || ADDRESS WHERE ADDRESS NOT NULL; UPDATE UPDATE PHONENOTE.NOTE SET ADDRESS=NULL; SELECT SELECT [ALL | DISTINCT ] {*|[имя_столбца [AS новое_имя]]} [,...n] FROM имя_таблицы [[AS] псевдоним] [,...n] [WHERE <условие_поиска>] [GROUP BY имя_столбца [,...n]] [HAVING <критерии выбора групп>] [ORDER BY имя_столбца [,...n]] SELECT: ALL/DISTINCT Пример: Показать все уникальные фамилии SELECT DISTINCT LASTNAME FROM PHONENOTE.NOTE; SELECT: FROM Пример: Вывести все строки из таблицы NOTE SELECT * FROM PHONENOTE.NOTE; Пример: Вывести фамилии и имена из таблицы NOTE SELECT LASTNAME, FIRSTNAME FROM PHONENOTE.NOTE; SELECT: FROM: INNER JOIN Пример: вывести фамилию, имя и телефон. SELECT PHONENOTE.NOTE.LASTNAME, PHONENOTE.NOTE.FIRSTTNAME, PHONENOTE.PHONE.PHONE FROM PHONENOTE.PHONE INNER JOIN PHONENOTE.NOTE ON PHONENOTE.PHONE.NOTE_FK= PHONENOTE.NOTE.NOTE_ID; SELECT: WHERE Сравнение: сравниваются результаты вычисления одного выражения с результатами вычисления другого. Диапазон: проверяется, попадает ли результат вычисления выражения в заданный диапазон значений. Принадлежность множеству: проверяется, принадлежит ли результат вычислений выражения заданному множеству значений. Соответствие шаблону: проверяется, отвечает ли некоторое строковое значение заданному шаблону. Значение NULL: проверяется, содержит ли данный столбец определитель NULL (неизвестное значение). SELECT: WHERE (Сравнение) Операторы сравнения = < > <= >= <> AND OR NOT SELECT: WHERE (Сравнение) Выражение вычисляется слева направо. Первыми вычисляются подвыражения в скобках. Операторы NOT выполняются до выполнения операторов AND и OR. Операторы AND выполняются до выполнения операторов OR. SELECT: WHERE (Сравнение) Пример: Показать все телефоны первого человека в таблице NOTE SELECT * FROM PHONENOTE.PHONE WHERE NOTE_FK=1; Пример: Показать все телефоны первого и второго человека в таблице NOTE SELECT * FROM PHONENOTE.PHONE WHERE NOTE_FK=1 AND NOTE_FK=2; SELECT: WHERE (Диапазон) Пример: Показать с 1 по 3 запись из таблицы NOTE SELECT * FROM PHONENOTE.NOTE WHERE NOTE_ID BETWEEN 1 AND 3; Пример: Показать все записи, начиная с 4 из таблицы NOTE SELECT * FROM PHONENOTE.NOTE WHERE NOTE_FK NOT BETWEEN 1 AND 3; SELECT: WHERE (Принадлежность множеству) Пример: Показать всех людей с именами Ivan и Petr SELECT FIRSTNAME, LASTNAME FROM PHONENOTE.NOTE WHERE FIRSTNAME IN («IVAN», «PETR»); Пример: Показать всех людей с любыми именами, кроме Ivan и Petr SELECT FIRSTNAME, LASTNAME FROM PHONENOTE.NOTE WHERE FIRSTNAME NOT IN («IVAN», «PETR»); SELECT: WHERE (Соответствие шаблону) % - вместо этого символа может быть подставлено любое количество произвольных символов. _ - заменяет один символ строки. [] - вместо символа строки будет подставлен один из возможных символов, указанный в этих ограничителях. [^] - вместо соответствующего символа строки будут подставлены все символы, кроме указанных в ограничителях. SELECT: WHERE (Соответствие шаблону) Пример: Показать всех людей, фамилия которых начинается на I SELECT LASTNAME, FIRSTNAME, ADDRESS FROM PHONENOTE.NOTE WHERE LASTNAME LIKE 'I%' Пример: Вывести все номера телефонов, в которых вторая цифра равна 3 или 5. SELECT PHONE FROM PHONENOTE.PHONE WHERE PHONE LIKE '_[35]%' SELECT: WHERE (Значение NULL) Пример: Вывести все записи из таблицы PHONE, в которых не указан номер телефона SELECT PHONE FROM PHONENOTE.PHONE WHERE PHONE IS NULL; Пример: Вывести все записи из таблицы PHONE, в которых указан номер телефона SELECT PHONE FROM PHONENOTE.PHONE WHERE PHONE IS NOT NULL; SELECT: ORDER BY Пример: Вывести фамилию, имя человека и его адрес. При этом адрес отсортировать по возрастанию, а фамилию по убыванию. SELECT LASTNAME, FIRSTNAME, ADDRESS FROM PHONENOTE.NOTE ORDER BY ADDRESS, LASTNAME DESC; Вычисляемые поля Пример: Вывести Фамилию и имя в одном поле SELECT LASTNAME ||' '|| FIRSTNAME AS NAME, ADDRESS FROM PHONENOTE.NOTE; Пример: Вывести все известные нам года рождения из таблицы BIRTHDAY SELECT YEAR(BIRTHDAY) AS YEAR FROM PHONENOTE.BIRTHDAY; Итоговые (агрегатные) функции COUNT MIN/MAX AVG SUM Итоговые (агрегатные) функции Пример: Подсчитать количество записей в таблице NOTE SELECT COUNT(*) AS NOTE_COUNT FROM PHONENOTE.NOTE; Пример: Вывести человека с фамилией, стоящей первой по алфавиту SELECT MIN(LASTNAME) AS LASTNOTE FROM PHONENOTE.NOTE; Предложение GROUP BY Пример: Вывести количество номеров телефонов для каждого человека SELECT PHONENOTE.NOTE.LASTNAME, COUNT(PHONENOTE.PHONE.NOTE_FK) FROM PHONENOTE.PHONE INNER JOIN PHONENOTE.NOTE ON PHONENOTE.PHONE.NOTE_FK= PHONENOTE.NOTE.NOTE_ID GROUP BY PHONENOTE.NOTE.LASTNAME; Предложение HAVING Пример: Вывести количество телефонов для каждого человека, если их больше 2. SELECT PHONENOTE.NOTE.LASTNAME, COUNT(PHONENOTE.PHONE.NOTE_FK) FROM PHONENOTE.PHONE INNER JOIN PHONENOTE.NOTE ON PHONENOTE.PHONE.NOTE_FK= PHONENOTE.NOTE.NOTE_ID GROUP BY PHONENOTE.NOTE.LASTNAME HAVING COUNT(PHONENOTE.PHONE.NOTE_FK)>2;