SQL (สามารถอ่านออกเสียงได้ 2 แบบ คือ “เอสคิวแอล” (SQL) หรือ “ซีเควล” (Sequel) ย่อมาจาก structured query language คือภาษาที่ใช้ในการเขียนโปรแกรม เพื่อจัดการกับฐานข้อมูลโดยเฉพาะ เป็นภาษามาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์และเป็นระบบเปิด (open system) หมายถึงเราสามารถใช้คำสั่ง sql กับฐานข้อมูลชนิดใดก็ได้ และ คำสั่งงานเดียวกันเมื่อสั่งงานผ่าน ระบบฐานข้อมูลที่แตกต่างกันจะได้ ผลลัพธ์เหมือนกัน ทำให้เราสามารถเลือกใช้ฐานข้อมูล ชนิดใดก็ได้โดยไม่ติดยึดกับฐานข้อมูลใดฐานข้อมูลหนึ่ง นอกจากนี้แล้ว SQL ยังเป็นชื่อโปรแกรมฐานข้อมูล ซึ่งโปรแกรม SQL เป็นโปรแกรมฐานข้อมูลที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็นภาษาหนึ่ง ซึ่งแบ่งการทำงานได้เป็น 4 ประเภท ดังนี้
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
2. Update query ใช้สำหรับแก้ไขข้อมูล
3. Insert query ใช้สำหรับการเพิ่มข้อมูล
4. Delete query ใช้สำหรับลบข้อมูลออกไป
ปัจจุบันมีซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS ) ที่สนับสนุนการใช้คำสั่ง SQL เช่น Oracle , DB2, MS-SQL, MS-Access
นอกจากนี้ภาษา SQL ถูกนำมาใช้เขียนร่วมกับโปรแกรมภาษาต่างๆ เช่น ภาษา c/C++ , VisualBasic และ Java
ประโยชน์ของภาษา SQL
1. สร้างฐานข้อมูลและ ตาราง
2. สนับสนุนการจัดการฐานข้อมูล ซึ่งประกอบด้วย การเพิ่ม การปรับปรุง และการลบข้อมูล
3. สนับสนุนการเรียกใช้หรือ ค้นหาข้อมูล
ประเภทของคำสั่งภาษา SQL
1. ภาษานิยามข้อมูล(Data Definition Language : DDL) เป็นคำสั่งที่ใช้ในการสร้างฐานข้อมูล กำหนดโครงสร้างข้อมูลว่ามี Attribute ใด
ชนิดของข้อมูล รวมทั้งการเปลี่ยนแปลงตาราง และการสร้างดัชนี คำสั่ง : CREATE,DROP,ALTER
2. ภาษาจัดการข้อมูล (Data Manipulation Language :DML) เป็นคำสั่งที่ใช้ในการเรียกใช้ เพิ่ม ลบ และเปลี่ยนแปลงข้อมูลในตาราง คำสั่ง : SELECT,INSERT,UPDATE,DELETE
3. ภาษาควบคุมข้อมูล (Data Control Language : DCL) เป็นคำสั่งที่ใช้ในการกำหนดสิทธิการอนุญาติ หรือ ยกเลิก การเข้าถึงฐานข้อมูล เพื่อป้องกันความปลอดภัยของฐานข้อมูล คำสั่ง : GRANT,REVOKE
2. ชนิดของข้อมูล (Data Type)
การใช้ชนิดข้อมูลได้อย่างถูกต้องในการสร้างฐานข้อมูลทำให้การจัดสรรการใช้เนื้อที่หน่วยความจำได้อย่างมีประสิทธิภาพ หน่วยความจำนี้รวมถึงฮาร์ดดิสก์ด้วย ดังนั้น เราควรจะทำความรู้จักชนิดข้อมูลที่ใช้ในฐานข้อมูล SQL Server ก็จะมีความคล้ายคลึงกับชนิดข้อมูลของผู้ผลิตรายอื่น ๆ เพราะใช้มาตรฐาน ANSI เป็นต้นแบบในการผลิตแอพพลิเคชันฐานข้อมูล ซึ่งแบ่งเป็นชนิดของข้อมูล ดังนี้
2.1 Character
ชนิดข้อมูล | ขอบเขตของชนิดข้อมูล | ขนาดหน่วยความจำ (ไบต์) |
| Char[(n)] | 1 - 8000 | n |
| Varchar[(n)] | 1 – 8000 | ความยาวข้อมูล |
| Text | 231-1(2,147,483,647) ตัวอักษร | 16+Multiple of 2k |
2.2 Binary
ชนิดข้อมูล | ขอบเขตของชนิดข้อมูล | ขนาดหน่วยความจำ (ไบต์) |
| Binary(n) | 1 - 8000 | n |
| Varbinary(n) | 1 - 8000 | n + 1 |
| Image | 231 -1(2,147,483,647) ไบต์ | 16+Multiple of 2k |
| Timestamp | ใช้สำหรับเปลี่ยนการจัดการ | 16 |
2.3 Date
ชนิดข้อมูล | ขอบเขตของชนิดข้อมูล | ขนาดหน่วยความจำ (ไบต์) |
| Datetime | วันที่เริ่มต้นตั้งแต่ January 1,1753 ถึง December 31,9999 ความละเอียดถึง 1/1000 วินาที | 8 |
| Smalldetetime | วันที่เริ่มต้นตั้งแต่ January 1,1900 ถึง June 6,2079 | 4 |
2.4 Logical
ชนิดข้อมูล | ขอบเขตของชนิดข้อมูล | ขนาดหน่วยความจำ (ไบต์) |
| Bit | 0 หรือ 1 | 1 |
2.5 Numeric
ชนิดข้อมูล | ขอบเขตของชนิดข้อมูล | ขนาดหน่วยความจำ (ไบต์) |
| Int | ±2,147,483,647 | 4 |
| Smallint | ±32767 | 2 |
| Tinyint | 0 255 | 1 |
| Float(p) P (Precision) คือ การนับจำนวน รวมของเลขหน้าและหลังทศนิยม มีค่าตั้งแต่ 1 ถึง 28 S (Scale) คือ จำนวนตัวเลขหลัง ทศนิยม | ±1.79E+308 | 4 (Precision<16) 8(Precision>=16) |
| Double p | ±1.79E+308 | 8 |
| Real | ±1.79E+308 | 4 |
| Numeric(p,s) Decimal(p,s) | ±103 | 2 ถึง 17 |
| Money | ±$922,337,203,685,477.5807 | 8 |
| Smallmoney | ±$214,748.3647 | 4 |
การเรียกดูข้อมูล
การเรียกข้อมูลจากตารางสามารถทำได้หลายรูปแบบทั้งที่มีเงื่อนไข หรือแม้แต่การเรียกดูข้อมูลจากหลายตาราง
การเรียกดูข้อมูลทั้งตาราง
รูปแบบของคำสั่ง SELECT เพื่อใช้เรียกดูข้อมูลทุกคอลัมน์จากตารางใดตารางหนึ่ง
รูปแบบ Select *
FROM
<table name>;
ในการเรียกดูข้อมูลทั้งตาราง จะใช้เครื่องหมาย * เพื่อแทนการเรียกดูข้อมูลจากทุกคอลัมน์ของตาราง
การเรียกดูข้อมูลเพียงบางคอลัมน์
รูปแบบคำสั่ง SELECT เพื่อใช้เรียกดูข้อมูลเพียงบางคอลัมน์จากตารางใดตารางหนึ่ง
รูปแบบ Select <column 1 , column 2,…>
FROM
<table name>;
ในการเรียกดูข้อมูลเพียงบางคอลัมน์ จำเป็นต้องระบุชื่อคอลัมน์ให้ถูกต้อง ตามที่ระบุไว้ในโครงสร้าง และหากเรียกดูมากกว่าหนึ่งคอลัมน์ จะต้องมีเครื่องหมาย , คั่นระหว่างชื่อคอลัมน์
การเรียกดูข้อมูลโดยไม่ให้แสดงข้อมูลซ้ำกัน
เมื่อต้องการดูข้อมูลจากตารางโดยไม่ให้แสดงข้อมูลที่ซ้ำซ้อนออกมา จะใช้คำว่า DISTINCT กำกับ หลังคำว่า SELECT
การเรียกดูข้อมูลโดยแสดงผลข้อมูลของคอลัมน์เป็นนิพจน์ทางคณิตศาสตร์
ในบางครั้งการเรียกดูข้อมูลของบางคอลัมน์ (Column list) อาจจะต้องทำการคำนวณประกอบก่อน เพื่อแสดงผลข้อมูลออกมา
การเรียกดูข้อมูลโดยการจัดเรียงข้อมูล
ข้อมูลที่ถูกเรียกสามารถถูกจัดเรียงตามคอลัมน์ที่ต้องการ เช่นให้เรียงชื่อตามตัวอักษร หรือให้เรียงข้อมูลตามเงินเดือน เป็นต้น ในการจัดเรียงข้อมูลอาจจะเรียงจากน้อยไปหามาก (Ascending) หรือจากมากไปหาน้อย (Descending)
รูปแบบคำสั่งที่ใช้แสดงผลลัพธ์โดยการจัดเรียงข้อมูล คือ
รูปแบบ SELECT
[*| DISTINCT] <column 1, …>
FROM <table
name>
[ORDER
BY <column 1,…>][ASC][DESC]];
การเรียกดูข้อมูลแบบมีเงื่อนไข
การเรียกดูข้อมูลแบบมีเงื่อนไข เป็นการระบุค่าเฉพาะของข้อมูลที่ต้องการเรียกดู อาจจะใช้เงื่อนไขเพื่อดึงข้อมูลบางแถวจากตาราง เช่น
การเรียกดูข้อมูลแบบมีเงื่อนไข จะใช้วลีหรืออนุประโยค WHERE ต่อท้ายวลีหรืออนุประโยค FROM รูปแบบของคำสั่งเป็นดังนี้
รูปแบบ SELECT
[ * | DISTINCT] <column 1, column 2, …>
FROM <table name>
[WHERE <CONDITION>];
ในอนุประโยค WHERE ประกอบด้วยส่วนสำคัญ 3 ส่วน คือ
1. ชื่อคอลัมน์
2. โอเปอเรเตอร์การเปรียบเทียบ ซึ่งแบ่งออกเป็นโอเปอเรเตอร์ทางตรรกะ (Logical Operator) โอเปอเรเตอร์ SQL รวมถึงการใช้โอเปอเรเตอร์บูลีน
3. ข้อมูลเฉพาะที่ต้องการเป็นเงื่อนไขของชื่อคอลัมน์ที่ระบุในข้อ 1 อาจเป็นค่าคงที่ (Constant) กลุ่มของข้อมูลหรือนิพจน์ (Expression) หรือชื่อคอลัมน์อื่นที่ต้องการนำมาเปรียบเทียบข้อมูลเฉพาะที่เป็นประเภทตัวอักษรหรือวัน เดือน ปี (DATE) เมื่อนำมาเป็นเงื่อนไขเฉพาะจะต้องมีเครื่องหมาย ‘ ‘ กำกับ
การเรียกดูข้อมูลแบบมีเงื่อนไข
โดยใช้โอเปอเรเตอร์ของ SQL
โอเปอเรเตอร์ของ SQL
ที่ใช้ในการกำหนดเงื่อนไขของข้อมูลในอนุประโยค WHERE มีดังต่อไปนี้
1. BETWEEN … AND … เป็นโอเปอเรเตอร์ที่กำหนดเงื่อนไขของคอลัมน์เป็นค่าระหว่างค่าสองค่า
การใช้ BETWEEN … AND …นี้
จะแสดงต่อท้ายชื่อคอลัมน์ที่ถูกระบุให้เป็นเงื่อนไข
2. IN
เป็นโอเปอเรเตอร์ที่ใช้กับเงื่อนไขของคอลัมน์ที่ต้องการระบุเงื่อนไขเป็นกลุ่มของข้อมูล
โดย IN จะแสดงต่อท้ายชื่อคอลัมน์ที่ถูกระบุเป็นเงื่อนไข
และกลุ่มของข้อมูลที่เป็นข้อมูลเฉพาะของคอลัมน์ที่เป็นเงื่อนไขนี้
จะระบุอยู่ในวงเล็บ และมีเครื่องหมาย , คั่น
3. LIKE เป็นโอเปอเรเตอร์ที่ใช้ในการค้นหาข้อมูลของคอลัมน์ที่เก็บข้อมูลประเภทตัวอักษรเท่านั้น
โดยยังไม่ทราบค่าที่แน่นอนทั้งหมดของข้อมูลที่จะค้นหา
หรือรู้เพียงบางตัวอักษรเท่านั้นโอเปอเรเตอร์ LIKE
จะระบุต่อท้ายชื่อคอลัมน์ที่เป็นเงื่อนไขโดยจะใช้สัญญลักษณ์ที่ช่วยในการค้นหาข้อมูลคือ
* และ ? จะต้องมีเครื่องหมาย ‘’ กำกับเสมอ
ความหมายของสัญลักษณ์ทั้งสองคือ
* ใช้แทนจำนวนตัวอักษรได้หลายตัว
? ใช้แทนจำนวนตัวอักษรที่ไม่ทราบค่า
1 ตัว
4. IS
NULL เป็นโอเปอเรเตอร์ที่ใช้ในการแสดงค่าของคอลัมน์ที่มีค่าเป็นค่าว่าง
หรือไม่มีค่านอกจากโอเปอเรเตอร์ของ SQL ทั้ง 4
ที่กล่าวมาแล้วข้างต้นโอเปอเรเตอร์เหล่านี้ ยังสามารถใช้เป็นเงื่อนไขในเชิงปฏิเสธโดยใช้คำว่า
NOT นำหน้า
การเรียกดูข้อมูลแบบมีหลายเงื่อนไข
โดยใช้โอเปอเรเตอร์บูลีน
การเรียกดูข้อมูลที่มีเงื่อนไขมากกว่าหนึ่งเงื่อนไข
สามารถใช้โอเปอเรเตอร์บูลีนเป็นตัวเชื่อมโยงเงื่อนไขดังกล่าว โอเปอเรเตอร์บูลีน
ประกอบด้วย
AND ใช้เชื่อมเงื่อนไข โดยข้อมูลที่จะแสดงออกมาจะต้องเป็นจริงตามเงื่อนไขทั้งสอง
OR ใช้เชื่อมเงื่อนไขสองเงื่อนไข
โดยข้อมูลที่จะแสดงออกมา จะเป็นจริงตามเงื่อนไขใด
เงื่อนไขหนึ่ง
NOT ใช้แสดงหน้าเงื่อนไขใดเงื่อนไขหนึ่ง
เพื่อให้ได้ข้อมูลที่ไม่เป็นตามเงื่อนไขที่ระบุ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น