การเรียกค้นข้อมูลเป็นการสอบถามข้อมูลหรือ Query โดยการนำข้อมูลจากฐานข้อมูลมาแสดงออกทางจอภาพ การสอบถามข้อมูลนี้ในภาษา SQL ใช้คำสั่ง SELECT โดยการเรียกค้นข้อมูลจะเป็นไปตามเงื่อนไขที่ผู้ใช้ข้อมูลระบุ
คำสั่ง SELECT แบบง่ายมีรูปแบบดังนี้
SELECT *
FROM <table name>;
SELECT * เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูลทุกคอลัมน์
FROM เป็นการกำหนดว่าให้เรียกดูข้อมูล ได้จากตารางใดบ้าง
table name ชื่อตารางที่ต้องการเรียกค้นข้อมูล
การเรียกดูข้อมูลสามารถเรียกดูได้มากกว่า 1 คอลัมน์ขึ้นไป โดยถ้ามีมากกว่า 1 คอลัมน์ แต่ละคอลัมน์จะต้องคั่นด้วยเครื่องหมายคอมม่า(,) และถ้าต้องการดูทุกคอลัมน์จะใช้เครื่องหมาย ดอกจัน(*) หลัง SELECT การใช้คำสั่ง SELECT จะใช้ควบคู่กับคำสั่ง FROM เสมอในการเลือกตาราง
การใช้คำสั่ง SELECT ในการเรียกค้นข้อมูลทุกคอลัมน์ในตารางจะใช้เครื่องหมายดอกจัน(*) ตามหลังคำสั่ง SELECT
ตัวอย่าง ตาราง CHECKS
CHECK# |
PAYEE |
AMOUNT |
REMARKS |
1. |
Malee Benjanee |
150 |
Have sons next time |
2. |
Reading R.R |
24534 |
Train to Chiangmai |
3. |
Malee Benjanee |
20032 |
Cellular Phone |
4. |
Surasit Utities |
98 |
Gas |
5. |
Jintana $ Mitree |
150 |
Groesries |
6. |
Cash |
25 |
Wild Night Out |
7. |
Benjawan Gas |
251 |
Gas |
ตัวอย่าง ถ้าต้องการดูทุกคอลัมน์ในตารางก็จะใช้เครื่องหมายดอกจัน(*) แทนรายการคอลัมน์ได้ทั้งหมดได้ดังนี้
select * from checks;
ผลลัพธ์
CHECK# |
PAYEE |
AMOUNT |
REMARKS |
1. |
Malee Benjanee |
150 |
Have sons next time |
2. |
Reading R.R |
24534 |
Train to Chiangmai |
3. |
Malee Benjanee |
20032 |
Cellular Phone |
4. |
Surasit Utities |
98 |
Gas |
5. |
Jintana $ Mitree |
150 |
Groesries |
6. |
Cash |
25 |
Wild Night Out |
7. |
Benjawan Gas |
251 |
Gas |
จากคำสั่ง select * จะเป็นการบอกให้นำข้อมูลทั้งจากตาราง CHECKS มา แสดง (from checks) โดยลำดับตามคอลัมน์ในฐานข้อมูล
การใช้คำสั่ง SELECT ในการเรียกค้นข้อมูลเฉพาะคอลัมน์ที่สนใจทำได้โดยใส่เฉพาะคอลัมน์ที่ต้องการดูในส่วนของคำสั่ง SELECT มีรูปแบบคังนี้
SELECT <column 1, column 2, >
FROM <table name>;
SELECT เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูล
column 1, column 2, เป็นคอลัมน์ที่ต้องการเรียกค้น
FROM เป็นการกำหนดว่าให้เรียกดูข้อมูลได้จากตารางใดบ้าง
table name ชื่อตารางที่ต้องการเรียกค้นข้อมูล
การเลือกบางคอลัมน์
ตัวอย่าง ถ้าต้องการแสดงข้อมูลบางคอลัมน์จะใช้ เช่น ถ้าต้องการดูคอลัมน์ CHECK# และ AMOUNTใช้คำสั่งดังนี้
SELECT CHECK#, amount from checks;
ผลลัพธ์
CHECK# |
AMOUNT |
1 |
150 |
2 |
24534 |
3 |
20032 |
4 |
98 |
5 |
150 |
6 |
25 |
7 |
251 |
จะเห็นได้ว่าเราสามารถใช้ทั้งอักษรตัวใหญ่และตัวเล็กปนกันในคำสั่ง ซึ่งอักษรตัวใหญ่และตัวเล็กจะไม่มีความแตกต่างกัน
ตัวอย่าง ถ้าต้องแสดงข้อมูลโดยการเปลี่ยนลำดับคอลัมน์ของข้อมูล จะใช้คำสั่งดังนี้
SELECT PAYEE, REMARKS, AMOUNT, CHECK#
FROM checks;
ผลลัพธ์
PAYEE |
REMARKS |
AMOUNT |
CHECK# |
Malee Benjanee |
Have sons next time |
150 |
1 |
Reading R.R. |
Train to Chiangmai |
24534 |
2 |
Malee Benjanee |
Cellular Phone |
20032 |
3 |
Surasit Utilities |
Gas |
98 |
4 |
Jintana $ Mitree |
Groesries |
150 |
5 |
Cash |
Wild Night Out |
25 |
6 |
Benjawan Gas |
Gas |
251 |
7 |
จากตาราง CHECKS ถ้าต้องการดูคอลัมน์ AMOUNT เป็นดังนี้
select amount from checks;
ผลลัพธ์
AMOUNT |
150 |
24534 |
20032 |
98 |
150 |
25 |
251 |
จากผลลัพธ์จะเห็นว่าในคอลัมน์ AMOUNT มีข้อมูลที่ซ้ำกันอยู่คือ 150 ถ้าใช้คำสั่ง Distinct ในคำสั่ง SELECT จะทำให้ข้อมูลที่ซ้ำกันนั้นแสดงออกมาเพียงครั้งเดียวดังนี้
select DISTINCT amount from checks;
ผลลัพธ์
AMOUNT |
25 |
251 |
98 |
150 |
20032 |
24534 |
จะเห็นว่าจะแสดงข้อมูลออกมาเพียง 6 แถวเท่านั้น
SELECT <column 1, column 2, >
FROM <table name>
[WHERE<condition>];
SELECT เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูล
column 1, column 2, คอลัมน์ที่ต้องการเรียกค้น
FROM เป็นการกำหนดว่าให้เรียกดูข้อมูล ได้จากตารางใดบ้าง
table name ชื่อตารางที่ต้องการเรียกค้นข้อมูล
WHERE<condition> ส่วนของคำสั่งที่บอกเงื่อนไขที่จะใช้ในการค้นหาข้อมูล
การใช้ WHERE ในคำสั่ง SELECT จะช่วยให้สามารถสืบค้นข้อมูลได้อย่างเจาะจงมากกว่า เช่น ถ้าใช้เฉพาะ SELECT อย่างเดียวจะได้ข้อมูลทั้งหมด ตัวอย่างเช่น
ตัวอย่าง ตาราง BIKES
NAME |
FRAMESIZE |
COMPOSITION |
MILESRIDDEN |
TYPE |
TREK 2300 |
22.5 |
CARBON FIBER |
3500 |
RACING |
BURLEY |
22 |
STEEL |
2000 |
TANDEM |
GIANT |
19 |
STEEL |
1500 |
COMMUTER |
FUJI |
20 |
STEEL |
500 |
TOURING |
SPECIALIZED |
16 |
STEEL |
100 |
MOUNTAIN |
CANNONDALE |
22.5 |
ALUMINUM |
3000 |
RACING |
ถ้าต้องการจะดูเฉพาะข้อมูลของ BURLEY เท่านั้นเราจะต้องใช้ คำสั่ง WHERE ดังนี้
SELECT * FROM BIKES
WHERE NAME = BURLEY ;
ผลลัพธ์
NAME |
FRAMESIZE |
COMPOSITION |
MILESRIDDEN |
TYPE |
BURLEY |
22 |
STEEL |
2000 |
TANDEM |
การเรียกค้นข้อมูลอย่างมีเงื่อนไขตามหลักของภาษา SQL จะอยู่หลังคำสั่ง WHERE ซึ่งสามารถเปรียบเทียบตามโอเปอเรเตอร์ ในภาษา SQL อาจแบ่งโอเปอเรเตอร์ ได้เป็น 4 กลุ่ม คือ
1. โอเปอเรเตอร์คณิตศาสตร์(Arithmetic Operators)
2. โอเปอเรเตอร์เปรียบเทียบ(Comparison Operators)
3. โอเปอเรเตอร์อักขระ(Character Operators)
4. โอเปอเรเตอร์ตรรกะ(Logical Operators)
4.1. โอเปอเรเตอร์คณิตศาสตร์(Arithmetic Operators) ได้แก่ operators ที่เป็น plus (+) minus (-), divide (/), multiply (*), and modulo (%)
- โอเปอเรเตอร์ Plus (+) เป็นคำสั่งที่ใช้รวมค่า 2 ค่าเข้าด้วยกัน ดังตัวอย่างต่อไปนี้
จากตาราง PRICE มีรายละเอียดดังนี้
ITEM |
WHOLESALE |
TOMATOES |
34 |
POTATOES |
51 |
BANANAS |
67 |
TURNIPS |
45 |
CHEESE |
89 |
APPLES |
23 |
ตัวอย่าง ถ้าในคำสั่งในคอลัมน์ WHOLESALE ต้องการ บวก 15 เข้าไป ผลลัพธ์ที่ได้จะแสดงค่าของ WHOLESALE ที่บวก 15 เข้าไปโดยคอลัมน์ แต่จะแสดงเพียงชั่วคราวที่หน้าจอเท่านั้น โดยไม่มีผลต่อข้อมูลของคอลัมน์ WHOLESALE ในตาราง PRICE คอลัมน์ WHOLESALE ในตาราง PRICE จะมีค่าเหมือนเดิม
และจากคอลัมน์ WHOLESALE+15 สามารถให้แสดงผลหน้าจอเป็นชื่อคอลัมน์อื่นได้ โดยถ้าต้องการให้ WHOLESALE +15 และให้แสดงผลเป็นคอลัมน์ RETAIL จะใช้คำสั่งดังนี้
SELECT ITEM, WHOLESALE, (WHOLESALE + 0.15) RETAIL
FROM PRICE;
ผลลัพธ์
ITEM |
WHOLESALE |
RETAIL |
TOMATOES |
34 |
49 |
POTATOES |
51 |
66 |
BANANAS |
67 |
82 |
TURNIPS |
45 |
60 |
CHEESE |
89 |
104 |
APPLES |
23 |
38 |
นอกจากนี้เราสามารถแสดงข้อมูลในคอลัมน์ให้มีชื่อใหม่ตามที่ต้องการได้ เช่น ต้องการให้แสดงข้อมูลในคอลัมน์ ITEM ในตาราง PRICE ให้แสดงออกมาทางหน้าจอเป็นชื่อคอลัมน์ PRODUCE ได้ โดยในคำสั่งยังไม่ใส่เครื่องหมายคอมม่าระหว่าง ITEM และ PRODUCE เพื่อให้ภาษาSQL เข้าใจได้ว่าจะแสดงคอลัมน์ ITEM เป็นคอลัมน์ PRODUCE ดังตัวอย่างต่อไปนี้
SELECT ITEM PRODUCE, WHOLESALE, WHOLESALE * 0.25 RETAIL
FROM PRICE:
ผลลัพธ์
PRODUCE |
WHOLESALE |
RETAIL |
TOMATOES |
34 |
59 |
POTATOES |
51 |
76 |
BANNANAS |
67 |
92 |
TURNIPS |
45 |
70 |
CHEESE |
89 |
114 |
APPLES |
23 |
48 |
- โอเปอร์เรเตอร์ Minus (-) คำสั่ง Minus ใช้ได้เป็น 2 กรณีคือ
1. การเปลี่ยนเครื่องหมายจากบวกเป็นลบและจากลบเป็นบวก
2. การนำข้อมูลของคอลัมน์หนึ่งไปลบออกจากข้อมูลของอีกคอลัมน์หนึ่ง
1.การเปลี่ยนเครื่องหมายจากบวกเป็นลบและจากลบเป็นบวก เช่น รายละเอียดของตาราง HILOW เป็นดังนี้
ตัวอย่างตาราง HILOW
STATE |
HIGHTEMP |
LOWTEMP |
CA |
120 |
-50 |
FL |
110 |
20 |
LA |
101 |
15 |
ND |
99 |
-70 |
NE |
100 |
-60 |
ตัวอย่าง ถ้าต้องการให้คอลัมน์ HIGHTEMP และ LOWTEMP มีค่าจากลบเป็นบวก จากบวกเป็นลบ และแสดงหน้าจากคอลัมน์ HIGHTEMP เป็นคอลัมน์ LOWS และคอลัมน์ LOWTEMP เป็นคอลัมน์ HIGHS ใช้คำสั่งดังนี้
SELECT STATE, - HIGHTEMP LOWS, -LOWTEMP HIGHS
FROM HILOW;
ผลลัพธ์
STATE |
LOWS |
HIGHS |
CA |
-120 |
50 |
FL |
-110 |
-20 |
LA |
-101 |
-15 |
ND |
-99 |
70 |
NE |
-100 |
60 |
2.การนำข้อมูลของคอลัมน์หนึ่งไปลบออกจากข้อมูลของอีกคอลัมน์หนึ่ง
ตัวอย่าง ถ้าต้องการนำคอลัมน์ HIGHTEMP ลบออกจากคอลัมน์ LOWTEMPแล้วนำผลลัพธ์ที่ได้แสดงในคอลัมน์ DIFFERENCE โดยใช้คำสั่งดังนี้
SELECT STATE,HIGHTEM LOWS,
LOWTEMP HIGHS, (HIGHTEMP - LOWTEMP ) DIFFERENCE
FROM HILOW;
ผลลัพธ์
STATE |
LOWS |
HIGHS |
DIFFERENCE |
CA |
-50 |
120 |
170 |
FL |
20 |
110 |
90 |
LA |
15 |
99 |
84 |
ND |
-70 |
101 |
171 |
NE |
-60 |
100 |
160 |
- โอเปอร์เรเตอร์ Divide (/)เป็นคำสั่งที่ใช้ในการหารข้อมูลดังตัวอย่าง เช่น
ตัวอย่างตาราง PRICE
ITEM |
WHOLESALE |
TOMATOES |
34 |
POTATOES |
51 |
BANNANAS |
67 |
TURNIPS |
45 |
CHEESE |
89 |
APPLES |
23 |
เมื่อต้องการให้คอลัมน์ WHOLESALE ถูกหารด้วย 2 และแสดงในคอลัมน์ SALEPRICE จะใช้คำสั่งดังนี้
SELECT ITEM, WHOLESALE, (WHOLESALE/2) SALEPRICE
FROM PRICE;
ผลลัพธ์
ITEM |
WHOLESALE |
SALEPRICE |
TOMATOES |
34 |
17 |
POTATOES |
51 |
25.5 |
BANNANAS |
67 |
33.5 |
TURNIPS |
45 |
22.5 |
CHEESE |
89 |
44.5 |
APPLES |
23 |
11.5 |
จากตัวอย่างคอลัมน์ SALEPRICE เป็นผลลัพธ์ที่เกิดจากการนำคอลัมน์ WHOLESALE มาหารด้วย 2
- โอเปอร์เรเตอร์ Multiply (*)เป็นคำสั่งที่ใช้ในคูณค่าของข้อมูลในคอลัมน์
ตัวอย่างตาราง PRICE
ITEM |
WHOLESALE |
TOMATOES |
34 |
POTATOES |
51 |
BANANAS |
67 |
TURNIPS |
45 |
CHEESE |
89 |
APPLES |
23 |
ตัวอย่าง ถ้าต้องการคูณคอลัมน์ WHOLESALE ด้วย 0.9 ให้ได้ผลลัพธ์เป็นข้อมูลในคอลัมน์ใหม่ที่ชื่อ NEWPRICE จะใช้คำสั่งดังนี้
SELECT ITEM, WHOLESALE, WHOLESALE * 0.9 NEWPRICE
FROM PRICE;
ผลลัพธ์
ITEM |
WHOLESALE |
NEWPRICE |
TOMATOES |
34 |
30.6 |
POTATOES |
51 |
45.9 |
BANANAS |
67 |
60.3 |
TURNIPS |
45 |
40.5 |
CHEESE |
89 |
80.1 |
APPLES |
23 |
20.7 |
- โอเปอเรเตอร์ Modulo (%)เป็นคำสั่งที่ได้ผลลัพธ์เป็นเศษที่ได้จากการหาร
ตัวอย่าง ตาราง REMAINS
NUMERATOR |
DENOMENATOR |
10 |
5 |
8 |
3 |
23 |
9 |
40 |
17 |
1024 |
16 |
85 |
34 |
ตัวอย่าง ถ้าต้องการสร้างคอลัมน์ REMAINDER ที่มีข้อมูลที่เกิดจากการนำข้อมูลในคอลัมน์ NUMERATOR หารด้วยข้อมูลในคอลัมน์ DENOMINATOR เหลือเศษในการหารเท่าไรแล้วนำค่าที่ได้ไปเก็บไว้ในคอลัมน์ REMAINDER ดังคำสั่งต่อไปนี้
SELECT NUMERATOR,
DENOMINATOR,
NUMERATOR%DENOMINATOR REMAINDER
FROM REMAINS;
ผลลัพธ์
NUMERATOR |
DENOMENATOR |
REMAINDER |
10 |
5 |
0 |
8 |
3 |
2 |
23 |
9 |
5 |
40 |
17 |
6 |
1024 |
16 |
0 |
85 |
34 |
17 |
นอกจากการใช้เครื่องหมาย % ในคำสั่ง Modulo แล้วในภาษา SQL ยังใช้ฟังก์ชัน MOD แทนเครื่องหมาย %ได้ซึ่งจะให้ผลลัพธ์เช่นเดียวกันดังคำสั่งต่อไปนี้
SELECT NUMERATOR,
DENOMINATOR,
MOD(NUMERATOR, DENOMONATOR) REMAINDER
FROM REMAINS;
4.2. โอเปอรเรเตอร์ เปรียบเทียบ (Comparison Operators เป็น Operator ที่จะให้ค่าออกมา 3 ค่า คือ ถูก (TRUE) ผิด (FALSE) ไม่รู้ (Unknow) การไม่รู้หมายถึง ถ้านำข้อมูลที่มีค่าไปเปรียบเทียบกับข้อมูลที่เป็น NULL ตัวเปรียบเทียบจะให้ค่าไม่รู้
ตัวอย่างในตาราง PRICE
ITEM |
WHOLESALE |
TOMATOES |
34 |
POTATOES |
51 |
BANANAS |
67 |
TURNIPS |
45 |
CHEESE |
89 |
APPLES |
23 |
ORANGES |
ตัวอย่าง ถ้าต้องการดูว่า ITEM ที่ไม่มีค่า WHOLESALE หรือค่า WHOLESALEเป็นค่าว่างจะใช้คำสั่งดังนี้
SELECT *
FROM PRICE
WHERE WHOLESALE IS NULL;
หรือ
SELECT *
FROM PRICE
WHERE WHOLESALE = NULL;
ผลลัพธ์
ITEM |
WHOLESALE |
ORANGES |
4.3 โอเปอเรเตอร์ตัวอักษร(Character Operators) ตัวโอเปอเรเตอร์ LIKE เป็นการค้นหาข้อมูลของคอลัมน์ที่เก็บข้อมูลประเภทตัวอักษรเท่านั้น โดยไม่ทราบค่าข้อมูลทั้งหมดที่จะคันหา หรือรู้เพียงบางตัวอักษรเท่านั้น โอเปอร์เรเตอร์ LIKE จะระบุต่อท้ายชื่อคอลัมน์ที่เป็นเงื่อนไข โดยจะใช้สัญลักษณ์ที่เป็นตัวค้นหาช่วยในการค้นหาข้อมูลที่เรียกว่า วิน การ์ด (WILD Card) สัญลักษณ์ดังกล่าวประกอบด้วย % และ _(เครื่องหมายขีดเส้นใต้) โดยข้อมูลบางส่วนที่ใช้ในการค้นหาพร้อมกับสัญลักษณ์ทั้งสองนี้ จะต้องมีเครื่องหมาย กำกับเสมอ ความหมายของสัญลักษณ์ทั้งสองเป็นดังนี้คือ
- สัญลักษณ์ % ใช้แทนจำนวนอักษรได้หลายตัว เช่น พนักงานขายที่ขึ้นต้นด้วยตัว T จะเขียนเงื่อนไขว่า WHERE SALENAME LIKE T%
- สัญลักษณ์ _ ใช้แทนจำนวนที่ไม่ทราบค่า 1 ตัว เช่น พนักงานขายที่มีชื่อขึ้นต้น S และมีความยาว 7 ตัวอักษร เช่น WHERE SALENAME LIKE S______
SELECT PAYEE, AMOUNT, REMARKS
FROM CHECKS
WHERE PAYEE LIKE (CA%);
ผลลัพธ์
PAYEE |
AMOUNT |
REMARKS |
Cash |
25 |
Wild Night Out |
Cash |
60 |
Trip to Saraburi |
Cash |
34 |
Trip to Nonthaburi |
กับคำสั่ง LIKE ดังตัวอย่างข้างต้น เปรียบเทียบกับคำสั่ง WITH
SELECT PAYEE, AMOUNT, REMARKS
FROM CHECKS
WHERE PAYEE STARING WITH (Ca);
ผลลัพธ์
PAYEE |
AMOUNT |
REMARKS |
Cash |
25 |
Wild Night Out |
Cash |
60 |
Trip to Saraburi |
Cash |
34 |
Trip to Nonthaburi |
จะเห็นว่าได้ผลลัพธ์เช่นเดียวกัน
ตัวอย่าง ถ้าต้องการให้แสดงคอลัมน์ PAYEE ที่ขึ้นต้นด้วยอักษร Ca หรือ คอลัมน์ REMARKS ที่ขี้นต้นด้วยอักษร G จะใช้คำสั่งดังนี้
SELECT PAYEE, AMOUNT, REMARKS
FROM CHECKS
WHERE PAYEE STARTING WITH(Ca)
OR
REMARKS LIKE G%;
ผลลัพธ์
PAYEE |
AMOUNT |
REMARKS |
Surasit Utilities |
98 |
Gas |
Jintana $ Mitree |
150 |
Groceries |
Cash |
25 |
Wild Night Out |
Benjawan Gas |
251 |
Gas |
Cash |
60 |
Trip to Saraburi |
Cash |
34 |
Trip to Nonthaburi |
Benjawan Gas |
1575 |
Gas |
4.4 โอเปอรเรเตอร์ตรรกะ (Logical Operator) เป็นตัวโอเปอเรเตอร์ที่ใช้ในการเปรียบเทียบ เชื่อมโยงค่า 2 ค่า
ตัวอย่าง ตาราง VACATION
LASTNAME |
EMPLOYEENUM |
YEARS |
LEAVETAKEN |
ARLEE |
101 |
2 |
4 |
AMPORNI |
104 |
5 |
23 |
JINTANA |
107 |
8 |
45 |
BOLIVAR |
233 |
4 |
80 |
TANACHOTE |
210 |
15 |
100 |
TAWATCHI |
211 |
10 |
78 |
จากตัวอย่างสมมุติว่าบริษัทให้พนักงานแต่ละคนสามารถหยุดงานได้ โดยพิจารณาจากจำนวนปีที่พนักงานทำงาน พนักงานจะหยุดงานได้ 12 วัน ในอายุการทำงานแต่ละปี ถ้าต้องการหาว่าพนักงานที่มีชื่อตัวหน้าว่า B และยังสามารถหยุดงานได้อีก 50 วัน จะใช้คำสั่ง ดังนี้
SELECT * LASTNAME, YEARS * 12 LEAVETAKEN REMAINING
FROM VACATION
WHERE LASTNAME LIKE B%
AND
YEARS * 12 LEAVETAKEN > 50;
ผลลัพธ์
LASTNAME |
REMAINING |
JINTANA |
51 |
TANACHOTE |
80 |
จากคำสั่งเราจะใช้คำสั่ง YEARS * 12 LEAVETAKEN เพื่อหาวันหยุดที่พนักงานยังเหลือ
- ตัวโอเปอเรเตอร์ AND เป็นตัวโอเปอเรเตอร์ ที่ใช้เชื่อมโยงค่า 2 ค่า โดยถ้าค่าหนึ่งเป็น TURE อีกค่าหนึ่งเป็น TURE จะให้ค่า TRUE ออกมา แต่ถ้าค่าหนึ่งเป็น TURE อีกค่าหนึ่งเป็น FALSE จะให้ค่าเป็น FALSE ตัวอย่างเช่น ถ้าต้องการหาว่ามีพนักงานที่ทำงานมากกว่า 5 ปี และเหลือวันหยุดมากกว่า 50% จะใช้คำสั่ง ดังนี้
SELECT LASTNAME WORKAHOLICS
FROM VACATION
WHERE YEARS >=5
AND
((YEARS *12) LEAVETAKEN)/(YEARS *12) >=0.50;
ผลลัพธ์
WORKAHOLICS |
AMPORNI |
JINTANA |
ตัวโอเปอเรเตอร์ OR ใช้ในการเปรียบเทียบถ้าสิ่งที่นำมาเปรียบเทียบสิ่งใดสิ่งหนึ่งเป็นจริง จะได้ผลลัพธ์ออกมาเป็นจริง
SELECT LASTNAME WORKAHOLICS
FROM VACATION
WHERE YEARS >=5
OR
((YEARS *12) LEAVETAKEN)/(YEARS *12)>=0.50;
ผลลัพธ์
WORKAHOLICS |
ARLEE |
AMPORNI |
JINTANA |
TANACHOTE |
TAWATCHI |
- ตัวโอเปอเรเตอร์ NOT ในการเปรียบเทียบถ้าสิ่งที่นำมาเปรียบเทียบเป็นจริงจะได้ผลลัพธ์ออกมาเป็นเท็จ แต่ถ้าสิ่งที่นำมาเปรียบเทียบเป็นเท็จผลที่ได้ออกมาจะเป็นจริง ดังตัวอย่าง
SELECT *
FORM VACATION
WHERE LASTNAME NOT LIKE B%;
ผลลัพธ์
LASTNAME |
EMPLOYEENUM |
YEARS |
LEAVETAKEN |
ARLEE |
101 |
2 |
4 |
COSTALES |
211 |
10 |
78 |
- ตัวโอเปอเรเตอร์ NOT ยังใช้กับ NULL ได้ ถ้านำ not กับ null มารวมกันแล้วจะใช้สำหรับค่าที่ไม่ว่าง
ตัวอย่างตารางPRICE
ITEM |
WHOLESALE |
TOMATOES |
34 |
POTATOES |
51 |
BANANAS |
67 |
TURNIPS |
45 |
CHEESE |
89 |
APPLES |
23 |
ORANGES |
ตัวอย่าง ถ้าต้องการให้แสดงเฉพาะข้อมูลที่มีค่าเท่านั้นจะใช้คำสั่ง not nullมาร่วมกับ null เพื่อแสดงเฉพาะข้อมูลที่มีค่าดังคำสั่งต่อไปนี้
SELECT *
FROM PRICE
WHERE wholesale is not null;
ผลลัพธ์
ITEM |
WHOLESALE |
TOMATOES |
34 |
POTATOES |
51 |
BANANAS |
67 |
TURNIPS |
45 |
CHEESE |
89 |
APPLES |
23 |
- โอเปอร์เรเตอร์ IN และ BETWEEN ตัวโอเปอเรเตอร์ IN เป็นการกำหนดเซ็ตของสิ่งที่ต้องการค้นหา โดยการกำหนดชื่อของสมาชิกเซ็ตลงไปในวงเล็บและแยกจากกันด้วยคอมม่า
SELECT *
FROM FRIENDS
WHERE STATE= Chiangmai
OR
STATE = Bangkok
OR
STATE = Puket;
ผลลัพธ์
LASTNAME |
FIRSTNAME |
PHONE |
ADDRESS |
SIRIWAN |
ARLEEWAN |
555-6666 |
Bangkok |
SURASIT |
CHAIYO |
555-6767 |
Puket |
WICHAI |
AMPORNWAN |
555-3116 |
Chiangmai |
SELECT *
FROM FRIENDS
WHERE STATE IN (Chiangmai , Bangkok , Puket );
ผลลัพธ์
LASTNAME |
FIRSTNAME |
PHONE |
ADDRESS |
SIRIWAN |
ARLEEWAN |
555-6666 |
Bangkok |
SURASIT |
CHAIYO |
555-6767 |
Puket |
WICHAI |
AMPORNWAN |
555-3116 |
Chiangmai |
- ตัวโอเปอเรเตอร์ BETWEEN AND เป็นการกำหนดเงื่อนไขของคอลัมน์ระหว่างค่าสองค่า ซึ่งค่าสองที่ออยู่ระหว่างคำสั่ง BETWEEN AND นั้นจะมีความหมายว่าเท่ากับหรือมากกว่าและเท่ากับหรือน้อยกว่า
SELECT *
FROM PRICE
WHERE WHOLESALE >25
AND
WHOLESALE < 75;
ผลลัพธ์
ITEM |
WHOLESALE |
TOMATOES |
34 |
POTATOES |
51 |
BANANAS |
67 |
TURNIPS |
45 |
ถ้าใช้คำสั่ง BETWEEN จะเป็นดังนี้
SELECT *
FROM PRICE
WHERE WHOLESALE BETWEEN 25 AND 75;
ผลลัพธ์
ITEM |
WHOLESALE |
TOMATOES |
34 |
POTATOES |
51 |
BANANAS |
67 |
TURNIPS |
45 |