|
@@ -172,4 +172,69 @@ LIMIT
|
|
```mysql
|
|
```mysql
|
|
DELETE FROM <table>
|
|
DELETE FROM <table>
|
|
```
|
|
```
|
|
-...как и `UPDATE` удаляет всё. Поэтому перед тем, как нажать **ENTER** несколько раз смотрим, всё ли верно, используем `WHERE` и/или `LIMIT`.
|
|
|
|
|
|
+...как и `UPDATE` удаляет всё, если не указано иное. Поэтому перед тем, как нажать **ENTER** несколько раз смотрим, всё ли верно, используем `WHERE` и/или `LIMIT`.
|
|
|
|
+
|
|
|
|
+## **Автоинкремент** и **связность**
|
|
|
|
+
|
|
|
|
+Для установки связи значения автоинкремента заносится в другую таблицу как обычный INT.
|
|
|
|
+
|
|
|
|
+```mysql
|
|
|
|
+MariaDB [test]> DESC phone;
|
|
|
|
++--------------+-----------------------------+------+-----+---------+----------------+
|
|
|
|
+| Field | Type | Null | Key | Default | Extra |
|
|
|
|
++--------------+-----------------------------+------+-----+---------+----------------+
|
|
|
|
+| phone_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
|
|
|
|
+| person_id | int(10) unsigned | YES | | NULL | |
|
|
|
|
+| type | enum('home','mobile','job') | YES | | NULL | |
|
|
|
|
+| phone_number | varchar(16) | YES | | NULL | |
|
|
|
|
++--------------+-----------------------------+------+-----+---------+----------------+
|
|
|
|
+4 rows in set (0.00 sec)
|
|
|
|
+
|
|
|
|
+MariaDB [test]> ALTER TABLE phone MODIFY COLUMN type ENUM('home', 'mobile', 'job') DEFAULT 'mobile';
|
|
|
|
+Query OK, 0 rows affected (0.00 sec)
|
|
|
|
+Records: 0 Duplicates: 0 Warnings: 0
|
|
|
|
+
|
|
|
|
+MariaDB [test]> DESC phone;
|
|
|
|
++--------------+-----------------------------+------+-----+---------+----------------+
|
|
|
|
+| Field | Type | Null | Key | Default | Extra |
|
|
|
|
++--------------+-----------------------------+------+-----+---------+----------------+
|
|
|
|
+| phone_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
|
|
|
|
+| person_id | int(10) unsigned | YES | | NULL | |
|
|
|
|
+| type | enum('home','mobile','job') | YES | | mobile | |
|
|
|
|
+| phone_number | varchar(16) | YES | | NULL | |
|
|
|
|
++--------------+-----------------------------+------+-----+---------+----------------+
|
|
|
|
+4 rows in set (0.00 sec)
|
|
|
|
+
|
|
|
|
+MariaDB [test]> INSERT INTO phone SET person_id = 2, phone_number = '+380 577 102';
|
|
|
|
+Query OK, 1 row affected (0.00 sec)
|
|
|
|
+
|
|
|
|
+MariaDB [test]> INSERT INTO phone SET person_id = 2, phone_number = '+380 577 103';
|
|
|
|
+Query OK, 1 row affected (0.01 sec)
|
|
|
|
+
|
|
|
|
+MariaDB [test]> INSERT INTO phone SET person_id = 1, phone_number = '+380 577 104';
|
|
|
|
+Query OK, 1 row affected (0.00 sec)
|
|
|
|
+
|
|
|
|
+MariaDB [test]> INSERT INTO phone SET person_id = 1, phone_number = '+380 577 101';
|
|
|
|
+Query OK, 1 row affected (0.02 sec)
|
|
|
|
+
|
|
|
|
+MariaDB [test]> select * from phone;
|
|
|
|
++----------+-----------+--------+--------------+
|
|
|
|
+| phone_id | person_id | type | phone_number |
|
|
|
|
++----------+-----------+--------+--------------+
|
|
|
|
+| 1 | 2 | mobile | +380 577 102 |
|
|
|
|
+| 2 | 2 | mobile | +380 577 103 |
|
|
|
|
+| 3 | 1 | mobile | +380 577 104 |
|
|
|
|
+| 4 | 1 | mobile | +380 577 101 |
|
|
|
|
++----------+-----------+--------+--------------+
|
|
|
|
+4 rows in set (0.00 sec)
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+Таким образом на каждого человека по два телефонных номера.
|
|
|
|
+
|
|
|
|
+## Задание
|
|
|
|
+
|
|
|
|
+Сформируйте нужные данные в ваших таблицах, которые вы делали дома. Не забудьте об отношениях. Для установки отношения при добавлении записи указывается значение
|
|
|
|
+**автоинкремента** из другой таблицы
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|