me@helium преди 8 години
родител
ревизия
3d78e9ea09
променени са 1 файла, в които са добавени 61 реда и са изтрити 0 реда
  1. 61 0
      SQL.md

+ 61 - 0
SQL.md

@@ -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`)