PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

Re: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

by thitikorn_lp » 26/08/2014 3:20 pm

8. การเปลี่ยนชื่อตาราง

Code: Select all

ALTER TABLE table_name RENAME TO new_table_name;
อธิบายคำสั่ง
table_name        :  ชื่อตารางที่ต้องการเปลี่ยนชื่อ
RENAME TO          :  คำสั่งเปลี่ยนชื่อตาราง
new_table_name      :  ชื่อตารางใหม่ที่ต้องการเปลี่ยน

ตัวอย่าง :
จากตารางที่ชื่อว่า z_testcreatetable_cpartner เราต้องการเปลี่ยนชื่อให้สั้นลง
ALTER TABLE12.jpg
ALTER TABLE12.jpg (87.59 KiB) Viewed 807 times
โดยจะทำการเปลี่ยนชื่อเป็น z_cpartner โดยใช้คำสั่ง

Code: Select all

ALTER TABLE z_testcreatetable_cpartner RENAME TO z_cpartner;
ผลที่ได้คือ
ALTER TABLE13.jpg
ALTER TABLE13.jpg (45.11 KiB) Viewed 807 times

Re: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

by thitikorn_lp » 26/08/2014 3:20 pm

7. การเพิ่มข้อจำกัดของตาราง

Code: Select all

	
ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition
ตัวอย่าง :

Re: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

by thitikorn_lp » 26/08/2014 3:20 pm

6.การเพิ่มการตรวจสอบข้อจำกัดของการเปลี่ยนแปลงตาราง
  เป็นการเพิ่มเงื่อนไขในการตรวจสอบกับคอลัมน์ที่ต้องการเพื่อให้คอลัมน์ยอมรับเฉพาะเงื่อนไขที่กำหนดเท่าน้ัน

Code: Select all

ALTER TABLE table_name ADD CHECK expression;
อธิบายคำสั่ง:
table_name       :  ชื่อตารางที่ต้องการกำหนดดารตรวจสอบ
ADD CHECK        :  คำสั่งเพิ่มข้อกำหนดในการตรวจสอบ
expression        :  คอลัมน์และเงื่อนไขที่ต้องการให้แสดงผล

ตัวอย่าง :
จากตาราง z_testcreatetable_cpartner เราต้องการกำหนดการตรวจสอบเงื่อนไขให้แก่คอลัมน์ state_id
ALTER TABLE11.jpg
ALTER TABLE11.jpg (104 KiB) Viewed 9962 times
เราจะกำหนดคอลัมน์ state_id ให้มีค่าเท่ากับ 0 กับ 1 เท่านั้น

Code: Select all

ALTER TABLE z_testcreatetable_cpartner ADD CHECK (state_id IN ('0', '1'));
และทำการทดลอง insert ข้อมูลลงในฐานข้อมูล ถ้าทำการ insert
โดยที่ state_id มีค่าเท่ากับ 0 หรือ 1 จะสามารถทำการ insert ได้ตามปกติ
แต่ถ้าไม่ตรงตามเงื่อนไข จะไม่สามารถทำการ insert ได้
จะมี error แจ้งเตือนว่า
ERROR: new row for relation "z_testcreatetable_cpartner" violates check constraint "z_testcreatetable_cpartner_state_id_check"
DETAIL: Failing row contains (2, test test, 1, test(แอท)hotmail.com, 0900000000, 1987-10-02, 3)

Re: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

by thitikorn_lp » 26/08/2014 3:20 pm

5.การเปลี่ยนข้อจำกัดของค่าว่าง

Code: Select all

ALTER TABLE table_name ALTER COLUMN column_name [SET NOT NULL| DROP NOT NULL]
อธิบายคำสั่ง
table_name       :  ชื่อตารางที่ต้องการตั้งข้อจำกัดให้คอลัมน์
ALTER COLUMN      :  คำสั่งเลือกคอลัมน์ที่ต้องการตั้งข้อจำกัด
column_name      :  ชื่อคอลัมน์ที่ต้องการตั้งข้อจำกัด
SET NOT NULL      :  คำสั่งกำหนดข้อจำกัดไม่ให้เป็นค่าว่าง
DROP NOT NULL      :  คำสั่งลบข้อจำกัดให้เป็นค่าว่าง

ตัวอย่าง :
จากตาราง z_testcreatetable เราต้องการกำหนดข้อจำกัดให้แก่คอลัมน์ email ให้ไม่เป็นค่าว่าง
ALTER TABLE9.jpg
ALTER TABLE9.jpg (81.31 KiB) Viewed 9987 times
เราจะทำการกำหนดข้อจำกัดให้แก่คอลัมน์ email คือให้ไม่เป็นค่าว่าง ( NOT NULL ) เราจะให้คำสั่ง

Code: Select all

ALTER TABLE z_testcreatetable  ALTER COLUMN email SET NOT NULL
ผลที่ได้
ALTER TABLE10.jpg
ALTER TABLE10.jpg (81.87 KiB) Viewed 9987 times
ถ้าต้องการลบข้อจำกัดค่าว่างของคอลัมน์ เราสามารถใช้คำสั่งข้างล่างนี้ได้

Code: Select all

ALTER TABLE z_testcreatetable  ALTER COLUMN email DROP NOT NULL

Re: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

by thitikorn_lp » 26/08/2014 3:19 pm

4.การเปลี่ยนค่าเริ่มต้น (default value)
สามารถทำได้ทั้ง การตั้งค่าเริ่มต้นใหม่ หรือ ลบค่าเริ่มต้นเก่า

Code: Select all

