Создание, изменение, удаление таблиц SQL

После того, как мы установили MySql и создали базу данных, пришло время загрузить таблицы и наполнить их информацией. Перед тем, как начать создавать таблицы убедитесь, что Ваша концетуальная модель в полном порядке, Вы представляете в каком виде будете хранить информацию и как будете ее извлекать.

План на сегодня такой:

Напоминаю, что все примеры в данных статьях выполняются на СУБД MySql.

Запустите MySql Command Line Client: Пуск -> в поиск вводим mysql -> должны увидеть MySql Command Line Client если пользовались инструкцией по установке. Вводим пароль для юзера root и попадаем в клиент MySql.

Создание новой таблицы

Синтаксис по созданию простой таблицы не сложен:

CREATE TABLE имя_таблицы (имя_поля тип_поля, имя_поля2 тип_поля2);

С именем таблицы и именем поля понятно. Просто выбирайте такие имена, которые подходят по смыслу. Тип поля — это один из типов данных SQL. Выбирайте тот, который по Вашему мнению самый лучший для данного поля. Ведь память и ресурсы нужно использовать с умом, но и забывать о работоспособности приложения в будущем тоже не стоит. Хорошо изучите типы данных SQL прежде чем приступать к созданию таблиц.

Перед тем, как создавать таблицу нужно войти в базу данных. Для этого в MySql используется синтаксис: USE имя_базы данных;

Войти в базу данных MySql

После того, как увидите сообщение, что вошли в базу данных — можно начинать писать скрипты по созданию таблиц.

Для тех, кто тут впервые, я повторюсь: что мы пытаемся учить SQL на приближенной к реальности предметной области: магазин обуви. Концептуальная модель у нас следующая:

усложненная модель

Начнем с самой простой таблицы: поставщик (supplier). Так как название поставщиков может быть не уникальным, предлагаю ввести свой идентификатор поставщиков, который будет уникальным для каждой записи. Он будет создаваться базой данных автоматически при создании каждой записи. Назовем это поле supplier_id. Скрипт по созданию таблицы supplier выглядит следующим образом:

create table supplier (title text, phone varchar(15), email varchar(30), address text, supplier_id int auto_increment primary key);

Скрипт выше очень простой и понятный. Единственное, что должно Вас сейчас смущать — поле supplier_id. Возле него есть два непонятных элемента: auto_increment  и primary key.

AUTO_INCREMENT — в MySql позволяет автоматически генерировать уникальный номер при вставке новой записи в таблицу. По умолчанию значение этого поля будет начитаться с нуля и увеличиваться на 1 при каждой новой записи.

PRIMARY KEYпервичный ключ, который однозначно идентифицирует запись в таблице. Если проще, то если Вы создаете поле с primary key оно в последствии должно быть уникальным и не должно быть пустым. Подробнее о ключах написана отдельная статья: ключи SQL.

Об успешном создании таблицы должно оповестить сообщение: Query OK

успешное создание таблицы

Если Вы видите такое сообщение значит скрипт выполнился удачно. Чтобы посмотреть все таблицы в базе данных нужно выполнить команду SHOW TABLES;.

show tables command

Для просмотра полей таблицы и их типов нужно выполнить команду: DESCRIBE имя_таблицы;.

describe table

Обратите внимание на результат запроса describe supplier;. В таблице можно найти название полей их тип, допустимо ли пустое значение (поле Null), является ли поле ключом, значение по умолчанию и екстра данные. Такие как auto_increment.

При создании данной таблицы мы не указали для полей ни значений по умолчанию, ни допустимость пустых полей. MySql по умолчанию сделала наши поля допустимыми на пустые значения. Для того, чтобы указать, что поле не может быть пустым, нужно указать NOT NULL при его создании. Чтобы задать значение по умолчанию, нужно указать DEFAULT значение_поля_по_умолчанию.

Предлагаю создать вторую версию таблицы supplier, в которой название не может быть пустым и телефон по умолчанию будет равен 888.

create table supplierV2 (title text not null, phone varchar(15) not null default '888', email varchar(30), address text, supplier_id int auto_increment primary key);

field not null in table

Изменение таблицы

Для того, чтобы изменить таблицу не обязательно создавать новую ее версию. Достаточно просто воспользоваться простыми командами.

Для добавления новый полей в таблицу: ALTER TABLE имя_таблицы ADD имя_колонки тип_колонки;

Для удаления колонки из таблицы: ALTER TABLE имя_таблицы DROP имя_колонки;

Для изменения типа данных существующей колонки: ALTER TABLE имя_таблицы MODIFY COLUMN имя_колонки новый_тип_колонки;

Чтобы изменить имя колонки: ALTER TABLE имя_таблицы CHANGE имя_колонки новое_имя_колонки тип_колонки;

Предлагаю закрепить теорию примером. Добавим в таблицу supplier новую колонку rating, которая будет отображать рейтинг поставщиков от 0 до 10. Также удалим поле email. Предположим, что почта нам пока не нужна. Тип колонки phone изменим из varchar на text. Наконец, переименуем address в full_address и сделаем это поле не пустым по умолчанию.

modify table result

Удаление таблицы

Теперь, когда мы умеем создавать и редактировать таблицы SQL можно попробовать их удалять. Делать это еще проще чем создавать.

Для удаления таблицы воспользуйтесь синтаксисом: DROP TABLE имя_таблицы;.

Предлагаю, в качестве примера удалить таблицу supplierV2.

drop table result

Это все, что касается темы создание, изменение, удаление таблиц SQL. Для дальнейшего изучения темы, мы познакомимся с ключами и индексами. Научимся делать запросы вставки и выборки данных. Следите за темой SQL на нашем сайте. Также, не забывайте проверять свои знания на нашем ресурсе с онлайн тестами. Там, к стати, уже есть один тест по SQL, можете попробовать свои силы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *