Browse Source

sql create alter table

me@helium 8 years ago
parent
commit
81656ccdec
1 changed files with 58 additions and 2 deletions
  1. 58 2
      ER-SQL.md

+ 58 - 2
ER-SQL.md

@@ -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;
+```