ALTER TABLE table_name ALTER COLUMN column_name [SET DEFAULT value | DROP DEFAULT]
อธิบายคำสั่ง
table_name       :  ชื่อตารางที่ต้องการตั้งค่าเริ่มต้นให้คอลัมน์
ALTER COLUMN      :  คำสั่งเลือกคอลัมน์ที่ต้องการตั้งค่าเริ่มต้น
column_name      :  ชื่อคอลัมน์ที่ต้องการตั้งค่าเริ่มต้น
SET DEFAULT      :  คำสั่งกำหนดค่าเริ่มต้นของคอลัมน์ที่ต้องการ
value           :  ค่าที่ต้องการกำหนดให้แก่คอลัมน์นั้น
DROP DEFAULT      :  คำสั่งลบค่าเริ่มต้นของคอลัมน์

ตัวอย่าง :
จากตาราง z_testcreatetable เราต้องการกำหนดค่าเริ่มต้นให้แก่คอลัมน์ email
ALTER TABLE7.jpg
ALTER TABLE7.jpg (72.27 KiB) Viewed 9987 times
เราจะทำการกำหนดค่าเริ่มต้นให้แก่คอลัมน์ email คือ '-' เช่นถ้าเกิดมีการแทรกแถวข้อมูลขึ้นมาใหม่โดยที่ไม่ได้ระบุค่าใดๆ ให้แก่คอลัมน์ email ค่าในคอลัมน์จะใช้ ' - ' เป็นค่าเริ่มต้น คำสั่งที่ใช้ในการกำหนดค่าเริ่มต้นคือ

Code: Select all

ALTER TABLE z_testcreatetable  ALTER COLUMN email SET DEFAULT '-';
ผลที่ได้
ALTER TABLE8.jpg
ALTER TABLE8.jpg (82.33 KiB) Viewed 9987 times
หากต้องการลบค่าเริ่มต้น เราสามารถใช้คำสั่งข้างนี้ลบได้

Code: Select all

ALTER TABLE z_testcreatetable  ALTER COLUMN email DROP DEFAULT;

Re: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

by thitikorn_lp » 26/08/2014 3:19 pm

3. การเปลี่ยนชื่อคอลัมน์

Code: Select all

ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
อธิบายคำสั่ง
table_name       :  ชื่อตารางที่ต้องการเปลี่ยนชื่อคอลัมน์
RENAME COLUMN    :  คำสั่งเปลี่ยนชื่อคอลัมน์
column_name     :  ชื่อคอลัมน์ที่ต้องการเปลี่ยนชื่อ
new_column_name  :  ชื่อใหม่ของคอลัมน์ที่ต้องการเปลี่ยน

ตัวอย่าง :
จากตาราง z_testcreatetable เราต้องการเปลี่ยนชื่อคอลัมน์ pass ให้เป็น password
ALTER TABLE5.jpg
ALTER TABLE5.jpg (29.51 KiB) Viewed 9987 times
เราจะทำการเปลี่ยนชื่อคอลัมน์โดยใช้คำสั่ง

Code: Select all

ALTER TABLE z_testcreatetable  RENAME COLUMN pass TO password;
ผลที่ได้
ALTER TABLE6.jpg
ALTER TABLE6.jpg (29.46 KiB) Viewed 9987 times

Re: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

by thitikorn_lp » 26/08/2014 3:19 pm

2. การลบคอลัมน์ในตาราง

Code: Select all

ALTER TABLE table_name DROP COLUMN column_name;
อธิบายคำสั่ง
table_name       :  ชื่อตารางที่ต้องการลบคอลัมน์
DROP COLUMN      :  คำสั่งลบคอลัมน์
new_column_name :  ชื่อคอลัมน์ที่ต้องการลบ

ตัวอย่าง :
จากตาราง z_testcreatetable จะเห็นได้ว่า มีคอลัมน์อยู่ทั้งหมด 6 คอลัมน์
ALTER TABLE3.jpg
ALTER TABLE3.jpg (27.85 KiB) Viewed 9987 times
เราจะทำการลบคอลัมน์ที่มีชื่อว่า active ออกไป โดยใช้คำสั่ง

Code: Select all

ALTER TABLE z_testcreatetable DROP COLUMN active;
ผลที่ได้
ALTER TABLE4.jpg
ALTER TABLE4.jpg (26.45 KiB) Viewed 9987 times

Re: PostgreSQL : คำสั่ง SQL การปรับเปลี่ยนโครงสร้างตาราง ด้วย ALTER TABLE

by thitikorn_lp » 26/08/2014 3:18 pm

1. การเพิ่มคอลัมน์ใหม่ลงในตาราง

Code: Select all

ALTER TABLE table_name ADD COLUMN new_column_name TYPE;
อธิบายคำสั่ง
table_name       :  ชื่อตารางที่ต้องการเพิ่มคอลัมน์
ADD COLUMN      :  คำสั่งเพิ่มคอลัมน์
new_column_name :  ชื่อคอลัมน์ที่ต้องการเพิ่ม
TYPE             :  ประเภทชนิดของข้อมูล

ตัวอย่าง :
จากตาราง z_testcreatetable จะเห็นได้ว่า มีคอลัมน์ทั้งหมด 5 คอลัมน์
ALTER TABLE1.jpg
ALTER TABLE1.jpg (27.31 KiB) Viewed 9995 times
เราจะทำการเพิ่มคอลัมน์ datetime เข้าไปอีก 1 คอลัมน์โดยใช้

Code: Select all

ALTER TABLE z_testcreatetable ADD COLUMN datetimp timestamp;
ผลที่ได้
ALTER TABLE2.jpg
ALTER TABLE2.jpg (28.78 KiB) Viewed 9995 times

Top