SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL
Moderator: mindphp , ผู้ดูแลกระดาน
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 08/08/2013 4:08 pm
แก้ไขล่าสุดโดย
iss.f เมื่อ 16/08/2013 10:01 am, แก้ไขไปแล้ว 67 ครั้ง.
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 08/08/2013 4:19 pm
การ SELECT ข้อมูลทั้งหมด
ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
ภาพที่ 1.1 ตารางข้อมูลนักศึกษา select_all.jpg (84.78 KiB) Viewed 235878 times
โค้ด: เลือกทั้งหมด
SELECT Student_id, Student_Fname, Student_Lname, Gender, Age
FORM Student;
หรือ
# ใช้ได้ทั้ง 2 วิธีผลไที่ได้เหมือนกัน #
การแสดงผล
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_all_output.jpg (85.74 KiB) Viewed 235878 times
แก้ไขล่าสุดโดย
iss.f เมื่อ 08/08/2013 4:33 pm, แก้ไขไปแล้ว 2 ครั้ง.
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 08/08/2013 4:31 pm
การ SELECT ข้อมูลบางคอลัมน์
ในกรณีที่ต้องการให้เเสดงผลเพียงไม่กี่คอลัมน์ หรือ เฉพาะคอลัมน์ที่ต้องการเท่านั้น
ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
ภาพที่ 2.1 ตารางข้อมูลนักศึกษา select_all.jpg (84.78 KiB) Viewed 235874 times
>>ต้องการข้อมูลรหัสนักศึกษา เเละชื่อนามสกุลของนักศึกษา
โค้ด: เลือกทั้งหมด
SELECT Student_id, Student_Fname, Student_Lname
FORM Student;
การเเสดงผล
ภาพที่ 2.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_some_output.jpg (73.04 KiB) Viewed 235874 times
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 08/08/2013 4:42 pm
การจัดลำดับการเเสดงผล
หากต้องการมีการสลับกันของคอลัมน์ในการเเสดงผล SELECT ก็สามารถทำได้ดังนี้
ตัวอย่างการใช้งาน
ตารางข้อมูลนักศึกษา
ภาพที่ 3.1 ตารางข้อมูลนักศึกษา select_all.jpg (84.78 KiB) Viewed 235868 times
>>ต้องการข้อมูลรหัสนักศึกษา เเละชื่อนามสกุลของนักศึกษา เเต่อยากให้ชื่อเเละนามสกุลของนักศึกษาขึ้นก่อนรหัสนักศึกษา
โค้ด: เลือกทั้งหมด
SELECT Student_Fname, Student_Lname, Student_id
FORM Studen;
การเเสดงผล
ภาพที่ 3.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_sort_output.jpg (74.27 KiB) Viewed 235868 times
*** ในช่วงคำสั่งของ SELECT การแสดงผลจะออกมาตามที่ระบุเอาไว้
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 08/08/2013 5:00 pm
การ SELECT ... AS เปลี่ยนชื่อคอลัมน์ในการเเสดงผล
การแสดงผลไม่จำเป็นต้องให้ชื่อหัวข้อเป็นชื่อเดียวกับชื่อคอลัมน์ทุกๆครั้ง เพราะตั้งชื่อคอลัมน์อาจมีการสื่อความหมายที่ไม่ชัดเจนต่อการเเสดงผล
คำสั่งที่ใช้
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์ AS "ชื่อที่ต้องการเปลี่ยน"
ตัวอย่างการใช้งาาน
ตารางข้อมูลนักศึกษา
ภาพที่ 4.1 ตารางข้อมูลนักศึกษา select_all.jpg (84.78 KiB) Viewed 235865 times
>>ต้องการเเสดงข้อมูลของนักศึกษาทั้งหมด โดยให้หัวข้อเเต่ละหัวข้อชื่อ
"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;
การเเสดงผล
ภาพที่ 4.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_AS_output.jpg (86.02 KiB) Viewed 235863 times
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 08/08/2013 5:23 pm
DISTINCT เเสดงข้อมูลไม่ซ้ำ
เมื่อข้อมูลมีค่าที่เหมือนกันอยู่ในตารางข้อมูล เมื่อเวลาเเสดงผลออกมาก็จะเห็นข้อมูลซ้ำๆ หลายบรรทัด ซึ่งทำให้ดูยาก
คำสั่งที่ใช้
โค้ด: เลือกทั้งหมด
SELECT DISTINCE ชื่อคอลัมน์_1, ชื่อคอลัมน์_2, ชื่อคอลัมน์_3
FORM ชื่อตาราง;
ตัวอย่างการใช้งาาน
ตารางข้อมูลนักศึกษา
ภาพที่ 5.1 ตารางข้อมูลนักศึกษา select_all.jpg (84.78 KiB) Viewed 235861 times
>>ต้องการทราบว่านักศึกษามีอายุเท่าไรบ้าง
การเเสดงผล
ภาพที่ 5.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_distinctl_output.jpg (17.33 KiB) Viewed 235861 times
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 08/08/2013 6:10 pm
Order By การจัดเรียงข้อมูล
เป็นคำสั่งที่ใช้เรียงข้อมูลที่ไม่เป็นระเบียบในตาราง โดยจะเรียงลำดับจากมากไปหาน้อย หรือ น้อยไปหามากก็ได้
คำสั่งที่ใช้
คำอธิบาย
ตัว DESC คือตัวกำหนดวว่าจะให้มีการเรียงลำดับจากมากไปหาน้อย หรือ จากน้อยไปหามาก ดังนั้นหากมีการกำหนด
DESC ไว้เเสดงว่าต้องการให้ข้อมูลเรียงจากมากไปหาน้อย
ตัวอย่างการใช้งานที่ 1
ตารางข้อมูลนักศึกษา
ภาพที่ 6.1 ตารางข้อมูลนักศึกษา select_all.jpg (84.78 KiB) Viewed 235859 times
>>ต้องการทราบรายชื่อนักศึกษา โดยให้เเสดงรายชื่อนักศึกษาตามลำดับชื่อจากน้อยไปมาก
โค้ด: เลือกทั้งหมด
SELECT Student_Fname, Student_Lname
FROM Student
ORDER BY Student_Fname;
การเเสดงผล
ภาพที่ 6.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_orderby_output.jpg (47.2 KiB) Viewed 235859 times
ตัวอย่างการใช้งานที่ 2
>>ต้องการทราบรหัสนักศึกษา เเละรายชื่อของนักศึกษา โดยให้เเสดงรหัสนักศึกษาจากมากไปน้อย
โค้ด: เลือกทั้งหมด
SELECT Student_id, Student_Fname, Student_Lname
FROM Student
ORDER BY Student_id DESC;
การเเสดงผล
ภาพที่ 6.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_orderbyDESC_output.jpg (70.66 KiB) Viewed 235859 times
ตัวอย่างการใช้งานที่ 3
>>ต้องการทราบอายุ รายชื่อของนักศึกษา โดยให้เเสดงจากกลุ่มอายุเรียงลำดับจากน้อยไปมาก และในเเต่ละกลุ่มอายุก็ให้เรียงตามรายชื่อนักศึกษาจากน้อยไปมาก
โค้ด: เลือกทั้งหมด
SELECT Age, Student_Fname, Student_Lname
FROM Student
ORDER BY Age, Student_Fname;
การเเสดงผล
ภาพที่ 6.4 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_orderby_orderby_output.jpg (56.07 KiB) Viewed 235859 times
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย 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)
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
แก้ไขล่าสุดโดย
iss.f เมื่อ 09/08/2013 1:53 pm, แก้ไขไปแล้ว 4 ครั้ง.
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 08/08/2013 6:55 pm
1.) การ SELECT ข้อมูลแบบเงื่อนไขการใช้เครื่องหมาย Operators
การกำหนดเงื่อนไขโดยการใช้เครื่องหมาย Operators ก่อนอื่นต้องรู้จักกับเครื่องหมาย เเละความหมายของมันก่อนดังภาพที่ 7.1
ภาพที่ 7.1 เครื่องหมาย Operators Operators.jpg (65.64 KiB) Viewed 72857 times
ตัวอย่างการใช้งานที่ 1
ตารางข้อมูลนักศึกษา
ภาพที่ 7.2 ตารางข้อมูลนักศึกษา select_all.jpg (84.78 KiB) Viewed 72830 times
>>ต้องการทราบรายชื่อนักศึกษาที่มีอายุน้อยกว่า 20 ปี
การเเสดงผล
ภาพที่ 7.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_oper_output.jpg (29.02 KiB) Viewed 72857 times
ตัวอย่างการใช้งานที่ 2
>>ต้องการทราบรายชื่อนักศึกษาที่เป็นเพศหญิง และมีอายุมากกว่าหรือเท่ากับ 20 ปี
โค้ด: เลือกทั้งหมด
SELECT *
FROM Student
WHERE (Gender='หญิง') AND (Age>=20);
การแสดงผล
ภาพที่ 7.4 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_operAND_output.jpg (53.87 KiB) Viewed 72856 times
ตัวอย่างการใช้งานที่ 3
>>ต้องการทราบว่านักศึกษาที่ไม่ใช่เพศหญิงมีใครบ้าง
โค้ด: เลือกทั้งหมด
SELECT Student_Fname, Student_Lname
FROM Student
WHERE Gender != 'หญิง';
หรือ
โค้ด: เลือกทั้งหมด
SELECT Student_Fname, Student_Lname
FROM Gender
WHERE NOT Gender='หญิง';
การแสดงผล
ภาพที่ 7.5 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_operNot_output.jpg (36.14 KiB) Viewed 72831 times
แก้ไขล่าสุดโดย
iss.f เมื่อ 09/08/2013 10:30 am, แก้ไขไปแล้ว 2 ครั้ง.
tsukasaz
PHP VIP Members
โพสต์: 22100 ลงทะเบียนเมื่อ: 18/04/2012 9:39 am
โพสต์ที่ยังไม่ได้อ่าน
โดย tsukasaz » 09/08/2013 9:32 am
เนื้อหาเยอะดีครับ พอดีกำลังหัดเขียนโปรแกรม
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995 )
0 ตอบกลับ
3244 แสดง
โพสต์ล่าสุด โดย moomai
01/06/2017 4:34 pm
2 ตอบกลับ
3954 แสดง
โพสต์ล่าสุด โดย flook
08/10/2022 4:09 pm
0 ตอบกลับ
2694 แสดง
โพสต์ล่าสุด โดย mindphp
02/11/2023 5:26 pm
5 ตอบกลับ
4972 แสดง
โพสต์ล่าสุด โดย seeker
17/02/2015 2:27 pm
0 ตอบกลับ
4634 แสดง
โพสต์ล่าสุด โดย rangsun6342
31/10/2014 1:34 pm
1 ตอบกลับ
677 แสดง
โพสต์ล่าสุด โดย mindphp
24/11/2022 11:52 am
4 ตอบกลับ
5647 แสดง
โพสต์ล่าสุด โดย mindphp
05/10/2014 10:22 pm
สมาชิกกำลังดูบอร์ดนี้: Baidu [Spider] , Google Adsense [Bot] และบุคลทั่วไป 56