Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (, =, =, , 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;