StepCoding

การเพิ่มและลบ Field (Add and Drop field)

อ่าน [4480] หมวดหมู่: การสร้างฐานข้อมูล

ถ้าเราต้องการแก้ไขโครงสร้างของ table โดยการเพิ่มและลบ field ให้ใช้คำสั่ง ALTER TABLE ตามด้วยชื่อ table โดยถ้าต้องการเพิ่ม field ให้กำหนดคำสั่ง ADD ตามหลังชื่อ table ไปด้วย แต่ถ้าต้องการลบ field ให้กำหนดคำสั่ง DROP แทน เราไปดูการเพิ่มกันก่อนเลยครับ

ALTER TABLE Employee ADD WorkingDate DATE NOT NULL;

เมื่อแก้ไขโครงสร้างโดยการเพิ่มชื่อ field เข้าไปแล้ว จะได้โครงสร้างตารางดังนี้ (ผมอ้างอิงจากโครงสร้างตารางในบทความที่แล้วนะครับ)

FieldTypeNullKeyDefaultExtra
IDint(11)0
LastNamechar(30)
FirstNamechar(30)
PostCodechar(5)
WorkingDatedate0000-00-00

ในกรณีที่ต้องการเพิ่ม field ใหม่นั้นไว้ในตำแหน่งแรกให้ใช้ keyword FIRST ดังนี้

ALTER TABLE Employee ADD EmpCode CHAR(5) NOT NULL FIRST;
FieldTypeNullKeyDefaultExtra
EmpCodechar(5)
IDint(11)0
LastNamechar(30)
FirstNamechar(30)
PostCodechar(5)
WorkingDatedate0000-00-00

นอกจากนั้นเรายังสามารถกำหนดได้ว่าต้องการเพิ่ม field นั้น ๆ ไว้ต่อจาก field ไหน โดยใช้ AFTER ตามด้วยชื่อ field เช่น

ALTER TABLE Employee ADD Age INT(2) AFTER FirstName;
FieldTypeNullKeyDefaultExtra
EmpCodechar(5)
IDint(11)0
LastNamechar(30)
FirstNamechar(30)
Ageint(2)0
PostCodechar(5)
WorkingDatedate0000-00-00

เราไม่สามารถเพิ่ม field ที่มีชื่อเหมือนกับ field เดิมในตารางอยู่แล้วได้ เพราะว่าคุณสมบัติของ field นั้นจะต้องเป็นแบบ unique โดยที่ชื่อของ field จะมีคุณสมบัติเป็นแบบ case-sensitive ซึ่งหมายความว่าถ้าในตารางนี้มี field "ID" อยู่แล้ว เราก็ไม่สามารถเพิ่มชื่อ field ต่าง ๆ ดังนี้ได้ เช่น ID, id, Id และ iD เป็นต้น เนื่องจากมันจะมองว่าเป็นชื่อ field เดียวกัน

การลบ field ให้ใช้คำสั่ง DROP แทนที่คำสั่ง ADD ตามด้วยชื่อ field ที่ต้องการลบ

ALTER TABLE Employee DROP EmpCode;
ALTER TABLE Employee DROP Age;
ALTER TABLE Employee DROP WorkingDate;

เพราะฉะนั้นโครงสร้างตารางของ "Employee" จะเหลือฟิลด์ดังนี้

FieldTypeNullKeyDefaultExtra
IDint(11)0
LastNamechar(30)
FirstNamechar(30)
PostCodechar(5)

ผู้สนับสนุน