me@helium 8 years ago
parent
commit
f2467b93ea
1 changed files with 28 additions and 3 deletions
  1. 28 3
      SQL.md

+ 28 - 3
SQL.md

@@ -1,7 +1,7 @@
 # SQL
 
-Данное занятие посвящено основным манипуляциям с *данными* в SQL. То есть речь пойдет о **DML** (**Data Manipulation Language**), операциях вставки, удаления, 
-изменения и выборки данных.
+Данное занятие посвящено основным манипуляциям с *данными* в SQL. То есть речь пойдет о **DML** (**Data Manipulation Language**), операциях вставки, 
+удаления, изменения и выборки данных.
 
 ## Вставка
 
@@ -18,6 +18,7 @@ VALUES
 - **valueN** - значения соответствующих колонок.
 
 **Например**
+
 ```mysql
 MariaDB [test]> INSERT INTO person (date_of_birth, name, surname, father_name) VALUES("2000-03-15", "Ivan", "Ivanoff", "Petrovich");
 Query OK, 1 row affected (0.10 sec)
@@ -430,7 +431,7 @@ SELECT
 ```mysql
 SELECT 
         phone.phone_type, 
-        AVG(TIMESTAMPDIFF(YEAR, person.date_of_birth, CURDATE())) 
+        AVG(TIMESTAMPDIFF(YEAR, person.date_of_birth, CURDATE())) AS averageAge
     FROM 
         phone 
             LEFT JOIN person_to_phone ON (phone.id = person_to_phone.phone_id) 
@@ -444,3 +445,27 @@ SELECT
 
 ### `AS` и древовидные структуры данных в реляционных СУБД.
 
+Как было показано выше, слово `AS` позволяет сделать псевдоним для поля выборки. Так же его можно использовать и для таблиц. Это особо полезно, когда
+нужно воспользоваться одной и той же таблицей в выборке несколько раз.
+
+В реляционных СУБД часто хранят древовидные структуры данных с помощью отношения **один-ко-многим** внутри одной таблицы. Для представления разных 
+уровней одной и той же таблицы используются псевдонимы:
+
+```mysql
+SELECT 
+        c1.id, 
+        c1.name, 
+        c2.id, 
+        c2.name, 
+        c2.parent_id 
+    FROM 
+        category AS c1, 
+        category AS c2 
+    WHERE 
+        c2.parent_id = c1.id 
+    ORDER BY 
+        c1.id, 
+        c2.id
+```
+
+## Задание