|
@@ -236,5 +236,66 @@ MariaDB [test]> select * from phone;
|
|
Сформируйте нужные данные в ваших таблицах, которые вы делали дома. Не забудьте об отношениях. Для установки отношения при добавлении записи указывается значение
|
|
Сформируйте нужные данные в ваших таблицах, которые вы делали дома. Не забудьте об отношениях. Для установки отношения при добавлении записи указывается значение
|
|
**автоинкремента** из другой таблицы
|
|
**автоинкремента** из другой таблицы
|
|
|
|
|
|
|
|
+## `SELECT`
|
|
|
|
|
|
|
|
+`SELECT` - самая мощная часть DML, и основная фича SQL
|
|
|
|
|
|
|
|
+### Cинтаксис
|
|
|
|
+В общем виде:
|
|
|
|
+```mysql
|
|
|
|
+SELECT
|
|
|
|
+ <поле1>
|
|
|
|
+ <поле2>
|
|
|
|
+ <поле3>
|
|
|
|
+ ...
|
|
|
|
+FROM
|
|
|
|
+ <table1>
|
|
|
|
+ <table2>
|
|
|
|
+ <table3>
|
|
|
|
+ ...
|
|
|
|
+WHERE
|
|
|
|
+ <cond>
|
|
|
|
+ORDER BY
|
|
|
|
+ <поле1> ASC
|
|
|
|
+ <поле2> DESC
|
|
|
|
+LIMIT
|
|
|
|
+ N,M
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+**где**
|
|
|
|
+*<поле1>* - поля таблиц для вывода;
|
|
|
|
+*<table1>* - таблицы для запроса;
|
|
|
|
+`WHERE` *<cond>* - условия, что и по каким правилам включать в выборку;
|
|
|
|
+`ORDER BY` - по каким полям сортировать
|
|
|
|
+`LIMIT` - ограничения с какой по какую запись выводить результирующую выборку
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+**Например**
|
|
|
|
+```mysql
|
|
|
|
+SELECT * FROM person;
|
|
|
|
+SELECT id, name, surname FROM person;
|
|
|
|
+SELECT count(*) FROM person;
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+### `ORDER BY`
|
|
|
|
+Сортировка. Может быть прямой (`ASC`) и обратной (`DESC`). Возможна сортировка по нескольким полям, в таком случае набор сортируется вначале по первым
|
|
|
|
+полям, а при их совпадении - по последующим, аналогично сортировке слов в словаре. Для работы сортировки **не** требуется индекс, однако с ним на
|
|
|
|
+больших наборах данных выборка будет сделана намного быстрее.
|
|
|
|
+
|
|
|
|
+```mysql
|
|
|
|
+SELECT * FROM person ORDER by id;
|
|
|
|
+SELECT * FROM person ORDER by date_of_birth;
|
|
|
|
+SELECT * FROM person ORDER by father_name desc;
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+### `WHERE` и `LIMIT`
|
|
|
|
+
|
|
|
|
+### `GROUP BY` и агрегация
|
|
|
|
+
|
|
|
|
+### `DISTINCT`
|
|
|
|
+
|
|
|
|
+### Несколько таблиц и (`CROSS JOIN`)
|
|
|
|
+
|
|
|
|
+### Несколько таблиц и `WHERE` (`INNER JOIN`)
|
|
|
|
+
|
|
|
|
+### Несколько таблиц, `RIGHT` и `LEFT` `JOIN` (`OUTER JOIN`)
|