12. สรุป
สรุปคำสั่ง SQL
ในส่วนการสรุปรูปแบบทั่วไปของประโยคคำสั่ง SQL แต่ระบบฐานข้อมูลแต่ละระบบอาจจะสนับสนุนหรือไม่สนับสนุนต้องดูคู่มือของ่ระบบฐานข้อมูลนั้นประกอบด้วย
ALTER TABLE tablename [ADD| DROP| MODIFY] columnname; (ดูเพิ่มเติม1,
ดูเพิ่มเติม2 ) ใช้สำหรับการเพิ่ม, แก้ไข หรือลบ คอลัมน์ของ table และเปลี่ยนข้อความ
เช่น ประเภทข้อมูล ของคอลัมน์ที่มีอยู่ การเลือก ADD, DROP หรือ MODIFY เลือกได้อย่างเดียว
COMMIT; (ดูเพิ่มเติม) บันทึกการเปลี่ยนแปลงเข้าสู่ฐานข้อมูล
CREATE [UNIQUE] INDEX indexname
ON tablename (columnname); (ดูเพิ่มเติม1, ดูเพิ่มเติม2 ) UNIQUE เป็นตัวเลือกการสร้างดัชนีแบบไม่ซ้ำ
CREATE TABLE tablename
(columnname1 datatype [size] [constraint], columnname2 datatype [size]
[constraint], . .); (ดูเพิ่มเติม1, ดูเพิ่มเติม2) เป็นคำสั่งสร้าง table
การกำหนด size ขึ้นกับประเภทข้อมูล constraint ที่สามารถกำหนดได้ คือ NULL
หรือ NOT NULL, UNIQUE (บังคับให้ค่าไม่ซ้ำ), PRIMARY KEY (ระบุ primary
key ของ table), CHECK (การยอมให้ตรวจสอบข้อมูลที่มีการเปลี่ยนแปลง), DEFULT
(ให้แทรกค่าเมื่อมีการเพิ่มแถวข้อมูล), FOREIGN KEY (กำหนด foreign key ของ
table)
CREATE VIEW tablename AS select statement; (ดูเพิ่มเติม) สร้าง view
DELETE FROM tablename WHERE condition; (ดูเพิ่มเติม) ลบข้อมูล
INSERT INTO tablename (column1, column2,..)
VALUES (value1, value2,..); (ดูเพิ่มเติม)
ROLLBACK;(ดูเพิ่มเติม) เรียกข้อมูลเดิมกลับมา จากการเปลี่ยนแปลงข้อมูลที่เกิดขึ้น
โดยสามารถเรียกกลับจาก COMMIT ครั้งสุดท้าย
SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE conditions]
[GROUP BY column-list]
[HAVING conditions]
[ORDER BY column-list [ASC | DESC] ]; (ดูเพิ่มเติม) โดย ASC | DESC ให้เลือกวิธีเรียงลำดับข้อมูล
UPDATE tablename
SET column1 = value1, column2 = value2, ..
[WHERE condition]; (ดูเพิ่มเติม) ถ้าไม่มี WHERE clause จะเปลี่ยนค่าตามที่กำหนดทั้งหมด
ตัวอย่างคำสั่ง SQL ใน Visual Basic
คำสั่ง Select
คำสั่ง Select ใช้เป็นประโยคคำสั่งในการส่งออกเรคคอร์ด ตามเกณฑ์ในการเลือก
ไวยากรณ์
SELECT fieldname1, fieldname2,...
FROM tablename1, tablename2,...
[Where Condition]
[Group By]
[Having]
[Order By];
[ ] ตัวเลือก
แสดงทุกฟิลด์และทุกเรคคอร์ด ใน table เดียว เช่นการข้อทั้งหมดใน table ชื่อ
publishers
SELECT * FROM Publishers ;
แสดงบางฟิลด์ ซึ่งชื่อฟิลด์ ที่มีเครื่องหมายพิเศษ หรือมีการเว้นวรรคให้อยู่ในวงเว็บก้ามปู
[ ]
SELECT PubID, [Company Name], Address FROM Publishers;
แสดงฟิลด์ที่เป็น expression และตั้งชื่อใหม่ (ให้ใช้ As)
SELECT Author, 2000 - [Year Born] As Age FROM Authors;
การใช้ฟังก์ชัน aggregate
SELECT COUNT ([Year Born]) FROM Authors;
การเลือกเฉพาะเรคคอร์ด ที่ต้องการด้วย WHERE clause
SELECT Name, City FROM Publishers WHERE State = CA;
การเลือกเฉพาะเรคคอร์ดด้วย WHERE Clause หลายเงื่อนไขต้องเชื่อมด้วย AND
หรือ OR เช่น state เป็น CA และ Name ขึ้นต้นด้วย M
SELECT * FROM Publishers WHERE State = CA AND name LIKE m%;
การเรียงและจัดกลุ่ม
การเรียงใช้ ORDER BY clause
SELECT * FROM Publishers ORDER BY [Company Name] ;
การเรียงจากน้อยไปมากให้ใช้คีย์เวิร์ด DESC ต่อท้ายฟิลด์ต้องการเรียงจากน้อยไปมาก
SELECT * FROM Publishers ORDER BY State, City DESC;
การจัดกลุ่มใช้ GROUP BY Clause
SELECT [Year Published], Count (*) As Title In Year FROM Titles
GROUP BY [Year Published];
ให้แสดงจำนวนหนังสือใน 10 ปีสุดท้าย
SELECT TOP 10 [Year Published], COUNT (*) As Title In Year FROM Titles
GROUP BY [Year Published] ORDER BY [Year Published] DESC;
การคัดเลือกด้วยเขื่อนไขของ HAVING Clause เช่น แสดงเฉพาะที่มีจำนวนหนังสือมากกว่า
50
SELECT [Year Published], COUNT (*) As Title In Year FROM Titles
GROUP BY [Year Published] HAVING COUNT ((*) >50);
คิวรี่ย่อย
คิวรี่ย่อย เป็นการใช้ประโยคคำสั่ง Select ภายในประโยคคำสั่ง Select อีกคำสั่งสำหรับการค้นหาที่ซับซ้อน
SELECT * FROM Title WHERE Pub ID =
(SELECT pubID FROM Publishers WHERE Name = MACMILLIAN);
JOIN
JOIN ใช้สำหรับการดึงข้อมูลจาก 2 table ที่สัมพันธ์กับผ่านฟิลด์ร่วม ถ้าแถวของ
table แรกแสดงตามฟิลด์ของ table ที่สอง ให้ใช้ ON clause ในคำสั่ง JOIN
SELECT Title.Title, Titles. [Year Published], Publishers.Name FROM Titles
INNER JOIN Publishers ON Titles.PubID = Publishers.PubID
การใช้ไวยากรณ์ tablename.fieldname เช่น Titles.PubID เมื่อชื่อฟิลด์มีอยู่ใน
2 table ที่เชื่อมกัน
นอกจากมี LEFT JOIN สำหรับการแสดงเรคคอร์ดของ table แรกทั้งหมดถึงแม้จะมีเรคคอร์ดของ
table แรกมีค่าของฟิลด์ที่ไม่ตรงกับฟิลด์เชื่อมของ table ที่สอง
SELECT Titles.Title, Titles.[Year Published], Publishers.Name FROM Titles
LEFT JOIN Publishers ON Titles.PubID = Publishers.PubID;
RIGHT JOIN สำหรับการแสดงเรคคอร์ดของ table ที่สองทั้งหมด ถึงแม้ว่าจะมีเรคคอร์ดของ
table ที่สองมีค่าของฟิลด์ที่ไม่ตรงกับฟิลด์เชื่อมของ table แรก
UNION
การนำ table 2 ต่อกัน สามารถทำได้โดยใช้คีย์เวิร์ด UNION
SELECT Name, Address, City FROM Customers
UNION SELECT CompanyName, Address, City FROM Suppliers
คำสั่ง Insert Into
คำสั่ง INERT INTO ใช้ในประโยคคำสั่งสำหรับการเพิ่มเรคคอร์ดใหม่
ไวยากรณ์
INERT INTO tablename [(fieldname1, fieldname2,...)]
VALUES (value1, value 2,...);
[ ] ตัวเลือก
หมายเหตุจำนวน value ต้องเท่ากับ fieldname
INERT INTO Authors (Author, [Year Born] VALUES (Frank Whale, 1960);
คำสั่ง Update
คำสั่ง UPDATE ใช้ในประโยคคำสั่งสำหรับการปรับปรุงค่าในเรคคอร์ด
ไวยากรณ์
UPDATE tablename
SET fieldname = expression
WHERE [condition];
[ ] ตัวเลือก
UPDATE Authors SET [Year Born] = 1961 WHERE Author = Frank Whale;
|