การสร้างหรือการปรับเปลี่ยนตารางหรือดัชนีโดยใช้แบบสอบถามแบบสร้างข้อกำหนดข้อมูล

สิ่งสำคัญ:  บทความนี้เป็นการแปลด้วยเครื่อง โปรดดู ข้อจำกัดความรับผิดชอบ โปรดดูบทความฉบับภาษาอังกฤษ ที่นี่ เพื่อใช้อ้างอิง

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

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

หมายเหตุ: คุณไม่สามารถใช้กระบวนงานเหล่านี้ในฐานข้อมูลเว็บได้

ในบทความนี้

ภาพรวม

สร้าง หรือปรับเปลี่ยนตาราง

สร้างดัชนี

สร้างความสัมพันธ์หรือข้อจำกัด

ภาพโดยรวม

แบบสอบถามแบบสร้างข้อกำหนดข้อมูลจะแตกต่างจากแบบสอบถามอื่น กล่าวคือ จะไม่ได้ใช้ในการรับข้อมูล แต่แบบสอบถามนี้จะใช้ Data Defition Language ในการสร้าง ปรับเปลี่ยน หรือลบวัตถุฐานข้อมูล

หมายเหตุ: Data Definition Language (DDL) เป็นส่วนหนึ่งของ Structured Query Language (SQL)

แบบสอบถามแบบสร้างข้อกำหนดข้อมูลอาจช่วยให้คุณสะดวกมากขึ้น คุณสามารถลบหรือสร้างส่วนต่างๆ ของ Schema ของฐานข้อมูลของคุณใหม่เป็นประจำได้เพียงเรียกใช้แบบสอบถามเท่านั้น ถ้าคุณคุ้นเคยกับคำสั่ง SQL และวางแผนที่จะลบตาราง ข้อจำกัด ดัชนี หรือความสัมพันธ์บางรายการแล้วสร้างวัตถุนั้นขึ้นใหม่ ให้พิจารณาเลือกใช้แบบสอบถามแบบสร้างข้อกำหนดข้อมูล

คำเตือน: การใช้แบบสอบถามแบบสร้างข้อกำหนดข้อมูลในการปรับเปลี่ยนวัตถุฐานข้อมูลอาจมีความเสี่ยงได้ เนื่องจากการกระทำต่างๆ จะไม่มีกล่องโต้ตอบยืนยัน ถ้าคุณทำสิ่งใดผิดพลาด คุณอาจสูญเสียข้อมูล หรือเปลี่ยนแปลงการออกแบบของตารางโดยไม่เจตนาได้ ให้ดำเนินการอย่างระมัดระวังเมื่อคุณใช้แบบสอบถามแบบสร้างข้อกำหนดข้อมูลในการปรับเปลี่ยนวัตถุในฐานข้อมูลของคุณ ถ้าคุณไม่มีหน้าที่ในการบำรุงรักษาฐานข้อมูลที่คุณกำลังใช้งานอยู่ คุณควรปรึกษาผู้ดูแลฐานข้อมูลนั้นก่อนที่จะเรียกใช้แบบสอบถามแบบสร้างข้อกำหนดข้อมูล

สิ่งสำคัญ: ให้สร้างสำเนาสำรองของตารางใดๆ ที่เกี่ยวข้องก่อนที่จะเรียกใช้แบบสอบถามแบบสร้างข้อกำหนดข้อมูล

คำสำคัญของ DDL

คำสำคัญ

การใช้งาน

CREATE

สร้างดัชนีหรือตารางที่ยังไม่มีอยู่

ALTER

ปรับเปลี่ยนตารางหรือคอลัมน์ที่มีอยู่

DROP

ลบตาราง คอลัมน์ หรือข้อจำกัดที่มีอยู่

ADD

เพิ่มคอลัมน์หรือข้อจำกัดลงในตาราง

COLUMN

ใช้กับ ADD, ALTER หรือ DROP

CONSTRAINT

ใช้กับ ADD, ALTER หรือ DROP

INDEX

ใช้กับ CREATE

TABLE

ใช้กับ ALTER, CREATE หรือ DROP

ด้านบนของหน้า

การสร้างหรือการปรับเปลี่ยนตาราง

ในการสร้างตาราง คุณต้องใช้คำสั่ง CREATE TABLE คำสั่ง CREATE TABLE มีไวยากรณ์ดังนี้

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

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

สมมติว่าคุณต้องการสร้างตารางเพื่อเก็บข้อมูลชื่อ ปี และราคาของรถที่ใช้งานแล้วซึ่งคุณกำลังพิจารณาซื้อ โดยคุณต้องการให้สามารถใส่ข้อมูลชื่อได้ถึง 30 อักขระ และข้อมูลปีได้ 4 อักขระ ถ้าคุณต้องการใช้แบบสอบถามแบบสร้างข้อกำหนดข้อมูลเพื่อสร้างตาราง ให้ทำตามขั้นตอนต่อไปนี้

