วันจันทร์ที่ 12 กันยายน พ.ศ. 2559

กลุ่มคำสั่ง Data Definition language

(Data Definition Language-DDL )

- ภาษาที่ใช้สำ หรับนิยามข้อมูล (Data Definition Language-DDL )
Data Definition Language (DDL) เป็นภาษาที่ใช้นิยามโครงสร้างข้อมูล เพื่อเปลี่ยนแปลง หรีอ
ยกเลิกโครงสร้างฐานข้อมูลตามที่ออกแบบไว้ โครงสร้างดังกล่าวคือ สคีมา (Schema) นั้นเอง ตัวอย่างเช่น
การกำ หนดให้ฐานข้อมูลประกอบด้วยตารางอะไรบ้าง ชื่ออะไร ประเภทใด มีอินเด็กซ์ (Index)
เอกสารประกอบการบรรยายวิชา 204204 การออกแบบและพัฒนาฐานข้อมูล 8 - 2
ภาษา DDLประกอบด้วย 3 คำ สั่งคือ

1.คำสั่งการสร้าง (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)

2.คำสั่งเปลี่ยนแปลงโครงสร้าง
ALTER TABLE < ชื่อตารางที่ตั้งขึ้น >
<คำ สั่งการเปลี่ยนแปลง> (<ชื่อคอลัมน์ ประเภทข้อมูล>);
ตัวอย่างเช่น
ALTER TABLE SUPPLIER
ADD (LAST_SNAME Char(10));

3.คำสั่งยกเลิก (Drop) ต่างๆ
การลบโครงสร้างตาราง
DROP TABLE < ชื่อตารางที่ตั้งขึ้น >


ภาษาดังกล่าวคือ ภาษาที่ใช้สร้างฐานข้อมูลลงในคอมพิวเตอร์ หลังจากที่เราได้ออกแบบแล้วว่า
ฐานข้อมูลมีกี่รีเลชั่น แต่ละรีเลชั่นมีความสัมพันธ์อย่างไร จากนั้นการใช้ภาษา DDL นี้แปลงรีเลชั่น
ต่างๆ ให้อยู่ในรูปภาษาสำ หรับนิยามข้อมูล เพื่อป้อนเข้าสู่ระบบฐานข้อมูล เพื่อสร้างฐานข้อมูลที่แท้จริง
ให้เกิดขึ้นในคอมพิวเตอร์ ภาษา DDL สามารถสรุปคำ สั่งต่างๆได้ดังตอไปนี้

CREATE TABLE = นิยามโครงสร้างข้อมูลในรูปตารางบนฐานข้อมูล
DROP TABLE = ลบโครงสร้างตารางข้อมูลออกจากระบบ
ALTER TABLE = แก้ไขปรับปรุงโครงสร้างตาราง


CREATE INDEX = สร้างดัชนีของตาราง
DROP INDEX = ลบ ดัชนีของตารางออกจากระบบ
CREATE VIEW = กำ หนดโครงสร้างวิวของผู้ใช้
DROP VIEW =ลบโครงสร้างวิวออกจากระบบ

