SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL
Moderator: mindphp , ผู้ดูแลกระดาน
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 09/08/2013 6:27 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 ... 745#p38745
2.) การเลือกข้อมูลทึ่ต้องตามชุดข้อมูลด้วย IN
https://www.mindphp.com/forums/viewtopic ... 748#p38748
3.) การข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND
https://www.mindphp.com/forums/viewtopic ... 749#p38749
4.) การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_)
https://www.mindphp.com/forums/viewtopic ... 750#p38750
แก้ไขล่าสุดโดย
iss.f เมื่อ 09/08/2013 6:55 pm, แก้ไขไปแล้ว 4 ครั้ง.
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 09/08/2013 6:37 pm
1.) การ SELECT ข้อมูลแบบเงื่อนไขการใช้เครื่องหมาย Operators
การกำหนดเงื่อนไขโดยการใช้เครื่องหมาย Operators ก่อนอื่นต้องรู้จักกับเครื่องหมาย เเละความหมายของมันก่อนดังภาพที่ 7.1
ภาพที่ 1.1 เครื่องหมาย Operators Operators.jpg (65.64 KiB) Viewed 107735 times
ตัวอย่างการใช้งานที่ 1
ตารางข้อมูลนักศึกษา
ภาพที่ 1.2 ตารางข้อมูลนักศึกษา select_all.jpg (87.74 KiB) Viewed 107735 times
>>ต้องการทราบรายชื่อนักศึกษาที่มีอายุน้อยกว่า 20 ปี
การเเสดงผล
ภาพที่ 1.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_oper_output.jpg (31.41 KiB) Viewed 107735 times
ตัวอย่างการใช้งานที่ 2
>>ต้องการทราบรายชื่อนักศึกษาที่เป็นเพศหญิง และมีอายุมากกว่าหรือเท่ากับ 20 ปี
โค้ด: เลือกทั้งหมด
SELECT *
FROM Student
WHERE (Gender='หญิง') AND (Age>=20);
การแสดงผล
ภาพที่ 1.4 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_operAND_output.jpg (53.87 KiB) Viewed 107735 times
ตัวอย่างการใช้งานที่ 3
>>ต้องการทราบว่านักศึกษาที่ไม่ใช่เพศหญิงมีใครบ้าง
โค้ด: เลือกทั้งหมด
SELECT Student_Fname, Student_Lname
FROM Student
WHERE Gender != 'หญิง';
หรือ
โค้ด: เลือกทั้งหมด
SELECT Student_Fname, Student_Lname
FROM Gender
WHERE NOT Gender='หญิง';
การแสดงผล
ภาพที่ 1.5 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_operNot_output.jpg (34.38 KiB) Viewed 107732 times
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 09/08/2013 6:45 pm
2.) การเลือกข้อมูลทึ่ตรงตามชุดข้อมูลด้วย IN
เป็นการเลือกการเเสดงผลตามชุดข้อมูลที่เลือกซึ่งหากไม่ใช่ IN ก็ยังสามารถใช้งานได้ โดยใช้เครื่องหมายทาง Operator
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์='ข้อมูลที่ต้องการให้เเสดง';
เเต่หากมีใช้
IN เข้าใาช่วยจะทำให้สามารถใช้งานได้สะดวก เเละ เข้าใจง่ายมากขึ้น โดยมีรูปแบบการเรียกใช้งานดังนี้
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอมลัมน์ IN (ข้อมูลที่ต้องการให้เเสดง);
ตัวอย่างการใช้งานที่ 1
ตารางข้อมูลนักศึกษา
ภาพที่ 2.1 ตารางข้อมูลนักศึกษา select_all_1.jpg (150.91 KiB) Viewed 107683 times
>>ต้องการทีทราบข้อมูลของนักศึกษาที่อยู่ในกรุงเทพหหานคร และเชียงใหม่
โค้ด: เลือกทั้งหมด
SELECT *
FROM STUDENT
WHERE address IN ('Bangkok', 'Chingmai');
การแสดงผล ไฟล์แนป select_where_IN_output.jpg ไม่มีอยู่แล้ว
ตัวอย่างการใช้งานที่ 2
>>ต้องการทีทราบข้อมูลของนักศึกษาเฉพาะที่ไม่ได้อยู่ในกรุงเทพหหานคร
โค้ด: เลือกทั้งหมด
SELECT *
FROM Student
WHERE address NOT IN ('Bangkok');
การแสดงผล
ภาพที่ 2.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_IN_output.jpg (98.99 KiB) Viewed 107731 times
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 09/08/2013 6:51 pm
3.) การข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND
การเลือกข้อมูลที่อยู่ในช่วงระหว่างจะมีรูปแบบดังนี้
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ [NOT] BETWEEN <ค่าที่1> AND <ค่าที่2>;
ตัวอย่างการใช้งานที่ 1 (แบบ BETWEEN)
ตารางข้อมูลนักศึกษา
ภาพที่ 3.1 ตารางข้อมูลสินค้าแอร์ select_all_air.jpg (87.92 KiB) Viewed 107729 times
>>ต้องการทราบสินค้าที่มีราคาสินค้าระหว่าง 10,000 และ 15,000
โค้ด: เลือกทั้งหมด
SELECT Product_name
FROM Product_Conditioner
WHERE Product_price
BETWEEN 10000 AND 15000;
การแสดงผล
ภาพที่ 3.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_between_output.jpg (46.6 KiB) Viewed 107729 times
ตัวอย่างการใช้งานที่ 2 (แบบ NOT BETWEEN)
>>ต้องการทราบสินค้าและจำนวนบีทียูที่มีราคาสินค้าไม่ถึง 20,000 และ 30,000
โค้ด: เลือกทั้งหมด
SELECT Product_name, BTU
FROM Product_Conditioner
WHERE Product_price
NOT BETWEEN 20000 AND 30000;
การแสดงผล
ภาพที่ 3.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_NOTbetween_output.jpg (57.43 KiB) Viewed 107729 times
M013
PHP Super Hero Member
โพสต์: 829 ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm
โพสต์ที่ยังไม่ได้อ่าน
โดย M013 » 09/08/2013 6:55 pm
4.) การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_)
การ SELECT ข้อมูลยังสามารถเลือกข้อมูลที่ตรงกับคำที่เราต้องได้ การ SELECT ข้อมูลแบบนี้ใช้รูปแบบ LIKE ซึ่งตัวอย่างที่เราเห็นกันได้ชัดเจน คือ การค้นหาคำใน Google ที่เราพิมพ์เเค่บางคำ เเต่สามารถค้นหาเจอได้มากมาย วิธีการ SELECT ด้วย LIKE มีอยู่ 2 รูปแบบดังนี้
การ SELECT ข้อมูล ด้วย LIKE และ %
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์
LIKE 'ข้อความที่ต้องการค้นหา%';
คำอธิบาย
% คือสัญลักษณ์ที่เเทนตัวอักษรอะไรก็ได้ กี่ตัวก็ได้ เช่น เราต้องการหาคนที่คนที่มีชื่อขึ้นต้นด้วย 'สม' เวลาที่เราเขียนคำสั่งจะได้เป็น 'สม%' เป็นต้น นากจากนั้น % ยังสามารถอยู่ส่วนท้าย หรือกลางก็ได้
ตัวอย่างการใช้งาน
4.1 ตารางข้อมูลนักศึกษา select_all_1.jpg (150.91 KiB) Viewed 107678 times
>>ต้องการทราบชื่อนักศึกษาที่ขึ้นต้นด้วยตัวอีกษร 'S'
โค้ด: เลือกทั้งหมด
SELECT firstname, lastname
FROM Student
WHERE frist
LIKE 'S%';
การเเสดงผล
ภาพที่ 4.2 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_Like1_output.jpg (33.77 KiB) Viewed 107726 times
การ SELECT ข้อมูล ด้วย LIKE และ _
โค้ด: เลือกทั้งหมด
SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์
LIKE 'ข้อความที่ต้องการค้นหา_';
คำอธิบาย
_ คือสัญลักษณ์ที่เเทนตัวอักษรอะไรก็ได้
1 ตัว ต่างกับ % ที่เเทนตัวอักษรกี่ตัวก็ได้
ตัวอย่างการใช้งาน
>>ต้องการทราบชื่อนักศึกษาที่ขึ้นต้นด้วยตัวอีกษร 'S' และตามด้วยตัวอักษรอะไรก็ได้ 4 ตัว
โค้ด: เลือกทั้งหมด
SELECT firstname, lastname
FROM Student
WHERE firstname
LIKE ('s_ _ _ _');
การเเสดงผล
ภาพที่ 4.3 การแสดงผลจากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ select_where_Like2_output.jpg (23.46 KiB) Viewed 107726 times
0 ตอบกลับ
4473 แสดง
โพสต์ล่าสุด โดย jataz2
06/01/2016 9:44 am
1 ตอบกลับ
3362 แสดง
โพสต์ล่าสุด โดย mindphp
08/05/2017 2:35 am
0 ตอบกลับ
2163 แสดง
โพสต์ล่าสุด โดย thatsawan
11/03/2016 12:39 am
5 ตอบกลับ
5528 แสดง
โพสต์ล่าสุด โดย AePongsak
20/04/2018 5:05 pm
0 ตอบกลับ
857 แสดง
โพสต์ล่าสุด โดย gainkullan
15/03/2017 3:31 pm
4 ตอบกลับ
5621 แสดง
โพสต์ล่าสุด โดย mindphp
05/10/2014 10:22 pm
1 ตอบกลับ
2348 แสดง
โพสต์ล่าสุด โดย jataz2
19/08/2015 11:26 am
สมาชิกกำลังดูบอร์ดนี้: Bing [Bot] และบุคลทั่วไป 80