دستور ALTER در MySQL
دستور ALTER
در MySQL برای تغییر ساختار جداول موجود در پایگاه داده استفاده میشود. با استفاده از این دستور میتوان ستونهای جدید به جدول اضافه کرد، ستونهای موجود را تغییر داد یا حذف کرد، ایندکسها را اضافه یا حذف کرد و بسیاری تغییرات دیگر را انجام داد.
کاربردهای اصلی دستور ALTER
- اضافه کردن ستون
- حذف ستون
- تغییر نوع داده ستون
- تغییر نام ستون
- اضافه کردن یا حذف ایندکس
- تغییر نام جدول
مثال جامع
فرض کنید جدول useritvisit
به صورت زیر است:
جدول قبل از تغییرات
CREATE TABLE useritvisit (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(15),
city VARCHAR(50)
);
id | name | phone | city | |
---|---|---|---|---|
1 | Ali | ali@example.com | 09123456789 | Tehran |
2 | Mohamad | mohamad@example.com | 09234567890 | Shiraz |
3 | Reza | reza@example.com | 09345678901 | Isfahan |
4 | Mahya | mahya@example.com | 09456789012 | Eslamabad |
5 | Mehrdad | mehrdad@example.com | 09567890123 | Kermanshah |
اضافه کردن ستون
ساختار
ALTER TABLE table_name
ADD column_name column_definition;
مثال
اضافه کردن ستون age
به جدول useritvisit
:
ALTER TABLE useritvisit
ADD age INT;
دستور حذف یک ستون از جدول در sql
ساختار
ALTER TABLE table_name
DROP COLUMN column_name;
مثال
حذف ستون phone
از جدول useritvisit
:
ALTER TABLE useritvisit
DROP COLUMN phone;
تغییر نوع داده ستون
ساختار
ALTER TABLE table_name
MODIFY COLUMN column_name new_data_type;
مثال
تغییر نوع داده ستون age
به VARCHAR(3)
در جدول useritvisit
:
ALTER TABLE useritvisit
MODIFY COLUMN age VARCHAR(3);
تغییر نام ستون
ساختار
ALTER TABLE table_name
CHANGE old_column_name new_column_name new_data_type;
مثال
تغییر نام ستون age
به years
در جدول useritvisit
:
ALTER TABLE useritvisit
CHANGE age years INT;
اضافه کردن ایندکس
ساختار
ALTER TABLE table_name
ADD INDEX index_name (column_name);
مثال
اضافه کردن ایندکس به ستون city
در جدول useritvisit
:
ALTER TABLE useritvisit
ADD INDEX idx_city (city);
حذف ایندکس
ساختار
ALTER TABLE table_name
DROP INDEX index_name;
مثال
حذف ایندکس idx_city
از جدول useritvisit
:
ALTER TABLE useritvisit
DROP INDEX idx_city;
تغییر نام جدول
ساختار
ALTER TABLE old_table_name
RENAME TO new_table_name;
مثال
تغییر نام جدول useritvisit
به users
:
ALTER TABLE useritvisit
RENAME TO users;
مثلا اگر بخواهیم تغییرات زیر را اعمال کنیم:
- اضافه کردن ستون
age
- تغییر نوع داده ستون
phone
بهVARCHAR(20)
- تغییر نام ستون
city
بهlocation
- اضافه کردن ایندکس به ستون
name
- حذف ستون
email
دستورات
ALTER TABLE useritvisit
ADD age INT;
ALTER TABLE useritvisit
MODIFY COLUMN phone VARCHAR(20);
ALTER TABLE useritvisit
CHANGE location VARCHAR(50);
ALTER TABLE useritvisit
ADD INDEX idx_name (name);
ALTER TABLE useritvisit
DROP COLUMN email;
نتیجه نهایی جدول
پس از اجرای دستورات فوق، ساختار جدول useritvisit
به صورت زیر خواهد بود:
id | name | phone | location | age |
---|---|---|---|---|
1 | Ali | 09123456789 | Tehran | NULL |
2 | Mohamad | 09234567890 | Shiraz | NULL |
3 | Reza | 09345678901 | Isfahan | NULL |
4 | Mahya | 09456789012 | Eslamabad | NULL |
5 | Mehrdad | 09567890123 | Kermanshah | NULL |
نتیجهگیری
دستور ALTER TABLE
در MySQL یکی از ابزارهای قدرتمند برای مدیریت و تغییر ساختار جداول است. با استفاده از این دستور میتوانید تغییرات متنوعی را بر روی جداول خود اعمال کنید و به بهینهسازی و مدیریت بهتر دادهها بپردازید.
منابع
- MySQL Documentation
- MySQL Tutorial
- W3Schools SQL Tutorial
کلیدواژهها
- MySQL
- ALTER TABLE
- ایندکس
- مدیریت پایگاه داده
- SQL