คำสั่งที่ใช้กำหนดโครงสร้างของฐานข้อมูลว่าประกอบด้วยแอททริบิวต์ใดบ้าง

 

หน้าหลัก

บทที1

บทที่ 2

บทที3

บทที่4

บทที่5

บทที่6

บทที่7

บทที่8

บทที่9

บทที่10

แบบทดสอบ

ประวัติผู้จัดทำ

 

ภาษาฐานข้อมูล

ภาษาสอบถามเชิงโครงสร้าง
ภาษาสอบถามเชิงโครงสร้าง หรือภาษาเอสคิวเอล (Structured Query Lanuage : SQL) ถูกพัฒนาขึ้นมาเป็นครั้งแรกโดยบริษัทไอบีเอ็ม ประมาณต้นทศวรรษ 1970 และถูกนำมาใช้ในซอฟต์แวร์ด้านฐานข้อมูลของไอบีเอ็มรุ่นถัดมา และใช้ในซอฟต์แวร์ของบริษัทอื่นๆ อีกหลายแห่งจนเป็นที่นิยมในปัจจุบัน
ภาษาเอสคิวเอลเป็นภาษาที่ใช้ในการจัดการจัดข้อมูลของระบบฐานข้อมูลเชิงสัมพันธ์ มีผูผลิตระบบจัดการฐานข้อมูลจำนวนมากจัดเตรียมภาษาเอสคิวเอล นี้ไว้ให้เราใช้ เช่น DB2, ORACLE, Access, FoxPro, dBase IV ซึ่งรูปแบบในรายละเอียดของภาษาเอสคิวเอล ในระบบจัดการฐานข้อมูลแต่ละตัวอาจแตกต่างกันไปบ้าง ทว่าส่วนใหญ่แล้วเหมือนกัน นอกจากนั้นสถาบันมาตรฐานแห่งชาติอเมริกัน (ANAI) ได้กำหนดรูปแบบภาษาเอสคิวเอลมาตรฐาน (International Standard Database Language SQL) ขึ้นมาเพื่อให้เป็นมาตรฐานทั่วไปของภาษานี้ แต่มาตรฐานดังกล่าวยังไม่มีบริษัทใดสามารถพัฒนาขึ้นมาได้ครบถ้วนในตำราเล่มนี้จึงยึดรูปแบบภาษาเอสคิวเอล ในโปรแกรม SQL Plus ของบริษัทออราเคิล ซึ่งเป็นผู้ผลิตระบบบริหารฐานข้อมูลที่ชื่อเสียงและเป็นที่ยอมรับกันทั่วโลกมาเป็นเวลายาวนาน
รูปแบบของภาษาสอบถามเชิงโครงสร้าง
รูปแบบการใช้คำสั่งภาษาสอบถามเชิงโครงสร้าง หรือภาษาเอสคิวเอล อาจมีได้ 2 รูปแบบ คือ
1. ภาษาสอบถามเชิงโครงสร้างแบบโต้ตอบ (Interactive SQL) เป็นการใช้คำสั่งภาษาเอสคิวเอล โดยสั่งงานโดยตรงบนจอภาพเพื่อเรียกดูข้อมูลในขณะทำงานได้ทันที เช่น คำสั่งภาษาเอสคิวเอล ที่ใช้ในโปรแกรม SQL Plus ของระบบจัดการฐานข้อมูล Oracle หรือคำสั่งภาษาเอสคิวเอล ใน SQL View ของ Microsoft Access
SELECT CITY
FROM SUPPLIER
WHERE SNO = ‘S2’;
2. ภาษาสอบถามเชิงโครงสร้างแบบฝังตัว (Embedded SQL) อยู่ในภาษาเจ้าบ้าน
(Home Language) เช่น PL/1,Pascal, C++, Visual BASIC, Oracle Developer PL/SQL เป็นต้นตัวอย่างการใช้คำสั่ง SQL ในภาษา PL/1
EXEC SQL SELECT CITY
INTO : XCITY
FROM SUPPLIER
WHERE SNO = ‘S2’:
ตัวอย่างการใช้คำสั่ง SQL ในภาษา Visual BASIC
Private Sub Command 1 _ Click()
Dim dbs As Database
Dim rst As Recordset
Dim strSQL As String
Set dbs = OpenDatabase (“C:\VB60\Database.mdb”)
strSQL = “SELECT CITY FROM SUPPLIER”
strSQL = strSQL & “WHERE SNO = ‘S2’ ”
Set rst = dbs.OpenRecordset(strSQL)
End Sub
ประเภทของคำสั่งในภาษาสอบถามเชิงโครงสร้าง
ภาษาสอบถามเชิงโครงสร้าง หรือภาษาเอสคิวเอล มีคำสั่งมากมายซึ่งอาจแบ่งออกได้เป็น 2 ประเภท คือ คำสั่งนิยามข้อมูล (Data Definition Statements) และ คำสั่งจัดดำเนินการข้อมูล (Data Manipulation Statements)
คำสั่งที่ใช้นิยามข้อมูล
ได้แก่ คำสั่ง CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, DROP INDEX, CREATE VIEW, DROP VIEW ซึ่งมีรายละเอียดของคำสั่งพร้อมตัวอย่างการใช้ ดังต่อไปนี้
1. CREATE TABLE เป็นคำสั่งที่ใช้ในการสร้างตาราง โดยบอกชื่อตาราง ชื่แอตทริบิวต์ต่าง ๆ ความกว้างของแต่ละแอตทริบิวต์ ประเภท (Type) ของข้อมูลที่จัดเก็บในแอตทริบิวต์นั้น รวมทั้งการกำหนดคีย์หลัก (Primary Key) และคีย์นอก (Foreign Key) มีรูปแบบดังนี้
CREATE TABLE <TABLE NAME>
(<COLUMN NAME><DATA TYPE>[<WIDTH>]
[,<COLUMN NAME><DATA TYPE>[<WIDTH>,…]
[,PRIMARY KEY DEFINITION]
[,FOREIGN KEY DEFINITION]);

รูปแบบข้างต้นประกอบด้วยสัญลักษณ์ซึ่งมีความหมายตามตารางด้านล่างนี้

สัญลักษณ์

เรียกว่า

ความหมาย

ตัวพิมพ์ใหญ่

Capital Letters

คำสั่ง

< >

Variables

ชื่อต่าง ๆ หรือนิพจน์ที่ผู้ใช้จะต้องกำหนดค่าขึ้นมา

...

Ellipses

สามารถจะระบุเพิ่มอีกตามสิ่งที่ระบุมาแล้วข้างต้น

[ ]

Optional

คำสั่งนั้น ๆ จะมีสิ่งที่ระบุไว้ในเครื่องหมายนี้หรือไม่ก็ได้

::=

Equal

ส่วนที่อยู่ด้านขวาของเครื่องหมายนี้ เป็นคำอธิบายหรือคำนิยามของสิ่งที่อยู่ด้านซ้ายของเครื่องหมายนี้

|

Or

อาจจะเลือกใช้สิ่งใดสิ่งหนึ่งที่อยู่ด้านซ้าย หรือด้านขวาของต้นไม้นี้ได้

COLUMN
NAME

ชื่อของแอตทริบิวต์ของตาราง

WIDTH

ขนาดความกว้างของข้อมูล

DATA TYPE

ประเภทค่าของข้อมูล ซึ่งอาจเป็นได้ดังตารางต่อไปนี้

นอกจากนั้นยังมีตัวแปรที่ใช้กำหนดโครงสร้างข้อมูล ดังตารางต่อไปนี้

ประเภทข้อมูล

ความหมาย

SMALLINT

เลขจำนวนเต็ม ค่าระหว่าง -99999 ถึง 99999

INTEGER

เลขจำนวนเต็ม ความกว้าง ประมาณ ลบ 10 หลัก ถึงบวก 11 หลัก

NUMBER (X,Y)

เก็บจำนวนตัวเลขที่มีความกว้างรวม X หลัก และมีทศนิยม Y ตำแหน่ง

FLOAT (X,Y)

เก็บจำนวนตัวเลขที่เขียนในรูปของ 10 ยกกำลัง

CHAR (N)

เก็บสายอักขระที่มีขนาดคงที่ตามที่ระบุ

VARCHER (M)

เก็บสายอักขระที่มีขนาดไม่คงที่

DATE

เก็บ เดือน/วัน/ปี

LOGICAL

เก็บค่าตรรกะ คือ จริง (T หรือ True) หรือเท็จ (F หรือ False)

เช่น
CREATE TABLE EMPLOYEE
(EMPNUM CHER (4),
EMPNAME CHAR (15),
HIREDATE DATE,
SALARY NUMBER (6),
POSITION CHAR (10),
DEPTNO CHAR (2)
PRIMARY KEY (EMPNUM)
FOREIGN KEY (DEPTNO) REFERENCES DEPT (DEPTNO));
2. ALTER TABLE ใช้ในการเพิ่มแอตทริบิวต์ในตารางที่มีอยู่เดิม มีรูปแบบดังนี้

ALTER TABLE <TABLE NAME>
ADD (<COLUMN NAME> <DATA TYPE> <WIDTH> [,<COLUMN

NAME> <DATA TYPE> <WIDTH>, …])
เช่น

ALTER TABLE PRODUCT
ADD (COLOR CHAR (6),
WEIGHT NUMBER (3));
3. DROP TABLE ใช้ในการลบตารางที่มีอยู่เดิม มีรูปแบบดังนี้
DROP TABLE <TABLE NAME>
4. CREATE INDEX ใช้ในการสร้างดัชนี มีรูปแบบดังนี้
CREATE [UNIQUE] INDEX <INDEX NAME>

ON <TABLE NAME> (<COLUMN NAME [,COLUMN NAME]);
เช่น
CREATE INDEX QTYNDX
ON ORDER (QTY);
5. DROP INDEX ใช้ในการลบดัชนี มีรูปแบบดังนี้
DROP INDEX <INDEX NAME>;
6. CREATE VIEW ใช้ในการสร้างวิว (มุมมอง) ข้อมูลนี้มาจากตารางที่มีอยู่เดิม มีรูปแบบดังนี้
CREATE VIEW <VIEW NAME>
AS SELECT Statement;
เช่น

CREATE VIEW ORDERVIEW
AS SELECT SNO, PNO, QTY
FROM ORDER
WHERE QTY > 200;
7. DROP VIEW ใช้ในการลบวิว มีรูปแบบดังนี้
DROP VIEW <VIEW NAME>
คำสั่งที่ใช้จัดดำเนินการข้อมูล (Data Manipulation Statements)
ได้แก่ คำสั่ง INSERT, UPDATE, DELETE, SELECT และฟังก์ชั่นต่าง ๆ
1. INSERT เป็นคำสั่งที่ใช้ในการใส่ข้อมูลระเบียนหนึ่งหรือทูเพิลลงในตารางที่มีอยู่แล้ว
โดยการแทรกข้อมูลเพิ่มนี้จะทำได้ทีละหนึ่งทูเพิลต่อครั้ง มีรูปแบบดังนี้

INSERT INTO <TABLE NAME>
[<COLUMN LIST>] VALUES (<VALUE LIST>);
COLUMN LIST หมายถึง รายชื่อแอตทริบิวต์ที่ต้องการเพิ่มข้อมูลลงไป ถ้ามีมากกว่า 1 ให้ใช้เครื่องหมาย , คั่น
VALUE LIST หมายถึง ค่าข้อมูลของแอตทริบิวต์ที่ต้องการเพิ่มเข้าไปในตาราง ถ้าเป็นข้อมูลอักขระต้องมีเครื่องหมาย ‘ ’ กำกับ
เช่น
INSERT INTO PRODUCT (PNO, PNAME, COLOR, CITY)
VALUES (‘P1’, ‘PEN’, ‘RED’, ‘BANGKOK’);
2. UPDATE เป็นคำสั่งที่ใช้ในการเปลี่ยนแปลงค่าของข้อมูลที่มีอยู่แต่เดิมในบางแอตทริบิวต์เพื่อให้เป็นไปตามที่เราต้องการ มีรูปแบบดังนี้
UPDATE <TABLE NAME>
SET <COLUMN NAME 1> = <VALUE 1>
[,<COLUMN NAME 2> = <VALUE 2>
…, <COLUMN NAME N> = <VALUE N>]
[WHERE < CONDITIONS>];
COLUMN NAME หมายถึง ชื่อแอตทริบิวต์ที่ต้องการเปลี่ยนค่าของข้อมูลใหม่
VALUE หมายถึง ค่าใหม่ของข้อมูลที่ต้องการเปลี่ยนเข้าไปในตาราง ถ้าเป็นข้อมูลอักขระต้องมีเครื่องหมาย ‘ ’ กำกับ
CONDITION หมายถึง เงื่อนไขของข้อมูลที่จะนำมาปรับปรุง
เช่น
UPDATE PRODUCT
SET COLOR = ‘YELLOW’
WHERE PNO = ‘P2’
3. DELETE เป็นคำสั่งที่ใช้ในการลบข้อมูลในแต่ระเบียนหรือทูเพิล มีรูปแบบดังนี้
DELETE FROM <TABLE NAME>
[WHERE <CONDITIONS>];
เช่น
DELETE FROM SUPPLIER
WHERE SNO = ‘S2’;
4. SELECT เป็นคำสั่งที่ใช้ในการเรียกค้นข้อมูลจากฐานข้อมูลตามที่ผู้ใช้ต้องการ มีรูปแบบดังนี้
SELECT [ * | DISTINCT] <TARGET LIST>
FROM <TABLE NAME> | <ALIASES>]
[WHERE PREDICATE]
[GROUP BY <COLUMN LIST>] | [HAVING PREDICATE]
[ORDER BY <COLUMN LIST>];
รูปแบบข้างต้นประกอบด้วยสัญลักษณ์ซึ่งมีความหมายตามตารางด้านล่างนี้