-คำสั่งนิยามโครงสร้างตาราง
การสร้างตารางใน ฐานข้อมูลแบบรีเลชั่นเนล โดยเฉพาะฐานข้อมูลขนาดใหญ่บนระบบ
UNIX จะทำ ด้วยการป้อนคำ สั่งในลักษณะเท็กซ์โหมด (Text Mode) เข้าไปในระบบฐานข้อมูล ดังรูป
แบบต่อไปนี้
CREATE TABLE <ชื่อตาราง>
(<ชื่อคอลัมน์ ประเภทของข้อมูล>[,<ชื่อคอลัมน์ ประเภทของข้อมูล>]....);
- ประเภทของข้อมูล
ประเภทของข้อมูลแบ่งเป็น 5 ประเภทใหญ่ๆ ขึ้นอยู่กับซอฟต์แวร์ระบบฐานข้อมูลที่ใช้
ว่าคืออะไร ตัวอย่างเช่น CHAR, INTEGER, DATE ฯลฯ
คำ สั่งการลบโครงสร้างตาราง
DROP TABLE <ชื่อตารางที่ต้องการลบ>
คำ สั่งการเปลี่ยนแปลงโครงสร้างตาราง
ในกรณีที่ต้องการเปลี่ยนแปลงโครงสร้างตารางที่เคยนิยามไว้ สามารถใช้คำ สั่งต่อไปนี้
ALTER TABLE <ชื่อตารางที่ต้องการเปลี่ยนแปลง>
<คำ สั่งการเปลี่ยนแปลง><[,<ชื่อคอลัมน์ ประเภทของข้อมูล>]>
คำ สั่งดัชนี
ดัชนี ( INDEX ) มีความสำ คัญมากต่อฐานข้อมูลเชิงสัมพันธ์ เนื่องจาก ระบบฐาน
ข้อมูลแบบรีเลชั่นเนล (RDBMS) จะใช้ดัชนีในการค้นหาระเบียนที่ต้องการได้อย่างรวดเร็ว โดยดัชนีที่
ถูกสร้างขึ้น จะเก็บไว้แยกจากตารางในพื้นที่ต่างหาดของคอมพิวเตอร์ โดยปกติ ถ้าไม่มีการประกาศ
ดัชนี ไว้การค้นหาข้อมูลในตาราง นั้นจะต้องทำ แบบเรียงลำ ดับจากแถวที่หนึ่งจนถึงแถวสุดท้าย การ
สร้างดัชนีสำ หรับตารางใดๆ จะทำ ได้โดยการเลือกคอลัมน์ใดคอลัมน์หนึ่งจากตารางมาเป็นดัชนี และตา
รางหนึ่งๆ สามารถมีได้หลายดัชนี นอกจากเพิ่มความรวดเร็วในการดึงข้อมูลแล้ว ยังสามารถนำ ไปใช้ในการควบคุม
คอลัมน์ที่นำ มาสร้างเป็นดัชนีให้มีการเก็บข้อมูลที่ไม่ซำ้กัน(Unique) อีกด้วย

