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…

12 месяцев ago

vCenter Converter Standalone download

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

1 год 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