PostgreSQL : คำสั่ง SQL การใช้ Operator
Moderator: mindphp, ผู้ดูแลกระดาน
-
- PHP Super Hero Member
- โพสต์: 677
- ลงทะเบียนเมื่อ: 28/07/2014 10:24 am
PostgreSQL : คำสั่ง SQL การใช้ Operator
Operator หรือ ตัวดำเนินการ ที่ใช้ในการดำเนินการทางคณิตศาสตร์หรือการเปรียบเทียบเป็นต้น นิยมใช้กันในภาษา SQL เพื่อเป็นการกำหนดเงื่อนไขในคำสั่ง SQL และทำหน้าที่เป็นตัวเชื่อมเงื่อนไขหลาย ๆ เงื่อนไขเข้าด้วยกัน
โดยสามารถเรียงลำดับความสำคัญของตัวดำเนินการได้ดังนี้
1. ( )
2. NOT
3. AND
4. ALL, BETWEEN, IN, LIKE, OR
• NOT ใช้สำหรับในการปฏิเสธค่า เปลี่ยนแปลงค่าฟังก์ชันต่าง ๆ ให้เป็นตรงกันข้าม
• AND ใช้สำหรับการเชื่อมเงื่อนไขที่เป็นจริง มากกว่า 2 เงื่อนไข
• ALL ใช้สำหรับเปรียบเทียบค่ากับค่าทั้งหมดร่วมกับ SUB QUERY
• BETWEEN...AND... ใช้สำหรับกำหนดเงื่อนไขในการค้นหาค่าที่อยู่ระหว่างค่า ๆ หนึ่ง กับค่า ๆ หนึ่ง
• IN ใช้สำหรับเปรียบเทียบค่าในที่อยู่ในกลุ่มที่กำหนด
• LIKE ใช้สำหรับเปรียบเทียบตัวอักษร
• OR ใช้สำหรับการเชื่อมโยงเงื่อนไขและต้องมีเงื่อนใขใดเงื่อนไขหนึ่งที่เป็นจริง
** SUB QUERY คือการใช้คำสั่ง SELECT ซ้อนคำสั่ง SELECT
ตัวอย่าง : การใช้ Operator มีดังนี้
» การใข้ตัวดำเนินการ NOT
» การใข้ตัวดำเนินการ AND
» การใข้ตัวดำเนินการ ALL
» การใข้ตัวดำเนินการ BETWEEN...AND...
» การใข้ตัวดำเนินการ IN
» การใข้ตัวดำเนินการ LIKE
» การใข้ตัวดำเนินการ OR
ซึ่ง Operator บางตัวใน MySQL ไม่สามารถทำงานใน PostgreSQL ได้
-
- PHP Super Hero Member
- โพสต์: 677
- ลงทะเบียนเมื่อ: 28/07/2014 10:24 am
Re: PostgreSQL : คำสั่ง SQL การใช้ Operator
โค้ด :
โค้ด: เลือกทั้งหมด
NOT condition
condition : เงื่อนไขที่ต้องการจะปฏิเสธค่า
ตัวอย่าง :
โค้ด: เลือกทั้งหมด
SELECT *
FROM res_partner
WHERE name NOT IN ( 'Your Company', 'Administrator','Mediapole', 'Maxtor' );
จากภาพที่ 1 เป็นรายชื่อในตาราง res_partner จำนวน 25 ชื่อ เราต้องการให้แสดงข้อมูลโดยที่ได้ต้องการชื่อ 'Your Company', 'Administrator', 'Mediapole', 'Maxtor' จำนวน 4 ชื่อนี้ ในกรอบสีแดงๆ
จะเห็นได้ว่า ในภาพที่ 2 ชื่อที่เราทำการ NOT IN ไว้ หรือที่เราไม่ต้องให้แสดง ส่วนที่ขีดสีแดงไว้จะหายไป
เรายังสามารถใช้ NOT ร่วมกับตัวดำเนินการอื่นๆ ได้อีกหลายตัว เช่น
• NULL
โค้ด: เลือกทั้งหมด
SELECT *
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ IS NOT NULL;
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ NOT LIKE 'ตัวอักษร%';
โค้ด: เลือกทั้งหมด
SELECT *
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ NOT BETWEEN ค่าที่ 1 AND ค่าที่ 2 ;
โค้ด: เลือกทั้งหมด
SELECT *
FROM ชื่อตารางที่ 1
WHERE NOT EXISTS (SELECT *
FROM ชื่อตารางที่ 2
WHERE ชื่อตารางที่ 1.ชื่อคอลัมน์ของตารางที่ 1 = ชื่อตารางที่ 2.ชื่อชื่อคอลัมน์ของตารางที่ 2 ที่เชื่อมกับตารางที่ 1);
ย้อนกลับด้านบน
-
- PHP Super Hero Member
- โพสต์: 677
- ลงทะเบียนเมื่อ: 28/07/2014 10:24 am
Re: PostgreSQL : คำสั่ง SQL การใช้ Operator
โค้ด :
โค้ด: เลือกทั้งหมด
WHERE เงื่อนไขที่ 1
AND เงื่อนไขที่ 2
...
AND เงื่อนไขที่ n ;
โค้ด: เลือกทั้งหมด
SELECT id, name, street, city
FROM res_partner
WHERE name like '%l%'
AND street like '%c%'
ORDER BY id;
จากภาพที่ 1 และ ภาพที่ 2 เป็นรายชื่อทั้งหมดจากตาราง res_partner
เมื่อทำการตั้งเงื่อนไขให้แสดงโดยใช้คำสั่ง name like '%l%' จะได้รายชื่อดังที่แสดงใน ภาพที่ 3
และคำสั่ง street like '%c% รายชื่อจะแสดงดังภาพที่ 4
เมื่อใช้ตัวดำเนินการ AND เข้ามาเชื่อม ทั้ง 2 คำสั่งเข้าด้วยกัน
ทำให้ได้รายชื่อดังที่แสดงในภาพที่ 5 นั่นคือ ชื่อที่จะแสดงจะต้องที่ ตัว l และ ที่อยู่จะต้องมีตัว c อยู่ในชื่อ
ย้อนกลับด้านบน
-
- PHP Super Hero Member
- โพสต์: 677
- ลงทะเบียนเมื่อ: 28/07/2014 10:24 am
Re: PostgreSQL : คำสั่ง SQL การใช้ Operator
โค้ด :
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์ที่ 1, ชื่อคอลัมน์ที่ 2
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ที่ต้องการตั้งเงื่อนไข <= ALL ( SELECT ชื่อคอลัมน์ที่ต้องการตั้งเงื่อนไข FROM ชื่อตาราง );
ย้อนกลับด้านบน
-
- PHP Super Hero Member
- โพสต์: 677
- ลงทะเบียนเมื่อ: 28/07/2014 10:24 am
Re: PostgreSQL : คำสั่ง SQL การใช้ Operator
โค้ด :
โค้ด: เลือกทั้งหมด
expression BETWEEN value1 AND value2;
expression : ค่าที่ต้องการให้แสดงหรือค่าที่ค้องการคำนวณ
value1 ,value2 : ค่าที่ต้องการให้แสดงค่าระหว่าง หรือค่าที่ต้องการเปรียบเทียบ
ตัวอย่าง :
โค้ด: เลือกทั้งหมด
SELECT amount_total
FROM sale_order
WHERE amount_total BETWEEN 2000 AND 5000;
จากภาพที่ 1 ตาราง sale_order ที่แสดงราคารวมการสั่งซื้อทั้งหมด เมื่อใช้คำสั่ง WHERE amount_total BETWEEN 2000 AND 5000 เพื่อต้องการให้แสดงค่าผลรวมราคาระหว่าง 2,000 บาท - 5,000 บาท ผลที่ได้ ดังแสดงในภาพที่ 2
ย้อนกลับด้านบน
-
- PHP Super Hero Member
- โพสต์: 677
- ลงทะเบียนเมื่อ: 28/07/2014 10:24 am
Re: PostgreSQL : คำสั่ง SQL การใช้ Operator
โค้ด :
โค้ด: เลือกทั้งหมด
expression IN (value1, value2, .... value_n);
expression : ค่าที่ต้องการทดสอบ
value1 ,value2 : ค่าที่ต้องการให้ expression แสดงอยู่ในตัวที่กำหนด
ตัวอย่าง :
โค้ด: เลือกทั้งหมด
SELECT id, name,street,city
FROM res_partner
WHERE city IN ('Taipei', 'Fremont', 'Boston');
จากภาพที่ 1 และภาพที่ 2 ที่แสดงรายชื่อทั้งหมดของตาราง res_partner เราต้องการใช้คำสั่ง WHERE city IN ('Taipei', 'Fremont', 'Boston') เพื่อต้องการให้แสดงค่าในคอลัมน์ city ที่มีค่าเท่ากับ 'Taipei', 'Fremont', 'Boston'
ผลที่ได้ดังในภาพที่ 3
ย้อนกลับด้านบน
-
- PHP Super Hero Member
- โพสต์: 677
- ลงทะเบียนเมื่อ: 28/07/2014 10:24 am
Re: PostgreSQL : คำสั่ง SQL การใช้ Operator
โค้ด :
expression LIKE pattern [ ESCAPE 'escape_character' ]
อธิบายคำสั่ง
expression : ค่าที่อยู่ในคอลัมน์ หรือ ในฟิลด์ที่ต้องการให้แสดง
pattern : รูปแบบของค่าที่ต้องการจับคู่ หรือ ต้องการให้แสดงค่าออกมา
escape_character : ตัวเลือกจะช่วยในการทดสอบค่าที่ต้องแสดงของอักษร อักขระ เช่น % หรือ _
% ใช้ในการช่วยจับคู่หรือเปรียบเทียบให้ตรงกับความยาวของตัวอักษรใดๆ
_ ใช้ในการช่วยจับคู่ตัวอักษรเพียง 1 ตัว
การใช้ % (เปอร์เซ็น)
'?%' : % (เปอร์เซ็น) อยู่ข้างหลัง หมายความว่า คำใดๆ ที่ขึ้นต้นด้วย ?
'%?%' : % (เปอร์เซ็น) อยู่ทั้งขเางหน้าข้างหลัง หมายความว่า คำใดๆ ที่มีคำว่า ?
'%?' : % (เปอร์เซ็น) อยู่ข้างหน้า หมายความว่า คำใดๆ ที่ลงท้ายด้วย ?
ตัวอย่าง :
โค้ด: เลือกทั้งหมด
SELECT id, name
FROM res_partner
WHERE name like 'L%'
ผลจากการใช้คำสั่ง WHERE name like 'L%' หมายความว่า เราต้องการค้นหาให้แสดงรายชื่อในคอลัมน์ที่ name มีตัวอักษร 'L' อยู่ข้างหน้าสุด ผลที่ได้ดังภาพที่ 2
การใช้ _ (ขีดเส้นใต้)
ใช้เมื่อกำลังมองหาตัวอักษรเพียงตัวเดียว
ตัวอย่าง :
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ LIKE '??_??';
ย้อนกลับด้านบน
-
- PHP Super Hero Member
- โพสต์: 677
- ลงทะเบียนเมื่อ: 28/07/2014 10:24 am
Re: PostgreSQL : คำสั่ง SQL การใช้ Operator
โค้ด :
โค้ด: เลือกทั้งหมด
WHERE condition1
OR condition2
...
OR condition_n;
condition1 : เงื่อนไขที่ 1 ที่กำหนด
....
condition_n : เงื่อนไขที่ n
- หมายเหตุ
- OR ช่วยให้สามารถทำการทดสอบเงื่อนไขได้มากกว่า 2 เงื่อนไข
- OR จะทำการตรวจสอบว่า เงื่อนไขทั้งหมดที่กล่าวมาจะต้องมีความถูกต้อง อย่างน้อย 1 เงื่อนไข
- OR สามารถใช้ได้ทั้งในการ SELECT, INSERT, UPDATE หรือ DELETE
โค้ด: เลือกทั้งหมด
SELECT name,street,city,zip
FROM res_partner
WHERE name like '%J%'
OR city like '%M%'
OR zip like '%33%';
จากภาพจะเห็นได้ว่า เราได้ทำการตั้งเงื่อนไขว่า ข้อมูลที่เลือกให้แสดงจะต้องมี
- เงื่อนไขที่ 1 คือ "name" จะต้องมี J ตัวใหญ่อยู่
- เงื่อนไขที่ 2 คือ ใน "city" จะต้องมี M อยู่ใหญ่อยู๋ในชื่อเมือง
และเงื่อนไขสุดท้ายคือ zip ในรหัสประเทศจะต้องมี เลข "33"
ดังนั้น ข้อมูลที่แสดงจะต้องมีอยู่ในเงื่อนไข อย่างน้อย 1 เงื่อนไข จึงแสดงออกมา
ตัวอย่าง : การใช้ OR ใน INSERT
โค้ด: เลือกทั้งหมด
INSERT INTO z_cpartner
(name, email)
SELECT name , email
FROM res_partner
WHERE city = 'Taipei'
OR city = 'Miami';
รายชื่อทั้งหมดจากตาราง res_partner รายชื่อที่ได้ที่จากเงื่อนไขที่ว่า city = 'Taipei' หรือ city = 'Miami' ผลที่ได้ คำอธิบาย :
จากภาพที่ 2 และ 3 เป็นรายชื่อทั้งหมดของตาราง res_partner เราได้ทำการ insert โดยตั้งเงื่อนไขว่า ชื่อที่จะทำการ insert มานั้น จะต้องมี city ชื่อว่า 'Taipei' หรือ 'Miami' จึงจะทำการ insert มาได้
ตัวอย่าง : การใช้ OR ใน UPDATE
โค้ด: เลือกทั้งหมด
UPDATE ชื่อตาราง
SET คอลัมน์ที่ต้องการ = 'ค่าที่ต้องการ'
WHERE คอลัมน์ที่ตั้งเงื่อนไข = 'เงื่อนไข'
OR คอลัมน์ที่ตั้งเงื่อนไข > ค่า(ตัวเลข)(เงื่อนไข);
โค้ด: เลือกทั้งหมด
DELETE FROM ชื่อตาราง
WHERE คอลัมน์ที่ตั้งเงื่อนไข= 'เงื่อนไข'
OR คอลัมน์ที่ตั้งเงื่อนไข<= ค่า(ตัวเลข)(เงื่อนไข);
ย้อนกลับด้านบน
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ การใช้ Operator ในการประมวลผลข้อมูล ใน PHP
โดย pataponnew » 31/05/2021 12:47 pm » ใน PHP Knowledge - 0 ตอบกลับ
- 1717 แสดง
-
โพสต์ล่าสุด โดย pataponnew
31/05/2021 12:47 pm
-
-
-
โพสต์ใหม่ การใช้ operator ในการกำหนดเงื่อนไขใน php
โดย จันนุสรณ์ ดีแก่ » 17/11/2018 11:11 am » ใน PHP Knowledge - 0 ตอบกลับ
- 2120 แสดง
-
โพสต์ล่าสุด โดย จันนุสรณ์ ดีแก่
17/11/2018 11:11 am
-
-
-
โพสต์ใหม่ PostgreSQL : คำสั่ง SQL การใช้ INNER JOIN
โดย thitikorn_lp » 10/02/2015 6:25 pm » ใน PostgreSQL - 0 ตอบกลับ
- 5101 แสดง
-
โพสต์ล่าสุด โดย thitikorn_lp
10/02/2015 6:25 pm
-
-
-
โพสต์ใหม่ PostgreSQL : คำสั่ง SQL การใช้ UNION
โดย thitikorn_lp » 26/09/2014 10:29 am » ใน PostgreSQL - 0 ตอบกลับ
- 2053 แสดง
-
โพสต์ล่าสุด โดย thitikorn_lp
26/09/2014 10:29 am
-
-
- 0 ตอบกลับ
- 3376 แสดง
-
โพสต์ล่าสุด โดย thitikorn_lp
17/01/2015 3:12 pm
-
-
โพสต์ใหม่ PostgreSQL : คำสั่ง SQL การใช้ Comparison Operators (ตัวดำเนินการเปรียบเทียบ)
โดย thitikorn_lp » 02/03/2015 6:56 pm » ใน PostgreSQL - 0 ตอบกลับ
- 3074 แสดง
-
โพสต์ล่าสุด โดย thitikorn_lp
02/03/2015 6:56 pm
-
-
-
โพสต์ใหม่ วิธีเช็คเวอร์ชั่น PostgreSQL กรณีติดตั้ง PostgreSQL ไว้หลายเวอร์ชั่นในเครื่องเดียว
โดย mindphp » 13/02/2022 10:58 am » ใน PostgreSQL - 1 ตอบกลับ
- 2115 แสดง
-
โพสต์ล่าสุด โดย mindphp
30/05/2022 9:56 am
-
-
-
โพสต์ใหม่ Magento 2 with PostgreSQL Magento2 รองรับหลายฐานข้อมูล PostgreSQL
โดย mindphp » 07/01/2016 6:59 am » ใน Magento user Guide Knowledge (เลิกทำเนื้อหา) - 0 ตอบกลับ
- 7082 แสดง
-
โพสต์ล่าสุด โดย mindphp
07/01/2016 6:59 am
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 66