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

SQL ALTER TABLE:A Guide

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

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

SQL เปลี่ยนตาราง

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

  • กำลังเพิ่มคอลัมน์
  • การเพิ่มข้อจำกัด
  • การลบคอลัมน์
  • เปลี่ยนประเภทข้อมูล
  • เปลี่ยนชื่อคอลัมน์

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

การจัดโต๊ะอาหาร

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

หลังจากสร้างตารางของเราแล้ว เราก็ตระหนักว่าเราต้องการเปลี่ยนแปลงโครงสร้างของตาราง เราสามารถทำได้โดยใช้คำสั่ง SQL ALTER TABLE

หากต้องการเรียนรู้วิธีสร้างตาราง โปรดดูคู่มือการสร้างตาราง SQL

SQL ALTER TABLE:เพิ่มคอลัมน์ลงในตาราง

คุณสามารถเพิ่มคอลัมน์ลงในตาราง SQL โดยใช้คำสั่ง ALTER TABLE ไวยากรณ์สำหรับการเพิ่มคอลัมน์ใหม่ลงในตารางที่มีอยู่มีดังนี้:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

ALTER TABLE table_name ADD column_name data_type constraints;

สมมติว่าเราต้องการเพิ่มคอลัมน์ใหม่ลงในตาราง "พนักงาน" ซึ่งเก็บหมายเลขโทรศัพท์ของพนักงานทุกคน คอลัมน์นี้ควรเรียกว่า “phone_number” คอลัมน์ควรใช้ VARCHAR() ชนิดข้อมูล—ซึ่งช่วยให้เราจัดเก็บสตริงที่มีความยาวสูงสุด—และไม่มีข้อจำกัด

เราสามารถสร้างคอลัมน์นี้โดยใช้คำสั่งต่อไปนี้:

ALTER TABLE employees ADD phone_number VARCHAR(60);

คำสั่งนี้จะเพิ่มคอลัมน์ใหม่ลงในตารางของเราในฐานข้อมูล "พนักงาน" เมื่อเราดูโครงสร้างของฐานข้อมูล เรามีคอลัมน์ใหม่หนึ่งคอลัมน์ชื่อ “phone_number”:

ฟิลด์ พิมพ์ ค่าเริ่มต้น
ชื่อ varchar(60) NULL
หัวเรื่อง varchar(60) NULL
แผนก varchar(60) NULL
หมายเลขพนักงาน varchar(60) NULL
หมายเลขโทรศัพท์ varchar(60)

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิธีเพิ่มคอลัมน์ลงในฐานข้อมูลใน SQL โปรดดูคู่มือการเพิ่มคอลัมน์ SQL ของเรา

SQL ALTER TABLE:เพิ่มข้อจำกัดให้กับตาราง

ในส่วนที่แล้ว เราได้เพิ่มคอลัมน์ใหม่ลงในตารางของเรา:phone_number แต่เราลืมเพิ่มข้อจำกัดใดๆ ลงในตาราง

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

ในการแก้ไขปัญหานี้ เราสามารถเพิ่มข้อจำกัด UNIQUE ให้กับคอลัมน์ "phone_number" ในตารางของเรา ไวยากรณ์สำหรับการเพิ่มข้อจำกัดให้กับคอลัมน์ใน SQL มีดังต่อไปนี้:

ALTER TABLE table_name ADD UNIQUE (column_name);

คำสั่งนี้จะเพิ่มข้อจำกัดให้กับคอลัมน์ “phone_number” ของเรา:

ALTER TABLE employees ADD UNIQUE (phone_number);

หากเราต้องการเพิ่มข้อจำกัดอื่น เราสามารถทำได้โดยแทนที่ “UNIQUE” ด้วยข้อจำกัด SQL อื่น

SQL ALTER TABLE:ลบคอลัมน์ออกจากตาราง

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

ALTER TABLE table_name DROP COLUMN column_name;

สมมติว่าเราต้องการลบคอลัมน์ "แผนก" ออกจากตารางของเรา เราตั้งใจที่จะสร้างคอลัมน์ใหม่ในภายหลังซึ่งเชื่อมโยงแผนกของพนักงานกับตารางอื่น เราสามารถลบคอลัมน์นี้โดยใช้คำสั่งต่อไปนี้:

ALTER TABLE employees DROP COLUMN department;

เมื่อดำเนินการคำสั่งนี้ คอลัมน์ "แผนก" จากตารางของเราจะหายไป ดังนั้น โครงสร้างสำหรับตารางของเราตอนนี้จึงปรากฏดังนี้:

ฟิลด์ พิมพ์ ค่าเริ่มต้น
ชื่อ varchar(60) NULL
หัวเรื่อง varchar(60) NULL
หมายเลขพนักงาน varchar(60) NULL
หมายเลขโทรศัพท์ varchar(60)

SQL ALTER TABLE:เปลี่ยนประเภทข้อมูลของคอลัมน์

คุณสามารถใช้คำสั่ง ALTER TABLE เพื่อเปลี่ยนชนิดข้อมูลของคอลัมน์ ไวยากรณ์สำหรับการเปลี่ยนชนิดข้อมูลของคอลัมน์คือ:

ALTER TABLE table_name ALTER COLUMN column_name new_data_type;

คำสั่งนี้มีทางเลือกสองเวอร์ชันสำหรับ MySQL และ Oracle (ก่อน 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)

เมื่อเราสร้างตาราง "พนักงาน" เริ่มต้น เราทำผิดพลาดในการกำหนดฟิลด์ "employee_number" ให้เป็น VARCHAR() แทนที่จะเป็นตัวเลข เพื่อแก้ไขข้อผิดพลาดนี้ เราสามารถใช้คำสั่งต่อไปนี้:

ALTER TABLE employees ALTER COLUMN employee_number INT;

คำสั่งนี้จะเปลี่ยนประเภทของคอลัมน์ "employee_number" ของเราเป็น INT ดังนั้น โครงสร้างใหม่สำหรับฐานข้อมูลของเรามีดังนี้:

ฟิลด์ พิมพ์ ค่าเริ่มต้น
ชื่อ varchar(60) NULL
หัวเรื่อง varchar(60) NULL
หมายเลขพนักงาน varchar(60) NULL
หมายเลขโทรศัพท์ int

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

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

ALTER TABLE current_table RENAME new_table;

สมมติว่าเราต้องการเปลี่ยนชื่อตาราง "พนักงาน" เป็น "old_employees_2019" เราสามารถทำได้โดยใช้คำสั่งนี้:

ALTER TABLE employees RENAME old_employees_2019;

คุณไม่สามารถเปลี่ยนชื่อตารางโดยใช้คำสั่ง ALTER TABLE ใน MySQL ใน MySQL แทนที่จะใช้ ALTER TABLE คุณสามารถใช้คำสั่ง RENAME table ได้

เราจะใช้คำสั่งต่อไปนี้เพื่อเปลี่ยนชื่อตารางของเราใน MySQL:

RENAME TABLE employees TO old_employees_2019;

บทสรุป

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

คุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ SQL หรือไม่? อ่านคู่มือวิธีการเรียนรู้ SQL ของเรา คุณจะพบเคล็ดลับสำคัญเกี่ยวกับวิธีการเรียนรู้ SQL นอกจากนี้ คุณยังจะได้พบกับรายการแหล่งข้อมูลการเรียนรู้ที่คัดสรรโดยผู้เชี่ยวชาญเพื่อช่วยคุณสร้างความรู้