mysql

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
admin

Recent Posts

How to back up and restore the ESXi host configuration

Original https://kb.vmware.com/s/article/2042141 Backing up ESXi host configuration data To synchronize the configuration changed with persistent…

11 месяцев ago

vCenter Converter Standalone download

vCenter Converter Standalone 6.6.0 download (далее…)

12 месяцев ago

VMware remote console (VMRC) 12 download

VMware remote console (VMRC) 12.0.5 download Last version: VMware Remote Console 12.0.5  28 NOV 2023…

2 года ago

Mysql calculate row size for all tables

SELECT col_sizes.TABLE_SCHEMA, col_sizes.TABLE_NAME, SUM(col_sizes.col_size) AS EST_MAX_ROW_SIZE FROM ( SELECT cols.TABLE_SCHEMA, cols.TABLE_NAME, cols.COLUMN_NAME, CASE cols.DATA_TYPE WHEN…

2 года ago

Mysql change date format in database

UPDATE DB SET column = DATE(STR_TO_DATE(column, '%Y-%d-%m')) WHERE DATE(STR_TO_DATE(column, '%d-%m-%Y')) <> '0000-00-00'

2 года ago

esxi debian lvm extend partition

echo 1 > /sys/class/block/sda/device/rescan #maybe run under root> sudo fdisk /dev/sda2 > d > 2…

2 года ago