1. SELECT Statement
ไวยากรณ์
ประโยคคำสั่ง SELECT
SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE conditions ]
[GROUP BY column-list ]
[HAVING conditions ]
[ORDER BY column-list [ASC | DESC] ];
[ ] ตัวเลือก
FROM table1[,table2]
[WHERE conditions ]
[GROUP BY column-list ]
[HAVING conditions ]
[ORDER BY column-list [ASC | DESC] ];
[ ] ตัวเลือก
ตัวอย่าง
SELECT name, title, dept
FROM employee
WHERE title LIKE 'Pro%';
ประโยคคำสั่งข้างบนจะเลือก แถว/ค่า ในคอลัมน์ name, title และ dept จาก table “employee” ที่มี title เริ่มต้นด้วย ‘Pro’ ซึ่งจะส่งตำแหน่งงานของ Programmer หรือตำแหน่งอื่นที่ขึ้นต้นด้วย Pro ออกมา
FROM employee
WHERE title LIKE 'Pro%';
2. GROUP BY
ไวยากรณ์
GROUP BY clause
SELECT column1, SUM(column2 )
FROM list-of-tables
GROUP BY column-list ;
GROUP BY clause ใช้หาผลรวมของคอลัมน์จากแถวในคอลัมน์ที่ระบุ และทำงานร่วมกับ aggregate function ที่ทำงานกับคอลัมน์ 1 คอลัมน์หรือมากกว่า เพื่อหาผลรวมของกลุ่มของแถวข้อมูล
SELECT max(salary), dept
FROM employee
GROUP BY dept;
ประโยคคำสั่งนี้จะเลือกค่า salary มากที่สุด ในแต่ละฝ่าย
FROM list-of-tables
GROUP BY column-list ;
FROM employee
GROUP BY dept;
ตัวอย่าง
การจัดกลุ่มภายในคอลัมน์ เช่น table ‘item_order’ มีคอลัมน์ quantity ที่เก็บค่า 1, 2, 3 และอื่นๆ โดยต้องการหาค่าราคาสูงสุดของละค่าใน quantity สามารถเขียนคำสั่งได้ดังนี้
SELECT quantity, max(price)
FROM items_ordered
GROUP BY quantity;
FROM items_ordered
GROUP BY quantity;
3. HAVING
ไวยากรณ์
HAVING clause
SELECT column1, SUM(column2 )
FROM list-of-tables
GROUP BY column-list
HAVING condition ;
HAVING clause ยินยอมให้ระบุเงื่อนไขบนแถวของแต่ละกลุ่ม หรือสามารถเลือกแถวตามเงื่อนไขที่ระบุ HAVING clause ควรตามหลัง GROUP BY clause
FROM list-of-tables
GROUP BY column-list
HAVING condition ;
ตัวอย่าง
สมมติให้ table “employee” มีคอลัมน์เก็บข้อมูล ชื่อ (name), ฝ่าย (dept), เงินเดือน (salary) และ อายุ (age) ถ้าต้องการเลือกค่าเฉลี่ยเงินเดือนของพนักงานในแต่ละฝ่าย สามารถใช้คำสั่งนี้
SELECT dept, avg(salary)
FROM employee
GROUP BY dept;
FROM employee
GROUP BY dept;
4. ORDER BY
ไวยากรณ์
ORDER BY clause
SELECT column1, SUM(column2 )
FROM list-of-tables
ORDER BY olumn-list [ASC | DESC];
[ ] ตัวเลือก
ORDER BY clause เป็น clause ตัวเลือกซึ่งยินยอมให้แสดงผลลัพธ์ของคิวรี่ที่เรียงลำดับ (ทั้งเรียงลำดับจากน้อยไปมาก หรือ จากมากไปน้อย) ตามคอลัมน์ที่ระบุให้เรียงลำดับ
ASC = Ascending order (เรียงลำดับจากน้อยไปมาก) - เป็นค่าเริ่มต้น
DESC = Descending order (เรียงลำดับจากมากไปน้อย)
ตัวอย่าง
SELECT employee_id, dept, name, age, salary
FROM employee
WHERE dept = 'Sales'
ORDER BY salary;
ประโยคคำสั่งนี้จะเลือก employee_id, dept, name, age และ salary จาก table “employee” ที่ค่า dept เท่ากับ ‘Sales’ และแสดงผลลัพธ์ในลำดับจากน้อยไปมากตาม salary
ถ้าต้องการเรียงลำดับแบบหลายคอลัมน์ ต้องแยกคอลัมน์ด้วยเครื่องหมายจุลภาค
SELECT employee_id, dept, name, age, salary
FROM employee
WHERE dept = 'Sales'
ORDER BY salary, age DESC;
FROM list-of-tables
ORDER BY olumn-list [ASC | DESC];
[ ] ตัวเลือก
ASC = Ascending order (เรียงลำดับจากน้อยไปมาก) - เป็นค่าเริ่มต้น
DESC = Descending order (เรียงลำดับจากมากไปน้อย)
FROM employee
WHERE dept = 'Sales'
ORDER BY salary;
FROM employee
WHERE dept = 'Sales'
ORDER BY salary, age DESC;
5. การรวมเงื่อนไข และ Boolean Operator
AND OPERATOR
AND operator ใช้เชื่อม 2 เงื่อนไข หรือมากกว่าและแสดงผลลัพธ์เฉพาะที่สอดคล้องกับเงื่อนไขที่กำหนดทั้งหมด
ไวยากรณ์
AND operator
SELECT column1, SUM(column2 )
FROM list-of-tables
WHERE condition1 AND condition2 ;
AND สามารถใช้เชื่อมเงื่อนไขใน WHERE clause ตั้งแต่ 2 เงื่อนไขขึ้นไป โดยการแสดงแถวข้อมูลตามเงื่อนไขต้องเป็นจริงทุกค่า
FROM list-of-tables
WHERE condition1 AND condition2 ;
ตัวอย่าง
SELECT employee_id, name, title, salary
FROM employee
WHERE salary >= 50000.00 AND title = 'Programmer';
ประโยคคำสั่งนี้แสดงข้อมูล employee_id, name, title และ salary จาก table “employee” ที่เงินเดือน (salary) มากกว่าหรือเท่ากับ 50,000 และ ตำแหน่ง (title) เท่ากับ Programmer’ ซึ่งข้อมูลสามารถแสดงออกมา เมื่อเงื่อนไขทั้งสองเป็นจริง ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริงจะไม่แสดงออกมา
ที่มา:http://www.widebase.net/database/sql/sqlquery/sqlquery11.shtml
FROM employee
WHERE salary >= 50000.00 AND title = 'Programmer';
ไม่มีความคิดเห็น:
แสดงความคิดเห็น