Язык SQL (SELECT, WHERE, (LEFT) JOIN, GROUP BY, HAVING).
DDL и DML — подмножество языка SQL
DDL (Data Definition Language, язык описания данных) служит для создания и модификации структуры БД, т.е. для создания/изменения/удаления таблиц и связей.
DML (Data Manipulation Language, язык манипулирования данными) позволяет осуществлять манипуляции с данными таблиц, т.е. с ее строками. Он позволяет делать выборку данных из таблиц, добавлять новые данные в таблицы, а также обновлять и удалять существующие данные.
SQL
язык запросов для управления данными в РСУБД.
SELECT
оператор для выбора данных из одной или нескольких таблицы
SELECT <columns> FROM <table>
⸻
WHERE
оператор для фильтрации результатов
SELECT <columns> FROM <table> WHERE <condition>
⸻
GROUP BY
оператор для группировки по определенному столбцу
SELECT <columns> FROM <table> GROUP BY <column>
SELECT Department, COUNT(*) as EmployeeCount FROM Employees GROUP BY Department
⸻
HAVING
позволяет ставить условия на группы, которые были получены после GROUP BY.
Это как WHERE, но для сгруппированных данных
SELECT Country, COUNT(*) AS cnt
FROM Customers
GROUP BY Country
HAVING COUNT(*) > 10;
WHERE — фильтрует исходные строки перед группировкой. HAVING — фильтрует уже сгруппированные результаты.
⸻
LEFT JOIN
выводит все строки из левой таблицы, даже если в правой нет совпадений. Если нет совпадающих данных — связанные поля будут NULL.
SELECT c.CustomerName, o.OrderID
FROM Customers c
LEFT JOIN Orders o
ON c.CustomerID = o.CustomerID;
⸻
Последовательность логической обработки SQL-запроса
FROM / JOIN → WHERE → GROUP BY → HAVING → SELECT
То есть:
- сначала выбираются таблицы и объединяются,
- потом фильтруются строки,
- затем группируются,
- после фильтруются группы,
- и только потом выдается результат.
No comments to display
No comments to display