หมายเหตุ: ขั้นแรก คุณต้องเปิดใช้งานเนื้อหาของฐานข้อมูลเพื่อให้แบบสอบถามแบบสร้างข้อกำหนดข้อมูลทำงาน โดยทำดังนี้

  • บนแถบข้อความ ให้คลิก เปิดใช้งานเนื้อหา

สร้างตาราง

  1. บนแท็บ สร้าง ในกลุ่ม แมโครและโค้ด ให้คลิก ออกแบบแบบสอบถาม

  2. ปิดกล่องโต้ตอบ แสดงตาราง

  3. บนแท็บ ออกแบบ ในกลุ่ม ชนิดของแบบสอบถาม ให้คลิก ข้อกำหนดข้อมูล

    ตารางออกแบบจะถูกซ่อนไว้ และแท็บวัตถุมุมมอง SQL จะแสดงขึ้น

  4. พิมพ์คำสั่ง SQL ต่อไปนี้

    สร้างตารางรถยนต์ (ชื่อ TEXT(30) ปี TEXT(4) ราคาสกุลเงิน)

  5. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

การปรับเปลี่ยนตาราง

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

ALTER TABLE table_name predicate

ซึ่งเพรดิเคตต้องใดอย่างหนึ่งต่อไปนี้:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

สมมติว่าคุณต้องการเพิ่มเขตข้อมูลข้อความซึ่งประกอบด้วยอักขระ 10 ตัว เพื่อเก็บข้อมูลเกี่ยวกับสภาพของรถแต่ละคัน คุณสามารถทำได้ดังนี้

  1. บนแท็บ สร้าง ในกลุ่ม แมโครและโค้ด ให้คลิก ออกแบบแบบสอบถาม

  2. ปิดกล่องโต้ตอบ แสดงตาราง

  3. บนแท็บ ออกแบบ ในกลุ่ม ชนิดของแบบสอบถาม ให้คลิก ข้อกำหนดข้อมูล

    ตารางออกแบบจะถูกซ่อนไว้ และแท็บวัตถุมุมมอง SQL จะแสดงขึ้น

  4. พิมพ์คำสั่ง SQL ต่อไปนี้

    เปลี่ยนตารางรถยนต์เพิ่มคอลัมน์เงื่อนไข TEXT(10)

  5. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

ด้านบนของหน้า

การสร้างดัชนี

ในการสร้างดัชนีในตารางที่มีอยู่ คุณต้องใช้คำสั่ง CREATE INDEX คำสั่ง CREATE INDEX มีไวยากรณ์ดังนี้

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

องค์ประกอบที่ต้องใช้คือคำสั่ง CREATE INDEX ชื่อดัชนี อาร์กิวเมนต์ ON ชื่อตารางที่มีเขตข้อมูลที่คุณต้องการทำดัชนี และรายการเขตข้อมูลที่จะรวมในดัชนี

  • อาร์กิวเมนต์ DESC จะทำให้ดัชนีถูกสร้างจากมากไปน้อย ซึ่งอาจเป็นประโยชน์หากคุณเรียกใช้แบบสอบถามที่หาค่าสูงสุดสำหรับเขตข้อมูลที่ทำดัชนี หรือเรียงลำดับเขตข้อมูลที่ทำดัชนีจากมากไปน้อย ตามค่าเริ่มต้น ดัชนีจะถูกสร้างจากน้อยไปมาก

  • อาร์กิวเมนต์ที่มีหลักสร้างเขตข้อมูลที่มีการทำดัชนีหรือเขตข้อมูลเป็นคีย์หลัก ของตาราง

  • อาร์กิวเมนต์ WITH DISALLOW NULL จะทำให้ต้องป้อนค่าดัชนีในเขตข้อมูลที่ทำดัชนี  กล่าวคือ ไม่อนุญาตให้มีค่า null

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

  1. บนแท็บ สร้าง ในกลุ่ม แมโครและโค้ด ให้คลิก ออกแบบแบบสอบถาม

  2. ปิดกล่องโต้ตอบ แสดงตาราง

  3. บนแท็บ ออกแบบ ในกลุ่ม ชนิดของแบบสอบถาม ให้คลิก ข้อกำหนดข้อมูล

    ตารางออกแบบจะถูกซ่อนไว้ และแท็บวัตถุมุมมอง SQL จะแสดงขึ้น

  4. พิมพ์คำสั่ง SQL ต่อไปนี้

    สร้างดัชนีรถยนต์บน YearIndex (ปี)

  5. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

ด้านบนของหน้า

