SQL Fast learning

SELECT ('столбцы через запятую или символ * для выбора всех столбцов')
FROM ('таблицы через запятую')
WHERE ('условие или фильтр')
GROUP BY ('столбцы через запятую, по которым нужно сгруппировать данные')
HAVING ('условие в уже сгрупированных данных')
ORDER BY ('столбцы через запятую, по которым нужно отсортировать вывод')
WHERE
= (равенство);
<> или != (неравенство);
< (меньше);
<= (меньше или равно) или !> (не больше);
> (больше);
>= (больше или равно) или !< (не меньше);
BETWEEN (между двумя значениями);
IS NULL (пустое поле).
Если требуется указать значение строки, заключите его в апостроф
Фильтр по нескольким условиям WHERE department IN ('IT', 'Marketing')
GROUP BY создаются группы данных
GROUP BY указывается после WHERE и перед ORDER BY.
Это удобно для получения итоговых значений. 
1) При вложении данные будут суммироваться для последней заданной группы, а не для отдельно для каждого столбца.
2) В предложении GROUP BY можно указать только столбцы выборки или выражения. В нем не указывается функция группирования и не применяются псевдонимы. 
3) Можно указать столько столбцов, сколько нужно. В результате группы вкладываются друг в друга.
4) Если в столбце, по которому производится группирование, встречается одна или несколько строк со значением NULL, они выделяются в отдельную группу
HAVING напоминает WHERE, но фильтрует не строки, а группы
можно использовать с любыми операторами. В этом предложении используется тот же синтаксис, что и в предложении WHERE:
SELECT department, COUNT (*) AS cnt FROM Employees GROUP BY department HAVING COUNT(*) >= 3
Фильтрация выполняется по итоговому значению группы. Этим HAVING отличается от WHERE, которое фильтрует по значениям строк.
Эти предложения можно использовать вместе. Например, можно узнать, сколько сотрудников в подразделениях со штатом более трех человек, получают более 1000:
SELECT department, COUNT (*) AS cnt FROM Employees WHERE salary > 1000 GROUP BY department HAVING COUNT(*) >= 3
Сначала выбираются все строки, где в столбце salary содержатся значения больше 1000. А затем выбираются только те группы, в которых не меньше трех записей.


Объединение таблиц JOIN
Вместо предложения WHERE используется предложение ON, синтаксис которого совпадает с синтаксисом WHERE.
SELECT first_name, last_name, order_id FROM Employees INNER JOIN Orders ON Employees.employee_id = Orders.employee_id

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.