กลุ่มคำสั่งสำหรับนิยามข้อมูล (Data Definition Language: DDL)
กลุ่มคำสั่งทางสำหรับนิยามข้อมูล หรือที่นิยมเรียกว่า กลุ่มคำสั่ง DDL เป็นกลุ่มคำสั่งที่ใช้กระทำ กับโครงสร้างของข้อมูล เช่นCREATE TABLE ใช้สำหรับการสร้างรีเลชั่น
ALTER TABLE ใช้การแก้ไขแอททริบิวต์ของรีเลชั่น เช่น เพิ่ม ลบ หรือแก้ไข
DROP TABLE ใช้สำหรับลบรีเลชั่น
CREATE VIEW ใช้สำหรับการสร้างวิว
DROP VIEW ใช้สำหรับการลบ CREATE INDEX ใช้สำหรับการสร้างดัชนีให้กับรีเลชั่น
DROP INDEX ใช้สำหรับการลบดัชนี
1) คำสั่ง CREATE TABLE
คำสั่ง CREATE TABLE เป็นคำสั่งที่ใช้สำหรับการสร้างรีเลชั่น การระบุชื่อของรีเลชั่น , ชื่อและประเภทข้อมูลของแอททริบิวต์ รวมถึงการกำหนดค่าคีย์ในรีเลชั่น
[DEFAULT default-value] [column-constraint]
.......... .......... .......... ..........
[PRIMARY KEY (attribute-name)],
[FOREIGN KEY (attribute-name) REFERENCES table-name]); ความหมายของรูปแบบคำสั่งกำหนดไว้ดังนี้
ชนิดข้อมูล (Data type) | ความหมาย |
---|---|
char (n) หรือ text (n) | ตัวอักษรความยาวคงที่ จำนวนตามที่ระบุด้วย n |
Varchar(n) | ตัวอักษรความยาวเปลี่ยนแปลงได้ |
Int หรือ integer หรือ number | เลขจำนวนเต็ม |
float | เลขจำนวนจริง |
date | วันที่ เช่น 8/24/2010 |
time | เวลา |
datetime | วันที่และเวลา |
ชื่อแอททริบิวต์ | ชนิดข้อมูล | ความหมาย | ข้อกำหนด |
---|---|---|---|
SID | Char(10) | รหัสนักศึกษา | Primary Key |
Sname | Char(60) | ชื่อ-สกุล นักศึกษา | Not Null |
Major | Integer | รหัสสาขา | - |
SLevel | Char(60) | ชั้นปี | - |
Class | Integer | ห้อง | - |
GPA | Char(4) | เกรดเฉลี่ยสะสม | - |
- เพิ่มแอททริบิวต์ โดยใช้ ADD แล้วตามด้วย ชื่อแอททริบิวต์ที่ต้องการเพิ่ม และชนิดข้อมูล
- ลบแอททริบิวต์ โดยใช้ DROP แล้วตามด้วยชื่อแอททริบิวต์ที่ต้องการลบ
- แก้ไขแอททริบิวต์โดยใช้ MODIFY ตามด้วยชื่อแอททริบิวต์ที่ต้องการแก้ไข และค่าใหม่ที่ ต้องการแก้ไข
ALTER TABLE student ADD GPA char(4)
ผลลัพธ์ลักษณะรีเลชั่น student ที่เพิ่มแอตทริบิวต์ GPA
ผลลัพธ์ลักษณะรีเลชั่น student ที่ลบแอตทริบิวต์ Class ออก
หมายเหตุ ตัวอย่างคำสั่ง MODIFY ใช้ได้เฉพาะบางซอฟต์แวร์ฐานข้อมูล เช่น MySQL
คำสั่ง DROP TABLE เป็นคำสั่งที่ใช้สำหรับการลบรีเลชั่นออกจากระบบ
DROP TABLE relation-name
ตัวอย่างที่ 6.5 ให้สร้างรีเลชั่นชื่อ Student2 โดยมีแอตทริบิวต์เหมือนกับรีเลชั่น student แล้วใช้คำสั่งลบรีเลชั่น student2
DROP TABLE student2
4) คำสั่งสร้างดัชนี CREATE INDEX
การสร้างดัชนีหรือ INDEX คือการสร้างดัชนีในการเรียงลำดับข้อมูลในแอททริบิวต์ที่กำหนด โดยดัชนีที่สร้างขึ้นจะแยกเก็บต่างหาก จากตารางข้อมูล เพื่อให้ การค้นหาข้อมูลได้รวดเร็วยิ่งขึ้น โดยปกติแล้วแอททริบิวต์ที่เป็นคีย์หลัก จะมีการทำดัชนีอยู่แล้ว แต่เรา สามารถสร้างดัชนีให้กับ แอททริบิวต์อื่นได้เช่นกัน แต่การสร้างดัชนีให้กับแอททริบิวต์หลายๆ ตัว อาจทำให้การทำงาน ล่าช้าได้ เนื่องจากหากมีการเปลี่ยนแปลงข้อมูล ดัชนีก็จะต้องทำการเรียงลำดับใหม่ ดังนั้นหากทำดัชนีให้กับ แอททริบิวต์หลายๆ ตัว ก็ย่อมต้องใช้เวลาในการเรียงลำดับใหม่มากขึ้น นอกจากนี้ยังเป็นการสิ้นเปลือง หน่วยความจำอีกด้วย
ON relation-name (attribute-name [ASC | DESC][...])
ASC | DESC คือรูปแบบการเรียงลำดับจากน้อยไปมาก (ASC) และมากไปน้อย (DESC)
CREATE INDEX index_GPA
ON student (GPA)
5) คำสั่ง DROP INDEX ใช้ลบอินเด็กซ์
DROP INDEX index-name
ตัวอย่างที่ 6.7 คำสั่งลบ INDEX ชื่อ index_GPA
DROP INDEX index_GPA
6) คำสั่ง CREATE VIEW
วิว หรือ รีเลชั่นเสมือน คือ รีเลชั่นที่สร้างมาจากรีเลชั่นหลัก คุณสมบัติของวิวจะเหมือนกับคุณ สมบัติของรีเลชั่นหลัก คือ เป็นลักษณะของตาราง 2 มิติ มีแถว กับคอลัมน์ โดยข้อมูลที่ได้ของวิว จะมาจาก รีเลชั่นหลักทั้งหมด วัตถุประสงค์ในการสร้างวิว
การสร้างวิวโดยส่วนใหญ่มีวัตถุประสงค์คือ
2. เพื่อความสะดวกในการแสดงผลตามความต้องการของผู้ใช้ จากตัวอย่างในข้อที่ ผ่านมาจะ เห็นว่า ข้อมูลนักศึกษามีหลายแอททริบิวต์ แต่การทำงานบางอย่างไม่ต้องการใช้ข้อมูลทุกแอททริบิวต์ เช่น ต้องการข้อมูลสำหรับการติดต่อนักศึกษา หากแสดงข้อมูลทั้งหมดของนักศึกษา จะทำให้เสียเวลา ในการค้นหาข้อมูลที่ต้องการ ดังนั้น จึงสร้างวิว เพื่อเก็บข้อมูลเฉพาะ รหัสนักศึกษา, ชื่อ, ที่อยู่, และ หมายเลขโทรศัพท์ของนักศึกษาเท่านั้น จะทำการเรียกดูข้อมูลสะดวกขึ้น นอกจากนี้หากต้องการข้อมูล เพื่อใช้งานด้านอื่นๆ ก็สามารถสร้างวิว โดยระบุเฉพาะแอททริบิวต์ที่ต้องการได้ คู่แข่งนั้นมีบางส่วนซ้ำซ้อนกัน (คือมีแอททริบิวต์บางตัวร่วมกันอยู่)
1. วิวสามารถสร้างจาก รีเลชั่นเดียวหรือหลายรีเลชั่นก็ได้ โดย วิวสามารถเลือก เฉพาะบาง แอททริบิวต์ที่ต้องการจากรีเลชั่นเดียวหรือหลายๆ รีเลชั่นได้
2. เมื่อข้อมูลในรีเลชั่นหลักมีการเปลี่ยนแปลงจะทำให้ข้อมูลในวิวเปลี่ยนแปลง ด้วย นอกจาก การเปลี่ยนแปลงข้อมูลแล้ว หากมีการลบรีเลชั่นหลัก จะทำให้วิวถูกลบตามไปด้วย แต่เราสามารถ ลบวิวได้ โดยไม่มีผลกับรีเลชั่นหลัก
3. ในวิวที่ไม่ซับซ้อน เช่นวิวที่สร้างจากรีเลชั่นเดียว สามารถแก้ไขข้อมูลในรี เลชันหลัก ผ่าน ทางวิวได้เลย
4. การเรียกดูข้อมูลผ่านวิว ทำได้เช่นเดียวกับรีเลชั่นหลักทุกประการ ใช้ฟังก์ชั่น การขึ้นต่อกัน D1 และ D3 สร้างเป็นรีเลชั่นเกรด และรีเลชั่นวิชาที่ลงทะเบียน ตามลำดับแล้วกำหนดให้พรอพเพอตี้ทั้งคู่รวมกันเป็นไพรมารี่ย์คีย์ของตารางTake และมีแอททริบิวต์ ของความสัมพันธ์เองก็คือ Grade
CREATE VIEW view-name
AS ประโยคคำสั่ง select
ประโยคคำสั่ง select คือรูปแบบคำสั่งในการเรียกดูข้อมูลมาแสดงผล ซึ่งจะกล่าวถึงใน หัวข้อถัดไป
CREATE VIEW Student_GPA
AS SELECT SID,GPA FROM student
ผลลัพธ์จากการคำสั่งดังกล่าว จะทำให้ได้ รีเลชั่นที่ชื่อว่า Student_GPA ซึ่งมีแอททริบิวต์ 2 แอททริบิวต์คือ SID และ GPA ข้อมูลทุกอย่างในรีเลชั่นนี้จะมาจากรีเลชั่นหลัก student หากมีการแก้ไข ข้อมูลในรีเลชั่น Student_GPA นี้ จะทำให้ข้อมูลในรีเลชั่น student เปลี่ยนแปลงด้วย เนื่องจากเป็นวิว ที่สร้างมาจากรีเลชั่นเดียว จะสามารถแก้ไขข้อมูลในวิว ผ่านไปยังรีเลชั่นหลักได้เลย
DROP VIEW views-name
ตัวอย่างที่ 6.9 คำสั่งลบ VIEW ชื่อ Student_GPA
DROP VIEW Student_GPA
รูปแบบคำสั่ง
CREATE TABLE relation-name (attribute-name data-type [NULL | NOT NULL]ตัวอย่างที่ 6.1 รีเลชั่น student ดังตารางที่ 6.2 จงเขียนคำสั่งในการสร้างรีเลชั่น
ตารางที่ 6.2 รีเลชั่น student
เขียนคำสั่งได้ดังนี้
CREATE TABLE student (SID char (10), Sname char (60) NOT NULL, Major integer, Level char(60), Class integer, PRIMARY KEY(SID))
ลักษณะรีเลชั่น student ที่สร้างเสร็จ
หมายเหตุ รูปแบบของคำสั่งในแต่ละซอฟต์แวร์จัดการฐานข้อมูล จะมีความแตกต่างกันเล็กน้อย รวมถึง ชนิดของข้อมูล ก็มีความแตกต่างกัน ดังนั้นในตัวอย่างจะใช้รูปแบบที่เป็นมาตรฐานทั่วไป
2) คำสั่ง ALTER TABLE
รูปแบบคำสั่ง
ALTER TABLE relation-name ADD | DROP | MODIFY (attribute-name data-type)
จากรูปแบบคำสั่ง ALTER TABLE สามารถเลือกการเปลี่ยนแปลงรีเลชั่นได้ 3 รูปแบบคือ
ตัวอย่างที่ 6.3 คำสั่งลบแอททริบิวต์ Class ในรีเลชั่น student
ตัวอย่างที่ 6.4 คำสั่งแก้ไขแอททริบิวต์ Sname ในรีเลชั่น student โดยเปลี่ยนชื่อ เป็น StdName และเปลี่ยนชนิดข้อมูลเป็น char (80)
3) คำสั่ง DROP TABLE
รูปแบบคำสั่ง
รูปแบบคำสั่ง
CREATE [UNIQUE] INDEX index-name
UNIQUE คือการกำหนดให้ข้อมูลในแอททริบิวต์มีค่าไม่ซ้ำกัน
ตัวอย่างที่ 6.6 การสร้างอินเด็กซ์ ชื่อ index_GPA ให้กับรีเลชั่น Student ที่แอตทริบิตส์ GPA
รูปแบบคำสั่ง
1. เพื่อความปลอดภัยของข้อมูล ตัวอย่างเช่น ในรีเลชั่น นักศึกษา จะมีการเก็บข้อมูล รหัส นักศึกษา, ชื่อ, ตำแหน่ง, แผนก, วันเริ่มทำงาน, เงินเดือน, วุฒิการศึกษา, ที่อยู่, เบอร์โทร, บุคคลอ้างอิง ฯลฯ ซึ่งหากผู้ใช้สามารถใช้งาน รีเลชั่นนี้ได้ ก็จะทราบข้อมูลทุกอย่าง รวมถึงแก้ไขข้อมูลที่สำคัญ เช่น เงินเดือน ดังนั้น จึงอาจทำการสร้างวิว โดยให้ผู้ใช้ เห็นข้อมูลเฉพาะ รหัสนักศึกษา, ชื่อ, ที่อยู่, เบอร์โทร เท่านั้น เป็นต้น
คุณสมบัติของวิว
รูปแบบคำสั่ง
ตัวอย่างที่ 6.8 คำสั่งสร้างวิวชื่อ Student_GPA โดยเลือกแอททริบิวต์ SID และ PGA จากรีเลชั่น student
หมายเหตุ คำสั่ง Create view ใช้ได้กับ DBMS SQL server และ MySql
7) คำสั่ง DROP VIEW เป็นคำสั่งที่ใช้ลบ VIEW ที่ได้สร้างไว้
รูปแบบคำสั่ง
ภาษานิยามข้อมูล (Data Definition Language : DDL)
เป็นชุดคำสั่งที่ใช้สำหรับกำหนดโครงสร้างของตารางในฐาน ข้อมูล คำสั่งที่จัดอยู่ในประเภท DDL นี้
ได้แก่ CREATE, ALTER และ DROP
เป็นคำสั่งที่ใช้ในการสร้างโครงสร้างของตาราง โดยมีรูปแบบดังนี้
ตัวอย่าง คำสั่งการสร้าง customer
CREATE TABLE | customer | |
[customer_no | char(6) | NOT NULL, |
c_name | char(10) | ืNOT NULL, |
c_address | char(20), | |
c_credit_limit | decimal(7,2), | |
c_current_balance | decimal(7,2)]; |
เป็นคำสั่งที่ใช้ในการเปลี่ยนแปลงโครงสร้างตาราง โดยมีรูปแบบดังนี้
คำสั่ง ALTER TABLE สามารถใช้ในการเปลี่ยนแปลงโครงสร้างตารางได้ 4 รูปแบบ คือ
ตัวอย่าง การเพิ่มคอลัมน์
ตัวอย่าง การเปลี่ยนแปลงขนาดความกว้างของคอลัมน์
ต้องการเปลี่ยนแปลงขนาดความกว้างของคอลัมน์ c_address จากเดิม 20 ไปเป็น 25 สามารถกระทำได้โดยใช้คำสั่งดังนี้
ตัวอย่าง การเปลี่ยนชื่อคอลัมน์
ตัวอย่าง การลบคอลัมน์ออกจากตาราง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น