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

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

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

M013
PHP Super Hero Member
PHP Super Hero Member
Posts: 829
Joined: 22/04/2010 12:02 pm

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

Post by M013 » 08/08/2013 4:08 pm

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

การ SELECT เป็นคำสั่งของฐานข้อมูลที่ใช้ในการดำเนินการบ่อยที่สุด โดยรูปแบบของ SELECT มีดังนี้

Code: Select all

SELECT ชื่อคอลัมน์_1, ชื่อคอลัมน์_2, ชื่อคอลัมน์_3;
FORM   ชื่อตาราง
คำอธิบาย
SELECT คือการเลือกคอลัมน์ที่เรากำหนดเอาไว้
FORM คือการเลือกตารางข้อมูล

การ SELECT ข้อมูลมีหลากหลายรูปแบบ ดังนี้

บทที่ 1 การ SELECT ข้อมูลทั้งหมด
บทที่ 2 การ SELECT ข้อมูลบางคอลัมน์
บทที่ 3 การ SELECT ข้อมูลโดยการจัดลำดับการเเสดงผล
บทที่ 4 การ SELECT ข้อมูลด้วย SELECT... AS (เปลี่ยนชื่อคอลัมน์ในการเเสดงผล)
บทที่ 5 การ SELECT ข้อมูลด้วย Distinct (เเสดงข้อมูลไม่ซ้ำ)
บทที่ 6 การ SELECT ข้อมูลด้วย Order By (จัดเรียงข้อมูล)
บทที่ 7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข)
บทที่ 8 การ SELECT ข้อมูลโดยการคำนวณทางคณิตศาสตร์
บทที่ 9 การ SELECT ข้อมูลด้วย Aggregate Functions (ฟังก์ชันการรวม)
บทที่ 10 การ SELECT ข้อมูลด้วย Scalar functions (ฟังก์ชันการคำนวณ)
บทที่ 11 การ SELECT ข้อมูลด้วย String functions (ฟังก์ชันตัวอักษร)
บทที่ 12 การ SELECT ข้อมูลด้วย Date and time functions (ฟังก์ชันวันที่เเละเวลา)
บทที่ 13 การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT
บทที่ 14 การ SELECT ข้อมูลด้วย SELECT ... GROUP BY (แบบจัดกลุ่ม)
บทที่ 15 การ SELECT ข้อมูลด้วย HAVING และ WHERE

เสริมการ SELECT จากตาราง
MySQL คำสั่งค้นหาข้อมูล SQL FIND_IN_SET ค้นหาฟิลด์ที่มี (,)

Advance SQL
MySQL Database :การสร้าง View Table และการเรียกใช้งาน View Table
MySQL PROCEDURE วิธีใช้ชื่อ Table จาก argument เเละเงื่อนไขอื่นๆ
Last edited by iss.f on 16/08/2013 10:01 am, edited 67 times in total.

M013
PHP Super Hero Member
PHP Super Hero Member
Posts: 829
Joined: 22/04/2010 12:02 pm

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

Post by M013 » 08/08/2013 4:19 pm

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

ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 1.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) Viewed 156304 times

Code: Select all

SELECT Student_id, Student_Fname, Student_Lname, Gender, Age
FORM Student;
หรือ

Code: Select all

SELECT *
FORM Student;
# ใช้ได้ทั้ง 2 วิธีผลไที่ได้เหมือนกัน #

การแสดงผล
select_all_output.jpg
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_all_output.jpg (85.74 KiB) Viewed 156304 times
Last edited by iss.f on 08/08/2013 4:33 pm, edited 2 times in total.

M013
PHP Super Hero Member
PHP Super Hero Member
Posts: 829
Joined: 22/04/2010 12:02 pm

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

Post by M013 » 08/08/2013 4:31 pm

การ SELECT ข้อมูลบางคอลัมน์
ในกรณีที่ต้องการให้เเสดงผลเพียงไม่กี่คอลัมน์ หรือ เฉพาะคอลัมน์ที่ต้องการเท่านั้น

ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 2.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) Viewed 156300 times
>>ต้องการข้อมูลรหัสนักศึกษา เเละชื่อนามสกุลของนักศึกษา

Code: Select all

