MySQL зміна таблиць і стовпців


Якщо таблиця вже була раніше створена, і її необхідно змінити, то для цього застосовується команда ALTER TABLE . Її скорочений формальний синтаксис:

ALTER TABLE назва_таблиці 
{ 
  ADD назва_стовпця тип_даних_стовпця [атрибути_стовпця] | 
  DROP COLUMN назва_стовпця |
  MODIFY COLUMN назва_стовпця тип_даних_стовпця [атрибути_стовпця] |
  ALTER COLUMN назва_стовпця SET DEFAULT значення_по_замовчуванню |
  ADD [CONSTRAINT] визначення обмеження|
  DROP [CONSTRAINT] імя_обмеження
}

Взагалі дана команда підтримує набагато більше опцій і можливостей. Всі їх можна подивитися в документації. Розглянемо лише основні сценарії, з якими ми можемо зіткнутися.


Додавання нового стовпця

Додамо в таблицю Customers новий стовпець Address :

ALTER TABLE Customers
ADD Address VARCHAR(50) NULL;

В даному випадку стовпець Address має тип VARCHAR і для нього визначений атрибут NULL .


Видалення стовпця

Видалимо стовпець Address з таблиці Customers :

ALTER TABLE Customers
DROP COLUMN Address;

Зміна значення за замовчуванням

Встановимо в таблиці Customers для стовпця Age значення за замовчуванням 22 :

ALTER TABLE Customers
ALTER COLUMN Age SET DEFAULT 22;

Зміна типу стовпця

Змінимо в таблиці Customers тип даних у стовпці FirstName на CHAR(100) і встановимо для нього атрибут NULL :

ALTER TABLE Customers
MODIFY COLUMN FirstName CHAR(100) NULL;

Додавання і видалення зовнішнього ключа

Нехай спочатку в базі даних будуть додані дві таблиці, ніяк не пов'язані:

CREATE TABLE Customers
(
    Id INT PRIMARY KEY AUTO_INCREMENT,
    Age INT, 
    FirstName VARCHAR(20) NOT NULL,
    LastName VARCHAR(20) NOT NULL
);
CREATE TABLE Orders
(
    Id INT PRIMARY KEY AUTO_INCREMENT,
    CustomerId INT,
    CreatedAt Date
);

Додамо обмеження зовнішнього ключа до колонку CustomerId таблиці Orders :

ALTER TABLE Orders
ADD FOREIGN KEY(CustomerId) REFERENCES Customers(Id);

При додаванні обмежень ми можемо вказати для них ім'я, використовуючи оператор CONSTRAINT , після якого вказується ім'я обмеження:

ALTER TABLE Orders
ADD CONSTRAINT orders_customers_fk 
FOREIGN KEY(CustomerId) REFERENCES Customers(Id);

В даному випадку обмеження зовнішнього ключа називається orders_customers_fk . Потім з цього імені ми можемо видалити обмеження:

ALTER TABLE Orders
DROP FOREIGN KEY orders_customers_fk;

Додавання і видалення первинного ключа

Додамо в таблицю Products первинний ключ:

CREATE TABLE Products
(
    Id INT,
    Model VARCHAR(20)
);
 
ALTER TABLE Products
ADD PRIMARY KEY (Id);

Тепер видалимо первинний ключ:

ALTER TABLE Products
DROP PRIMARY KEY;

Наш партнер:
beta test mp3 playlist downloader