CRUD — это базовые функции для работы с базами данных.
Create — создаём, Read — читаем, Update — обновляем, Delete — удаляем.
Добавление записи INSERT
INSERT INTO <имя таблицы> (<имена столбцов>, ...) VALUES (<значения>, ...);
INSERT INTO blog (user, birth_year) VALUES ('Igor Markin', 1990);
Чтение записи SELECT
SELECT <перечень столбцов> FROM <перечень таблиц> WHERE <условия>;
SELECT DISTINCT birth_year FROM blog; - уникальные значения
SELECT * FROM blog;
Изменение записи UPDATE
UPDATE <таблица> SET <столбец> = <значение>, ... WHERE <условие>;
UPDATE blog SET user = 'Markin Igor' WHERE user = 'Igor Markin';
Удаление записи DELETE
DELETE FROM <таблица> WHERE <условие>;
DELETE FROM blog WHERE user = 'Markin Igor';
Конструкция SQL-запроса
SELECT *** - выбираем нужные данные
FROM *** - из таблицы
WHERE *** - где выполняется условие
GROUP BY *** - группируем по
HAVING *** - из того, что получилось выбираем по условию
ORDER BY *** - сортируем по столбцу
LIMIT *** - ограничиваем вывод
Операторы
OR, NOT, AND, IN, BETWEEN, LIKE, ILIKE
> , < , >= , <= , <> , !=
BETWEEN <значение 1> AND <значение 2> — выбирает значение между указанными, включая сами значения.
name LIKE ’igor mar%’ — поиск по шаблону с учётом регистра, найдёт ’Igor Markin’.
name ILIKE ’igor mak%’ — поиск без учёта регистра, найдёт ’Igor Markin’.
% — заменяет любой набор символов.
Функции
COUNT() — считает количество записей
MIN() — ищет минимальное значение
MAX() — ищет максимальное значение
AVG() — вычисляет среднее значение
EXCTRACT(<ДАТА> FROM <столбец>) — извлекает дату
- century — век;
- day — день;
- doy (от англ. day of the year) — день года: от 1 до 365/366;
- isodow — день недели: понедельник — 1, воскресенье — 7;
- hour — час;
- milliseconds — миллисекунда;
- minute — минута;
- second — секунда;
- month — месяц;
- quarter — квартал;
- week — неделя в году;
- year — год.
DATE_TRUNC(<ДАТА>, <столбец>) — усекает дату
- microseconds — микросекунды;
- milliseconds — миллисекунды;
- second — секунда;
- minute — минута;
- hour — час;
- day — день;
- week — неделя;
- month — месяц;
- quarter — квартал;
- year — год;
- decade — декада года;
- century — век.
AS — задаёт псевдоним для столбца
Нельзя использовать псевдонимы из SELECT в WHERE и т. д. так как порядок выполнения SQL запроса таков:
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
ORDER BY — сортировка
ASC сортирует данные в порядке возрастания. Это аргумент ORDER BY по умолчанию.
DESC сортирует данные по убыванию.
Типы данных и преобразование
integer — целочисленный тип. В SQL диапазон целых чисел от -2147483648 до 2147483647.
real — число с плавающей точкой. Точность числа типа real до 6 десятичных разрядов.
varchar(n) — строка переменной длины, где n — ограничение.
text — строка любой длины.
timestamp — дата и время.
date — дата.
boolean — логический тип данных. TRUE — «истина», FALSE — «ложь» и NULL — «неизвестно».
Типы преобразуют конструкцией CAST:
CAST (<столбец> AS <тип данных>) или <столбец> :: <тип данных>