SELECT Student_id, Student_Fname, Student_Lname
FORM   Student;
การเเสดงผล
select_some_output.jpg
ภาพที่ 2.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_some_output.jpg (73.04 KiB) Viewed 156300 times

M013
PHP Super Hero Member
PHP Super Hero Member
Posts: 829
Joined: 22/04/2010 12:02 pm

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

Post by M013 » 08/08/2013 4:42 pm

การจัดลำดับการเเสดงผล
หากต้องการมีการสลับกันของคอลัมน์ในการเเสดงผล SELECT ก็สามารถทำได้ดังนี้

ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 3.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) Viewed 156294 times
>>ต้องการข้อมูลรหัสนักศึกษา เเละชื่อนามสกุลของนักศึกษา เเต่อยากให้ชื่อเเละนามสกุลของนักศึกษาขึ้นก่อนรหัสนักศึกษา

Code: Select all

SELECT Student_Fname, Student_Lname, Student_id
FORM Studen;
การเเสดงผล
select_sort_output.jpg
ภาพที่ 3.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_sort_output.jpg (74.27 KiB) Viewed 156294 times
***ในช่วงคำสั่งของ SELECT การแสดงผลจะออกมาตามที่ระบุเอาไว้

M013
PHP Super Hero Member
PHP Super Hero Member
Posts: 829
Joined: 22/04/2010 12:02 pm

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

Post by M013 » 08/08/2013 5:00 pm

การ SELECT ... AS เปลี่ยนชื่อคอลัมน์ในการเเสดงผล
การแสดงผลไม่จำเป็นต้องให้ชื่อหัวข้อเป็นชื่อเดียวกับชื่อคอลัมน์ทุกๆครั้ง เพราะตั้งชื่อคอลัมน์อาจมีการสื่อความหมายที่ไม่ชัดเจนต่อการเเสดงผล

คำสั่งที่ใช้

Code: Select all

SELECT ชื่อคอลัมน์ AS "ชื่อที่ต้องการเปลี่ยน"
ตัวอย่างการใช้งาาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 4.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) Viewed 156291 times
>>ต้องการเเสดงข้อมูลของนักศึกษาทั้งหมด โดยให้หัวข้อเเต่ละหัวข้อชื่อ
"Student ID", "First Name", "Last Name", "Gender", "Age"

Code: Select all

SELECT Student_id AS "Student ID", Student_Fname AS "First Name", Student_Lname AS "Last Name", Gender, Age
FORM   Student;
การเเสดงผล
select_AS_output.jpg
ภาพที่ 4.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_AS_output.jpg (86.02 KiB) Viewed 156289 times

M013
PHP Super Hero Member
PHP Super Hero Member
Posts: 829
Joined: 22/04/2010 12:02 pm

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

Post by M013 » 08/08/2013 5:23 pm

DISTINCT เเสดงข้อมูลไม่ซ้ำ
เมื่อข้อมูลมีค่าที่เหมือนกันอยู่ในตารางข้อมูล เมื่อเวลาเเสดงผลออกมาก็จะเห็นข้อมูลซ้ำๆ หลายบรรทัด ซึ่งทำให้ดูยาก

คำสั่งที่ใช้

Code: Select all

SELECT DISTINCE ชื่อคอลัมน์_1, ชื่อคอลัมน์_2, ชื่อคอลัมน์_3
FORM ชื่อตาราง;
ตัวอย่างการใช้งาาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 5.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) Viewed 156287 times
>>ต้องการทราบว่านักศึกษามีอายุเท่าไรบ้าง

Code: Select all

SELECT DISTINCE Age
FROM Student;
การเเสดงผล
select_distinctl_output.jpg
ภาพที่ 5.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_distinctl_output.jpg (17.33 KiB) Viewed 156287 times

M013
PHP Super Hero Member
PHP Super Hero Member
Posts: 829
Joined: 22/04/2010 12:02 pm

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

Post by M013 » 08/08/2013 6:10 pm

Order By การจัดเรียงข้อมูล
เป็นคำสั่งที่ใช้เรียงข้อมูลที่ไม่เป็นระเบียบในตาราง โดยจะเรียงลำดับจากมากไปหาน้อย หรือ น้อยไปหามากก็ได้

