กวดวิชาSQL

SQL HOME บทนำ SQL ไวยากรณ์ SQL SQL Select SQL Select Distinct SQL ที่ไหน SQL และหรือไม่ใช่ คำสั่ง SQL โดย SQL แทรกลงใน ค่าว่างของ SQL SQL Update SQL Delete SQL Select Top SQL Min และ Max SQL Count, Avg, Sum SQL Like SQL Wildcards SQL ใน SQL ระหว่าง นามแฝงของ SQL การรวม SQL SQL Inner Join SQL เข้าร่วมด้านซ้าย SQL Right Join SQL เข้าร่วมแบบเต็ม เข้าร่วมด้วยตนเองของ SQL SQL Union กลุ่ม SQL โดย SQL มี SQL Exists SQL ใด ๆ ทั้งหมด SQL Select Into แทรก SQL ลงใน Select กรณี SQL ฟังก์ชัน SQL Null กระบวนงานที่เก็บไว้ของ SQL ข้อคิดเห็นของ SQL ตัวดำเนินการ SQL

ฐานข้อมูลSQL

SQL สร้าง DB SQL Drop DB ฐานข้อมูลสำรองของ SQL SQL สร้างตาราง SQL Drop Table SQL Alter Table ข้อจำกัดของ SQL SQL ไม่ใช่ Null SQL Unique คีย์หลักของ SQL คีย์ต่างประเทศของ SQL SQL Check SQL Default ดัชนี SQL SQL Auto Increment SQL Dates มุมมอง SQL การฉีด SQL SQL Hosting ประเภทข้อมูล SQL

การอ้างอิงSQL

คีย์เวิร์ด SQL ฟังก์ชัน MySQL ฟังก์ชันเซิร์ฟเวอร์ SQL ฟังก์ชัน MS Access SQL Quick Ref

ตัวอย่างSQL

ตัวอย่าง SQL แบบทดสอบ SQL แบบฝึกหัด SQL ใบรับรอง SQL

SQL ตัวดำเนินการใด ๆ และทั้งหมด


SQL ANY และตัวดำเนินการทั้งหมด

ตัว ดำเนินการ ANYและALLช่วยให้คุณสามารถเปรียบเทียบระหว่างค่าคอลัมน์เดียวกับช่วงของค่าอื่นๆ


ตัวดำเนินการใด ๆ ของ SQL

ผู้ANYประกอบการ:

  • ส่งคืนค่าบูลีนเป็นผล
  • คืนค่า TRUE หากค่าเคียวรีย่อยใดๆ ตรงตามเงื่อนไข

ANYหมายความว่าเงื่อนไขจะเป็นจริงหากการดำเนินการเป็นจริงสำหรับค่าใดๆ ในช่วง

ไวยากรณ์ใด ๆ

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

หมายเหตุ:ตัวดำเนินการต้องเป็นตัวดำเนินการเปรียบเทียบมาตรฐาน (=, <>, !=, >, >=, < หรือ <=)


ตัวดำเนินการ SQL ALL

ผู้ALLประกอบการ:

  • ส่งคืนค่าบูลีนเป็นผล
  • คืนค่า TRUE หากค่าเคียวรีย่อยทั้งหมดตรงตามเงื่อนไข
  • ใช้กับSELECT, WHEREและHAVINGประโยค

ALL หมายความว่าเงื่อนไขจะเป็นจริงก็ต่อเมื่อการดำเนินการเป็นจริงสำหรับค่าทั้งหมดในช่วง 

ไวยากรณ์ทั้งหมดด้วย SELECT

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

ไวยากรณ์ทั้งหมดด้วย WHERE หรือ HAVING

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

หมายเหตุ:ตัวดำเนินการต้องเป็นตัวดำเนินการเปรียบเทียบมาตรฐาน (=, <>, !=, >, >=, < หรือ <=)


ฐานข้อมูลสาธิต

ด้านล่างนี้คือการเลือกจาก ตาราง "ผลิตภัณฑ์"ในฐานข้อมูลตัวอย่าง Northwind:

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35
6 Grandma's Boysenberry Spread 3 2 12 - 8 oz jars 25
7 Uncle Bob's Organic Dried Pears 3 7 12 - 1 lb pkgs. 30
8 Northwoods Cranberry Sauce 3 2 12 - 12 oz jars 40
9 Mishi Kobe Niku 4 6 18 - 500 g pkgs. 97

และการเลือกจาก ตาราง "OrderDetails" :

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
6 10250 41 10
7 10250 51 35
8 10250 65 15
9 10251 22 6
10 10251 57 15


SQL ตัวอย่างใด ๆ

คำสั่ง SQL ต่อไปนี้แสดงรายการ ProductName หากพบระเบียนใด ๆ ในตาราง OrderDetails ที่มี Quantity เท่ากับ 10 (ซึ่งจะคืนค่า TRUE เนื่องจากคอลัมน์ Quantity มีค่าบางค่าเป็น 10):

ตัวอย่าง

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);

คำสั่ง SQL ต่อไปนี้แสดงรายการ ProductName ถ้าพบระเบียนใด ๆ ในตาราง OrderDetails ที่มีปริมาณมากกว่า 99 (ซึ่งจะคืนค่า TRUE เนื่องจากคอลัมน์ปริมาณมีค่าบางค่าที่มากกว่า 99):

ตัวอย่าง

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99);

คำสั่ง SQL ต่อไปนี้แสดงรายการ ProductName ถ้าพบระเบียนใด ๆ ในตาราง OrderDetails ที่มีปริมาณมากกว่า 1000 (ซึ่งจะคืนค่า FALSE เนื่องจากคอลัมน์ปริมาณไม่มีค่าที่มากกว่า 1000):

ตัวอย่าง

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);

ตัวอย่าง SQL ทั้งหมด

คำสั่ง SQL ต่อไปนี้แสดงรายการชื่อผลิตภัณฑ์ทั้งหมด:

ตัวอย่าง

SELECT ALL ProductName
FROM Products
WHERE TRUE;

คำสั่ง SQL ต่อไปนี้แสดงรายการ ProductName ถ้าระเบียนทั้งหมดในตาราง OrderDetails มีจำนวนเท่ากับ 10 ซึ่งแน่นอนว่าจะคืนค่า FALSE เนื่องจากคอลัมน์ Quantity มีค่าต่างๆ มากมาย (ไม่ใช่แค่ค่า 10):

ตัวอย่าง

SELECT ProductName
FROM Products
WHERE ProductID = ALL
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);