ถ้าเราต้องการแก้ไขโครงสร้างของ table โดยการเพิ่มและลบ field ให้ใช้คำสั่ง ALTER TABLE ตามด้วยชื่อ table โดยถ้าต้องการเพิ่ม field ให้กำหนดคำสั่ง ADD ตามหลังชื่อ table ไปด้วย แต่ถ้าต้องการลบ field ให้กำหนดคำสั่ง DROP แทน เราไปดูการเพิ่มกันก่อนเลยครับ
ALTER TABLE Employee ADD WorkingDate DATE NOT NULL;
เมื่อแก้ไขโครงสร้างโดยการเพิ่มชื่อ field เข้าไปแล้ว จะได้โครงสร้างตารางดังนี้ (ผมอ้างอิงจากโครงสร้างตารางในบทความที่แล้วนะครับ)
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| ID | int(11) | 0 | |||
| LastName | char(30) | ||||
| FirstName | char(30) | ||||
| PostCode | char(5) | ||||
| WorkingDate | date | 0000-00-00 |
ในกรณีที่ต้องการเพิ่ม field ใหม่นั้นไว้ในตำแหน่งแรกให้ใช้ keyword FIRST ดังนี้
ALTER TABLE Employee ADD EmpCode CHAR(5) NOT NULL FIRST;
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| EmpCode | char(5) | ||||
| ID | int(11) | 0 | |||
| LastName | char(30) | ||||
| FirstName | char(30) | ||||
| PostCode | char(5) | ||||
| WorkingDate | date | 0000-00-00 |
นอกจากนั้นเรายังสามารถกำหนดได้ว่าต้องการเพิ่ม field นั้น ๆ ไว้ต่อจาก field ไหน โดยใช้ AFTER ตามด้วยชื่อ field เช่น
ALTER TABLE Employee ADD Age INT(2) AFTER FirstName;
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| EmpCode | char(5) | ||||
| ID | int(11) | 0 | |||
| LastName | char(30) | ||||
| FirstName | char(30) | ||||
| Age | int(2) | 0 | |||
| PostCode | char(5) | ||||
| WorkingDate | date | 0000-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" จะเหลือฟิลด์ดังนี้
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| ID | int(11) | 0 | |||
| LastName | char(30) | ||||
| FirstName | char(30) | ||||
| PostCode | char(5) |
ผู้สนับสนุน