Общая информация
База данных – некоторый организованный набор информации.
Реляционная база данных – БД, построенная на реляционной модели данных (на математической теории отношений, по англ. relation).
Система управления базами данных (СУБД) – набор программ, позволяющий управлять созданием и использованием базы данных.
SQL (structured query language) — язык программирования, предназначенный для работы с реляционными базами данных.
Особенность SQL – это декларативный язык программирования, мы описываем что мы хотим получить, а не как.
Группы операторов SQL:
- Операторы для работы с объектами базы данных.
- Операторы манипулирования данными.
- Команды управления транзакциями
- Операторы защиты и управления данными.
Мы рассмотрим только операторы манипулирования данными, т.к. именно с ними вы будете чаще всего встречаться в процессе своей работы.
Запрос SELECT. Базовый синтаксис
— Минимальный запрос: ( получение изданных при условии)
SELECT * FROM table WHERE condition;
— Операторы distinct и order by: (отвечают за сортировку)
SELECT DISTINCT f1, f2 FROM table WHERE condition ORDER BY f2 DESC;
— Оператор count: (возвращает количество записей)
SELECT COUNT(*) FROM table;
Подзапросы
Пример: вывести количество различных значений в поле f1 таблицы.
SELECT COUNT(*) FROM (SELECT DISTINCT f1 FROM table WHERE condition);
Подзапрос пишется в круглых скобках, результат его работы – таблица.
Оператор exists
Быстрый способ проверить вернет ли запрос хотя бы одно значение.
SELECT smth FROM table WHERE EXISTS (SELECT * FROM table2 WHERE table2.field = table.field1);
Иногда удобно использовать aliases:
SELECT field1 as f1, field2 as f2 FROM table AS first_table WHERE EXISTS(SELECT * FROM table2 AS second_table WHERE second_table.field = first_table.f1);
Оператор группировки
SELECT field, COUNT(*) FROM table WHERE condition GROUP BY field HAVING having_condition;
В операторе having, в отличие от where, можно использовать агрегирующие функции.
Некоторые агрегирующие функции:
- SUM
- COUNT
- MIN
- MAX
Объединение таблиц
SELECT column_name(s) FROM table1
UNION (UNION ALL)
SELECT column_name(s) FROM table2
Ключи
Типы связей по ключу:
- 1 to 1
- 1 to many
- many to 1
Отношение many to many
Операторы JOIN
Изменение содержимого таблиц
Добавление элемента:
INSERT INTO table_name values (v1, v2, …);
INSERT INTO table_name (col1, col2) VALUES (v1, v2);
Обновление элемента:
UPDATE table_name SET col1 = val1, col2 = val2 WHERE condition;
Удаление элемента
DELETE FROM table_name WHERE condition;
Часто можно встретить такую аббревиатуру как CRUD. Это 4 базовые действия в языке SQL создание (create), чтение (read), модификация (update), удаление (delete). Для работы программиста на любительском уровне этого объема вполне достаточно, многие часто отказывают себе в интересных идеях из за необходимости работы с базами данных. Вперед! Это не такая сложная вещь, что бы терять гениальные проекты. Успехов.