คำสั่งสร้างฐานข้อมูล ระบบฐานข้อมูล คำสั่งสร้างฐานข้อมูล อ.กฤติเดช จินดาภัทร์
1. คำสั่งสร้างฐานข้อมูล 1. คำสั่งสร้างฐานข้อมูล 1. คำสั่งสร้างฐานข้อมูล คำสั่งสร้างฐานข้อมูล(create database) เป็นคำสั่งสำหรับให้ ผู้บริหารฐานข้อมูลหรือผู้มีสิทธิ์สร้างฐานข้อมูล โดยการกำหนดชื่อฐานข้อมูลแต่ละฐานข้อมูล รูปแบบ CREATEDATABASEdatabase_name; database_name คือ ชื่อฐานข้อมูล
1. คำสั่งสร้างฐานข้อมูล 1. คำสั่งสร้างฐานข้อมูล ตัวอย่าง ต้องการสร้างฐานข้อมูลชื่อ RH_NEGATIVE CREATE DATABASE RH_NEGATIVE;
2. คำสั่งสร้างตาราง คำสั่งสร้างตาราง(create table) เป็นคำสั่งสำหรับสร้างโครงสร้างของตารางตามพจนานุกรม โดยมีการระบุชื่อตารางชื่อแอตทริบิวต์ ชนิดข้อมูล ขนาดข้อมูลและการระบุว่าแอตทริบิวต์ใดเป็นคีย์หลักหรือคีย์นอก รูปแบบ CREATE TABLE table_name ( Column_name1 data_typecolumn_attribute, Column_name2data_typecolumn_attribute, Primary key (column_name) Foreign key (column_name));
2. คำสั่งสร้างตาราง CREATE TABLE table_name ( Column_name1 data_typecolumn_attribute, Column_name2data_typecolumn_attribute, Primary key (column_name) Foreign key (column_name)); Table_name คือ ชื่อของตารางที่ต้องการสร้าง Column_name1 คือ ชื่อของแอตทริบิวต์ที่ 1 Column_name2 คือ ชื่อของแอตทริบิวต์ที่ 2 data_type คือ ชนิดของข้อมูล column_attribute คือ คุณสมบัติของแอตทริบิวต์
2. คำสั่งสร้างตาราง ตัวอย่าง ต้องการสร้างตาราง MEMBER ตามพจนานุกรมข้อมูล CREATE TABLE MEMBER (M_CODE INT(5) NOT NULL UNIQUE, M_NAME VARCHAR(30) NOT NULL, M_LASTNAME VARCHAR(30) NOT NULL, BLOOD VARCHAR(3) NOT NULL, DOB DATE NOT NULL, WEIGHT SMALLINT(3) NOT NULL, PHONE_NO VARCHAR(11), PRIMARY KEY (M_CODE));
3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง 3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง คำสั่งเปลี่ยนแปลงโครงสร้างตาราง (alter table) เป็นคำสั่งสำหรับเปลี่ยนโครงสร้างตาราง เช่น การเพิ่มหรือลบแอตทริบิวต์ หรือการเพิ่มคีย์หลัก หรือคีย์นอก เช่น จากตัวอย่างที่ 2 ถ้ากรณีที่ลืมกำหนดคีย์หลัก สามารถเขียนคำสั่งเพื่อกำหนดเพิ่มเติมภายหลังได้ดังนี้ รูปแบบ ALTER TABLE table_name ADD PRIMARY KEY (column_name);
3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง 3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง ตัวอย่าง การเพิ่มคีย์หลักในโครงสร้างตาราง MEMBER ALTER TABLE MEMBER ADD PRIMARY KEY(M_CODE); ในกรณีที่ยังไม่ได้กำหนดคีย์นอกของโครงสร้างตาราง DONOR สามารถเขียนคำสั่งเพื่อกำหนดคีย์นอกได้ดังนี้
3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง 3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง ตัวอย่าง การเพิ่มคีย์นอกของโครงสร้างตาราง DONOR ALTER TABLE DONOR ADD FOREIGN KEY(M_CODE) REFERENCES MEMBER; ถ้ากรณีที่ยังไม่ได้กำหนดทั้งคีย์หลักและคีย์นอกในโครงสร้างตาราง DONORสามารถเขียนคำสั่งได้ดังนี้
3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง 3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง ตัวอย่าง คำสั่งเพื่อต้องการเพิ่มคีย์หลักและคีย์นอกในโครงสร้างตาราง DONOR ALTER TABLE table_name ADD PRIMARY KEY(DORNOR_ID) ADD FOREIGN KEY(MEMBER_ID) REFERENCES MEMBER; คำสั่งการเปลี่ยนชนิดและขนาดข้อมูล ในกรณีที่มีการเปลี่ยนแปลงชนิดข้อมูล สามารถเขียนคำสั่งได้ดังนี้ รูปแบบ ALTER TABLE table_name MODIFY(column_name data_type);
4. คำสั่งลบตาราง คำสั่งสำหรับลบตาราง(drop table) สามารถลบโครงสร้างตารางที่ถูกสร้างไว้แล้วได้ โดยข้อมูลที่ถูกบันทึกไว้จะถูกลบไปด้วย และไม่สามารถใช้คำสั่ง ROLLBACK เพื่อให้ข้อมูลคืนกลับมาได้ โดยใช้คำสั่งดังนี้ รูปแบบ DROP TABLE table_name; ตัวอย่าง ต้องการลบตาราง DONOR DROP TABLE DONOR;
5. คำสั่งสร้างดัชนี คำสั่งสร้างดัชนี (create index) เป็นคำสั่งที่ให้ระบบจัดการฐานข้อมูลสร้างดัชนีขึ้นมา ซึ่งจะมีผลให้การเข้าถึง หรือการสืบค้นข้อมูลกระทำได้เร็วยิ่งขึ้น เช่นเดียวกับการทำดัชนีของหนังสือ ถ้าหากไม่ได้สร้างดัชนีระบบจัดการฐานข้อมูลจะเข้าถึงข้อมูลตามลำดับ รูปแบบ CREATE INDEX index_name ON table_name (column_name); ตัวอย่าง ต้องการสร้างดัชนีโดยใช้แอตทริบิวต์ M_NAME ในตาราง MEMBER CREATE INDEX name_dex ON MEMBER (M_NAME);
6. คำสั่งลบดัชนี คำสั่งลบดัชนี (drop index) เป็นคำสั่งที่ใช้สำหรับลบดัชนีที่ได้กำหนดขึ้นมา รูปแบบ DROP INDEX index_name;
6. คำสั่งลบดัชนี DROP INDEX name_dex; 6. คำสั่งลบดัชนี คำสั่งลบดัชนี (drop index) เป็นคำสั่งที่ใช้สำหรับลบดัชนีที่ได้กำหนดขึ้นมา รูปแบบ DROP INDEX index_name; ตัวอย่าง ต้องการลบดัชนีที่เกิดขึ้นจากคำสั่งในตัวอย่างที่ DROP INDEX name_dex;
7. คำสั่งสร้างวิว คำสั่งสร้างวิว (create view) เป็นคำสั่งที่ใช้สำหรับความต้องการที่จะให้แสดงผลอย่างรวดเร็ว เป็นเทคนิคอย่างหนึ่งที่นิยมใช้กับระบบจัดการฐานข้อมูลที่ดี เช่น Oracle ซึ่งวิธีการทำงานของคำสั่งวิวจะรวบรวมเอาข้อมูลจากตารางจริงมาจำลองเป็นชื่อใหม่ เก็บข้อมูลเหล่านั้นอยู่ในหน่วยความจำ รอผู้ใช้ใช้คำสั่งสอบถามข้อมูล สามารถใช้คำสั่งได้ดังนี้ รูปแบบ CREATE VIEW view_name AS subquery;
7. คำสั่งสร้างวิว ตัวอย่าง ต้องการสร้างวิวชื่อ MEMBER_DONOR จากตาราง MEMBER และตาราง DONOR ที่มี DOB น้อยกว่า 2005-09-25 สามารถเขียนเป็นคำสั่งได้ดังนี้ CREATE VIEW MEMBER_DONOR AS SELECT MEMBER.*, DONOR.* FROM MEMBER, DONOR WHERE MEMBER.M_CODE = DONOR.M_CODE AND MEMBER.DOB < "2005-09-25"; การเรียกใช้สืบค้นข้อมูลจากผลที่เกิดจากคำสั่งตัวอย่าง สามารถใช้คำสั่ง SELECT * FROM MEMBER_DONOR;
คำสั่งสำหรับจัดการข้อมูล คำสั่งสำหรับจัดการข้อมูล (data manipulation language) เป็นคำสั่งสำหรับจัดการข้อมูล ประกอบด้วยคำสั่งแทรกข้อมูลเพื่อนำข้อมูลเข้าสู่ตาราง คำสั่งบันทึกข้อมูลเป็นการนำข้อมูลจากหน่วยความจำไปจัดเก็บในหน่วยความจำรองหรือดิสก์ คำสั่งสอบถามข้อมูลเพื่อให้แสดงผลข้อมูลหรือสารสนเทศ คำสั่งแก้ไขข้อมูลในกรณีข้อมูลไม่ถูกต้อง ไม่เป็นปัจจุบัน และคำสั่งสำหรับลบข้อมูล ซึ่งคำสั่งสำหรับจัดการข้อมูลต้องใช้หลังจากคำสั่งสำหรับนิยามข้อมูลและสร้างตารางสำเร็จแล้วเท่านั้น
1. คำสั่งแทรกข้อมูล คำสั่งแทรกข้อมูล (insert) เป็นคำสั่งสำหรับนำข้อมูลหรือข้อเท็จจริงเข้าสู่ตารางที่ถูกสร้างโครงสร้างไว้ก่อนแล้ว คำสั่งแทรกข้อมูล 1 คำสั่งจะนำข้อมูลเข้าสู่ตารางเพียง 1 ระเบียนเท่านั้น รูปแบบ INSERT INTO table_name [(column_name[,column_name…])] VALUES (value[,value…]); MCODE = 1, M_NAME = เฉลิม, M_LASTNAME = อินทกาญจน์, BLOOD = O-, DOB = 2500-03-14, WEIGHT = 64, PHONE_NO = NULL
1. คำสั่งแทรกข้อมูล ตัวอย่าง ต้องการแทรกข้อมูลเข้าสู่ตาราง MEMBER โดยมีข้อมูลดังนี้ MCODE = 1, M_NAME = เฉลิม, M_LASTNAME = อินทกาญจน์, BLOOD = O-, DOB = 2500-03-14, WEIGHT = 64, PHONE_NO = NULL ใช้คำสั่งได้ดังนี้ INSERT INTO MEMBER (M_CODE, M_NAME, M_LASTNAME, BLOOD, DOB, WEIGHT, PHONE_NO) VALUES (1, "เฉลิม", "อินทกาญจน์", "O-", "2500-03-14", 64,NULL);
2. คำสั่งบันทึกข้อมูล คำสั่งบันทึก(commit) เป็นคำสั่งสำหรับบันทึกข้อมูลลงหน่วยความจำรองหรือดิสก์ คำสั่งนี้มีใช้เฉพาะระบบจัดการฐานข้อมูลของ Oracle หรือ SQL Server รูปแบบ COMMIT table_name; คำสั่ง COMMIT MEMBER;
3. คำสั่งสอบถามข้อมูล คำสั่งสอบถามข้อมูล(select) เป็นคำสั่งที่ต้องการนำข้อมูลที่อยู่ในตารางขึ้นมาแสดง หรืออาจจะสั่งให้คำนวณเพื่อให้ได้สารสนเทศขึ้นมาแสดงก็ได้ เพื่อให้เห็นข้อมูลได้ชัดเจนจึงนำข้อมูลจากตาราง MEMBER และตาราง DONOR มาใช้กับคำสั่งสอบถาม ดังนี้ ตาราง ตารางข้อมูล MEMBER
3. คำสั่งสอบถามข้อมูล
คำสั่งสอบถามข้อมูลเบื้องต้น คำสั่งสอบถามข้อมูลเบื้องต้น คำสั่งสอบถามข้อมูลเบื้องต้น เป็นคำสั่งสอบถามเพื่อให้แสดงผลข้อมูลจากตารางเพียงตารางเดียวและจะแสดงข้อมูลทั้งหมด ไม่มีเงื่อนไขมากำหนดจำนวนระเบียนที่จะแสดง แต่อาจจะกำหนดแอตทริบิวต์ที่ต้องการให้แสดงได้ หรือตั้งชื่อสมนามให้กับแอตทริบิวต์ได้ ดังรายละเอียดต่อไปนี้ รูปแบบ SELECT [DISTINCT] {*, column_name [alias],…} FROM table_name;
คำสั่งสอบถามข้อมูลเบื้องต้น คำสั่งสอบถามข้อมูลเบื้องต้น SELECT [DISTINCT] {*, column_name [alias],…} FROM table_name; ความหมาย DISTINCT เลือกแสดงข้อมูลตามเงื่อนไข ถ้ามีข้อมูลที่ซ้ำกันจะแสดงข้อมูลที่ซ้ำเพียง 1 ข้อมูล * เป็นการระบุให้แสดงทุกแอตทริบิวต์ของตาราง column_name เป็นการระบุชื่อแอตทริบิวต์ที่ต้องการให้แสดง alias เป็นการตั้งชื่อใหม่ให้กับแอตทริบิวต์ table_name เป็นชื่อของตาราง
คำสั่งแสดงข้อมูลชนิดระบุแอตทริบิวต์ คำสั่งแสดงข้อมูลชนิดระบุแอตทริบิวต์ เป็นคำสั่งที่ให้แสดงแอตทริบิวต์ตามความต้องการบางแอตทริบิวต์ที่สำคัญ ๆ ดังตัวอย่าง SELECT M_NAME, M_LASTNAME, BLOOD FROM MEMBER;
คำสั่งแสดงข้อมูลชนิดระบุแอตทริบิวต์ คำสั่งแสดงข้อมูลชนิดระบุแอตทริบิวต์ เป็นคำสั่งที่ให้แสดงแอตทริบิวต์ตามความต้องการบางแอตทริบิวต์ที่สำคัญ ๆ ดังตัวอย่าง SELECT M_NAME, M_LASTNAME, BLOOD FROM MEMBER;
คำสั่งสอบถามแบบมีเงื่อนไข คำสั่งสอบถามแบบมีเงื่อนไข เป็นคำสั่งที่ต้องการให้แสดงข้อมูลเพียงบางระเบียนตามความต้องการ ขึ้นอยู่กับเงื่อนไขที่ใช้ โดยมีอนุประโยค WHERE ต่อท้ายด้วยเงื่อนไขโดยนำเอาตัวดำเนินการ(operator)มาเป็นเงื่อนไข ตาราง ตัวดำเนินการและความหมาย
คำสั่งสอบถามแบบมีเงื่อนไข คำสั่งสอบถามแบบมีเงื่อนไข SELECT M_NAME, M_LASTNAME, BLOOD FROM MEMBER WHERE BLOOD = "A-";
คำสั่งแก้ไขข้อมูล คำสั่งแก้ไขข้อมูล (update) เป็นคำสั่งสำหรับแก้ไขข้อมูลที่มีอยู่แล้ว แต่อาจเป็นข้อมูลที่ผิดพลาด หรือข้อมูลเดิมไม่เป็นปัจจุบัน จำเป็นต้องเปลี่ยนแปลง การใช้คำสั่งเพื่อแก้ไขจะต้องระมัดระวังในการใช้อนุประโยค WHERE เพราะสามารถแก้ไขได้หลาย ๆ ระเบียนต่อคำสั่งถ้าเงื่อนไขเป็นจริง หรือถ้าลืมไม่ใช้อนุประโยค WHERE จะทำให้ข้อมูลทุกระเบียนจะถูกแก้ไขไปด้วย รูปแบบ UPDATE table_name SET column_name = value [, column_name = value, …] [WHERE condition];
คำสั่งแก้ไขข้อมูล UPDATE MEMBER SET PHONE_NO = "0-9868-5654" WHERE M_CODE = 13;
คำสั่งแก้ไขข้อมูล คำสั่งลบข้อมูล คำสั่งลบข้อมูล (delete) เป็นคำสั่งเพื่อใช้ในการลบข้อมูลที่ไม่ต้องการให้มีอยู่ในตาราง การใช้คำสั่งลบมีผลกระทบเหมือนกับคำสั่งแก้ไขข้อมูล คือ คำสั่งหนึ่ง ๆ สามารถลบข้อมูลได้มากกว่าหนึ่งระเบียน ถ้าหากเขียนคำสั่งอนุประโยค WHERE ผิดพลาดหรือลืมเขียน คำสั่งลบมีรูปแบบคำสั่งดังนี้ รูปแบบ DELETE [FROM ] table_name [WHERE condition]; DELETE FROM MEMBER WHERE M_CODE = 2;
บทสรุป ภาษาเอสคิวแอล เป็นภาษาที่ใช้สำหรับการจัดการฐานข้อมูลประเภทฐานข้อมูลเชิงสัมพันธ์ทั้งหมด แบ่งออกเป็น 3 ประเภท ได้แก่ คำสั่งสำหรับนิยมข้อมูล ได้แก่ คำสั่งสร้างตาราง คำสั่งเปลี่ยนแปลงโครงสร้างตาราง คำสั่งลบตาราง คำสั่งสร้างดัชนี ลบดัชนี เป็นต้น คำสั่งสำหรับการจัดการข้อมูล ได้แก่คำสั่ง แทรกข้อมูล แก้ไข และแสดงข้อมูลตามเงื่อนไขต่าง ๆ และคำสั่งควบคุม ได้แก่ คำสั่งสำหรับกำหนดสิทธิ์การใช้ฐานข้อมูล รวมทั้งสิทธิ์ในการใช้คำสั่งใด ๆ จากตารางใด ๆ เป็นต้น แต่ตัวอย่างที่ได้อธิบายในบทนี้จะเป็นคำสั่งพื้นฐานเพียงส่วนหนึ่งที่นิยมใช้กันเท่านั้น ถ้าต้องการใช้คำสั่งระดับสูง จะต้องศึกษาจากหนังสือเอสคิวแอลโดยเฉพาะซึ่งจะทำให้มีความเข้าใจได้มากยิ่งขึ้น
A&Q Thank You ! www.charprom.com