การสร้างข้อจำกัดหรือความสัมพันธ์

ข้อจำกัดจะสร้างเงื่อนไขแบบตรรกะที่เขตข้อมูลหรือการรวมเขตข้อมูลต้องตรงกันเมื่อใส่ค่าเข้าไป เช่น ข้อจำกัด UNIQUE จะป้องกันเขตข้อมูลที่มีการจำกัดรูปแบบจากการยอมรับค่าที่อาจซ้ำกับค่าที่มีอยู่สำหรับเขตข้อมูล

ความสัมพันธ์เป็นข้อจำกัดชนิดหนึ่งที่อ้างถึงค่าของเขตข้อมูลหนึ่งหรือกลุ่มเขตข้อมูลในตารางอื่น เพื่อพิจารณาว่าจะสามารถใส่ค่าลงในเขตข้อมูลหรือกลุ่มเขตข้อมูลที่มีการจำกัดรูปแบบได้หรือไม่ โดยคุณไม่ต้องใช้คำสำคัญพิเศษในการระบุว่าข้อจำกัดเป็นความสัมพันธ์

ในการสร้างข้อจำกัด คุณต้องใช้ส่วนคำสั่ง CONSTRAINT ในคำสั่ง CREATE TABLE หรือ ALTER TABLE มีส่วนคำสั่ง CONSTRAINT สองประเภท ได้แก่ ส่วนคำสั่งสำหรับการสร้างข้อจำกัดในเขตข้อมูลเดียว และส่วนคำสั่งสำหรับการสร้างข้อจำกัดในหลายเขตข้อมูล

ข้อจำกัดแบบเขตข้อมูลเดียว

ส่วนคำสั่ง CONSTRAINT แบบเขตข้อมูลเดียวจะทำตามข้อกำหนดของเขตข้อมูลที่นำไปใช้ทันที ซึ่งมีไวยากรณ์ดังนี้

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

สมมติว่าคุณมีตารางชื่อ Cars พร้อมเขตข้อมูลที่เก็บข้อมูลชื่อ ปี ราคา และสภาพรถที่ใช้แล้ว ซึ่งคุณกำลังพิจารณาซื้อ และสมมติว่าคุณลืมป้อนค่าลงในสภาพรถเป็นประจำ และคุณต้องการบันทึกข้อมูลนี้เสมอ คุณสามารถสร้างข้อจำกัดในเขตข้อมูล Condition ซึ่งจะป้องกันไม่ให้คุณปล่อยให้เขตข้อมูลนี้ว่างเปล่า โดยใช้ขั้นตอนต่อไปนี้

  1. บนแท็บ สร้าง ในกลุ่ม แมโครและโค้ด ให้คลิก ออกแบบแบบสอบถาม

  2. ปิดกล่องโต้ตอบ แสดงตาราง

  3. บนแท็บ ออกแบบ ในกลุ่ม ชนิดของแบบสอบถาม ให้คลิก ข้อกำหนดข้อมูล

    ตารางออกแบบจะถูกซ่อนไว้ และแท็บวัตถุมุมมอง SQL จะแสดงขึ้น

  4. พิมพ์คำสั่ง SQL ต่อไปนี้

    เปลี่ยนตารางรถยนต์เปลี่ยนคอลัมน์เงื่อนไขข้อความข้อจำกัด ConditionRequired ไม่ใช่ NULL

  5. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

ตอนนี้สมมติว่าคุณสังเกตว่ามีค่าที่คล้ายกันหลายค่าในเขตข้อมูล Condition ที่ควรจะเหมือนกัน เช่น รถบางคันมีค่า Condition เป็น แย่ ในขณะที่บางคันมีค่าเป็น ไม่ดี

หมายเหตุ: ถ้าคุณต้องการทำตามกระบวนงานที่เหลืออยู่ต่อไป ให้เพิ่มข้อมูลปลอมบางรายการลงในตาราง Cars ที่คุณสร้างขึ้นในขั้นตอนก่อนหน้านี้

