วันอังคารที่ 20 กรกฎาคม พ.ศ. 2553

ภาษา SQL (Standard Query Language)


ภาษา SQL (Standard Query Language)
9.1 ภาษา Standard relational database Query Language (SQL)
ภาษาที่กลายเป็นภาษามาตรฐานสำ หรับระบบฐานข้อมูลคือ ภาษา Standard relational database
Query Language หรือเอสคิวแอล (SQL) หรือซีควอล (SE-QUEL) ซึ่งเป็นภาษาที่พัฒนาขึ้นมาโดยบริษัท
ไอบีเอ็ม ภาษา SQL (Standard Query Language) เป็นส่วนหนึ่งของระบบฐานข้อมูลแบบรีเลชั่นเนล
(Relational Database) ที่ได้รับความนิยมมากเพราะง่ายต่อความเข้าใจ และอยู่ในรูปภาษาอังกฤษ ภาษา
SQL แบ่งออกเป็น 2 ส่วน คือ
1 ภาษาที่ใช้สำ หรับนิยามข้อมูล (Data Definition Language-DDL)
2 ภาษาสำหรับการจัดการข้อมูล (Data Manipulation Language: DML)
• ภาษาควบคุม (Control Language)
• ภาษาในการเลือกข้อมูล (Data Query Language)
รูปแบบการใช้คำ สั่ง SQL สามารถใช้ได้เป็น 2 รูปแบบ ดังนี้ คือ
• คำ สั่ง SQL ที่ใช้เรียกดูข้อมูลได้ทันที (Interactive SQL)
เป็นการเรียกใช้คำ สั่ง SQL สั่งงานบนจอภาพ เพื่อเรียกดูข้อมูลในขณะที่ทำ งานได้ทันที เช่น
SELECT CITY
FROM SUPPLIER
WHERE SNO = ‘SE’;
• คำ สั่ง SQL ที่ใช้เขียนร่วมกันโปรแกรมอื่น ๆ (Embedded SQL)
เป็นคำ สั่ง SQL ที่ใช้ร่วมกับคำ สั่งของโปรแกรมภาษาต่าง ๆ เช่น PL/1 PASCAL ฯลฯ หรือแม้
แต่กับคำ สั่งในโปรแกรมที่ระบบจัดการฐานข้อมูลนั้นมีใช้เฉพาะ เช่น ORACLE มี PL/SQL (Procedural
Language /SQL) ที่สามารถเขียนโปรแกรมและนำ คำ สั่ง SQL มาเขียนร่วมด้วย เป็นต้น
ตัวอย่างการใช้คำ สั่ง SQL ในภาษา PL/1
EXEC SQL SELECT CITY
INTO :XCITY
FROM SUPPLIER
WHERE SNO = ‘S4’;
9.2 ภาษาที่ใช้สำ หรับนิยามข้อมูล (Data Definition Language-DDL )
Data Definition Language (DDL) เป็นภาษาที่ใช้นิยามโครงสร้างข้อมูล เพื่อเปลี่ยนแปลง หรือ
ยกเลิกโครงสร้างฐานข้อมูลตามที่ออกแบบไว้ โครงสร้างดังกล่าวคือ สคีมา (Schema) นั้นเอง ตัวอย่างเช่น
การกำหนดให้ฐานข้อมูลประกอบด้วยตารางอะไรบ้าง ชื่ออะไร ประเภทใด มี อินเด็กซ์ (Index)






ภาษา DDLประกอบด้วย 3 คำ สั่งคือ
• คำ สั่งการสร้าง (Create) ได้แก่ การสร้างตารางและอินเด็กซ์
CREATE TABLE
( Attribute 1 Type 1,Attribute 2 Type 2 ,)
CREATE Unique Index on X

