Пример: Вывести фамилии и имена из таблицы

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