คำสั่งที่ใช้

Code: Select all

ORDER BY ชื่อคอลัมน์ [DESC];
คำอธิบาย
ตัว DESC คือตัวกำหนดวว่าจะให้มีการเรียงลำดับจากมากไปหาน้อย หรือ จากน้อยไปหามาก ดังนั้นหากมีการกำหนด DESC ไว้เเสดงว่าต้องการให้ข้อมูลเรียงจากมากไปหาน้อย

ตัวอย่างการใช้งานที่ 1
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 6.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) Viewed 156285 times
>>ต้องการทราบรายชื่อนักศึกษา โดยให้เเสดงรายชื่อนักศึกษาตามลำดับชื่อจากน้อยไปมาก

Code: Select all

SELECT Student_Fname, Student_Lname
FROM Student
ORDER BY Student_Fname;
การเเสดงผล
select_orderby_output.jpg
ภาพที่ 6.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_orderby_output.jpg (47.2 KiB) Viewed 156285 times
ตัวอย่างการใช้งานที่ 2

>>ต้องการทราบรหัสนักศึกษา เเละรายชื่อของนักศึกษา โดยให้เเสดงรหัสนักศึกษาจากมากไปน้อย

Code: Select all

SELECT  Student_id, Student_Fname, Student_Lname
FROM  Student
ORDER BY Student_id DESC;
การเเสดงผล
select_orderbyDESC_output.jpg
ภาพที่ 6.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_orderbyDESC_output.jpg (70.66 KiB) Viewed 156285 times
ตัวอย่างการใช้งานที่ 3

>>ต้องการทราบอายุ รายชื่อของนักศึกษา โดยให้เเสดงจากกลุ่มอายุเรียงลำดับจากน้อยไปมาก และในเเต่ละกลุ่มอายุก็ให้เรียงตามรายชื่อนักศึกษาจากน้อยไปมาก

Code: Select all

SELECT  Age, Student_Fname, Student_Lname 
FROM    Student
ORDER BY Age, Student_Fname;
การเเสดงผล
select_orderby_orderby_output.jpg
ภาพที่ 6.4 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_orderby_orderby_output.jpg (56.07 KiB) Viewed 156285 times

M013
PHP Super Hero Member
PHP Super Hero Member
Posts: 829
Joined: 22/04/2010 12:02 pm

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

Post by M013 » 08/08/2013 6:28 pm

การ SELECT ข้อมูลแบบมีเงื่อนไข (SELECT... WHERE)
เมื่อ SELECT สามารถเลือกข้อมูลบางคอลัมน์ได้เเล้ว SELECT ยังสามารถเลือกข้อมูลบางเเถวได้ด้วย
โดยการใช้เงื่อนไข WHERE ซึ่งมีรูปแบบดังนี้

Code: Select all

SELECT ชื่อคอลัมน์_1, ชื่อคอลัมน์_2, ชื่อคอลัมน์_3;
FORM   ชื่อตาราง
WHERE เงื่อนไข;
คำอธิบาย
SELECT คือการเลือกคอลัมน์ที่เรากำหนดเอาไว้
FORM คือการเลือกตารางข้อมูล
WHERE คือการกำหนดเงื่อนไข ซึ่งจะอธิบายรายละเอียดเป็นหัวข้อย่อยๆไว้ข้างล่างนี้

เงื่อนไขในการ SELECT ข้อมูลก็มีหลายเงื่อนไข ได้แก่
1.) การใช้เครื่องหมาย Operators (=, !=, >, <, >=, <=, AND, OR, NOT) https://www.mindphp.com/forums/viewtopic ... 690#p38690
2.) การเลือกข้อมูลทึ่ต้องตามชุดข้อมูลด้วย IN https://www.mindphp.com/forums/viewtopic ... 718#p38718
3.) การข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND https://www.mindphp.com/forums/viewtopic ... 720#p38720
4.) การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_) https://www.mindphp.com/forums/viewtopic ... 723#p38723
Last edited by iss.f on 09/08/2013 1:53 pm, edited 4 times in total.

Post Reply

Return to “SQL Knowledge”

Users browsing this forum: No registered users and 10 guests