สัญลักษณ์

ความหมาย

*

เป็นการเลือกข้อมูลทั้งหมด

DISTINCT

เลือกข้อมูลที่เป็นไปตามเงื่อนไขเฉพาะทูเพิลที่มีข้อมูลไม่ซ้ำกัน

TARGET LIST

ชื่อของแอตทริบิวต์และนิพจน์ที่ต้องการให้แสดงค่าออกมาตามต้องการ

ALLASES

ชื่อของตารางที่ตั้งขึ้นใหม่ (นามแฝง)

PREDICATE

เงื่อนไขในการดึงข้อมูลของทูเพิลตามที่ต้องการ

[GROUP BY <COLUMN LIST>] [HAVING PREDICATE]

จัดกลุ่มตามเงื่อนไขที่ระบุและภายใต้การจัดกลุ่มจะมีเงื่อนไขที่จะให้แสดงผลที่เกิดจากการจัดกลุ่มโดย HAVING

[ORDER BY <COLUMN LIST>]

ระบุให้เรียงลำดับข้อมูลตามแอตทริบิวต์ที่ต้องการถ้ามี ASC ต่อท้ายชื่อแอตทริบิวต์เป็นการเรียงจากน้อยไปมาก ถ้ามี DESC ต่อท้ายชื่อแอตทริบิวต์เป็นการเรียงจากมากไปน้อย

