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

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

โพสต์โดย M013 » 08/08/2013 4:08 pm

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

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

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

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 เเละเงื่อนไขอื่นๆ
แก้ไขล่าสุดโดย iss.f เมื่อ 16/08/2013 10:01 am, แก้ไขไปแล้ว 67 ครั้ง.

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

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

โพสต์โดย M013 » 08/08/2013 4:19 pm

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

ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 1.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) เปิดดู 71811 ครั้ง

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

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

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

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

การแสดงผล
select_all_output.jpg
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_all_output.jpg (85.74 KiB) เปิดดู 71811 ครั้ง
แก้ไขล่าสุดโดย iss.f เมื่อ 08/08/2013 4:33 pm, แก้ไขไปแล้ว 2 ครั้ง.

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

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

โพสต์โดย M013 » 08/08/2013 4:31 pm

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

ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 2.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) เปิดดู 71807 ครั้ง

>>ต้องการข้อมูลรหัสนักศึกษา เเละชื่อนามสกุลของนักศึกษา

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

SELECT Student_id, Student_Fname, Student_Lname
FORM   Student;

การเเสดงผล
select_some_output.jpg
ภาพที่ 2.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_some_output.jpg (73.04 KiB) เปิดดู 71807 ครั้ง

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

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

โพสต์โดย M013 » 08/08/2013 4:42 pm

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

ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 3.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) เปิดดู 71801 ครั้ง

>>ต้องการข้อมูลรหัสนักศึกษา เเละชื่อนามสกุลของนักศึกษา เเต่อยากให้ชื่อเเละนามสกุลของนักศึกษาขึ้นก่อนรหัสนักศึกษา

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

SELECT Student_Fname, Student_Lname, Student_id
FORM Studen;

การเเสดงผล
select_sort_output.jpg
ภาพที่ 3.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_sort_output.jpg (74.27 KiB) เปิดดู 71801 ครั้ง

***ในช่วงคำสั่งของ SELECT การแสดงผลจะออกมาตามที่ระบุเอาไว้

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

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

โพสต์โดย M013 » 08/08/2013 5:00 pm

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

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

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

SELECT ชื่อคอลัมน์ AS "ชื่อที่ต้องการเปลี่ยน"

ตัวอย่างการใช้งาาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 4.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) เปิดดู 71798 ครั้ง

>>ต้องการเเสดงข้อมูลของนักศึกษาทั้งหมด โดยให้หัวข้อเเต่ละหัวข้อชื่อ
"Student ID", "First Name", "Last Name", "Gender", "Age"

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

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) เปิดดู 71796 ครั้ง

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

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

โพสต์โดย M013 » 08/08/2013 5:23 pm

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

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

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

SELECT DISTINCE ชื่อคอลัมน์_1, ชื่อคอลัมน์_2, ชื่อคอลัมน์_3
FORM ชื่อตาราง;

ตัวอย่างการใช้งาาน
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 5.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) เปิดดู 71794 ครั้ง

>>ต้องการทราบว่านักศึกษามีอายุเท่าไรบ้าง

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

SELECT DISTINCE Age
FROM Student;

การเเสดงผล
select_distinctl_output.jpg
ภาพที่ 5.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_distinctl_output.jpg (17.33 KiB) เปิดดู 71794 ครั้ง

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

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

โพสต์โดย M013 » 08/08/2013 6:10 pm

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

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

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

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

ตัวอย่างการใช้งานที่ 1
ตารางข้อมูลนักศึกษา
select_all.jpg
ภาพที่ 6.1 ตารางข้อมูลนักศึกษา
select_all.jpg (84.78 KiB) เปิดดู 71792 ครั้ง

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

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

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) เปิดดู 71792 ครั้ง

ตัวอย่างการใช้งานที่ 2

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

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

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) เปิดดู 71792 ครั้ง


ตัวอย่างการใช้งานที่ 3

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

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

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) เปิดดู 71792 ครั้ง

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

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

โพสต์โดย M013 » 08/08/2013 6:28 pm

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

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

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

เงื่อนไขในการ SELECT ข้อมูลก็มีหลายเงื่อนไข ได้แก่
1.) การใช้เครื่องหมาย Operators (=, !=, >, <, >=, <=, AND, OR, NOT) viewtopic.php?p=38690#p38690
2.) การเลือกข้อมูลทึ่ต้องตามชุดข้อมูลด้วย IN viewtopic.php?p=38718#p38718
3.) การข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND viewtopic.php?p=38720#p38720
4.) การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_) viewtopic.php?p=38723#p38723
แก้ไขล่าสุดโดย iss.f เมื่อ 09/08/2013 1:53 pm, แก้ไขไปแล้ว 4 ครั้ง.


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

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

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