Общая информация

База данных – некоторый организованный набор информации.

Реляционная база данных – БД, построенная на реляционной модели данных (на математической теории отношений, по англ. 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
Основы SQL, изображение №1

Отношение many to many

Основы SQL, изображение №2

Операторы JOIN

Основы SQL, изображение №3

Изменение содержимого таблиц

Добавление элемента:

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). Для работы программиста на любительском уровне этого объема вполне достаточно, многие часто отказывают себе в интересных идеях из за необходимости работы с базами данных. Вперед! Это не такая сложная вещь, что бы терять гениальные проекты. Успехов.