เช่น
* การเรียกดูแบบไม่มีเงื่อนไข
SELECT *
FROM SUPPLIER
* การเรียกดูแบบมีเงื่อนไข
SELECT SNO
FROM SUPPLIER
WHERE CITY = ‘RAYONG’ OR ‘BANGKOK’;
SELECT SNO, PNO, QTY
FROM ORDER
WHERE QTY BETWEEN 300 AND 500;
* การเรียกดูแบบมีเงื่อนไข โดยใช้ตัวดำเนินการ BETWEEEN … AND …

SELECT SNO, PNO, QTY
FROM SP
WHERE QTY BETWEEN 300 AND 500;
* การเรียกดูแบบมีเงื่อนไข โดยใช้ตัวดำเนินการ IN
SELECT SNO,SNAME
FROM S
WHERE CITY IN (‘LONDON’, ‘PARE’);
* การเรียกดูแบบมีเงื่อนไข โดยใช้ตัวดำเนินการ LIKE
SELECT *
FROM S
WHERE SNAME LIKE ‘B%’;
ผลลัพธ์ คือ
S SNO SNAME TATUS CITY
S3 Blake 30 Paris
* การเรียกดูข้อมูลจากหลายตาราง โดยการทำ Equi Join
SELECT SUPPLIER. * , PRODUCT. *
FROM S SUPPLIER, P PRODUCT
WHERE SUPPLIER.CITY = PRODUCT.CITY;
* การเรียกดูข้อมูลจากหลายตาราง โดยการทำ Non-Equi Join (>,<, >=, <=, between … and, in)
SELECT SNO, SNAME, PNO, QTY
FROM S SUPPLIER, SP SHIPMENT
WHERE QTY BETWEEN 400 AND 500
AND SUPPLIER,SNO = SHIPMENT.SNO;
* การเรียกดูข้อมูลจากหลายตาราง โดยการทำ Self Join
SELECT S1.,SNO, S2.SNO
FROM S S1, S S2
WHERE S1.CITY = S2.CITY
AND S1.SNO <> S2.SNO;
* การเรียกดูข้อมูลจากหลายตาราง โดยการทำ Outer Join เพื่อแสดงข้อมูลที่ไม่เป็นไปตามเงื่อนไขออกมาด้วย เครื่องหมายที่ใช้คือ (+)
SELECT SNO, SNAME, PNO, QTY
FROM S SUPPLIER, SP SHIPMENT
WHERE SUPPLIER SNO (+)= SHIPMENT.SNO;
5. ฟังก์ชั่นต่าง ๆ เป็นคำสั่งสำเร็จรูปที่ SQL เตรียมไว้ให้ มีหลายกลุ่ม เช่น
*ฟังก์ชั่นเกี่ยวกับการรวม

