INSERT INTO employee (name, position, department, salary)
VALUES ('Meeboon Boonlonluer', 'Staff', 'Accounting', '8500')
คือ SQL Statement ที่เราได้มาครับ
ซึ่งก็คือ SQL Statement ในการแทรกระเบียนเข้าสู่ตารางฐานข้อมูล
รูปแบบของคำสั่งมีดังนี้
INSERT INTO ชื่อตาราง (ฟิลด์ที่1, ฟิลด์ที่2,...
, ฟิลด์ที่n) VALUES ('ค่าที่1', 'ค่าที่2',...
, 'ค่าที่n')
ตอนที่เราเปิดเข้ามาดูระเบียนที่เพิ่งจะถูกแทรกเข้าไป ก็ได้ SQL Statement มาอีกอัน นั่นก็คือ เอาไว้สำหรับเรียกดูข้อมูล
(query หรือ สืบค้น นั่นเอง) ภายในตาราง
SELECT * FROM employee LIMIT 0, 30
ซึ่งมีความหมายดังนี้
ดึงข้อมูลของทุกฟิลด์มาแสดง โดยดึงจากตารางชื่อ
employee โดยจำกัดแค่ 30
ระเบียนแรก ที่สืบค้นมาได้ และเริ่มจากระเบียนที่ 0
รูปแบบของคำสั่ง SELECT นั้น
ในภาษา SQL มีความซับซ้อนมากๆ
ดังนั้นเรามาดูรูปแบบการใช้งานคำสั่ง SELECT
แบบง่ายๆ ก่อน ซึ่งก็มีดังนี้
SELECT * FROM ชื่อตาราง [WHERE เงื่อนไขต่างๆ]
[ORDER BY ฟิลด์ [DESC/ASC]] [LIMIT ระเบียนแรกที่ต้องการให้แสดง,
จำนวนระเบียนที่ต้องการให้แสดง]
แค่นี้ก็ปวดหัวแล้วใช่ไหมครับ... รูปแบบเต็มๆ
นี่ยิ่งกว่านี้อีกนะครับ เหอๆ เพียงแต่ตอนนี้ผมเอามาเล่าสู่กันอ่านแค่นี้ก่อน
ความหมายของรูปแบบข้างต้นก็มีดังนี้ครับ
(ขออธิบายเป็นส่วนๆ)
SELECT * : มีความหมายว่า
เลือกที่จะแสดงข้อมูลทุกฟิลด์ (ตัว * มีความหมายแทนทุกฟิลด์นั่นเอง)
แต่หากเราไม่ต้องการสิ้นเปลืองทรัพยากรในการเก็บข้อมูลที่เราไม่ได้อยากเลือกออกมา
เราก็แค่กำหนดชื่อฟิลด์ลงไปแทนครับ เช่น SELECT field1, field2
เป็นต้น เท่านี้ก็จะเป็นการสืบค้นเฉพาะข้อมูลที่อยู่ในฟิลด์ชื่อ field1
และ field2 ออกมา
FROM ชื่อตาราง
: ก็คือ เราจะสืบค้นข้อมูลจากตารางอะไรบ้าง...
เราสามารถเลือกสืบค้นจากข้อมูลได้มากกว่า 1 ตารางนะครับ แต่จะไม่กล่าวถึงในตอนนี้
เพราะเดี๋ยวมันจะมั่วไป
WHERE เงื่อนไขต่างๆ
: อันนี้จะเป็นการกำหนดเงื่อนไขในการสืบค้นครับ เช่น หากผมใส่ว่า WHERE
salary < 2000 ก็แสดงว่า
ผมต้องการค้นหาระเบียนที่มีเงื่อนไขว่า ข้อมูลในฟิลด์ชื่อ salary มีค่าน้อยกว่า
2000 นั่นเอง เป็นต้น (ไว้ดูตัวอย่างต่อไป
ตอนที่เราเพิ่มข้อมูลลงในฐานข้อมูลไปแล้วเยอะๆ)... หากไม่กำหนดเงื่อนไข
แสดงว่าเราจะแสดงข้อมูลทั้งหมด
ORDER BY ฟิลด์
[DESC/ASC] : อันนี้มีไว้ เพื่อจัดเรียงข้อมูลครับ
โดยสามารถเลือกได้ว่าจะเรียงข้อมูลโดยดูจากฟิลด์ไหน เช่น ถ้าบอกว่า ORDER
BY salary DESC ก็หมายความว่าเรียงข้อมูล
โดยเรียงจากผู้ที่มีข้อมูลในฟิลด์ salary จากค่ามาก ไปหาค่าน้อย แต่ถ้าบอกว่า ORDER
BY salary ASC ก็จะหมายความว่า เรียงจากผู้ที่มีข้อมูลในฟิลด์
salary จากค่าน้อย ไปหาค่ามาก (แต่จริงๆ
หากไม่บอกว่าเป็น DESC หรือ ASC แล้ว
มันก็จะติ๊ต่างว่าเราเลือกเป็น ASC ครับ)... เราสามารถเลือกที่จะเรียงข้อมูลโดยดูจากหลายๆ
ฟิลด์รวมๆ กันได้ เช่น ORDER BY id, salary ซึ่งก็จะมีความหมายว่า
เรียงตาม id ก่อน แล้วค่อยมาเรียงตาม salary อีกทีนั่นเอง
(จะเห็นภาพชัดเจนกว่านี้ตอนได้ลองกับตัวอย่างจริงๆ) หากไม่กำหนด
มันก็จะอิงฟิลด์แรกเป็นหลัก หรือไม่ก็ ฟิลด์ใดๆ ที่ถูกกำหนดเป็น primary
key (คีย์หลัก) ครับ
LIMIT ระเบียนแรกที่ต้องการให้แสดง,
จำนวนระเบียนที่ต้องการให้แสดง : อันนี้คงไม่ต้องอธิบายอะไรมาก
เพราะมันคือการกำหนดจำนวนระเบียนที่ต้องการแสดงออกมาหลังสืบค้น หากเราใส่เป็น LIMIT
0, 2 ก็หมายความต้องการให้แสดงแค่ 2 ระเบียน
โดยเริ่มจากระเบียนที่ 0 ซึ่งเราก็จะได้ระเบียนที่ 0
และ 1 ออกมา... หากเราบอกเป็น LIMIT 4, 3
เราก็จะได้ระเบียนที่ 4, 5 และ 6
ออกมาครับ (เริ่มจากระเบียนที่ 4 แสดงออกมา 3
ระเบียนนั่นเอง)
สังเกตนิดนึงตรงคำว่า ระเบียนที่ มันไม่ได้หมายความว่าจะแสดงโดยดูจาก
id หรือฟิลด์ใดๆ เป็นหลัก แต่จะดูว่าเวลาที่ทำการ query
ตามเงื่อนไขมาแล้ว ระเบียนใดมาเป็นระเบียบแรกสุด
ก็จะถือว่าเป็นระเบียนที่ 0 ไป
ที่มา: http://flash.thaimisc.com/r/view.php?id=487
ไม่มีความคิดเห็น:
แสดงความคิดเห็น