Эгерде таблица түзүлгөн болсо жана аны өзгөртүү зарыл болсо, ALTER TABLE командасын колдонуңуз. Анын аббревиативдүү формалдуу синтакс болуп саналат:
|
@A@ALTER TABLE название_таблицы { ADD название_столбца тип_данных_столбца [атрибуты_столбца] | DROP COLUMN название_столбца | MODIFY COLUMN название_столбца тип_данных_столбца [атрибуты_столбца] | ALTER COLUMN название_столбца SET DEFAULT значение_по_умолчанию | ADD [CONSTRAINT] определение_ограничения | DROP [CONSTRAINT] имя_ограничения} @A@ |
Жалпысынан алганда, бул команда дагы көптөгөн варианттарды жана өзгөчөлүктөрүн колдойт. Алардын баарын документациядан табууга болот. Келгиле, биз туш болушу мүмкүн негизги сценарийлерди гана карап көрөлү.
Жаңы колонна кошуу
Customers таблицасына жаңы Address колоннасын кошолу:
|
@A@ALTER TABLE Customers ADD Address VARCHAR(50) NULL; @A@ |
Бул учурда Дарек колоннасы VARCHAR түрү болуп саналат жана ал үчүн аныкталган NULL атрибуты бар.
Колоннаны жоготуу
Address колоннасын Customers столунан алып коёлу:
|
@A@ALTER TABLE Customers DROP COLUMN Address; @A@ |
Дефолт наркын өзгөртүү
Кардарлар таблицасындагы Age колоннасынын дефолт наркын 22ге белгилейли:
|
@A@ALTER TABLE Customers ALTER COLUMN Age SET DEFAULT 22;@A@ |
Колонна түрүн өзгөртүү
Кардарлар таблицасында FirstName колоннасынын маалыматтар түрүн CHAR (100) өзгөртүп, НУЛЛга коюу:
|
@A@ALTER TABLE Customers MODIFY COLUMN FirstName CHAR(100) NULL;@A@ |
PRIMARY KEY кошуу жана алып салуу
Башында маалымат базасына эч кандай байланышы жок эки таблица кошолу дейли:
@A@
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 ); |
@A@
Келгиле, Orders таблицасынын CustomerId колоннасына PRIMARY KEY негизги чектөөлөрдү кошолу:
@A@
1 2 |
ALTER TABLE Orders ADD FOREIGN KEY(CustomerId) REFERENCES Customers(Id); |
@A@
Чектөөлөрдү кошууда чектөөлөрдү кошууда чектөөлөрдү колдонуу менен алардын атын көрсөтө алабыз, андан кийин CONSTRAINT аты:
@A@
1 2 3 |
ALTER TABLE Orders ADD CONSTRAINT orders_customers_fk FOREIGN KEY(CustomerId) REFERENCES Customers(Id); |
@A@
Бул учурда FOREIGN KEY негизги чектөө orders_customers_fk деп аталат. Андан кийин, ошол аты менен, биз чектөө алып салууга болот:
@A@
1 2 |
ALTER TABLE Orders DROP FOREIGN KEY orders_customers_fk; |
@A@
Негизги ачкычты кошуу жана алып салуу
Буюмдар столунун негизги ачкычын кошолу:
@A@
1 2 3 4 5 6 7 8 |
CREATE TABLE Products ( Id INT, Model VARCHAR(20) );
ALTER TABLE Products ADD PRIMARY KEY (Id); |
@A@
Эми негизги ачкычты өчүрөлү:
@A@
1 2 |
ALTER TABLE Products DROP PRIMARY KEY; |
@A@