MySQL คำสั่ง SELECT พร้อมตัวอย่าง
แบบสอบถาม SELECT คืออะไร MySQL?
SELECT QUERY ใช้ในการดึงข้อมูลจากไฟล์ MySQL ฐานข้อมูล ฐานข้อมูลจะเก็บข้อมูลไว้เพื่อเรียกค้นในภายหลัง วัตถุประสงค์ของ MySQL เลือกคือการส่งคืนจากตารางฐานข้อมูล หนึ่งแถวขึ้นไปที่ตรงกับเกณฑ์ที่กำหนด แบบสอบถามแบบใช้เลือกข้อมูลสามารถใช้ในภาษาสคริปต์เช่น PHP, Ruby หรือคุณสามารถดำเนินการผ่านทางพรอมต์คำสั่ง
ไวยากรณ์คำสั่ง SQL SELECT
เป็นคำสั่ง SQL ที่ใช้บ่อยที่สุดและมีรูปแบบทั่วไปดังต่อไปนี้
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
ที่นี่
- SELECT เป็นคีย์เวิร์ด SQL ที่ช่วยให้ฐานข้อมูลทราบว่าคุณต้องการดึงข้อมูล
- [แตกต่าง | ทั้งหมด] เป็นคีย์เวิร์ดเผื่อเลือกที่สามารถใช้เพื่อปรับแต่งผลลัพธ์ที่ส่งคืนจากคำสั่ง SQL SELECT หากไม่มีการระบุสิ่งใดเลย ระบบจะถือว่า ALL เป็นค่าเริ่มต้น
- - [fieldExpression [เป็นชื่อใหม่]} จะต้องระบุอย่างน้อยหนึ่งส่วน "*" เลือกฟิลด์ทั้งหมดจากชื่อตารางที่ระบุ fieldExpression ดำเนินการคำนวณบางอย่างกับฟิลด์ที่ระบุ เช่น การบวกตัวเลขหรือการนำฟิลด์สตริงสองฟิลด์มารวมกันเป็นหนึ่งเดียว
- จาก tableName เป็นสิ่งจำเป็นและต้องมีอย่างน้อยหนึ่งตาราง โดยหลายตารางจะต้องคั่นด้วยเครื่องหมายจุลภาคหรือเข้าร่วมโดยใช้คำสำคัญ JOIN
- WHERE เงื่อนไขเป็นทางเลือก โดยสามารถใช้เพื่อระบุเกณฑ์ในชุดผลลัพธ์ที่ส่งคืนจากการสืบค้น
- จัดกลุ่มตาม ใช้เพื่อรวบรวมบันทึกที่มีค่าฟิลด์เหมือนกัน
- การมี เงื่อนไขใช้เพื่อระบุเกณฑ์เมื่อทำงานโดยใช้คีย์เวิร์ด GROUP BY
- สั่งโดย ใช้เพื่อระบุลำดับการเรียงลำดับของชุดผลลัพธ์
*
สัญลักษณ์รูปดาวใช้เลือกคอลัมน์ทั้งหมดในตาราง ตัวอย่างของคำสั่ง SELECT แบบธรรมดาจะมีลักษณะเหมือนกับที่แสดงด้านล่าง
SELECT * FROM `members`;
คำสั่งข้างต้นเลือกเขตข้อมูลทั้งหมดจากตารางสมาชิก อัฒภาคเป็นคำสั่งยุติ มันไม่ได้บังคับแต่ถือเป็นแนวทางปฏิบัติที่ดีในการยุติข้อความแบบนั้น
ตัวอย่างการปฏิบัติ
คลิกเพื่อดาวน์โหลด myflix DB ที่ใช้สำหรับตัวอย่างเชิงปฏิบัติ
คุณสามารถเรียนรู้วิธีนำเข้าไฟล์ .sql เข้าไปได้ MySQL โต๊ะทำงาน
ตัวอย่างจะดำเนินการบนตารางสองตารางต่อไปนี้
1 ตาราง: สมาชิก ตาราง
หมายเลขสมาชิก | full_names | เพศ | วันเกิด | ที่อยู่ทางกายภาพ_ | รหัสไปรษณีย์ | เบอร์ติดต่อ | อีเมล |
---|---|---|---|---|---|---|---|
1 | เจเน็ต โจนส์ | หญิง | 21-07-1980 | ถนนสายแรก แปลงที่ 4 | กระเป๋าส่วนตัว | 0759 253 542 | janetjones@yagoo.cm |
2 | เจเน็ต สมิธ โจนส์ | หญิง | 23-06-1980 | เมลโรส 123 | NULL | NULL | jj@fstreet.com |
3 | โรเบิร์ต ฟิล | ชาย | 12-07-1989 | 3 ถนน 34 | NULL | 12345 | rm@tstreet.com |
4 | กลอเรียวิลเลียมส์ | หญิง | 14-02-1984 | 2 ถนน 23 | NULL | NULL | NULL |
2 ตาราง: ภาพยนตร์ ตาราง
movie_id | ชื่อเรื่อง | ผู้อำนวยการ | year_released | Category_id |
---|---|---|---|---|
1 | โจรสลัดแห่งแคริบเบียน 4 | มาร์แชลล์ร็อบ | 2011 | 1 |
2 | ลืมซาราห์ มาร์แชล | นิโคลัสสตอลเลอร์ | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | ชื่อรหัส สีดำ | เอ็ดการ์ จิมซ์ | 2010 | NULL |
5 | สาวน้อยของพ่อ | NULL | 2007 | 8 |
6 | เทวดาและปีศาจ | NULL | 2007 | 6 |
7 | รหัสดาวินชี่ | NULL | 2007 | 6 |
9 | Honey คนพระจันทร์ | จอห์น ชูลท์ซ | 2005 | 8 |
16 | 67% มีความผิด | NULL | 2012 | NULL |
การรับรายชื่อสมาชิก
สมมติว่าเราต้องการรับรายชื่อสมาชิกห้องสมุดที่ลงทะเบียนทั้งหมดจากฐานข้อมูลของเรา เราจะใช้สคริปต์ที่แสดงด้านล่างเพื่อทำสิ่งนั้น
SELECT * FROM `members`;
ดำเนินการสคริปต์ข้างต้นใน MySQL Workbench สร้างผลลัพธ์ต่อไปนี้
หมายเลขสมาชิก | full_names | เพศ | วันเกิด | ที่อยู่ทางกายภาพ_ | รหัสไปรษณีย์ | เบอร์ติดต่อ | อีเมล |
---|---|---|---|---|---|---|---|
1 | เจเน็ต โจนส์ | หญิง | 21-07-1980 | ถนนสายแรก แปลงที่ 4 | กระเป๋าส่วนตัว | 0759 253 542 | janetjones@yagoo.cm |
2 | เจเน็ต สมิธ โจนส์ | หญิง | 23-06-1980 | เมลโรส 123 | NULL | NULL | jj@fstreet.com |
3 | โรเบิร์ต ฟิล | ชาย | 12-07-1989 | 3 ถนน 34 | NULL | 12345 | rm@tstreet.com |
4 | กลอเรียวิลเลียมส์ | หญิง | 14-02-1984 | 2 ถนน 23 | NULL | NULL | NULL |
แบบสอบถามข้างต้นของเราได้ส่งคืนแถวและคอลัมน์ทั้งหมดจากตารางสมาชิก
สมมติว่าเราสนใจเฉพาะข้อมูลชื่อเต็ม เพศ ที่อยู่ทางกายภาพ และอีเมลเท่านั้น สคริปต์ต่อไปนี้จะช่วยให้เราบรรลุเป้าหมายนี้ได้
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
ดำเนินการสคริปต์ข้างต้นใน MySQL Workbench สร้างผลลัพธ์ต่อไปนี้
full_names | เพศ | ทางกายภาพ_ที่อยู่ | อีเมล |
---|---|---|---|
เจเน็ต โจนส์ | หญิง | ถนนสายแรก แปลงที่ 4 | janetjones@yagoo.cm |
เจเน็ต สมิธ โจนส์ | หญิง | เมลโรส 123 | jj@fstreet.com |
โรเบิร์ต ฟิล | ชาย | 3 ถนน 34 | rm@tstreet.com |
กลอเรียวิลเลียมส์ | หญิง | 2 ถนน 23 | NULL |
กำลังรับรายการภาพยนตร์
โปรดจำไว้ว่าในการอภิปรายข้างต้น เราได้กล่าวถึงนิพจน์ที่ใช้ในคำสั่ง SELECT สมมติว่าเราต้องการรับรายชื่อภาพยนตร์จากฐานข้อมูลของเรา เราต้องการให้มีชื่อภาพยนตร์และชื่อของผู้กำกับภาพยนตร์ในฟิลด์เดียว ชื่อของผู้กำกับภาพยนตร์ควรอยู่ในวงเล็บ เราต้องการรับปีที่ออกฉายภาพยนตร์ด้วย สคริปต์ต่อไปนี้ช่วยให้เราทำสิ่งนั้นได้
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ที่นี่
- เดอะ คอนแคท () MySQL ฟังก์ชันใช้รวมค่าคอลัมน์เข้าด้วยกัน
- บรรทัด “Concat (`title`, ' (', `director`, ')') ได้รับชื่อเรื่อง เพิ่มวงเล็บเปิดตามด้วยชื่อของผู้กำกับ จากนั้นจึงเพิ่มวงเล็บปิด
ส่วนสตริงจะถูกคั่นโดยใช้เครื่องหมายจุลภาคในฟังก์ชัน Concat ()
ดำเนินการสคริปต์ข้างต้นใน MySQL Workbench สร้างผลลัพธ์ชุดต่อไปนี้
Concat(`ชื่อ`, ' (', `ผู้กำกับ`, ')') | year_released |
---|---|
Pirates of the Caribean 4 (ร็อบ มาร์แชล) | 2011 |
ลืม Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
ชื่อรหัส แบล็ค (เอ็ดการ์ จิมซ์) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey คนดวงจันทร์ (จอห์น ชูลทซ์) | 2005 |
NULL | 2012 |
ชื่อฟิลด์นามแฝง
ตัวอย่างด้านบนส่งคืนรหัส Concatenation เป็นชื่อฟิลด์สำหรับผลลัพธ์ของเรา สมมติว่าเราต้องการใช้ชื่อฟิลด์ที่อธิบายรายละเอียดมากขึ้นในชุดผลลัพธ์ เราจะใช้ชื่อนามแฝงคอลัมน์เพื่อให้บรรลุสิ่งนั้น ต่อไปนี้คือไวยากรณ์พื้นฐานสำหรับชื่อนามแฝงคอลัมน์
SELECT `column_name|value|expression` [AS] `alias_name`;
ที่นี่
- “เลือก ` column_name|value|expression `” เป็นคำสั่ง SELECT ปกติซึ่งอาจเป็นชื่อคอลัมน์ ค่า หรือนิพจน์
- "[เช่น]" คือคีย์เวิร์ดเผื่อเลือก ก่อนชื่อนามแฝงที่แสดงถึงนิพจน์ ค่า หรือชื่อฟิลด์จะถูกส่งกลับเป็น
- “`นามแฝง_ชื่อ`” คือชื่อนามแฝงที่เราต้องการส่งคืนในชุดผลลัพธ์ของเราเป็นชื่อฟิลด์
แบบสอบถามด้านบนที่มีชื่อคอลัมน์ที่มีความหมายมากขึ้น
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
เราจะได้ผลลัพธ์ดังนี้
คอนแคท | year_released |
---|---|
Pirates of the Caribean 4 (ร็อบ มาร์แชล) | 2011 |
ลืม Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
ชื่อรหัส แบล็ค (เอ็ดการ์ จิมซ์) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey คนดวงจันทร์ (จอห์น ชูลทซ์) | 2005 |
NULL | 2012 |
การรับรายชื่อสมาชิกที่แสดงปีเกิด
สมมติว่าเราต้องการรับรายชื่อสมาชิกทั้งหมดที่แสดงหมายเลขสมาชิก ชื่อ-นามสกุล และปีเกิด เราสามารถใช้ฟังก์ชันสตริง LEFT เพื่อดึงปีเกิดจากฟิลด์วันที่เกิดได้ สคริปต์ที่แสดงด้านล่างช่วยให้เราทำสิ่งนั้นได้
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ที่นี่
- “ซ้าย(`date_of_birth`,4)” ฟังก์ชันสตริงซ้าย ยอมรับวันเกิดเป็นพารามิเตอร์และส่งคืนอักขระ 4 ตัวจากด้านซ้ายเท่านั้น
- “เป็น `ปี_เกิด`” คือ ชื่อนามแฝงของคอลัมน์ ที่จะถูกส่งกลับมาในผลลัพธ์ของเรา หมายเหตุ คำหลัก AS เป็นทางเลือกคุณสามารถปล่อยทิ้งไว้ได้และการสืบค้นจะยังคงใช้งานได้
ดำเนินการค้นหาข้างต้นใน MySQL โต๊ะทำงานเทียบกับ myflixdb ให้ผลลัพธ์ตามที่แสดงด้านล่าง
หมายเลขสมาชิก | full_names | ปีเกิด |
---|---|---|
1 | เจเน็ต โจนส์ | 1980 |
2 | เจเน็ต สมิธ โจนส์ | 1980 |
3 | โรเบิร์ต ฟิล | 1989 |
4 | กลอเรียวิลเลียมส์ | 1984 |
การใช้ SQL MySQL ม้านั่งทำงานของช่างเครื่อง
ตอนนี้เรากำลังจะใช้ MySQL workbench เพื่อสร้างสคริปต์ที่จะแสดงชื่อฟิลด์ทั้งหมดจากตารางหมวดหมู่ของเรา
1. คลิกขวาที่ตารางหมวดหมู่ คลิกที่ "เลือกแถว - จำกัด 1000"
2. MySQL workbench จะสร้างเคียวรี SQL โดยอัตโนมัติและวางในเอดิเตอร์
3. ผลลัพธ์การค้นหาจะปรากฏขึ้น
โปรดสังเกตว่าเราไม่ได้เขียนคำสั่ง SELECT ด้วยตัวเอง MySQL โต๊ะทำงานสร้างมันขึ้นมาเพื่อเรา
เหตุใดจึงต้องใช้คำสั่ง SELECT SQL ในเมื่อเรามี MySQL โต๊ะทำงาน?
ตอนนี้ คุณอาจกำลังคิดว่าเหตุใดจึงต้องเรียนรู้คำสั่ง SQL SELECT เพื่อสืบค้นข้อมูลจากฐานข้อมูล ในเมื่อคุณสามารถใช้เครื่องมือ เช่น MySQL workbench เพื่อให้ได้ผลลัพธ์เดียวกันโดยไม่ต้องมีความรู้ภาษา SQL แน่นอนว่าเป็นไปได้แต่ เรียนรู้วิธีการใช้คำสั่ง SELECT ให้คุณมากขึ้น ความยืดหยุ่น and ควบคุม มากกว่าคุณ คำสั่ง SQL SELECT.
MySQL โต๊ะทำงานจัดอยู่ในประเภท “ค้นหาตามตัวอย่างเครื่องมือ QBE มีจุดมุ่งหมายเพื่อช่วยสร้างคำสั่ง SQL ได้เร็วขึ้นเพื่อเพิ่มประสิทธิภาพการทำงานของผู้ใช้
การเรียนรู้คำสั่ง SQL SELECT ช่วยให้คุณสามารถสร้างได้ แบบสอบถามที่ซับซ้อน ที่ไม่สามารถสร้างได้อย่างง่ายดายโดยใช้ยูทิลิตี้ Query by Example เช่น MySQL โต๊ะทำงาน
เพื่อปรับปรุงประสิทธิภาพการผลิตที่คุณสามารถทำได้ สร้างรหัสโดยใช้ MySQL ปรับแต่ง แล้วก็ ปรับแต่ง ไปให้ ตรงตามความต้องการของคุณ- สิ่งนี้สามารถเกิดขึ้นได้ก็ต่อเมื่อคุณเข้าใจวิธีการทำงานของคำสั่ง SQL!
สรุป
- คีย์เวิร์ด SQL SELECT ใช้ในการสืบค้นข้อมูลจากฐานข้อมูลและเป็นคำสั่งที่ใช้บ่อยที่สุด
- รูปแบบที่ง่ายที่สุดมีไวยากรณ์ “SELECT * FROM tableName;”
- นิพจน์ยังสามารถใช้ในคำสั่ง select ได้ ตัวอย่าง “เลือกปริมาณ + ราคาจากการขาย”
- คำสั่ง SQL SELECT สามารถมีพารามิเตอร์เสริมอื่นๆ เช่น WHERE, GROUP BY, HAVING, ORDER BY ได้ ซึ่งจะกล่าวถึงในภายหลัง
- MySQL workbench สามารถช่วยพัฒนาคำสั่ง SQL ดำเนินการและสร้างผลลัพธ์เอาต์พุตในหน้าต่างเดียวกัน