การสร้างดัชนีจะใช้คำ สั่ง CREATE INDEX แล้วตามด้วยชื่อดัชนีที่เราตั้งขึ้น ดังรูปแบบ
ต่อไปนี้
CREATE [UNIQUE] INDEX < ชื่อตารางที่ตั้งขึ้น >
ON (<ชื่อตารางที่สร้างดัชนี> (< ชื่อคอลัมน์ 1> [,< ชื่อคอลัมน์ 2>]…);
การลบดัชนี
เมื่อต้องการลบดัชนีที่สร้างขึ้น ก็สามารถทำ ได้ด้วยคำ สั่ง DROP INDEX แล้วตามด้วย
ชื่อดัชนีที่ต้องการลบ ดังรูปแบบดังนี้
DROP INDEX <ชื่อดัชนี>


-ภาษาสำ หรับการจัดการข้อมูล (Data Manipulation Language-DML)หลังจากที่เราสร้างโครงสร้างฐานข้อมูลขึ้นแล้ว
คำสั่งต่อไปในการป้อนข้อมูลลงในฐานข้อมูลและเปลี่ยนแปลงข้อมูล ในฐานข้อมูล โดยการใช้ภาษาสำ หรับการจัดการข้อมูล (Data ManipulationLanguage-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
( SELECT <ชื่อคอลัมน์>
FROM <ชื่อตาราง>
WHERE <ชื่อคอลัมน์> )
คำ สั่งเติมข้อมูล (Insert Statement)
INSERT INTO < ชื่อตาราง >
VALUES (< ชื่อคอลัมน์ 1> [,< ชื่อคอลัมน์ 2>]…);
คำ สั่งแก้ไขและลบแถว (Update Statement )
UPDATE < ชื่อตาราง >
SET <ค่าที่ต้องการ>
WHERE <เงื่อนไข>

-ภาษาควบคุม (Control Language)
ใช้เป็นภาษาที่ใช้ควบคุมระบบรักษาความปลอดภัย ของฐานข้อมูล ประกอบด้วยคำ สั่ง 2 คำ สั่งคือ
• คำ สั่ง GRANT เป็นคำ สั่งที่ใช้กำ หนดสิทธิให้กับผู้ใช้แต่ละคนให้มีสิทธกระทำ การใดกับข้อมูลเช่น
การเพิ่มข้อมูล การแก้ไข หรือ การลบข้อมูลในตารางใดบ้าง
• คำ สั่ง REVOKE เป็นคำ สั่งให้มีการยกเลิกสิทธนั้นหลังจากที่ได้ GRANT แล้ว
ค่าบูลลีน ( Boolean-Type Data)
• AND
• OR
• NOT

• =
• > หรือ >=
• < หรือ =< • <>
• Bulit-In Function
• COUNT
• SUM
• AVG
• MAX
• MIN
• DISTINCT
ชุดคำ สั่ง GROUP BY, ORDER BY และ HAVING
เนื่องจากข้อมูลที่สนใจมักจะเป็น ผลสรุป หรือ ข้อมูลที่ใช้ในการตัดสินใจ ภาษา SQL จึงได้ออก
แบบให้มี ชุดคำ สั่งพิเศษ ที่ทำ หน้าที่แบ่งออกเป็นกลุ่มๆ ได้แก่
1.1 ชุดคำ สั่ง GROUP BY
GROUP BY เป็นคำ สั่งให้มีการจัดกลุ่มแถวข้อมูลตามคอลัมน์
โดยข้อมูลที่เหมือนกันจะถูกจัดให้อยู่ในกลุ่มเดียวกัน ดังนั้นจากตัวอย่างตาราง S
SELECT S# , MAX( QTY)
FROM SPJ
GROUP BY S#
ผลลัพธ์
S# QTY
S1 700
S2 800
S3 500
S4 300
S5 800
1.2 ชุดคำ สั่ง ORDER BY
ORDER BY เป็นคำ สั่งให้มีการเรียงลำ ดับข้อมูลในแถวข้อมูลตามคอลัมน์

โดยข้อมูลที่เหมือนกันจะถูกจัดเรียงจากน้อยไปมาก ถ้าไม่การระบุบ แต่ถ้าระบุบว่าเป็น DESC
จะเรียงจากมากไปน้อย ดังนั้นจากตัวอย่างต่อไปนี้
SELECT S# , MAX( QTY)
FROM SPJ
GROUP BY S#
ORDER BY 2 DESC
S# QTY
S5 800
S2 800
S1 700
S3 500
S4 300
หมายเหตุ ตัวเลข 2 ที่อยู่หลัง ORDER BY จะเป็น การบอกระบบให้ทำ การเรียงลำ ดับข้อมูล
ตามลำ ดับคอลัมน์ที่ 2 ของคำ สั่ง SQL ซึ่งก็คือ MAX(QTY) นั่นเอง
1.3 ชุดคำ สั่ง HAVING
HAVING เหมือนกับคำ สั่ง WHERE ที่ต้องตามด้วยเงื่อนไข แต่ HAVING จะใช้ในกรณีที่มีการจัดก
ลุ่มหรือการใช้ GROUP BY
สรุปชุดคำ สั่งมาตรฐานของ SQL
1. CREATE TABLE [[database.]owner.]table_name
(column_name datatype [not null null] IDENTITY [(seed, increment)][constraint]
[, column_name datatype [not null null IDENTITY [(seed, increment)]]].
[constraint] …)
[ON segment name]
2. DELETE [FROM] table_name
WHERE column_name = “value”
3. ALTER TABLE [[
]]
ADD 
NULL [Canstsaint]
[WITH nocmeck]
{drop [ ]
4. UPDATE table_name
SET column_name= value
WHERE column_name =operator_value

5. CREATE VIEW View_name AS
SELECT column
FROM table_1 ….

WHERE table_key_1=table_key_2

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

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