หลังจากที่คุณล้างค่าเพื่อให้มีความสอดคล้องกันมากขึ้นแล้ว คุณสามารถสร้างตารางโดยตั้งชื่อว่า CarCondition ที่มีเขตข้อมูลหนึ่งเขตข้อมูลที่ชื่อว่า Condition ซึ่งมีค่าทั้งหมดที่คุณต้องการใช้สำหรับสภาพรถ โดยทำดังนี้

  1. บนแท็บ สร้าง ในกลุ่ม แมโครและโค้ด ให้คลิก ออกแบบแบบสอบถาม

  2. ปิดกล่องโต้ตอบ แสดงตาราง

  3. บนแท็บ ออกแบบ ในกลุ่ม ชนิดของแบบสอบถาม ให้คลิก ข้อกำหนดข้อมูล

    ตารางออกแบบจะถูกซ่อนไว้ และแท็บวัตถุมุมมอง SQL จะแสดงขึ้น

  4. พิมพ์คำสั่ง SQL ต่อไปนี้

    สร้างตาราง CarCondition (เงื่อนไข TEXT(10))

  5. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

  6. สร้างคีย์หลักสำหรับตารางโดยใช้คำสั่ง ALTER TABLE ดังนี้

    เปลี่ยนตาราง CarCondition เปลี่ยนคอลัมน์เงื่อนไขข้อความข้อจำกัด CarConditionPK คีย์หลัก

  7. ถ้าต้องการใส่ค่าจากเขตข้อมูล Condition ของตาราง Cars ในตาราง CarCondition ใหม่ ให้พิมพ์ คำสั่ง SQL ต่อไปนี้ในแท็บวัตถุมุมมอง SQL

    แทรกลงใน CarCondition DISTINCT เลือกเงื่อนไขจากรถยนต์

    หมายเหตุ: คำสั่ง SQL ในขั้นตอนนี้จะมีคิวรีแบบใช้ผนวกข้อมูล ไม่เหมือนกับแบบสอบถามข้อมูลนิยาม คิวรีแบบใช้ผนวกข้อมูลลงท้าย ด้วยเครื่องหมายอัฒภาค

  8. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

การสร้างความสัมพันธ์โดยใช้ข้อจำกัด

ถ้าต้องการให้ค่าใหม่ใดๆ ที่ใส่ในเขตข้อมูล Condition ของตารางตรงกับค่าของเขตข้อมูล Condition ในตาราง CarCondition คุณสามารถสร้างความสัมพันธ์ระหว่างตาราง CarCondition และตาราง Cars ในเขตข้อมูลที่ชื่อ Condition โดยใช้ขั้นตอนต่อไปนี้

  1. บนแท็บ สร้าง ในกลุ่ม แมโครและโค้ด ให้คลิก ออกแบบแบบสอบถาม

  2. ปิดกล่องโต้ตอบ แสดงตาราง

  3. บนแท็บ ออกแบบ ในกลุ่ม ชนิดของแบบสอบถาม ให้คลิก ข้อกำหนดข้อมูล

    ตารางออกแบบจะถูกซ่อนไว้ และแท็บวัตถุมุมมอง SQL จะแสดงขึ้น

  4. พิมพ์คำสั่ง SQL ต่อไปนี้

    เปลี่ยนตารางรถยนต์เปลี่ยนคอลัมน์เงื่อนไขข้อความข้อจำกัด FKeyCondition อ้างอิง CarCondition (เงื่อนไข)

  5. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

ข้อจำกัดแบบหลายเขตข้อมูล

ส่วนคำสั่ง CONSTRAINT แบบหลายเขตข้อมูลจะใช้ได้นอกส่วนคำสั่งข้อกำหนดเขตข้อมูลเท่านั้น และมีไวยากรณ์ดังนี้

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

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

  1. บนแท็บ สร้าง ในกลุ่ม แมโครและโค้ด ให้คลิก ออกแบบแบบสอบถาม

  2. ปิดกล่องโต้ตอบ แสดงตาราง

  3. บนแท็บ ออกแบบ ในกลุ่ม ชนิดของแบบสอบถาม ให้คลิก ข้อกำหนดข้อมูล

    ตารางออกแบบจะถูกซ่อนไว้ และแท็บวัตถุมุมมอง SQL จะแสดงขึ้น

  4. พิมพ์คำสั่ง SQL ต่อไปนี้

    เปลี่ยนตารางรถยนต์เพิ่มข้อจำกัด NoDupes ไม่ซ้ำกัน (ชื่อ ปี เงื่อนไข ราคา)

  5. บนแท็บ ออกแบบ ในกลุ่ม ผลลัพธ์ ให้คลิก เรียกใช้

ด้านบนของหน้า

หมายเหตุ: ข้อจำกัดความรับผิดชอบของการแปลด้วยเครื่อง: บทความนี้มีการแปลด้วยระบบคอมพิวเตอร์โดยไม่มีการดำเนินการโดยบุคคล Microsoft จัดให้มีการแปลด้วยเครื่องนี้เพื่อช่วยให้ผู้ใช้ที่ไม่ได้พูดภาษาอังกฤษสามารถใช้ประโยชน์จากเนื้อหาเกี่ยวกับผลิตภัณฑ์ บริการและเทคโนโลยีของ Microsoft เนื่องจากบทความมีการแปลด้วยเครื่อง อาจมีข้อผิดพลาดด้านคำศัพท์ ไวยากรณ์หรือรูปประโยค

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×