เช่น
CREATE TABLE S11
(SNO CHAR(5) Not NULL,SNAME CHAR(10) ,STATUS integer)
CREATE Unique Index XS11 on S11(SNO)
• คำ สั่งเปลี่ยนแปลงโครงสร้าง
ALTER TABLE < ชื่อตารางที่ตั้งขึ้น >
<คำ สั่งการเปลี่ยนแปลง> (<ชื่อคอลัมน์ ประเภทข้อมูล>);
ตัวอย่างเช่น
ALTER TABLE SUPPLIER
ADD (LAST_SNAME Char(10));
• คำ สั่งยกเลิก (Drop) ต่างๆ
การลบโครงสร้างตาราง
DROP TABLE < ชื่อตารางที่ตั้งขึ้น >
ภาษาดังกล่าวคือ ภาษาที่ใช้สร้างฐานข้อมูลลงในคอมพิวเตอร์ หลังจากที่เราได้ออกแบบแล้วว่า
ฐานข้อมูลมีกี่รีเลชั่น แต่ละรีเลชั่นมีความสัมพันธ์อย่างไร จากนั้นการใช้ภาษา DDL นี้แปลงรีเลชั่น
ต่างๆ ให้อยู่ในรูปภาษาสำ หรับนิยามข้อมูล เพื่อป้อนเข้าสู่ระบบฐานข้อมูล เพื่อสร้างฐานข้อมูลที่แท้จริง
ให้เกิดขึ้นในคอมพิวเตอร์ ภาษา DDL สามารถสรุปคำ สั่งต่างๆได้ดังตอไปนี้
ขึ้นในคอมพิวเตอร์ ภาษา DDL สามารถสรุปคำ สั่งต่างๆได้ดังตอไปนี้
คำ สั่ง ความหมาย
CREATE TABLE นิยามโครงสร้างข้อมูลในรูปตารางบนฐานข้อมูล
DROP TABLE ลบโครงสร้างตารางข้อมูลออกจากระบบ
ALTER TABLE แก้ไขปรับปรุงโครงสร้างตาราง
บทที่ 8 พีชคณิตเชิงสัมพันธ์และแคลคูลัสเชิงสัมพันธ์ 8 - 3
คำ สั่ง ความหมาย
CREATE INDEX สร้างดัชนีของตาราง
DROP INDEX ลบ ดัชนีของตารางออกจากระบบ
CREATE VIEW กำหนดโครงสร้างวิวของผู้ใช้
DROP VIEW ลบโครงสร้างวิวออกจากระบบ
การสร้างดัชนีจะใช้คำ สั่ง CREATE INDEX แล้วตามด้วยชื่อดัชนีที่เราตั้งขึ้น ดังรูปแบบต่อไปนี้
CREATE [UNIQUE] INDEX < ชื่อตารางที่ตั้งขึ้น >
ON (<ชื่อตารางที่สร้างดัชนี> (< ชื่อคอลัมน์ 1> [,< ชื่อคอลัมน์ 2>]…);
การลบดัชนี
เมื่อต้องการลบดัชนีที่สร้างขึ้น ก็สามารถทำ ได้ด้วยคำ สั่ง DROP INDEX แล้วตามด้วย
ชื่อดัชนีที่ต้องการลบ ดังรูปแบบดังนี้
DROP INDEX <ชื่อดัชนี>
9.3 ภาษาสำ หรับการจัดการข้อมูล (Data Manipulation Language-DML)
หลังจากที่เราสร้างโครงสร้างฐานข้อมูลขึ้นแล้ว คำ สั่งต่อไปในการป้อนข้อมูลลงในฐานข้อมูล
และเปลี่ยนแปลงข้อมูล ในฐานข้อมูล โดยการใช้ภาษาสำ หรับการจัดการข้อมูล (Data Manipulation
Language-DML) ใช้จัดการข้อมูลภายในตารางภายในฐานข้อมูล และภาษาแก้ไขเปลี่ยนแปลงตาราง
แบ่งออกเป็น 4 Statement คือ
• Select Statement : การเรียกหา (Retrieve) ข้อมูลจาก ฐานข้อมูล
• Insert Statement : การเพิ่มเติมข้อมูลลงใน ตาราง (Table) จาก ฐานข้อมูล
• Delete Statement: การลบข้อมูลลงออกจาก ตาราง (Table) จาก ฐานข้อมูล
• Update Statement: การเปลี่ยนแปลงข้อมูลลงใน ตาราง (Table) จาก ฐานข้อมูล
คำสั่ง ความหมาย
SELECT เรียกค้นข้อมูลในตาราง
INSERT เพิ่มแถวข้อมูลลงในตาราง
DELETE ลบแถวข้อมูล
UPDATE ปรับปรุงแถวข้อมูลในตาราง
คำสั่งค้นหาข้อมูล (Query Statement)
คำ สั่ง SELECT เป็นคำ สั่งการเรียกดูข้อมูล หรือ ค้นข้อมูล ตามเงื่อนไขที่ระบุบ เนื่องจากคำ สั่ง
SELECT เป็นคำ สั่งที่มีรูปแบบการใช้งานที่ง่ายเพื่อช่วยในการค้นหาข้อมูลที่ซับซ้อน ดังมีรูปแบบดังนี้
SELECT <ชื่อคอลัมน์ที่ต้องการดูข้อมูล>
FROM <ชื่อตาราง>
WHERE <เงื่อนไขตามที่ระบุบ>
SELECT --- เป็นคำ สั่งให้ทำ การเรียกดูข้อมูลในคอลัมน์ที่ระบุ ซึ่งอาจจะมากกว่า หนึ่งก็ได้ และถ้ามี
มากกว่าหนึ่งคอลัมน์ต้องคั่นด้วย คอมม่า (,) และนอกจากนี้ยังสามารถใช้เครื่องหมาย
ดอกจัน (*) เพื่อแสดงถึงการขอดูข้อมูลทั้งหมดได้อีกด้วย
FROM --- เป็นคำ ส่วนประกอบของคำ สั่งที่บอกถึงตารางที่ต้องการดู ซึ่งอาจจะมีมากกว่าหนึ่งตารางก็
ได้ ที่จะถูกเรียกใช้จากคำ สั่ง SELECT
WHERE--- เป็นส่วนประกอบของคำ ส่ง ที่ใช้บ่งบอกเงื่อนไขที่จะใช้ในการค้นหาข้อมูล ขึ้นมาจากตา
รางใด ๆ ที่อยู่หลัง FROM นี้
การเรียกดูแบบซ้อนกัน (Nested SELECT Statement)
SELECT <ชื่อคอลัมน์>
FROM <ชื่อตาราง>
WHERE <ชื่อคอลัมน์> IN (LECT <ชื่อคอลัมน์>FROM <ชื่อตาราง>WHERE <ชื่อคอลัมน์> )

คำ สั่งเติมข้อมูล (Insert Statement)
INSERT INTO < ชื่อตาราง >
VALUES (< ชื่อคอลัมน์ 1> [,< ชื่อคอลัมน์ 2>]…);
คำ สั่งแก้ไขและลบแถว (Update Statement )
UPDATE < ชื่อตาราง >
SET <ค่าที่ต้องการ>
WHERE <เงื่อนไข>
9.4 ภาษาควบคุม (Control Language)
ใช้เป็นภาษาที่ใช้ควบคุมระบบรักษาความปลอดภัย ของฐานข้อมูล ประกอบด้วยคำ สั่ง 2 คำ สั่งคือ
• คำ สั่ง GRANT เป็นคำ สั่งที่ใช้กำหนดสิทธิให้กับผู้ใช้แต่ละคนให้มีสิทธิกระทำ การใดกับข้อมูลเช่น
การเพิ่มข้อมูล การแก้ไข หรือ การลบข้อมูลในตารางใดบ้าง
• คำ สั่ง REVOKE เป็นคำ สั่งให้มีการยกเลิกสิทธินั้นหลังจากที่ได้ GRANT แล้ว
หน้งสืออ้างอิง
1. ชนวัฒน์ ศรีสอ้าน, การออกแบบและพัฒนาฐานข้อมูล, มหาวิทยาลัยเทคโนโลยีสุรนารี :
นครราชสีมา, 2542.
2. ศิริลักษณ์ โรจนกิจอำ นวย, ระบบฐานข้อมูล, พิมพ์ครั้งที่ 3, ดวงกลมสมัย : กรุงเทพฯ, 2542