Изучаем SQL. №10. Изменяем с полями таблицы с помощью ключевого слова ALTER

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

mysql -u root

Создаем новую базу данных под названием shop и выбираем ее:

CREATE DATABASE shop;
USE shop;

Далее создаем табличку с клиентами clients с полями id,name,age:

CREATE TABLE clients (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20), age INT);

Отлично, теперь заполним таблицу несколькими записями:

INSERT INTO clients VALUES(NULL, 'Игорь', 18);
INSERT INTO clients VALUES(NULL, 'Саша', 18);
INSERT INTO clients VALUES(NULL, 'Максим', 22);
INSERT INTO clients VALUES(NULL, 'Олег', 20);

SELECT * FROM clients;
+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  1 | Игорь  |   18 |
|  2 | Саша   |   18 |
|  3 | Максим |   22 |
|  4 | Олег   |   20 |
+----+--------+------+

ДОБАВЛЕНИЕ КОЛОНОК В ТАБЛИЦУ. ADD
Но тут мы понимаем, что не плохо бы было сделать поля для логина и пароля, чтобы клиенты могли регистрироваться в нашей базе. расположи их после ID. Для этого используется ключевое слово ADD:

ALTER TABLE clients ADD COLUMN login VARCHAR(20) AFTER id;
ALTER TABLE clients ADD COLUMN password VARCHAR(200) AFTER login;
SELECT * FROM clients;
+----+-------+----------+--------+------+
| id | login | password | name   | age  |
+----+-------+----------+--------+------+
|  1 | NULL  | NULL     | Игорь  |   18 |
|  2 | NULL  | NULL     | Саша   |   18 |
|  3 | NULL  | NULL     | Максим |   22 |
|  4 | NULL  | NULL     | Олег   |   20 |
+----+-------+----------+--------+------+

Запишем значения в эти колонки:

UPDATE clients SET login = 'igor', password = MD5('parol123') WHERE id = 1;
UPDATE clients SET login = 'sasha', password = MD5('sashka2000') WHERE id = 2;
UPDATE clients SET login = 'max', password = MD5('qwedr123') WHERE id = 3;
UPDATE clients SET login = 'olegka', password = MD5('123ert') WHERE id = 4;

SELECT * FROM clients;
+----+--------+----------------------------------+--------+------+
| id | login  | password                         | name   | age  |
+----+--------+----------------------------------+--------+------+
|  1 | igor   | e9aba73de1a9715fd100fe111585cebc | Игорь  |   18 |
|  2 | sasha  | d33316ae42334504c40f9bfd99f6f7d2 | Саша   |   18 |
|  3 | max    | a508e2d1313e2590289c47be17a66e85 | Максим |   22 |
|  4 | olegka | 372c42501639f31ab0810a4d3f7cbd68 | Олег   |   20 |
+----+--------+----------------------------------+--------+------+

MD5(‘Слово’) — это функция шифрования широко используется в современном WEB.

УДАЛЕНИЕ КОЛОНКИ ИЗ ТАБЛИЦЫ. DROP
Давайте научимся сразу же удалять ненужные колонки из нашей таблицы. Но пока у нас все колонки нужные. Поэтому создадим колонку test, а уже потом удалим ее с помощью ключевого слова DROP:

ALTER TABLE clients ADD COLUMN test INT;

 SELECT * FROM clients;
+----+--------+----------------------------------+--------+------+------+
| id | login  | password                         | name   | age  | test |
+----+--------+----------------------------------+--------+------+------+
|  1 | igor   | e9aba73de1a9715fd100fe111585cebc | Игорь  |   18 | NULL |
|  2 | sasha  | d33316ae42334504c40f9bfd99f6f7d2 | Саша   |   18 | NULL |
|  3 | max    | a508e2d1313e2590289c47be17a66e85 | Максим |   22 | NULL |
|  4 | olegka | 372c42501639f31ab0810a4d3f7cbd68 | Олег   |   20 | NULL |
+----+--------+----------------------------------+--------+------+------+

