|
@@ -187,10 +187,66 @@ mysql -u root -p
|
|
|
CREATE DATABASE IF NOT EXISTS test;
|
|
|
```
|
|
|
Команда выше создает новую базу данных test. В консоли каждое SQL-выражение оканчивается `;`, таким образом mysql-клиент понимает что выражение окончено
|
|
|
-и отправляет его на исполнение.
|
|
|
+и отправляет его на исполнение. В программном коде `;` не применяется в SQL-запросах.
|
|
|
|
|
|
|
|
|
```mysql
|
|
|
use test;
|
|
|
```
|
|
|
-Директива `use` *не* является частью SQL-синтаксиса. Эта директива просто указывает mysql-клиенту что в дальнейшем все операции касаются базы данных `test`
|
|
|
+Директива `use` *не* является частью SQL-синтаксиса. Эта директива просто указывает mysql-клиенту что в дальнейшем все операции касаются базы данных `test`.
|
|
|
+
|
|
|
+
|
|
|
+```mysql
|
|
|
+SHOW DATABASES;
|
|
|
+```
|
|
|
+Этот запрос выводит список баз данных.
|
|
|
+
|
|
|
+### Создание таблиц.
|
|
|
+
|
|
|
+Перед тем, как записывать данные в таблицы, нужно создать их, описав с помощью DDL `CREATE TABLE`. В общем упрощенном виде это выглядит следующим образом:
|
|
|
+```mysql
|
|
|
+CREATE TABLE IF NOT EXISTS <tablename> (
|
|
|
+ <nameOfField> <type>,
|
|
|
+ <nameOfField> <type>,
|
|
|
+ <nameOfField> <type>,
|
|
|
+ <nameOfField> <type>,
|
|
|
+ <nameOfField> <type>,
|
|
|
+ <nameOfField> <type>,
|
|
|
+ <nameOfField> <type>);
|
|
|
+```
|
|
|
+
|
|
|
+**Например**:
|
|
|
+```mysql
|
|
|
+CREATE TABLE IF NOT EXISTS person (
|
|
|
+ person_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ name VARCHAR(64),
|
|
|
+ surname VARCHAR(64),
|
|
|
+ father_name VARCHAR(64)
|
|
|
+);
|
|
|
+```
|
|
|
+
|
|
|
+Узнаем, сколько у нас таблиц в данной БД:
|
|
|
+```mysql
|
|
|
+SHOW TABLES;
|
|
|
+```
|
|
|
+Какова структура таблицы:
|
|
|
+```mysql
|
|
|
+DESC person;
|
|
|
+```
|
|
|
+Как создать эту таблицу:
|
|
|
+```mysql
|
|
|
+SHOW CREATE TABLE person;
|
|
|
+```
|
|
|
+Обратите внимание, что результат последнего запроса **не** совпадает с запросом, с помощью которого таблица была создана. MySQL генерирует этот запрос, исходя
|
|
|
+из *текущей* структуры таблицы.
|
|
|
+
|
|
|
+Добавим поле Дата Рождения после `person_id`:
|
|
|
+```mysql
|
|
|
+ALTER TABLE person ADD COLUMN date_of_birth DATE AFTER person_id;
|
|
|
+```
|
|
|
+
|
|
|
+В процессе разработки вы часто будете делать `ALTER TABLE`, и если потом вам надо будет создать таблицу на другом (например, production) сервере, вы можете
|
|
|
+использовать для этого `SHOW CREATE TABLE`:
|
|
|
+```mysql
|
|
|
+SHOW CREATE TABLE person;
|
|
|
+```
|