PostgreSQL : คำสั่ง SQL การ SELECT

PostgreSQL แชร์ความรู้เกี่ยวกับ PostgreSQL การใช้งาน ฟังก์ชั่นต่างๆ การเขียน SQL แบบ PGSQL

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

PostgreSQL : คำสั่ง SQL การ SELECT

โพสต์โดย thitikorn_lp » 01/09/2014 9:00 am

SELECT ( การเรียกดูข้อมูลจากในตาราง )

  การ SELECT เราจะพบมากที่สุดเมื่อมีการทำงานร่วมกับ PostgreSQL เป็นการเรียกดูข้อมูลในตารางบนฐานข้อมูลที่เรามีอยู่ ซึ่งคำสั่งใน PostgreSQL นั้นจะคล้ายกับ MySql ทั่วๆ ไป

รูปแบบคำสั่ง :

โค้ด: เลือกทั้งหมด

SELECT expressions
FROM tables
WHERE conditions;

อธิบายคำสั่ง
expressions     :  คำสั่งตัวเลือกการแสดงผลของการ select อาจมีการคำนวณด้วย
tables          :  ชื่อตารางที่ต้องการ select
conditions_1     :  เงื่อนไขในการ select

เนื่องจากการ select ที่มีความซับซ้อน จึงได้มีคำสั่งที่ช่วยในการ select ให้ง่ายขึ้น ได้แก่

• DISTINCT : การเลือกแสดงข้อมูลเฉพาะที่ไม่ซ้ำกัน
• WHERE : การกรองข้อมูลที่จะนำมาแสดง (เงื่อนไข)
• ORDER BY : การเรียงลำดับ เรียงแถว
• BETWEEN, IN และ LIKE : การเลือกแสดงข้อมูลที่อยู่ระหว่าง.., อยู่ใน..., และข้อมูลที่มี(เหมือนกับ)....
• GROUP BY : การเแสดงข้อมูลโดยการแบ่งกลุ่ม
• HAVING : การแสดงข้อมูลแบบกลุ่มโดยมีเงื่อนไข
• INNER JOIN, LEFT JOIN, RIGHT JOIN : การเลือกแสดงข้อมูลโดยมีตารางอื่นเชื่อมอยู่

ตัวอย่าง : คำสั่งการ SELECT มีหลายรูปแบบ ดังนี้
» บทที่ 1 การ SELECT ข้อมูลทั้งหมด
» บทที่ 2 การ SELECT ข้อมูลบางคอลัมน์จากตารางเดียว
» บทที่ 3 การ SELECT ข้อมูลบางคอลัมน์จากหลายตาราง
แก้ไขล่าสุดโดย thitikorn_lp เมื่อ 01/09/2014 10:23 am, แก้ไขไปแล้ว 3 ครั้ง.
รูปภาพ

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

Re: PostgreSQL : คำสั่ง SQL การ SELECT

โพสต์โดย thitikorn_lp » 01/09/2014 9:13 am

การ SELECT ข้อมูลทั้งหมด

คำสั่งการเลือกให้แสดงทั้งหมด
โค้ด :

โค้ด: เลือกทั้งหมด

SELECT *
FROM z_testcreatetable

ผลที่ได้ :
select all.jpg
select all.jpg (130.46 KiB) เปิดดู 6306 ครั้ง

คำอธิบาย :
จากคำสั่งจะเห็นว่าเราใช้ * หมายความว่าเราต้องการเลือกข้อมูลทั้งหมดจากตาราง z_testcreatetable โดยผลที่ได้จะเรียงชื่อตามลำดับ หรือ id

หรือ การเลือกให้แสดงแบบมีเงื่อนไข

โค้ด: เลือกทั้งหมด

SELECT *
FROM z_testcreatetable
WHERE username='Saijai';

ผลที่ได้ :
select all where.jpg
select all where.jpg (124.76 KiB) เปิดดู 6306 ครั้ง

คำอธิบาย :
จากคำสั่งจะมีการเพิ่ม WHERE เข้ามาใช้ เพื่อเป็นการกำหนดเงื่อนไขในการแสดงผล
นอกจากนี้เรายังสามารถกำหนดการเรียงผลได้จากคำสั่ง

โดยวางต่อไว้หลัง FROM หรือ WHERE
ตัวอย่างเช่น

โค้ด: เลือกทั้งหมด

SELECT *
FROM z_testcreatetable
ORDER BY id ASC;

ASC ย่อมาจาก Ascending เรียงจากน้อยไปหามาก
DESC ย่อมาจาก Descending เรียงจากมากไปหาน้อย
รูปภาพ

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

Re: PostgreSQL : คำสั่ง SQL การ SELECT

โพสต์โดย thitikorn_lp » 01/09/2014 9:30 am

การ SELECT ข้อมูลบางคอลัมน์จากตารางเดียว

โค้ด :

โค้ด: เลือกทั้งหมด

SELECT default_code, name_template
FROM product_product
ORDER BY default_code ASC;

ผลที่ได้ :
select some column.jpg
select some column.jpg (199.47 KiB) เปิดดู 6306 ครั้ง

คำอธิบาย :
ในการ SELECT เราเลือกเพียง default_code และ name_template ที่ต้องการให้แสดงข้อมูล
จะเรียงลำดับตาม default_code เรียงลำดับจาก a-z
รูปภาพ

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

Re: PostgreSQL : คำสั่ง SQL การ SELECT

โพสต์โดย thitikorn_lp » 01/09/2014 10:03 am

การ SELECT ข้อมูลบางคอลัมน์จากหลายตาราง

โค้ด :

โค้ด: เลือกทั้งหมด

SELECT product_product.product_tmpl_id, product_template.id,
product_template.categ_id,product_category.id,
product_product.name_template,product_category.name
FROM product_template
LEFT JOIN product_product
ON product_template.id = product_product.product_tmpl_id
LEFT JOIN product_category
ON product_template.categ_id = product_category.id
ORDER BY product_template.id;

ผลที่ได้ :
select multi some column.jpg
select multi some column.jpg (268.18 KiB) เปิดดู 6305 ครั้ง

คำอธิบาย :
การ SELECT หลายตารางร่วมกันเป็นการดึงข้อมูลที่อยู่คนละตารางแต่มีความสัมพันธ์กันมาแสดง ให้เห็นถึงข้อมูลของ product ว่า product แต่ละตัวอยู่ใน category ไหน
โดยใช้คำสั่ง

โค้ด: เลือกทั้งหมด

LEFT JOIN table
ON conditions
รูปภาพ


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 4 และ บุคคลทั่วไป 0 ท่าน