ALTER TABLE clients DROP COLUMN test;

 SELECT * FROM clients;
+----+--------+----------------------------------+--------+------+
| id | login  | password                         | name   | age  |
+----+--------+----------------------------------+--------+------+
|  1 | igor   | e9aba73de1a9715fd100fe111585cebc | Игорь  |   18 |
|  2 | sasha  | d33316ae42334504c40f9bfd99f6f7d2 | Саша   |   18 |
|  3 | max    | a508e2d1313e2590289c47be17a66e85 | Максим |   22 |
|  4 | olegka | 372c42501639f31ab0810a4d3f7cbd68 | Олег   |   20 |
+----+--------+----------------------------------+--------+------+

ПЕРЕИМЕНОВАНИЕ ТАБЛИЦЫ. RENAME TO
Переименуем нашу таблицу clients на klienti и обратно:

ALTER TABLE clients RENAME TO klienti;

SELECT * FROM klienti;
+----+--------+----------------------------------+--------+------+
| id | login  | password                         | name   | age  |
+----+--------+----------------------------------+--------+------+
|  1 | igor   | e9aba73de1a9715fd100fe111585cebc | Игорь  |   18 |
|  2 | sasha  | d33316ae42334504c40f9bfd99f6f7d2 | Саша   |   18 |
|  3 | max    | a508e2d1313e2590289c47be17a66e85 | Максим |   22 |
|  4 | olegka | 372c42501639f31ab0810a4d3f7cbd68 | Олег   |   20 |
+----+--------+----------------------------------+--------+------+

ALTER TABLE klienti RENAME TO clients;

SELECT * FROM clients;
+----+--------+----------------------------------+--------+------+
| id | login  | password                         | name   | age  |
+----+--------+----------------------------------+--------+------+
|  1 | igor   | e9aba73de1a9715fd100fe111585cebc | Игорь  |   18 |
|  2 | sasha  | d33316ae42334504c40f9bfd99f6f7d2 | Саша   |   18 |
|  3 | max    | a508e2d1313e2590289c47be17a66e85 | Максим |   22 |
|  4 | olegka | 372c42501639f31ab0810a4d3f7cbd68 | Олег   |   20 |
+----+--------+----------------------------------+--------+------+

ПЕРЕИМЕНОВАНИЕ СТОЛБЦА И ЕГО СВОЙСТВ. CHANGE
Переименуем столбец name в fname, увеличив количество вмещаемых символов до 50 и добавим после него колонку lname.

ALTER TABLE clients CHANGE name fname VARCHAR(50);
ALTER TABLE clients ADD COLUMN lname VARCHAR(50) AFTER fname;

SELECT * FROM clients;
+----+--------+----------------------------------+--------+-------+------+
| id | login  | password                         | fname  | lname | age  |
+----+--------+----------------------------------+--------+-------+------+
|  1 | igor   | e9aba73de1a9715fd100fe111585cebc | Игорь  | NULL  |   18 |
|  2 | sasha  | d33316ae42334504c40f9bfd99f6f7d2 | Саша   | NULL  |   18 |
|  3 | max    | a508e2d1313e2590289c47be17a66e85 | Максим | NULL  |   22 |
|  4 | olegka | 372c42501639f31ab0810a4d3f7cbd68 | Олег   | NULL  |   20 |
+----+--------+----------------------------------+--------+-------+------+

ЧАСТИЧНОЕ ИЗМЕНЕНИЕ СВОЙСТВ СТОЛБЦА. MODIFY
Изменим VARCHAR lname с 50 до 40.

ALTER TABLE clients MODIFY COLUMN lname VARCHAR(40);

На этом все. Тренируйтесь, пробуйте, создавайте новые базы. В следующем уроке я расскажу о изменении полей в таблице.

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

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