PostgreSQL แก้ไขตาราง: เพิ่มคอลัมน์ เปลี่ยนชื่อคอลัมน์/ตัวอย่างตาราง
คำสั่ง ALTER TABLE ใช้เพื่อแก้ไขโครงสร้างของ PostgreSQL โต๊ะ. เป็นคำสั่งที่ใช้ในการเปลี่ยนคอลัมน์ของตารางหรือชื่อของตาราง
วากยสัมพันธ์
นี่คือไวยากรณ์สำหรับ PostgreSQL คำสั่งแก้ไขตาราง:
ALTER TABLE table-name action;
พารามิเตอร์ชื่อตารางคือชื่อของตารางที่คุณต้องการเปลี่ยนแปลง
พารามิเตอร์การกระทำคือการกระทำที่คุณต้องดำเนินการ เช่น การเปลี่ยนชื่อคอลัมน์ การเปลี่ยนประเภทข้อมูลของคอลัมน์ เป็นต้น
Descriptไอออน
คำสั่ง ALTER TABLE จะเปลี่ยนคำจำกัดความของตารางที่มีอยู่ โดยจะมีฟอร์มย่อยดังต่อไปนี้:
- เพิ่มคอลัมน์: ใช้ไวยากรณ์ที่คล้ายกันเป็นคำสั่ง CREATE TABLE เพื่อเพิ่มคอลัมน์ใหม่ลงในตาราง
- วางคอลัมน์: สำหรับการวางคอลัมน์ของตาราง ข้อจำกัดและดัชนีที่กำหนดในคอลัมน์ก็จะหายไปเช่นกัน
- ตั้งค่า/วางค่าเริ่มต้น: ใช้สำหรับลบค่าเริ่มต้นของคอลัมน์ อย่างไรก็ตาม การเปลี่ยนแปลงจะมีผลกับการเปลี่ยนแปลงครั้งถัดไปเท่านั้น คำสั่ง INSERT.
- SET/DROP ไม่เป็นโมฆะ: เปลี่ยนว่าคอลัมน์จะอนุญาตให้มีค่าว่างหรือไม่
- ตั้งค่าสถิติ: สำหรับตั้งค่าเป้าหมายการรวบรวมสถิติสำหรับแต่ละคอลัมน์สำหรับการดำเนินการวิเคราะห์
- ตั้งค่าการจัดเก็บ: สำหรับกำหนดโหมดการจัดเก็บคอลัมน์ วิธีนี้จะกำหนดตำแหน่งที่จะจัดคอลัมน์ ไม่ว่าจะเป็นแบบอินไลน์หรือในตารางเสริม
- ตั้งค่าโดยไม่มี OIDS: ใช้สำหรับลบคอลัมน์เก่าของตาราง
- เปลี่ยนชื่อ: สำหรับการเปลี่ยนชื่อตารางหรือชื่อคอลัมน์
- เพิ่ม table_constraint: ใช้สำหรับเพิ่มข้อจำกัดใหม่ให้กับตาราง โดยจะใช้ไวยากรณ์เดียวกันกับ สร้างตาราง คำสั่ง
- วางข้อ จำกัด: ใช้สำหรับวางข้อจำกัดของตาราง
- OWNER: สำหรับเปลี่ยนเจ้าของตาราง ลำดับ ดัชนี หรือมุมมองให้กับผู้ใช้บางราย
- กลุ่ม:สำหรับการทำเครื่องหมายตารางที่จะใช้ในการดำเนินการคลัสเตอร์ในอนาคต
การปรับเปลี่ยนคอลัมน์
คอลัมน์สามารถแก้ไขได้หลายวิธี การแก้ไขดังกล่าวสามารถทำได้โดยใช้คำสั่ง ALTER TABLE ให้เราหารือเรื่องเหล่านี้:
การเพิ่มคอลัมน์ใหม่
หากต้องการเพิ่มคอลัมน์ใหม่ให้กับ PostgreSQL ตาราง คำสั่ง ALTER TABLE ใช้รูปแบบต่อไปนี้:
ALTER TABLE table-name ADD new-column-name column-definition;
ชื่อตารางคือชื่อของตารางที่จะแก้ไข
ชื่อคอลัมน์ใหม่คือชื่อของคอลัมน์ใหม่ที่จะเพิ่ม
คำจำกัดความของคอลัมน์คือ ประเภทข้อมูล ของคอลัมน์ใหม่
ดูตารางหนังสือที่แสดงด้านล่าง:
ตารางมีสองคอลัมน์ คือ id และ name เราต้องเพิ่มคอลัมน์ใหม่ลงในตารางและตั้งชื่อว่า author เพียงรันคำสั่งต่อไปนี้:
ALTER TABLE Book ADD author VARCHAR(50);
หลังจากรันคำสั่งข้างต้นแล้ว ตาราง Book จะเป็นดังนี้:
เพิ่มคอลัมน์ใหม่สำเร็จแล้ว
การเปลี่ยนชื่อคอลัมน์ของตาราง
เราสามารถใช้คำสั่ง ALTER TABLE เพื่อเปลี่ยนชื่อคอลัมน์ได้ ในกรณีนี้ คำสั่งนี้จะใช้รูปแบบต่อไปนี้:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
ชื่อตารางคือชื่อของตารางที่จะเปลี่ยนชื่อคอลัมน์
ชื่อเก่าคือชื่อเก่า/ปัจจุบันของคอลัมน์
ชื่อใหม่คือชื่อใหม่ของคอลัมน์ พิจารณาตารางหนังสือที่แสดงด้านล่าง:
หนังสือ:
เราต้องการชื่อผู้เขียนคอลัมน์เป็น book_author นี่คือคำสั่ง:
ALTER TABLE Book RENAME COLUMN author TO book_author;
หลังจากรันคำสั่งแล้ว เราจะสามารถดูโครงสร้างของตารางได้:
เปลี่ยนชื่อคอลัมน์เรียบร้อยแล้ว
การตั้งค่าเริ่มต้นสำหรับคอลัมน์
เราสามารถตั้งค่าเริ่มต้นสำหรับคอลัมน์ได้ โดยค่าเริ่มต้นก็จะถูกนำมาใช้แม้ว่าคุณจะไม่ได้ระบุค่าสำหรับคอลัมน์นั้นในระหว่างการดำเนินการ INSERT ก็ตาม ในกรณีนี้ สามารถใช้คำสั่ง ALTER TABLE ได้โดยใช้รูปแบบต่อไปนี้:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
ชื่อตารางคือชื่อของตารางที่จะแก้ไขคอลัมน์
ชื่อคอลัมน์คือชื่อที่จะตั้งค่าเริ่มต้น
ค่านี้เป็นค่าเริ่มต้นสำหรับคอลัมน์
พิจารณาตารางหนังสือที่ระบุด้านล่าง:
เราจำเป็นต้องตั้งค่าเริ่มต้นสำหรับคอลัมน์ book_author เราสามารถรันคำสั่งต่อไปนี้:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
ตอนนี้ให้เราแทรกแถวลงในตาราง:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
โปรดทราบว่าเราได้แทรกค่าสำหรับสองคอลัมน์เท่านั้น ได้แก่ id และชื่อ อย่างไรก็ตาม มีการใช้ค่าเริ่มต้นสำหรับคอลัมน์ book_author:
การเพิ่มข้อจำกัดในการตรวจสอบ
ข้อจำกัดในการตรวจสอบช่วยในการตรวจสอบความถูกต้องของเรกคอร์ดที่ถูกแทรกลงในตาราง เราสามารถทำได้โดยการรวมคำสั่ง ALTER TABLE เข้ากับคำสั่ง ADD CHECK ไวยากรณ์:
ALTER TABLE table-name ADD CHECK expression;
ชื่อตารางคือชื่อของตารางที่จะแก้ไข
นิพจน์คือข้อจำกัดที่จะกำหนดให้กับคอลัมน์ในตาราง
ให้เราแก้ไขคอลัมน์ book_author ของตาราง Book เพื่อให้ยอมรับเฉพาะค่าเท่านั้น Nicholas และ Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
ตอนนี้ ให้เราลองแทรกค่าอื่นที่ไม่ใช่ Nicholas หรือ Samuel ลงในคอลัมน์ book_author ของตาราง Book:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
คำสั่งจะส่งกลับข้อผิดพลาดต่อไปนี้:
การดำเนินการแทรกล้มเหลวเนื่องจากเราละเมิดข้อจำกัดการตรวจสอบ
การเปลี่ยนชื่อตาราง
ต่อไปนี้เป็นไวยากรณ์สำหรับคำสั่ง ALTER TABLE สำหรับการเปลี่ยนชื่อตาราง:
ALTER TABLE table-name RENAME TO new-table-name;
ชื่อตารางคือชื่อปัจจุบันของตาราง
ชื่อตารางใหม่คือชื่อใหม่ที่จะกำหนดให้กับตาราง
ตัวอย่างเช่น ให้เราเปลี่ยนชื่อตาราง Book เป็น Books:
ALTER TABLE Book RENAME TO Books;
การใช้งาน pgAdmin
ตอนนี้เรามาดูกันว่าการกระทำเหล่านี้สามารถทำได้โดยใช้ pgAdmin อย่างไร
การเพิ่มคอลัมน์ใหม่
หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
ALTER TABLE Book ADD author VARCHAR(50);
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ขั้นตอน 5) ในการตรวจสอบว่ามีการเพิ่มคอลัมน์หรือไม่ ให้ทำดังต่อไปนี้:
- คลิกฐานข้อมูลจากการนำทางด้านซ้าย
- ขยายการสาธิต
- ขยายสคีมา
- ขยายสาธารณะ
- ขยายตาราง
- ขยายหนังสือ.
- ขยายคอลัมน์
ควรเพิ่มคอลัมน์ดังที่แสดงด้านล่าง:
การเปลี่ยนชื่อคอลัมน์ของตาราง
หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
ALTER TABLE Book RENAME COLUMN author TO book_author;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ขั้นตอน 5) หากต้องการตรวจสอบว่าการเปลี่ยนแปลงสำเร็จหรือไม่ ให้ทำดังต่อไปนี้:
- คลิกฐานข้อมูลจากการนำทางด้านซ้าย
- ขยายการสาธิต
- ขยายสคีมา
- ขยายสาธารณะ
- ขยายตาราง
- ขยายหนังสือ.
- ขยายคอลัมน์
ตอนนี้คอลัมน์ควรเป็นดังนี้:
เปลี่ยนคอลัมน์เรียบร้อยแล้ว
การตั้งค่าเริ่มต้นสำหรับคอลัมน์
หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ขั้นตอน 5) หากต้องการทดสอบ ให้เรียกใช้คำสั่งต่อไปนี้บนตัวแก้ไขแบบสอบถาม:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
ขั้นตอน 6) ตอนนี้เราสามารถสอบถามตารางเพื่อตรวจสอบว่าค่าเริ่มต้นถูกแทรกลงในคอลัมน์ book_author หรือไม่:
การเพิ่มข้อจำกัดในการตรวจสอบ
หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ขั้นตอน 5) หากต้องการทดสอบ ให้ทำดังต่อไปนี้:
- พิมพ์แบบสอบถามต่อไปนี้ในตัวแก้ไขแบบสอบถาม:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- คลิกปุ่มดำเนินการ
มันจะกลับมาสิ่งต่อไปนี้:
การเปลี่ยนชื่อตาราง
หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2)
- จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
- คลิกสาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
ALTER TABLE Book RENAME TO Books;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ขั้นตอน 5) หากต้องการตรวจสอบว่าตารางได้รับการเปลี่ยนชื่อหรือไม่ ให้ทำดังต่อไปนี้:
- คลิกฐานข้อมูลจากการนำทางด้านซ้าย
- ขยายการสาธิต
- ขยายสคีมา
- ขยายสาธารณะ
- ขยายตาราง
เปลี่ยนชื่อตารางสำเร็จแล้ว
สรุป
- คำสั่ง ALTER TABLE ใช้เพื่อปรับเปลี่ยนโครงสร้างของตาราง
- คำสั่ง ALTER TABLE มีรูปแบบหลากหลายขึ้นอยู่กับงานที่คุณต้องดำเนินการ
- โครงสร้างอาจเป็นคอลัมน์ของตารางหรือตัวตารางก็ได้
- เราสามารถใช้คำสั่งนี้เพื่อเปลี่ยนชื่อตารางได้
- คำสั่ง ALTER TABLE สามารถใช้เพื่อตั้งค่าเริ่มต้นของคอลัมน์ได้
- คำสั่งนี้สามารถใช้เพื่อตรวจสอบค่าที่ป้อนลงในคอลัมน์ของตารางได้
ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้