ฟังก์ชั่น

หน้าที่

AVG [*|DISTINCT] <column name>
หรือ AVG [*|DISTINCT] <column expression>

ใช้หาค่าเฉลี่ยของค่าในแอตทริบิวต์ ประเภทตัวเลข

COUNT [*|DISTINCT] <column name>

ใช้นับจำนวนแถว

MAX [*|DISTINCT] <column name>
หรือ MAX [*|DISTINCT] <column expression>

ใช้หาค่าสูงสุดของค่าในแอตทริบิวต์ที่กำหนด

MIN [*|DISTINCT] <column name>
หรือ MIN [*|DISTINCT] <column expression>

ใช้หาค่าต่ำสุดของค่าในแอตทริบิวต์ที่กำหนด

SUM [*|DISTINCT] <column name>
หรือ SUM [*|DISTINCT] <column expression>

ใช้หาผลรวมของค่าในแอตทริบิวต์ ประเภทตัวเลข

 
 
 

Toplist

โพสต์ล่าสุด

แท็ก

แปลภาษาไทย ไทยแปลอังกฤษ โปรแกรม-แปล-ภาษา-อังกฤษ พร้อม-คำ-อ่าน ห่อหมกฮวกไปฝากป้าmv แปลภาษาอาหรับ-ไทย lmyour แปลภาษา ข้อสอบคณิตศาสตร์ พร้อมเฉลย แปลภาษาอังกฤษเป็นไทย pantip ระเบียบกระทรวงการคลังว่าด้วยการจัดซื้อจัดจ้างและการบริหารพัสดุภาครัฐ พ.ศ. 2560 แอพแปลภาษาอาหรับเป็นไทย ห่อหมกฮวกไปฝากป้า หนังเต็มเรื่อง แปลภาษาเวียดนามเป็นไทยทั้งประโยค Google Translate การ์ดแคปเตอร์ซากุระ ภาค 4 หยน อาจารย์ ตจต เมอร์ซี่ อาร์สยาม ล่าสุด ศัพท์ทหาร ภาษาอังกฤษ pdf ห่อหมกฮวกไปฝากป้า คาราโอเกะ app แปลภาษาไทยเป็นเวียดนาม การ์ดแคปเตอร์ซากุระ ภาค 3 บบบย ศัพท์ทหารบก แปลภาษาจีน การประปาส่วนภูมิภาค การ์ดแคปเตอร์ซากุระ ภาค 1 ขุนแผนหลวงปู่ทิม มีกี่รุ่น ชขภใ ตม.เชียงใหม่ เซ็นทรัลเฟสติวัล พจนานุกรมศัพท์ทหาร รหัสจังหวัด อําเภอ ตําบล รหัสประจำจังหวัด 77 จังหวัด สอบโอเน็ต ม.3 จําเป็นไหม หนังสือราชการ ตัวอย่าง ห่อหมกฮวกไปฝากป้า คอร์ด อเวนเจอร์ส ทั้งหมด แปลภาษา มาเลเซีย ไทย ไทยแปลอังกฤษ ประโยค ่้แปลภาษา Egp G no Reconguista Google map ขุนแผนหลวงปู่ทิมรุ่นแรก ข้อสอบภาษาไทยพร้อมเฉลย ข้อสอบโอเน็ต ม.3 ออกเรื่องอะไรบ้าง ค้นหา ประวัติ นามสกุล จองคิว ตม เชียงใหม่ ชื่อเต็ม ร.9 คําอ่าน ดีแม็กมือสองราคาไม่เกิน350000 ตัวอย่างรายงานการประชุมสั้นๆ