การกำหนด index ขณะที่เราสร้าง table (โดยใช้คำสั่ง CREATE TABLE) เราจะต้องกำหนด keyword ตามชนิดของ index ที่ได้กล่าวไว้ในบทความที่แล้วครับ และตามด้วยชื่อ field ต่าง ๆ ที่ต้องการกำหนดให้เป็น index ชนิดนั้น ๆ ภายในวงเล็บ เช่น ถ้าผมต้องการสร้าง table "Employee" โดยมี field ต่าง ๆ แต่ต้องการกำหนดให้ field "WorkingDate" เป็น Index จะต้องใช้คำสั่งดังนี้
CREATE TABLE Employee ( ID INT NOT NULL, LastName CHAR(30) NOT NULL, FirstName CHAR(30) NOT NULL, PostCode CHAR(5) NOT NULL, WorkingDate DATE NOT NULL, INDEX (WorkingDate) );
เราอาจจะใช้ keyword KEY แทน INDEX ได้ เพราะมีความหมายเหมือน กัน
ในกรณีที่ต้องการกำหนดหลาย ๆ field เป็น INDEX เพียงตัวเดียว จะต้องแยกแต่ละ field ด้วย comma เช่น ถ้าต้องการกำหนดให้ field "LastName" และ "FirstName" เป็น INDEX ต้องกำหนดดังนี้
CREATE TABLE Employee ( ID INT NOT NULL, LastName CHAR(30) NOT NULL, FirstName CHAR(30) NOT NULL, PostCode CHAR(5) NOT NULL, WorkingDate DATE NOT NULL, INDEX (LastName, FirstName) );
ในกรณีที่เราต้องการกำหนด INDEX หลาย ๆ ตัว (ต่างจากตัวอย่างด้านบนเนื่องจาก ตัวอย่างด้านบนเป็น การกำหนดหลาย ๆ ฟิลด์ใน INDEX เดียว แต่ตัวอย่างต่อไปนี้จะเป็นการกำหนด INDEX หลาย ๆ ตัว
CREATE TABLE Employee ( ID INT NOT NULL, LastName CHAR(30) NOT NULL, FirstName CHAR(30) NOT NULL, PostCode CHAR(5) NOT NULL, WorkingDate DATE NOT NULL, INDEX (LastName, FirstName), INDEX (WorkingDate) );
ถ้าต้องการสร้าง INDEX ชนิด UNIQUE จะต้องใช้ keyword UNIQUE แทน INDEX เช่น ถ้าเราต้องการป้องกันการกำหนดค่าที่ซ้ำกันใน field "ID" เราก็จะต้องกำหนดให้ "ID" เป็น index ประเภท UNIQUE
CREATE TABLE Employee ( ID INT NOT NULL, LastName CHAR(30) NOT NULL, FirstName CHAR(30) NOT NULL, PostCode CHAR(5) NOT NULL, WorkingDate DATE NOT NULL, UNIQUE (ID) );
PRIMARY KEY เป็นชนิดของ index ที่คล้าย ๆ กับ UNIQUE แต่มีข้อ แตกต่างอยู่เพียง 2 อย่างเท่านั้นคือ
ในการที่จะกำหนด index field ใด ๆ ให้เป็น primary key จะต้องใช้ keyword PRIMARY KEY โดยถ้ากำหนดให้เป็น index ประเภทนี้ จะไม่ สามารถกำหนดค่าให้กับ field นั้น ๆ เป็นค่า NULL ได้
ผู้สนับสนุน