В SQL често се изискват структурни модификации на база данни, като например преименуване на таблици или колони, добавяне на нови колони или промяна на типове данни. Командата ALTER TABLE позволява тези промени да бъдат направени ефективно, без да се засягат съществуващите данни. Това е основна команда за управление и актуализиране на схеми на бази данни, тъй като изискванията на приложението се развиват.
Пример: Първо нека създадем примерна таблица Student, за да демонстрираме командата ALTER:
Запитване:
ALTER TABLE students
RENAME TO learners;
Изход:
Синтаксис за командата ALTER
Ето общите синтактични формати за използване на командата ALTER TABLE:
1. Преименуване на таблица
ALTER TABLE име_на_таблица
ПРЕИМЕНУВАНЕ НА new_table_name;
2. Преименуване на колона
ALTER TABLE име_на_таблица
ПРЕИМЕНУВАНЕ на КОЛОНА старо_име_на_колона КЪМ ново_име_на_колона;
3. Добавяне на нова колона
ALTER TABLE име_на_таблица
ADD column_name тип данни;какво е интерфейс
ALTER TABLE име_на_таблица
MODIFY COLUMN column_name new_datatype;
Примери за команда ALTER в SQL
По-долу са дадени практически примери, които да ни помогнат да разберем как да използваме командата ALTER ефективно в различни сценарии. Тези примери включват преименуване на таблици или колони, добавяне на нови колони или променяща се колона типове данни.
1. Създайте примерна таблица
Първо нека създадем примерен ученик таблица за демонстриране на ALTER команда:
CREATE TABLE Student (
id INT PRIMARY KEY
name VARCHAR(50)
age INT
email VARCHAR(50)
phone VARCHAR(20)
);
Нека вмъкнем някои данни и след това изпълним операция ALTER, за да разберем по-добре командата alter.
INSERT INTO Student (id name age email phone)
VALUES
(1 'Amit' 20 '[email protected]' '9999999999')
(2 'Rahul' 22 '[email protected]' '8888888888')
(3 'Priya' 21 '[email protected]' '7777777777')
(4 'Sonia' 23 '[email protected]' '6666666666')
(5 'Kiran' 19 '[email protected]' '5555555555');
Изход
Пример 1: Преименуване на колона
Променете името на името на колоната на FIRST_NAME в таблицата Student. За да променим името на колоната на съществуващата таблица, трябва да използваме ключовата дума Column, преди да напишем съществуващото име на колона, което да променим.
Синтаксис
ALTER TABLE Student RENAME COLUMN Column_NAME TO FIRST_NAME;
Запитване:
ALTER TABLE Student RENAME Column name TO FIRST_NAME;Изход
ИзходПример 2: Преименуване на таблица
В този пример искаме да преименуваме таблицата отStudentкъмStudent_Detailsс помощта наALTER TABLEкоманда, която прави името по-описателно и съответстващи на съдържанието му.
Запитване:
ALTER TABLE Student RENAME TO Student_Details;Изход
Пример 3: Добавяне на нова колона
За да добавим нова колона към съществуващата таблица, първо трябва да изберем таблицата с командата ALTER TABLE table_name и след това ще напишем името на новата колона и нейния тип данни с ADD column_name тип данни. Нека да погледнем по-долу, за да разберем по-добре.
Синтаксис
ALTER TABLE име_на_таблица
ADD column_name тип данни;кой е фреди меркюри
Запитване:
ALTER TABLE Student ADD marks INT;Изход
В примера наphoneколоната се актуализира отVARCHAR(20)къмBIGINT за по-ефективно съхраняване на числови данни и гарантиране цялост на данните за телефонни номера без ненужни знаци.
Синтаксис
ALTER TABLE име_на_таблица
MODIFY COLUMN column_name new_datatype;
Запитване:
ALTER TABLE Student_Details
MODIFY COLUMN phone BIGINT;
Изход
| id | име | възраст | имейл | телефон |
|---|---|---|---|---|
| 1 | Какво | 20 | [email protected] | 9999999999 |
| 2 | Рахул | 22 | [email protected] | 8888888888 |
| 3 | Прия | 21 | [email protected] | 7777777777 |
| 4 | Соня | 23 | [email protected] | 6666666666 |
| 5 | Обаждането | 19 | [email protected] | 5555555555 |
Обяснение :
- Телефонната колона вече има тип данни BIGINT, подходящ за съхраняване на големи числови стойности.
- Съществуващите данни остават непроменени, но се съхраняват като цели числа вместо струни.
Допълнителни случаи на използване на командата ALTER
1. Премахване на колона : В някои случаи може да се наложи да премахнем колона. За да направите това, можете да използвате синтаксиса DROP COLUMN:
ALTER TABLE Student_Details
ПУСКАНЕ НА КОЛОНА марки;
Тази команда изтрива колоната с марки изцяло от таблицата
2. Промяна на стойността по подразбиране на колона : Можем също да променим стойността по подразбиране на колона, като използваме клаузата SET DEFAULT:
ALTER TABLE Student_Details
ALTER COLUMN age SET DEFAULT 18;
3. Преименуване на таблица или колона в различни бази данни : Имайте предвид, че синтаксисът на SQL може да варира в различните системи за бази данни. Ето как бихме преименували таблица или колона в MySQL MariaDB и Оракул :
np.хистограма
- MySQL / MariaDB : Синтаксисът за преименуване на колона е подобен, но трябва също да използвате командата CHANGE COLUMN, за да преименувате колона:
ALTER TABLE Студент
CHANGE COLUMN old_column_name new_column_name тип данни;
- Оракул : Oracle поддържа синтаксиса RENAME COLUMN, но изисква различен синтаксис за преименуване на таблица:
Създаване на тестALTER TABLE Student RENAME COLUMN old_column_name TO new_column_name;