Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

ในบทความนี้

ภาพรวม

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

หมายเหตุ: ภาษากําหนดโครงสร้างข้อมูล (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 อักขระ เมื่อต้องการใช้คิวรีแบบสร้างข้อกําหนดข้อมูลเพื่อสร้างตาราง ให้ทําดังต่อไปนี้

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

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

สร้างตาราง

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

  2. บนแท็บ ออกแบบ ในกลุ่ม ชนิดคิวรี ให้คลิก คํานิยามข้อมูล

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

  3. พิมพ์คําสั่ง SQL ต่อไปนี้:

    CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

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

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

เมื่อต้องการปรับเปลี่ยนตาราง คุณสามารถใช้คําสั่ง 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. บนแท็บ ออกแบบ ในกลุ่ม ชนิดคิวรี ให้คลิก คํานิยามข้อมูล

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

  3. พิมพ์คําสั่ง SQL ต่อไปนี้:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

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

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

วิธีสร้างดัชนี

เมื่อต้องการสร้างดัชนีบนตารางที่มีอยู่ ให้คุณใช้คําสั่ง 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 PRIMARY จะสร้างเขตข้อมูลที่เป็นดัชนีเป็น คีย์หลัก ของตาราง

  • อาร์กิวเมนต์ WITH DISALLOW NULL ทําให้ดัชนีกําหนดให้ต้องใส่ค่าสําหรับเขตข้อมูลที่เป็นดัชนี นั่นคือ ไม่อนุญาตให้มีค่า Null

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

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

  2. บนแท็บ ออกแบบ ในกลุ่ม ชนิดคิวรี ให้คลิก คํานิยามข้อมูล

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

  3. พิมพ์คําสั่ง SQL ต่อไปนี้:

    CREATE INDEX YearIndex ON Cars (Year)

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

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

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

ข้อจํากัดจะสร้างเงื่อนไขทางตรรกะที่เขตข้อมูลหรือชุดเขตข้อมูลต้องตรงตามเมื่อมีการแทรกค่า ตัวอย่างเช่น ข้อจํากัด 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}]}

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

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

  2. บนแท็บ ออกแบบ ในกลุ่ม ชนิดคิวรี ให้คลิก คํานิยามข้อมูล

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

  3. พิมพ์คําสั่ง SQL ต่อไปนี้:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

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

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

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

หลังจากที่คุณล้างค่าเพื่อให้มีความสอดคล้องกันมากขึ้นคุณสามารถสร้างตารางที่ชื่อ CarCondition ด้วยเขตข้อมูลเดียวที่ชื่อเงื่อนไขที่มีค่าทั้งหมดที่คุณต้องการใช้สําหรับสภาพของรถยนต์:

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

  2. บนแท็บ ออกแบบ ในกลุ่ม ชนิดคิวรี ให้คลิก คํานิยามข้อมูล

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

  3. พิมพ์คําสั่ง SQL ต่อไปนี้:

    CREATE TABLE CarCondition (Condition TEXT(10))

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

  5. สร้างคีย์หลักสําหรับตารางโดยใช้คําสั่ง ALTER TABLE:

    ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY

  6. เมื่อต้องการแทรกค่าจากเขตข้อมูล เงื่อนไข ของตาราง รถยนต์ ลงในตาราง CarCondition ใหม่ ให้พิมพ์ SQL ต่อไปนี้ลงในแท็บวัตถุมุมมอง SQL:

    INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

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

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

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

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

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

  2. บนแท็บ ออกแบบ ในกลุ่ม ชนิดคิวรี ให้คลิก คํานิยามข้อมูล

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

  3. พิมพ์คําสั่ง SQL ต่อไปนี้:

    ALTER TABLE Cars ALTER COLUMN CONDITION TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)

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

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

ส่วนคําสั่ง 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}]}

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

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

  2. บนแท็บ ออกแบบ ในกลุ่ม ชนิดคิวรี ให้คลิก คํานิยามข้อมูล

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

  3. พิมพ์คําสั่ง SQL ต่อไปนี้:

    ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (name, year, condition, price)

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

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

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย