หัวข้อที่ 4




ภาษา sql จะมีคำสั่งหลัก ๆ อยู่ 2 ประเภท คือ

ddl - data definition language ใช้ในการจัดการโครงสร้างของ table, view และ index ได้แก่ คำสั่ง create, alter เป็นต้น
dml - data manipulation language ใช้ในการปรับปรุงข้อมูลภายใน table เช่น่
select ใช้ในการอ่านข้อมูลจาก table ตามเงื่อนไขที่ต้องการ
insert ใช้ในการแทรกแถวข้อมูลลงไปใน table
update ใช้ในการปรับปรุงข้อมูลใน table
delete ใช้ในการลบข้อมูลใน table

ภาษาที่กลายเป็นภาษามาตรฐานสำหรับระบบฐานข้อมูล คือ ภาษา
Standard relational database Query Language หรือเอสคิวแอล (SQL) หรือซีควอล (SE-QUEL) ซึ่งเป็นภาษาที่พัฒนาขึ้นมาโดยบริษัท ไอบีเอ็ม ภาษา SQL (Standard Query Language) เป็นส่วนหนึ่งของระบบฐานข้อมูลแบบรีเลชั่นเนล (Relational Database) ที่ได้รับความนิยมมากเพราะง่ายต่อความเข้าใจ และอยู่ในรูปภาษาอังกฤษ ภาษา SQL แบ่งออกเป็น 2 ส่วน คือ

- ภาษาที่ใช้สำ หรับนิยามข้อมูล (Data Definition Language-DDL)
- ภาษาสำ หรับการจัดการข้อมูลล (Data Manipulation Language: DML)
- ภาษาควบคุม (Control Language)
- ภาษาในการเลือกข้อมูล (Data Query Language)

รูปแบบการใช้คำ สั่ง
SQL สามารถใช้ได้เป็น 2 รูปแบบ ดังนี้ คือ

1. คำสั่งสร้างฐานข้อมูล
คำสั่งสร้างฐานข้อมูล(create database) เป็นคำสั่งสำหรับให้ ผู้บริหารฐานข้อมูลหรือผู้มีสิทธิ์สร้างฐานข้อมูล โดยการกำหนดชื่อฐานข้อมูลแต่ละฐานข้อมูล
รูปแบบ
CREATEDATABASEdatabase_name;
database_name คือ ชื่อฐานข้อมูล
ตัวอย่างที่ 3.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));
Table_name คือ ชื่อของตารางที่ต้องการสร้าง
Column_name1 คือ ชื่อของแอตทริบิวต์ที่ 1
Column_name2 คือ ชื่อของแอตทริบิวต์ที่ 2
data_type คือ ชนิดของข้อมูล
column_attribute คือ คุณสมบัติของแอตทริบิวต์

ตัวอย่างที่ 3.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 ต้องการสร้างตาราง DONOR ตามพจนานุกรม
CREATE TABLE DONOR(
DONOR_CODE INT (5)NOT NULL UNIQUE,
DONOR_DATE DATE NOT NULL,
QTY SMALLINT(3) NOT NULL,
M_CODE INT(5) NOT NULL,
PRIMARY KEY (DONOR_CODE),
FOREIGN KEY (M_CODE) REFERENCES
MEMBER);

3. คำสั่งเปลี่ยนแปลงโครงสร้างตาราง
คำสั่งเปลี่ยนแปลงโครงสร้างตาราง (alter table) เป็นคำสั่งสำหรับเปลี่ยนโครงสร้างตาราง เช่น การเพิ่มหรือลบแอตทริบิวต์ หรือการเพิ่มคีย์หลัก หรือคีย์นอก เช่น จากตัวอย่างที่2 ถ้ากรณีที่ลืมกำหนดคีย์หลัก สามารถเขียนคำสั่งเพื่อกำหนดเพิ่มเติมภายหลังได้ดังนี้
รูปแบบ
ALTER TABLE table_name
ADD PRIMARY KEY (column_name);

ตัวอย่างที่ 3.4 การเพิ่มคีย์หลักในโครงสร้างตาราง MEMBER

ALTER TABLE MEMBER
ADD PRIMARY KEY(M_CODE);
ในกรณีที่ยังไม่ได้กำหนดคีย์นอกของโครงสร้างตาราง DONOR สามารถเขียนคำสั่งเพื่อกำหนดคีย์นอกได้ดังนี้

รูปแบบ
ALTER TABLE table name

ADD FOREIGN KEY(column_name) REFERENCES table_name;

ตัวอย่างที่ 3.5 การเพิ่มคีย์นอกของโครงสร้างตาราง DONOR

ALTER TABLE DONOR
ADD FOREIGN KEY(M_CODE) REFERENCES MEMBER;
ถ้ากรณีที่ยังไม่ได้กำหนดทั้งคีย์หลักและคีย์นอกในโครงสร้างตาราง DONOR สามารถเขียนคำสั่งได้ดังนี้
รูปแบบ

ALTER TABLE table_name
ADD PRIMARY KEY(column_name)
ADD FOREIGN KEY(column_name) REFERENCES table_name;


ตัวอย่างที่ 3.6 คำสั่งเพื่อต้องการเพิ่มคีย์หลักและคีย์นอกในโครงสร้างตาราง 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);

ตัวอย่างที่ 3.7 การเปลี่ยนชนิดข้อมูลของแอตทริบิวต์ M_CODE จากตาราง MEMBER จากเดิมที่เป็นชนิด INT(5) ให้เป็น VARCHAR(5) สามารถเขียนคำสั่งได้ดังนี้
ALTER TABLE table_name
MODIFY (column_name data_type);
การเปลี่ยนแปลงชนิดข้อมูลดังตัวอย่างข้างต้น มีข้อควรระมัดระวัง ในกรณีที่มีข้อมูลอยู่ในตารางอยู่แล้ว ถ้าหากมีการลดขนาดของข้อมูลลงมาจะทำให้ข้อมูลถูกเปลี่ยนไปด้วย หรือในกรณีที่ใช้ Oracle เมื่อเปลี่ยนชนิดของข้อมูลจาก INT เป็นชนิด CHAR ถ้าหากมีข้อมูลเก็บอยู่ภายในแล้ว โปรแกรมจะไม่ยินยอมให้แก้ไข จนกว่าจะไม่มีข้อมูลอยู่ภายในจึงจะสามารถใช้คำสั่งนี้ได้ คำสั่งเพิ่มแอตทริบิวต์ในตารางที่มีอยู่แล้ว เช่น จากตาราง MEMBER ถ้าต้องการเพิ่มแอตทริบิวต์ PROVINCE(ชื่อจังหวัด) ชนิดข้อมูลเป็น VARCHAR(25) สามารถเขียนคำสั่งได้ดังนี้
รูปแบบ
ALTER TABLE table_name
ADD (column_name data_type);

4. คำสั่งลบตาราง
คำสั่งสำหรับลบตาราง(drop table) สามารถลบโครงสร้างตารางที่ถูกสร้างไว้แล้วได้ โดยข้อมูลที่ถูกบันทึกไว้จะถูกลบไปด้วย และไม่สามารถใช้คำสั่ง ROLLBACK เพื่อให้ข้อมูลคืนกลับมาได้ โดยใช้คำสั่งดังนี้
รูปแบบ
DROP TABLE table_name;
ตัวอย่างที่ 3.9 ต้องการลบตาราง DONOR

DROP TABLE DONOR;
5. คำสั่งสร้างดัชนี
คำสั่งสร้างดัชนี (create index) เป็นคำสั่งที่ให้ระบบจัดการฐานข้อมูลสร้างดัชนีขึ้นมา ซึ่งจะมีผลให้การเข้าถึง หรือการสืบค้นข้อมูลกระทำได้เร็วยิ่งขึ้น เช่นเดียวกับการทำดัชนีของหนังสือ ถ้าหากไม่ได้สร้างดัชนีระบบจัดการฐานข้อมูลจะเข้าถึงข้อมูลตามลำดับ
รูปแบบ
CREATE INDEX index_name
ON table_name (column_name);
ตัวอย่างที่ 3.10 ต้องการสร้างดัชนีโดยใช้แอตทริบิวต์ M_NAME ในตาราง MEMBER
CREATE INDEX name_dex
ON MEMBER (M_NAME);

6. คำสั่งลบดัชนี
คำสั่งลบดัชนี (drop index) เป็นคำสั่งที่ใช้สำหรับลบดัชนีที่ได้กำหนดขึ้นมา
รูปแบบ
DROP INDEX index_name;

ตัวอย่างที่ 3.11 ต้องการลบดัชนีที่เกิดขึ้นจากคำสั่งในตัวอย่างที่ 3.10
DROP INDEX name_dex;

7. คำสั่งสร้างวิว
คำสั่งสร้างวิว (create view) เป็นคำสั่งที่ใช้สำหรับความต้องการที่จะให้แสดงผลอย่างรวดเร็ว เป็นเทคนิคอย่างหนึ่งที่นิยมใช้กับระบบจัดการฐานข้อมูลที่ดี เช่น Oracle ซึ่งวิธีการทำงานของคำสั่งวิวจะรวบรวมเอาข้อมูลจากตารางจริงมาจำลองเป็นชื่อใหม่ เก็บข้อมูลเหล่านั้นอยู่ในหน่วยความจำ รอผู้ใช้ใช้คำสั่งสอบถามข้อมูล สามารถใช้คำสั่งได้ดังนี้
รูปแบบ
CREATE VIEW view_name AS
subquery;
ตัวอย่างที่ 3.12 ต้องการสร้างวิวชื่อ 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";
การเรียกใช้สืบค้นข้อมูลจากผลที่เกิดจากคำสั่งตัวอย่างที่ 3.12 สามารถใช้คำสั่งดังนี้
SELECT * FROM MEMBER_DONOR;

แหล่งที่มาของข้อมูล
https://sites.google.com/site/thaidatabase2/4.8
http://www.softwaresiam.com/index.php/access/11-sql




ไม่มีความคิดเห็น:

แสดงความคิดเห็น