![]() |
|
![]() |
|
![]() |
ภาษาสำหรับนิยามข้อมูลคำสั่งในภาษา SQL (The subdivision of sql) แบ่งออกเป็น 3 ประเภท คือ - คำสั่งภาษาสำหรับการนิยามข้อมูล (Data Definition Language : DDL) - คำสั่งภาษาสำหรับการจัดการข้อมูล (Data Manipulation Language : DML) - คำสั่งภาษาควบคุม (Data Control Language : DCL) 1. ตารางข้อมูลสำหรับภาษา SQL เป็นภาษาที่ใช้สำหรับฐานข้อมูลแบบสัมพันธ์ คือประกอบด้วยตารางและในตารางหนึ่งๆมี 2 มิติได้แก่ แถว (rows) ในแนวนอน และคอลัมน์(columns) ในแนวตั้ง ฐานข้อมูลแบบสัมพันธ์ เช่น ตารางพนักงานขาย(SALESTAB)
คำอธิบายของคอลัมน์ต่าง ๆ ในตาราง
ภาษาสำหรับนิยามข้อมูล (Data Definition Language : DDL) เป็นส่วนหนึ่งของภาษา SQL โดยเป็นภาษาที่ใช้นิยามโครงสร้างของฐานข้อมูล เพื่อทำการสร้างเปลี่ยนแปลงหรือยกเลิกโครงสร้างของฐานข้อมูลตามที่ได้ออกแบบไว้ โครงสร้างของฐานข้อมูลสามารถเรียกได้อีกอย่างว่าสคีมา (sehema) ดังนั้นภาษาสำหรับนิยามข้อมูล จึงเป็นภาษาที่ใช้ในการสร้างสคีมานั้นเอง หลังจากที่ได้มีการออกแบบฐานข้อมูลเรียบร้อยแล้วจะทำให้ทราบว่าฐานข้อมูลนั้นมีสคีมาอย่างไร และประกอบด้วยตารางใดบ้าง แต่ละตารางสัมพันธ์กันอย่างไร คีย์หลักของตารางคืออะไร เมื่อทราบถึงรายละเอียดต่างๆที่ได้จากการออกแบบฐานข้อมูลแล้วก็จะทำการสร้างตารางต่างๆที่จะใช้เป็นฐานข้อมูลลงในเครื่องคอมพิวเตอร์ 2. การสร้างตารางการสร้างตารางในภาษา SQL จะใช้คำสร้าง CREATE TABLE ซึ่งเป็นคำสั่งที่ใช้ในการสร้างตารางขึ้นมาใหม่ คำสั่ง CREATE TABLE จะกำหนดชื่อตารางและกำหนดลักษณะข้อมูลเป็นคอลัมน์ต่างๆที่ตั้งขึ้นในตารางรวมไปถึงชนิดของข้อมูลของแต่ละคอลัมน์นั้น ในโครงสร้างของคำสั่งการสร้างตารางมีรูปแบบไวยากรณ์ดังต่อไปนี้ CREATE TABLE<table name> (<column name>< >[<size>][[ constraint <constraint_name>]constraint_type] [,<column name>data type>[<size>], ]); CREATE TABLE เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการสร้างตาราง table name ชื่อตารางที่ต้องการสร้าง column name ชื่อของคอลัมน์แต่ละคอลัมน์ data type ชนิดข้อมูลของคอลัมน์นั้นๆ constraint ข้อกำหนดของคอลัมน์ constraint_name ชื่อของข้อกำหนดที่ต้องการสร้างให้กับคอลัมน์ constraint_type ประเภทของข้อกำหนด ตัวอย่างที่ การสร้างตารางพนักงานขาย CREATE TABLE SALESTAB (SALENO integer, SALENAME char (10), ADDRESS char (10), SALECOM decimal); จากคำสั่งจะทำให้ได้ตารางพนักงานขายที่มีคอลัมน์ SALENO มีชนิดข้อมูลเป็น integer คอลัมน์ SALENAME มีชนิดข้อมูลเป็น char มีความยาว 10 ตัวอักษร คอลัมน์ ADDRESS มีชนิดข้อมูลเป็น char มีความยาว 10 ตัวอักษร และคอลัมน์ SALECOM มีชนิดข้อมูลเป็น decimal ผลของคำสั่งการสร้างตารางจะได้ตารางพนักงานขายที่ยังไม่มีข้อมูลใดๆ เป็นเพียงแต่โครงของตารางเท่านั้นดังนี้
3. การสร้างตารางโดยมีการกำหนดข้อจำกัดการสร้างตารางสามารถกำหนดข้อจำกัด(constraints)ลงในค่าต่างๆที่จะป้อนลงในคอลัมน์ต่างๆของตารางได้ การกำหนดข้อจำกัดเป็นการควบคุมความถูกต้องสมบูรณ์(integrity)ที่จัดเก็บในฐานข้อมูลให้มีความถูกต้องตามที่ถูกกำหนดไว้หรือตามที่ควรจะเป็น การกำหนดข้อจำกัดทำให้ข้อมูลมีความเชื่อถือได้ การกำหนดข้อจำกัดจะทำให้ข้อมูลในตารางไม่สามารถรับค่าใดๆที่ไม่ตรงกับข้อจำกัดที่กำหนดไว้ การกำหนดข้อจำกัดที่เป็นการควบคุมความถูกต้องสมบูรณ์(integrity)ได้ดังนี้ 3.1 การกำหนดไม่ให้ค่าใดค่าหนึ่งเป็นค่าว่าง(NOT NULL) เป็นการกำหนดข้อมูลของคอลัมน์ใดคอลัมน์หนึ่งมีค่าว่างไม่ได้ โดยใช้คำว่า NOT NULL เช่น คอลัมน์ที่เป็นคีย์หลัก(primary key)ถูกระบุไม่ให้ค่าใดค่าหนึ่งเป็นค่าว่าง(NOT NULL ) หรือต้องการให้ลูกค้าทุกคนในตารางลูกค้าต้องมีข้อมูลชื่อ โดยทั่วไปการสร้างตารางถ้าในคอลัมน์ไม่ระบุคำว่า NOT NULL คอลัมน์นั้นจะถูกระบุให้เป็นค่า NULL โดยปริยาย(DEFAULT) นั่นคือคอลัมน์นั้นสามารถมีค่าว่างได้(NULL) ตัวอย่าง สมมติว่าต้องการกำหนดให้ตารางพนักงานขายในคอลัมน์ SALENO และ คอลัมน์ SALENAMEไม่ให้เป็นค่าว่าง(NOT NULL ) จะสามารถสร้างตารางพนักงานด้วยคำสั่งดังนี้ CREATE TABLE SALESTAB (SALENO integer NOT NULL, SALENAME char(10) NOT NULL, ADDRESS char(10), SALECOM decimal); 3.2 การกำหนดไม่ให้มีค่าซ้ำกัน(UNIQUE) เป็นการสร้างตารางโดยกำหนดให้คอลัมน์นั้นทั้งตารางไม่ให้มีค่าซ้ำกัน โดยใช้คำว่า UNIQUE เช่น คอลัมน์รหัสพนักงานที่เป็นคีย์หลัก และไม่ต้องการให้มีค่าซ้ำ จะใช้คำว่า UNIQUE เป็นการระบุข้อจำกัดนี้ ตัวอย่าง สมมติว่าต้องการกำหนดให้ตารางพนักงานขายในคอลัมน์ SALENO และ คอลัมน์ SALENAMEไม่ให้เป็นค่าว่าง(NOT NULL ) และไม่ให้มีค่าซ้ำกัน จะสามารถสร้างตารางพนักงานด้วยคำสั่งดังนี้ CREATE TABLE SALESPEOPLE (SALENO integer NOT NULL UNIQUE, SALENAME char(10) NOT NULL UNIQUE, ADDRESS char(10), SALECOM decimal); 3.3. การกำหนดคีย์หลัก(primary key) สามารถกำหนดได้ 2 วิธีคือ 1) การกำหนดให้คอลัมน์เดียวเป็นคีย์หลัก ตัวอย่าง สมมติว่าต้องสร้างตารางพนักงานที่กำหนดให้คอลัมน์ SALENO เป็น คีย์หลัก(primary key) โดยไม่ให้มีค่าซ้ำกัน และคอลัมน์ SALENAMEไม่ให้เป็นค่าว่าง(NOT NULL) และไม่ให้มีค่าซ้ำกัน จะสามารถสร้างตารางพนักงานด้วยคำสั่งดังนี้ CREATE TABLE SALESPEOPLE (SALENO integer NOT NULL UNIQUE PRIMARY KEY, SALENAME char(10) NOT NULL UNIQUE, ADDRESS char(10), SALECOM decimal); 2) การกำหนดให้คอลัมน์มากกว่า 1 คอลัมน์เป็นคีย์หลัก ในบางครั้งการอ้างอิงคีย์หลัก อาจต้องใช้คอลัมน์มากกว่า 1 คอลัมน์เป็นคีย์หลัก ตัวอย่าง สมมติว่าต้องสร้างตาราง NAMEFIELD โดยกำหนดให้คอลัมน์ FIRSTNAME และคอลัมน์ LASTNAME เป็น คีย์หลัก(primary key) จะสามารถสร้างตาราง NAMEFIELD ด้วยคำสั่งดังนี้ CREATE TABLE NAMEFIELD (FIRSTNAME char(10) NOT NULL , LASTNAME char(10) NOT NULL UNIQUE, CITY char(10), PRIMARY KEY (FIRSTNAME LASTNAME )); 3.4 การกำหนดคีย์นอก(foreign key ) คีย์นอกเป็นคอลัมน์ของตารางหนึ่งที่ใช้เชื่อมโยงหรืออ้างอิงข้อมูลกับอีกตารางหนึ่งที่มีคอลัมน์ที่มีชื่อคอลัมน์เดียวกัน เช่น ลูกค้าในตารางลูกค้า แต่ละคนมีคอลัมน์ SALENO ที่อยู่ในตารางพนักงานขาย หากกำหนดคีย์นอกเป็นข้อจำกัดในระดับคอลัมน์จะใช้คำสั่ง REFERENCE ต่อท้ายประเภทและขนาดของคอลัมน์ที่เป็นคีย์นอก จากตาราง แสดงการอ้างอิงข้อมูลโดยคอลัมน์ที่มีชื่อเดียวกัน เป็นตารางลูกค้าและตารางพนักงานขายโดยในที่นี้จะไม่กล่าวถึงคอลัมน์ต่างๆที่ไม่จำเป็นเพื่อสะดวกในการศึกษา ลูกค้าในตารางลูกค้าแต่ละคนมีคอลัมน์ SALENO (เป็นคอลัมน์เดียวกันกับคอลัมน์ SALENO ที่อยู่ในตารางพนักงานขาย) คอลัมน์ SALENOที่อยู่ตารางลูกค้าเป็นคอลัมน์ที่แสดงพนักงานขายที่กำหนดให้กับลูกค้าแต่ละคน ตัวอย่าง ถ้าต้องการสร้างตารางลูกค้า( CUSTOMERSTAB) โดยกำหนดให้คอลัมน์CUSNO เป็น PRIMARY KEY และคอลัมน์SALENO เป็นคีย์นอก (foreign key) ที่ใช้เชื่อมโยงหรืออ้างอิงข้อมูลกับตารางพนักงานขาย( SALESTAB) โดยใช้คำสั่งดังนี้ CREATE TABLE CUSTOMERSTAB (CUSNO integer NOT NULL PRIMARY KEY, CUSNAME char(10) , ADDRESS char(10), SALENO integer, FOREIGN KEY (SALENO) REFERENCES SALESTAB(SALENO)); หรือ CREATE TABLE CUSTOMERSTAB (CUSNO integer NOT NULL PRIMARY KEY, CUSNAME char(10) , ADDRESS char(10), SALENO integer REFERENCES SALESTAB(SALENO)); การกำหนดคีย์นอก (foreign key ) เป็นคอลัมน์ของตารางหนึ่งที่ใช้เชื่อมโยงหรืออ้างอิงข้อมูลกับอีกตารางหนึ่ง จะทำให้การปรับปรุงตารางมีผลต่อตารางอ้างอิง คำสั่งที่มีผลต่อการปรับปรุงตาราง ได้แก่คำสั่ง CASCADES และ RESTRICTED ทั้ง 2 คำสั่งนี้ใช้เพื่อควบคุมความถูกต้องครบถ้วนสมบูรณ์ในการอ้างอิงข้อมูล(referential integrity) ดังตัวอย่างต่อไปนี้ CREATE TABLE CUSTOMERSTAB (CUSNO integer NOT NULL PRIMARY KEY, CUSNAME char(10) , ADDRESS char(10), SALENO integer REFERENCES SALESTAB(SALENO) UPDATE OF SALESTAB CASCADES, DELETE OF SALESTAB RESTRICTED); ผลของคำสั่งนี้จะทำให้เมื่อต้องการปรับปรุงตารางที่สร้างขึ้นหรือตารางที่อ้างอิงถึง จะต้องมีเงื่อนไขในการปรับปรุง โดย - คำสั่ง UPDATE OF SALESTAB CASCADES จะทำให้เมื่อมีการปรับปรุงคอลัมน์SALENOในตารางลูกค้าจะทำให้คอลัมน์ SALENOในตารางพนักงานขายถูกปรับปรุงไปด้วย - คำสั่ง DELETE OF SALESTAB RESTRICTED จะทำให้เมื่อต้องการลบคอลัมน์SALENOในตารางลูกค้าจะไม่สามารถลบได้ ถ้าคอลัมน์SALENOในตารางพนักงานขายยังมีข้อมูลอยู่ 3.5 การกำหนดการตรวจสอบ(CHECK) การตรวจสอบความถูกต้องครบถ้วนสมบูรณ์ของข้อมูล(entity integrity)โดยการระบุเงื่อนไขหรือกำหนดค่าเฉพาะของคอลัมน์ใดคอลัมน์หนึ่งขึ้น หากมีการป้อนข้อมูลที่ผิดจากเงื่อนไขที่ระบุไว้ ค่านั้นก็จะถูกปฎิเสธหรือไม่ยอมรับ การตรวจสอบจะใช้คำสั่ง CHECK <เงื่อนไข>ต่อท้ายชนิดและขนาดของข้อมูลคอลัมน์ ตัวอย่าง สมมติว่าต้องการกำหนดให้ตารางพนักงานขายในคอลัมน์ SNUM และ SNAME ไม่ให้เป็นค่าว่าง (NOT NULL ) และในคอลัมน์ SALENO และคอลัมน์ SALENAME ไม่ให้มีค่าซ้ำกันพร้อมทั้งกำหนดให้ คอลัมน์ SALECOM ชนิดข้อมูลที่ป้อนลงไปจะเป็นเลขทศนิยมเท่านั้น จะสามารถสร้างตารางพนักงานด้วยคำสั่งดังนี้ CREATE TABLE SALESPEOPLE (SALENO integer NOT NULL UNIQUE, SALENAME char(10) NOT NULL UNIQUE, CITY char(10), SALECOM decimal CHECK (salecom < 1); 4.ข้อคำนึงในการใช้คำสั่งสร้างตาราง4.1 ในการสร้างตารางแต่ละตารางอย่างน้อยที่สุดต้องกำหนดคอลัมน์ได้ 1 คอลัมน์ 4.2 รายละเอียดของแต่ละคอลัมน์แยกจากกันด้วยเครื่องหมาย comma (,) 4.3 สิ้นสุดคำสั่งด้วยเครื่องหมาย semicolon (;) *หมายเหตุ ข้อคำนึงเหล่านี้อาจมีความแตกต่างกันไปบ้าง ขึ้นอยู่กับผู้ผลิตแต่ละราย 5.การลบโครงสร้างตารางออกจากระบบเมื่อต้องการลบโครงสร้างตารางที่ถูกสร้างขึ้นจะสามารถทำได้ด้วยคำสั่ง DROP TABLE ซึ่งมีรูปแบบทั่วไปดังนี้ DROP TABLE <table name>[CASCADE CONSTRAINTS]; DROP TABLE เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการลบโครงสร้างตาราง table name ชื่อตารางที่ต้องการลบ CASCADE CONSTRAINTS ระบบจัดการฐานข้อมูลจะทำการลบข้อจำกัดต่างๆ(constraint) ที่มีการอ้างถึงตารางทิ้งไปให้ด้วยทั้งหมด ตัวอย่าง ถ้าต้องการลบตารางพนักงานขาย (SALESTAB) จะใช้คำสั่งดังนี้ DROP TABLE SALESTAB; ผลของคำสั่งการลบโครงสร้างตาราง จะทำให้ข้อมูลถูกลบไปด้วยจะทำให้ดัชนี( index) ทุกตัวและตารางเสมือนหรือวิวที่สร้างขึ้นสำหรับตารางSALESTABนี้ จะถูกลบไปพร้อมๆกันด้วย เมื่อมีการใช้คำสั่งลบโครงสร้างตารางเกิดขึ้นก่อนที่จะลบโครงสร้างตารางข้อมูล DBMS จะเตือนผู้ใช้ถึงผลที่เกิดจากการลบโครงสร้างตาราง 6. การเปลี่ยนแปลงโครงสร้างตารางเมื่อสร้างโครงสร้างตารางแล้ว ถ้าต้องการเปลี่ยนแปลงโครงสร้างตารางที่มีการสร้างไว้ข้างต้นใหม่ เช่น ต้องการเพิ่มหรือลบบางคอลัมน์ที่เป็นโครงสร้างหลักของตารางออก หรือต้องการเปลี่ยนประเภทข้อมูลของคอลัมน์ ซึ่งในกรณีที่ตารางมีข้อมูลและกำหนดโครงสร้างไปแล้ว การแก้ไขโครงสร้างข้อมูลอาจมีผลกระทบกับข้อมูลที่มีอยู่ แต่ในภาษา SQL สามารถใช้คำสั่งในการแก้ไขโครงสร้างข้อมูลได้ด้วยคำสั่งการเปลี่ยนแปลงโครงสร้างตาราง รูปแบบของของคำสั่ง ALTER TABLE มี 2 แบบ คือ - ALTER TABLE ที่ใช้ในการเพิ่มคอลัมน์ - ALTER TABLE ที่ใช้ในการเปลี่ยนชื่อคอลัมน์ คำสั่ง ALTER TABLE เป็นคำสั่งที่ใช้ในการแก้ไขปรับปรุงโครงสร้างตาราง เมื่อจำเป็นที่ต้องปรับปรุงจากโครงสร้างเดิมตามที่ได้กำหนดไว้ตั้งแต่สร้างตารางในครั้งแรก คำสั่ง ALTER TABLE มีรูปแบบดังนี้ ALTER TABLE <table name> Database update(<column_name> data type [SIZE]); ALTER TABLE เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเปลี่ยนแปลงโครงสร้างตาราง table name ชื่อตารางที่จะเปลี่ยนแปลง Database update คำสั่งการเปลี่ยนแปลง column_name ชื่อคอลัมน์ data type [SIZE] ชนิดข้อมูลและขนาดของข้อมูล ตัวอย่าง ถ้าต้องการเปลี่ยนแปลงโครงสร้างตารางโดยการการเพิ่มคอลัมน์ลงไปบนโครงสร้างตารางเดิมจะใช้คำสั่งดังนี้ ALTER TABLE SALESPEOPLE ADD SALESTAB_FAX CHAR(15); ผลของคำสั่งจะทำให้ตารางพนักงานขายมีคอลัมน์ SALESTAB_FAX ทีมีชนิดข้อมูลเป็น charมีความยาว 15 ตัวอักษรเพิ่มขึ้น ตัวอย่าง ถ้าต้องการเปลี่ยนแปลงโครงสร้างตารางโดยการเปลี่ยนชื่อคอลัมน์จะใช้คำสั่งดังนี้ ALTER TABLE SALESPEOPLE RENAME ADDRESS TO COUNTRY; ผลของคำสั่งจะทำให้ตารางพนักงานขาย ที่เดิมมีคอลัมน์ชื่อ ADDRESS ต้องเปลี่ยนชื่อเป็น COUNTRY แทน 7. ข้อแตกต่างระหว่างคีย์หลักและดัชนีคีย์หลักได้แก่ คอลัมน์ 1 คอลัมน์หรือหลายคอลัมน์ที่ทำให้แต่ละแถวในตารางข้อมูลมีค่าของข้อมูลที่ไม่ซ้ำกัน(unique) เช่น คอลัมน์รหัสลูกค้า( CUSNO) ของตารางลูกค้า( CUSTOMERTAB) ซึ่งใช้แทนรหัสลูกค้าแต่ละคนจะมีรหัสประจำตัวไม่ซ้ำกัน คีย์หลักเป็นพื้นฐานในการเชื่อมโยงกันระหว่างตารางและควบคุมความถูกต้องครบถ้วนสมบูรณ์(integrity) ในการตรวจสอบความซ้ำกันของข้อมูลระหว่างที่ทำการป้อนข้อมูลหรือกำหนดข้อมูลใหม่ให้กับตาราง ส่วนดัชนีเป็นการสร้างโดยการเลือกคอลัมน์ใดคอลัมน์หนึ่งหรือหลายคอลัมน์จากตารางขึ้นมาเป็นดัชนี โดยในตารางหนึ่งๆ สามารถมีดัชนีได้หลายดัชนี คอลัมน์ที่จะเลือกเป็นดัชนีควรจะมีค่าของข้อมูลไม่ซ้ำกัน (unique)ในแต่ละแถว ถ้าเลือกคอลัมน์ที่เป็นดัชนีที่สามารถมีค่าว่างได้จะทำให้ DBMSไม่สามารถนำดัชนีที่เป็นค่าว่างนั้นไปค้นหาข้อมูลในฐานข้อมูลได้ การสร้างดัชนีก็เพื่อเป็นตัวนำทางในการสืบค้นข้อมูลให้เร็วขึ้น 8. การสร้างดัชนีดัชนี (Index) เป็นส่วนที่สำคัญมากต่อฐานข้อมูลเชิงสัมพันธ์ ดัชนีมีความสำคัญคือ ช่วยเพิ่มความสามารถในการค้นหาข้อมูลได้เร็วยิ่งขึ้น โดยดัชนีที่ถูกสร้างขึ้นในแต่ละแถวจะถูกเก็บเป็นตารางแยกจากตารางข้อมูล ซึ่งจะเป็นการสะดวกในการค้นหาข้อมูลในแต่ละแถว DBMS สามารถทำการค้นหาข้อมูลในตารางดัชนี เมื่อพบดัชนีที่ต้องการจะชี้นำไปยังตารางข้อมูลนั้นๆ ซึ่งถ้าตารางข้อมูลใดไม่มีการสร้างดัชนีไว้การค้นหาข้อมูลในตารางนั้นจะต้องทำการค้นหาแบบเรียงลำดับจากแถวแรกจนถึงแถวสุดท้าย นอกจากนี้ดัชนียังช่วยในการตรวจสอบและควบคุมไม่ให้มีข้อมูลเดียวกันหลายแถวซ้ำกันในตารางได้อย่างอัตโนมัติ โดยดัชนีสามารถช่วยให้ผู้ใช้หาข้อมูลแต่ละแถวตามที่กำหนดเฉพาะเจาะจงตามต้องการได้โดยอัตโนมัติ ในการค้นหาข้อมูลใดข้อมูลหนึ่งในตารางข้อมูล ถ้าไม่มีดัชนีในการค้นหาจะทำให้เสียเวลาในการค้นหาพอสมควร ดัชนีจะเป็นตัวนำทางในการค้นหา เมื่อสร้างดัชนีจากคอลัมน์หนึ่งของตาราง DBMS จะเก็บคอลัมน์นั้นเรียงลำดับที่เหมาะสมของคอลัมน์นั้นไว้ สมมติว่าตารางลูกค้ามีข้อมูลป้อนไว้หลายรายการ และต้องการหาลูกค้าหมายเลข 2999 เนื่องจากไม่ได้เรียงลำดับแถวตามหมายเลขลูกค้าไว้ ปกติโปรแกรมจะต้องค้นหาไปที่ละแถวจนตลอดทั้งตารางเพื่อหาค่าลูกค้าหมายเลข 2999 ในคอลัมน์ CUSNO อย่างไรก็ดีถ้ามีดัชนีอยู่ในคอลัมน์ CUSNO โปรแกรมก็จะตรงไปที่หมายเลข 2999 ในดัชนีเลย การสร้างดัชนีจะทำให้การค้นหาข้อมูลเร็วขึ้น แต่การสร้างดัชนีก็เปลื้องพื้นที่ในหน่วยความจำ การสร้างดัชนีมีรูปแบบคำสั่งของการสร้างดังนี้ CREATE INDEX <index name> ON <table name>(<column>name>[,<column name>]..); CREATE INDEX เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการสร้างดัชนี index name ชื่อดัชนี table name ชื่อตารางที่จะสร้างดัชนี ตัวอย่าง ถ้าตารางลูกค้าเป็นตารางที่พนักงานขายอ้างถึงบ่อยที่สุดเพื่อถามหาลูกค้าของตนเองแล้ว ก็ควรสร้างดัชนีขึ้นในคอลัมน์พนักงาน( SALENO) ของตารางลูกค้า จะใช้คำสั่งดังนี้ CREATE UNIQUE INDEX CLIENTGROUP ON CUSTOMERSTAB(SALENO); จากคำสั่ง UNIQUE เป็นการระบุว่าดัชนี( index) ที่สร้างขึ้นในคอลัมน์ CLIENTGROUP ซึ่งในคอลัมน์นี้จะมีค่าที่ซ้ำกันไม่ได้ และจะใช้คอลัมน์ SALENO เป็นข้อมูลในการค้นหา ผลของคำสั่งตารางลูกค้าจะมี CLIENTGROUP เป็นดัชนี( index) ในการค้นหาข้อมูล โดยเรียงลำดับตามข้อมูลในคอลัมน์ SALENO ของตารางลูกค้า index คอลัมน์CLIENTGROUP ที่สร้างขึ้นนี้จะไม่ถูกเก็บไว้ในตารางลูกค้า แต่จะถูกเก็บไว้แยกต่างหากในหน่วยความจำของเครื่องคอมพิวเตอร์ 9. การลบดัชนีของตารางเมื่อต้องการจบดัชนีที่สร้างขึ้น ก็สามารถทำได้ด้วยคำสั่ง DROP INDEX แล้วตามด้วยชื่อดัชนีที่ต้องการลบ โดยคำสั่งการลบดัชนีมีรูปแบบทั่วไปดังนี้ DROP INDEX <index name>; DROP INDEX เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการลบดัชนี index name ชื่อดัชนี ในการลบดัชนีออกไปจะไม่มีผลกระทบกับรายละเอียดในคอลัมน์ต่าง ๆ ภายในตารางแต่อย่างไรเพราะดัชนีที่สร้างขึ้นไม่ได้บรรจุไว้ในตาราง ตัวอย่าง ถัาต้องการลบดัชนีชื่อ CLIENTGROUP ใช้คำสั่งดังนี้ DROP INDEX CLIENTGROUP ; ผลของคำสั่งนี้จะทำให้ดัชนีชื่อ CLIENTGROUP ที่เดิมเป็นดัชนีของตารางลูกค้าได้ถูกลบออกไป ทำให้ตารางลูกค้าไม่มีดัชนีดังกล่าว |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|