Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

คำสั่ง SQL ALTER TABLE: คู่มือแก้ไขโครงสร้างตาราง

คำสั่ง SQL ALTER TABLE ใช้เพิ่ม เปลี่ยน หรือลบคอลัมน์ในตาราง คำสั่งนี้ให้คุณแก้ไขโครงสร้างตารางหลังสร้างแล้ว แม้ตารางจะมีข้อมูลอยู่

คุณอาจตัดสินใจเปลี่ยนแปลงตาราง SQL เช่น ต้องการเปลี่ยนชื่อคอลัมน์ หรือเพิ่มคอลัมน์ใหม่ การเปลี่ยนแปลงเหล่านี้ทำได้ด้วยคำสั่ง SQL ALTER TABLE

SQL ALTER TABLE

คำสั่ง ALTER TABLE ช่วยเปลี่ยนแปลงตารางที่มีอยู่โดย:

  • เพิ่มคอลัมน์ (Add a column)
  • เพิ่ม constraint (Add a constraint)
  • ลบคอลัมน์ (Remove a column)
  • เปลี่ยนชนิดข้อมูล (Change data type)
  • เปลี่ยนชื่อคอลัมน์ (Rename a column)

บทช่วยสอนนี้จะอธิบายพร้อมตัวอย่าง วิธีแก้ไขตารางด้วยคำสั่ง SQL ALTER TABLE

เตรียมตารางตัวอย่าง

ในบทช่วยสอนนี้ เราจะแก้ไขตารางฐานข้อมูลของธุรกิจ เก็บข้อมูลพนักงานแต่ละคน ตารางชื่อ employees มีค่าดังนี้:

หลังสร้างตารางแล้ว เราพบว่าต้องการเปลี่ยนโครงสร้าง สามารถทำได้ด้วย SQL ALTER TABLE

เรียนรู้การสร้างตาราง: ดูคู่มือ SQL CREATE TABLE ของเรา

SQL ALTER TABLE: เพิ่มคอลัมน์ (Add Column)

สามารถเพิ่มคอลัมน์ในตาราง SQL ด้วย ALTER TABLE ไวยากรณ์:

ALTER TABLE table_name ADD column_name data_type constraints;

สมมติต้องการเพิ่มคอลัมน์ในตาราง "employees" เก็บเบอร์โทรศัพท์พนักงานทุกคน คอลัมน์ชื่อ "phone_number" ใช้ชนิดข้อมูล VARCHAR() (สตริงมีความยาวสูงสุด) ไม่มี constraints

คำสั่ง:

ALTER TABLE employees ADD phone_number VARCHAR(60);

คำสั่งเพิ่มคอลัมน์ใหม่ในตาราง "employees" ตอนนี้โครงสร้างตารางมีคอลัมน์ใหม่ "phone_number":

FieldTypeDefault
namevarchar(60)NULL
titlevarchar(60)NULL
departmentvarchar(60)NULL
employee_numbervarchar(60)NULL
phone_numbervarchar(60)

อยากเรียนรู้เพิ่มเติมเกี่ยวกับการเพิ่มคอลัมน์ใน SQL? ดูคู่มือ SQL add column ของเรา

SQL ALTER TABLE: เพิ่ม Constraint

ส่วนก่อนเราเพิ่มคอลัมน์ phone_number แต่ลืมเพิ่ม constraints

ในตัวอย่างนี้ หมายความว่าฐานข้อมูลอาจเก็บเบอร์โทรซ้ำสำหรับหลายพนักงาน ซึ่งไม่เป็นประโยชน์

แก้ไขด้วยการเพิ่ม constraint UNIQUE ให้คอลัมน์ "phone_number" ไวยากรณ์:

ALTER TABLE table_name ADD UNIQUE (column_name);

คำสั่งเพิ่ม constraint ให้คอลัมน์ "phone_number":

ALTER TABLE employees ADD UNIQUE (phone_number);

หากต้องการเพิ่ม constraint อื่น ให้แทน "UNIQUE" ด้วย SQL constraint อื่น

SQL ALTER TABLE: ลบคอลัมน์ (Remove Column)

สามารถใช้ ALTER TABLE ลบคอลัมน์จากตารางได้ ไวยากรณ์:

ALTER TABLE table_name DROP COLUMN column_name;

สมมติต้องการลบคอลัมน์ "department" จะสร้างคอลัมน์ใหม่เชื่อมโยงแผนกกับตารางอื่น คำสั่งลบ:

ALTER TABLE employees DROP COLUMN department;

หลังรันคำสั่ง คอลัมน์ "department" ถูกลบ โครงสร้างตารางตอนนี้:

FieldTypeDefault
namevarchar(60)NULL
titlevarchar(60)NULL
employee_numbervarchar(60)NULL
phone_numbervarchar(60)

SQL ALTER TABLE: เปลี่ยนชนิดข้อมูลคอลัมน์ (Change Data Type)

ใช้ ALTER TABLE เปลี่ยนชนิดข้อมูลคอลัมน์ได้ ไวยากรณ์:

ALTER TABLE table_name ALTER COLUMN column_name new_data_type;

คำสั่งนี้มี 2 รูปแบบสำหรับ MySQL และ Oracle (pre-10G), และ Oracle 10G ขึ้นไป:

ALTER TABLE table_name MODIFY COLUMN column_name new_data_type; (MySQL, Oracle pre-10G)
ALTER TABLE table_name MODIFY column_name new_data_type; (Oracle 10G+ and later)

ตอนสร้างตาราง "employees" เริ่มต้น เราผิดพลาดกำหนด "employee_number" เป็น VARCHAR() แทนตัวเลข แก้ไขด้วยคำสั่ง:

ALTER TABLE employees ALTER COLUMN employee_number INT;

คำสั่งเปลี่ยนชนิด "employee_number" เป็น INT โครงสร้างใหม่:

FieldTypeDefault
namevarchar(60)NULL
titlevarchar(60)NULL
employee_numbervarchar(60)NULL
phone_numberint

SQL ALTER TABLE: เปลี่ยนชื่อตาราง (Rename Table)

คำสั่ง ALTER TABLE ยังอนุญาตให้เปลี่ยนชื่อตาราง SQL ได้ ไวยากรณ์:

ALTER TABLE current_table RENAME new_table;

สมมติต้องการเปลี่ยนชื่อ "employees" เป็น "old_employees_2019" ใช้คำสั่ง:

ALTER TABLE employees RENAME old_employees_2019;

หมายเหตุ: ใน MySQL ไม่สามารถเปลี่ยนชื่อตารางด้วย ALTER TABLE ได้ ใช้คำสั่ง RENAME TABLE แทน:

RENAME TABLE employees TO old_employees_2019;

สรุป

คำสั่ง SQL ALTER TABLE ช่วยเปลี่ยนโครงสร้างตารางใน SQL คุณสามารถเพิ่ม ลบ หรือเปลี่ยนแปลงตารางในฐานข้อมูล เพิ่มเติมคุณสามารถแก้ไข constraints ที่เกี่ยวข้องกับตาราง เช่น UNIQUE หรือ NOT NULL

อยากเรียนรู้ SQL เพิ่มเติม? อ่านคู่มือ How to Learn SQL ของเรา มีเคล็ดลับและแหล่งเรียนรู้จากผู้เชี่ยวชาญ