สอนเขียนคำสั่งฐานข้อมูล การ SELECT database (MySQL) รูปแบบ การ Query

SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL

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

M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

Re: การ SELECT database(MySQL) ในแบบต่างๆ

โพสต์ที่ยังไม่ได้อ่าน โดย M013 »

1.) การ SELECT ข้อมูลแบบเงื่อนไขการใช้เครื่องหมาย Operators
การกำหนดเงื่อนไขโดยการใช้เครื่องหมาย Operators ก่อนอื่นต้องรู้จักกับเครื่องหมาย เเละความหมายของมันก่อนดังภาพที่ 7.1
ภาพที่ 7.1 เครื่องหมาย Operators
ภาพที่ 7.1 เครื่องหมาย Operators
Operators.jpg (65.64 KiB) Viewed 71620 times
ตัวอย่างการใช้งานที่ 1
ตารางข้อมูลนักศึกษา
ภาพที่ 7.2 ตารางข้อมูลนักศึกษา
ภาพที่ 7.2 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) Viewed 71593 times
>>ต้องการทราบรายชื่อนักศึกษาที่มีอายุน้อยกว่า 20 ปี

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

SELECT *
FROM Student
WHERE Age<20;
การเเสดงผล
ภาพที่ 7.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 7.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_oper_output.jpg (29.02 KiB) Viewed 71620 times
ตัวอย่างการใช้งานที่ 2
>>ต้องการทราบรายชื่อนักศึกษาที่เป็นเพศหญิง และมีอายุมากกว่าหรือเท่ากับ 20 ปี

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

SELECT *
FROM Student
WHERE (Gender='หญิง') AND (Age>=20);
การแสดงผล
ภาพที่ 7.4 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 7.4 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_operAND_output.jpg (53.87 KiB) Viewed 71619 times
ตัวอย่างการใช้งานที่ 3
>>ต้องการทราบว่านักศึกษาที่ไม่ใช่เพศหญิงมีใครบ้าง

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

SELECT Student_Fname, Student_Lname
FROM    Student
WHERE  Gender != 'หญิง'; 
หรือ

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

SELECT Student_Fname, Student_Lname
FROM   Gender
WHERE  NOT Gender='หญิง';
การแสดงผล
ภาพที่ 7.5 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 7.5 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_operNot_output.jpg (36.14 KiB) Viewed 71594 times
แก้ไขล่าสุดโดย iss.f เมื่อ 09/08/2013 10:30 am, แก้ไขไปแล้ว 2 ครั้ง.
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21911
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: การ SELECT database(MySQL) ในแบบต่างๆ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

เนื้อหาเยอะดีครับ พอดีกำลังหัดเขียนโปรแกรม :like:
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

Re: การ SELECT database(MySQL) ในแบบต่างๆ

โพสต์ที่ยังไม่ได้อ่าน โดย M013 »

2.) การเลือกข้อมูลทึ่ตรงตามชุดข้อมูลด้วย IN

เป็นการเลือกการเเสดงผลตามชุดข้อมูลที่เลือกซึ่งหากไม่ใช่ IN ก็ยังสามารถใช้งานได้ โดยใช้เครื่องหมายทาง Operator

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

SELECT ชื่อคอลัมน์
FROM   ชื่อตาราง
WHERE  ชื่อคอลัมน์='ข้อมูลที่ต้องการให้เเสดง';
เเต่หากมีใช้ IN เข้าใาช่วยจะทำให้สามารถใช้งานได้สะดวก เเละ เข้าใจง่ายมากขึ้น โดยมีรูปแบบการเรียกใช้งานดังนี้

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

SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอมลัมน์ IN (ข้อมูลที่ต้องการให้เเสดง);
ตัวอย่างการใช้งานที่ 1
ตารางข้อมูลนักศึกษา
ภาพที่ 8.1 ตารางข้อมูลนักศึกษา
ภาพที่ 8.1 ตารางข้อมูลนักศึกษา
select_all_1.jpg (150.91 KiB) Viewed 31246 times
>>ต้องการทีทราบข้อมูลของนักศึกษาที่อยู่ในกรุงเทพหหานคร และเชียงใหม่

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

SELECT *
FROM STUDENT
WHERE address IN ('Bangkok', 'Chingmai');
การแสดงผล
ภาพที่ 8.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 8.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_IN_output.jpg (98.99 KiB) Viewed 31265 times
ตัวอย่างการใช้งานที่ 2
>>ต้องการทีทราบข้อมูลของนักศึกษาเฉพาะที่ไม่ได้อยู่ในกรุงเทพหหานคร

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

SELECT *
FROM Student
WHERE address NOT IN ('Bangkok');
การแสดงผล
ภาพที่ 8.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 8.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_notIN_output.jpg (87.84 KiB) Viewed 31265 times
M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

Re: การ SELECT database(MySQL) ในแบบต่างๆ

โพสต์ที่ยังไม่ได้อ่าน โดย M013 »

3.) การข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND
การเลือกข้อมูลที่อยู่ในช่วงระหว่างจะมีรูปแบบดังนี้

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

SELECT ชื่อคอลัมน์
FROM   ชื่อตาราง
WHERE  ชื่อคอลัมน์ [NOT] BETWEEN <ค่าที่1> AND <ค่าที่2>;
ตัวอย่างการใช้งานที่ 1 (แบบ BETWEEN)
ตารางข้อมูลนักศึกษา
ภาพที่ 9.1 ตารางข้อมูลสินค้าแอร์
ภาพที่ 9.1 ตารางข้อมูลสินค้าแอร์
select_all_air.jpg (161.47 KiB) Viewed 31241 times
>>ต้องการทราบสินค้าที่มีราคาสินค้าระหว่าง 10,000 และ 15,000

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

SELECT Product_name
FROM   Product_Conditioner
WHERE  Product_price
BETWEEN 10000 AND 15000;
การแสดงผล
ภาพที่ 9.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 9.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_between_output.jpg (46.6 KiB) Viewed 31260 times
ตัวอย่างการใช้งานที่ 2 (แบบ NOT BETWEEN)
>>ต้องการทราบสินค้าและจำนวนบีทียูที่มีราคาสินค้าไม่ถึง 20,000 และ 30,000

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

SELECT Product_name, BTU
FROM   Product_Conditioner
WHERE  Product_price
NOT BETWEEN 20000 AND 30000;
การแสดงผล
ภาพที่ 9.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 9.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_NOTbetween_output.jpg (57.43 KiB) Viewed 31260 times
แก้ไขล่าสุดโดย iss.f เมื่อ 09/08/2013 2:21 pm, แก้ไขไปแล้ว 1 ครั้ง.
M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

Re: การ SELECT database(MySQL) ในแบบต่างๆ

โพสต์ที่ยังไม่ได้อ่าน โดย M013 »

4.) การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_)
การ SELECT ข้อมูลยังสามารถเลือกข้อมูลที่ตรงกับคำที่เราต้องได้ การ SELECT ข้อมูลแบบนี้ใช้รูปแบบ LIKE ซึ่งตัวอย่างที่เราเห็นกันได้ชัดเจน คือ การค้นหาคำใน Google ที่เราพิมพ์เเค่บางคำ เเต่สามารถค้นหาเจอได้มากมาย วิธีการ SELECT ด้วย LIKE มีอยู่ 2 รูปแบบดังนี้

การ SELECT ข้อมูล ด้วย LIKE และ %

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

SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์
LIKE 'ข้อความที่ต้องการค้นหา%';
คำอธิบาย
% คือสัญลักษณ์ที่เเทนตัวอักษรอะไรก็ได้ กี่ตัวก็ได้ เช่น เราต้องการหาคนที่คนที่มีชื่อขึ้นต้นด้วย 'สม' เวลาที่เราเขียนคำสั่งจะได้เป็น 'สม%' เป็นต้น นากจากนั้น % ยังสามารถอยู่ส่วนท้าย หรือกลางก็ได้
ตัวอย่างการใช้งาน
ภาพที่ 10.1 ตารางข้อมูลนักศึกษา
ภาพที่ 10.1 ตารางข้อมูลนักศึกษา
select_all_1.jpg (150.91 KiB) Viewed 31234 times
>>ต้องการทราบชื่อนักศึกษาที่ขึ้นต้นด้วยตัวอีกษร 'S'

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

SELECT firstname, lastname
FROM Student
WHERE frist
LIKE 'S%';
การเเสดงผล
ภาพที่ 10.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 10.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_Like1_output.jpg (33.77 KiB) Viewed 31253 times
การ SELECT ข้อมูล ด้วย LIKE และ _

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

SELECT ชื่อคอลัมน์
FROM  ชื่อตาราง
WHERE ชื่อคอลัมน์
LIKE  'ข้อความที่ต้องการค้นหา_';
คำอธิบาย
_ คือสัญลักษณ์ที่เเทนตัวอักษรอะไรก็ได้ 1 ตัว ต่างกับ % ที่เเทนตัวอักษรกี่ตัวก็ได้
ตัวอย่างการใช้งาน
>>ต้องการทราบชื่อนักศึกษาที่ขึ้นต้นด้วยตัวอีกษร 'S' และตามด้วยตัวอักษรอะไรก็ได้ 4 ตัว

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

SELECT firstname, lastname
FROM Student
WHERE firstname
LIKE ('s_ _ _ _');
การเเสดงผล
ภาพที่ 10.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 10.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_Like2_output.jpg (23.46 KiB) Viewed 31253 times
M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

Re: การ SELECT database(MySQL) ในแบบต่างๆ

โพสต์ที่ยังไม่ได้อ่าน โดย M013 »

การคำนวณทางคณิตศาสาตร์
การ SELECT นอกจากการค้นหาข้อมูลเเล้วนำมาเเสดงผลเเล้ว ยังสมารถนำข้อมูลที่ค่าเป็นตัวเลขมาทำการคำนวณก่อนจะเเสดงผลได้ด้วย โดยใช้เครื่องทางคณิตศาสาตร์ เช่น +, -, *, /

ตัวอย่างการใช้งาน
ภาพที่ 11.1 ตารางข้อมูลนักศึกษา
ภาพที่ 11.1 ตารางข้อมูลนักศึกษา
select_all_air.jpg (161.47 KiB) Viewed 31230 times
>>ต้องการทราบส่วนลด 5% ของราคาสินค้าทั้งหมด โดยให้มีการแสดงผลชื่อสินค้าเเละราคาที่ลดราคา และเรียงราคาที่ลดราคาจากน้อยไปมาก

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

SELECT Product_name, (Product_price-(Product_price*5/100)) AS "Price"
FROM Student
ORDER BY 2 ;
การแสดงผล
ภาพที่ 11.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 11.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_operator_output.jpg (97.82 KiB) Viewed 31249 times
M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

Re: การ SELECT database(MySQL) ในแบบต่างๆ

โพสต์ที่ยังไม่ได้อ่าน โดย M013 »

ฟังก์ชัน (Function)
การ SELECT ข้อมูลด้วยฟังก์ชัน (Function) ในฐานข้อมูลมีอยู่มากมายหลายคำสั่ง ซึ่งสามารถเเบ่งออกเป็นฟังก์ชันใหญ่ๆได้เป็น 2 กลุ่ม

