สอนเขียนคำสั่งฐานข้อมูล การ 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 »

สอนเขียนคำสั่งฐานข้อมูล การ 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 »

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

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

Code: Select all

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

Code: Select all

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

การแสดงผล
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_all_output.jpg (85.74 KiB) Viewed 188585 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 »

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

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

Code: Select all

SELECT Student_id, Student_Fname, Student_Lname
FORM   Student;
การเเสดงผล
ภาพที่ 2.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 2.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_some_output.jpg (73.04 KiB) Viewed 188581 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 »

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

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

Code: Select all

SELECT Student_Fname, Student_Lname, Student_id
FORM Studen;
การเเสดงผล
ภาพที่ 3.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 3.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_sort_output.jpg (74.27 KiB) Viewed 188575 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 »

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

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

Code: Select all

SELECT ชื่อคอลัมน์ AS "ชื่อที่ต้องการเปลี่ยน"
ตัวอย่างการใช้งาาน
ตารางข้อมูลนักศึกษา
ภาพที่ 4.1 ตารางข้อมูลนักศึกษา
ภาพที่ 4.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) Viewed 188572 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;
การเเสดงผล
ภาพที่ 4.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 4.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_AS_output.jpg (86.02 KiB) Viewed 188570 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 »

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

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

Code: Select all

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

Code: Select all

SELECT DISTINCE Age
FROM Student;
การเเสดงผล
ภาพที่ 5.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 5.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_distinctl_output.jpg (17.33 KiB) Viewed 188568 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 »

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

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

Code: Select all

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

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

Code: Select all

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

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

Code: Select all

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

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

Code: Select all

SELECT  Age, Student_Fname, Student_Lname 
FROM    Student
ORDER BY Age, Student_Fname;
การเเสดงผล
ภาพที่ 6.4 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 6.4 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_orderby_orderby_output.jpg (56.07 KiB) Viewed 188566 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 »

การ 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.
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 »

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

Code: Select all

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

Code: Select all

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

Code: Select all

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

Code: Select all

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 25373 times
Last edited by iss.f on 09/08/2013 10:30 am, edited 2 times in total.
User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 17126
Joined: 18/04/2012 9:39 am

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

Post by tsukasaz »

เนื้อหาเยอะดีครับ พอดีกำลังหัดเขียนโปรแกรม :like:
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “SQL Knowledge”

Who is online

Users browsing this forum: No registered users and 11 guests