1. Aggregate Functions (ฟังก์ชันการรวม)
ภาพที่ 12.1 Aggregate Functions
ภาพที่ 12.1 Aggregate Functions
Function_Aggregate.jpg (69.42 KiB) Viewed 31238 times
ตัวอย่างการใช้งาน Aggregate functionsFunctions
ภาพที่ 12.4 ตารางข้อมูลสินค้า
ภาพที่ 12.4 ตารางข้อมูลสินค้า
select_all_air.jpg (161.47 KiB) Viewed 31219 times
>>ต้องการทราบราคาสินค้าโดยเฉลี่ย ราคาที่สูงที่สุด เเละราคาที่ต่ำที่สุด

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

SELECT AVG(Product_price), MAX(Product_price), MIN(Product_price)
FROM Student;
การแสดงผล
ภาพที่ 12.5 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 12.5 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_FUCNTION1_output.jpg (32.04 KiB) Viewed 31238 times
2. Scalar functions (ฟังก์ชันการคำนวณ)
ภาพที่ 12.2 Scalar Functions
ภาพที่ 12.2 Scalar Functions
Function_Scalar.jpg (133.12 KiB) Viewed 31238 times
ตัวอย่างการใช้งาน Scalar functions
(ดูข้อมูลจากภาพที่ 12.4)
>>ต้องการเเสดงรายชื่อสินค้า เเละราคาสินค้าโดยที่ไม่มีจุดทศนิยม เเละให้เรียงราคาสินค้าที่สูงที่สุดไปน้อยที่สุด

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

SELECT Product_name, TRUNC(Product_price,0) AS "Price"
FROM Student
ORDER BY 2 DESC;
การเเสดงผล
ภาพที่ 12.6 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 12.6 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_FUCNTION2_output.jpg (91.85 KiB) Viewed 31238 times
3. String functions (ฟังก์ชันสตริง)
ภาพที่ 12.3 String Functions
ภาพที่ 12.3 String Functions
Function_String.jpg (184.71 KiB) Viewed 31238 times
ตัวอย่างการใช้งาน String functions
ภาพที่ 12.7 ตารางข้อมูลนักศึกษา
ภาพที่ 12.7 ตารางข้อมูลนักศึกษา
select_all_1.jpg (150.91 KiB) Viewed 31219 times
>>ต้องการทราบรหัสนักศึกษาเเต่เเสดงเพียง 2 ตัวท้ายของรหัสนักศึกษา รายชื่อนักศึกษา เเละที่อยู่เป็นนตัวพิมพ์ใหญ่ทั้งหมด

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

SELECT RIGHT(stu_id,2) AS "no.", firstname, lastname, UPPER(address) AS "city"
FROM Student;
การเเสดงผล
ภาพที่ 12.8 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 12.8 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_FUCNTION3_output.jpg (75.95 KiB) Viewed 31238 times
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอนเขียนคำสั่งฐานข้อมูล การ SELECT database (MySQL) รูปแบบ การ Query

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

สำหรับ PostgreSQL ต่อด้วยที่หมวด นี้
https://www.mindphp.com/forums/viewforum.php?f=115

และเรียนเนื้อหาเป็นบทเรียนได้ที่นี่
https://www.mindphp.com/%E0%B8%9A%E0%B8% ... 9-sql.html
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
บุคคลทั่วไป

Re: สอนเขียนคำสั่งฐานข้อมูล การ SELECT database (MySQL) รูปแบบ การ Query

โพสต์ที่ยังไม่ได้อ่าน โดย บุคคลทั่วไป »

เนื้อหาแน่นดี ได้ใช้งานทั้งนั้น
Forexduck
PHP Sr. Member
PHP Sr. Member
โพสต์: 72
ลงทะเบียนเมื่อ: 26/05/2022 11:48 pm

Re: สอนเขียนคำสั่งฐานข้อมูล การ SELECT database (MySQL) รูปแบบ การ Query

โพสต์ที่ยังไม่ได้อ่าน โดย Forexduck »

โห รวบรวมไว้หมดเลย ดีคับ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 34