ภาษา SQL
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์เป็นฐานข้อมูลที่มีการจัดเก็บข้อมูลเป็นแถว และคอลัมน์ในลักษณะตารางสองมิติ โดยที่คอลัมน์หรือแเอททริบิวต์ในตารางต่าง ๆ ได้มีการออกแบบและผ่านการทำให้เป็นบรรทัดฐาน(Normalized) ทั้งนี้เพื่อลดความซ้ำซ้อน ความผิดพลาดที่เกิดจากการเพิ่ม ลบ หรือปรับปรุงข้อมูล และทำให้การจัดการฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพ
ฐานข้อมูลที่ถูกต้องนั้นจะต้องไม่มีข้อมูลซ้ำซ้อน เพราะจะทำให้เสียพื้นที่ในการจัดเก็บและยากต่อการตรวจสอบค้นหาและแก้ไข ประโยชน์ของฐานข้อมูลที่ได้รับการออกแบบมาอย่างดีอีกอย่างก็คือ ทำให้สามารถมองเห็นภาพรวมของระบบการทำงานทั้งหมดได้ ซึ่งจะช่วยทำให้เกิดมองเห็นแนวทางการพัฒนาและปรับปรุงระบบงานนั้นๆ ได้ดียิ่งขึ้น
ประโยชน์ของ SQL
SQL เป็นภาษาเกี่ยวกับการจัดการฐานข้อมูล ไม่ว่าจะเป็นในเรื่องของการนิยามข้อมูล การเรียกใช้ หรือการควบคุม การใช้คำสั่งเหล่านี้ที่มีในระบบจัดการฐานข้อมูล (Database Management System : DBMS) เช่น ACCESS dBaseIV ORACLE, DB2 ฯลฯ จะช่วยประหยัดเวลาในการพัฒนาระบบงาน หรือนำไปใช้ในส่วนของการสร้างฟอร์ม (FROM) การทำรายงาน (REPORT) ของระบบงานต่าง ๆ ได้รวดเร็วยิ่งขึ้น
ประโยชน์ของภาษา SQL อีกประการก็คือ โปรแกรมระบบฐานข้อมูลส่วนใหญ่สนับสนุนภาษา SQL แทบทั้งสิ้น ดังนั้นถ้าเข้าใจภาษา SQLเท่ากับว่าคุณจะเขียนโปรแกรมติดต่อกับฐานข้อมูลอะไรก็ไม่ใช่เรื่องยากเลย...
ความรู้เกี่ยวกับ SQL
SQL ย่อมาจาก Structured Query Language เป็นภาษาที่ใช้ในการจัดการข้อมูลของฐานข้อมูลเชิงสัมพันธ์ ผู้คิดค้น SQL เป็นรายแรกคือ บริษัทไอบีเอ็ม หลังจากนั้นมาผู้ผลิตซอฟท์แวร์ด้านระบบจัดการฐานข้อมูลเชิงสัมพันธ์ได้พัฒนาระบบที่สนับสนุน SQL มากขึ้น จนเป็นที่นิยมใช้กันอย่างแพร่หลายในปัจจุบัน โดยผู้ผลิตแต่ละรายก็พยายามที่จะพัฒนาระบบจัดการฐานข้อมูลของตนให้มีลักษณะเด่นเฉพาะขึ้นมา ทำให้รูปแบบการใช้คำสั่ง SQL มีรูปแบบที่แตกต่างกันไปบ้าง เช่น ORACLE ACCESS SQL ของ Base Sybase INGRES หรือ SQL Server ของMicrosoft เป็นต้น ในขณะที่ American National Standards Institute (ANSI) ได้กำหนดรูปแบบมาตรฐานของ SQL ขึ้น ซึ่งเป็นมาตรฐานของคำสั่ง SQL ตาม ANSI-86 ที่ใช้เป็นมาตรฐานขั้นต่ำในการอ้างอิง อย่างก็ตามรูปแบบมาตรฐาน SQL ตาม ANSI-86 ก็มีข้อจำกัดในการใช้คำสั่ง SQL เช่นกันเมื่อเปรียบเทียบกับ SQL ของระบบจัดการฐานข้อมูล ที่ผู้ผลิตบางรายได้ทำการปรับปรุงและพัฒนาให้เป็นประโยชน์และง่ายสำหรับผู้ใช้อยู่ตลอดเวลา
ต่อมาในปี 1992 ANSI ได้ทำการทบทวน และปรับปรุงมาตรฐานของ SQL/2 และเป็นที่ยอมรับของISO (International Organization ) SQL/2 มีรายละเอียดเพิ่มขึ้น เช่น
- เพิ่มประเภทของข้อมูลที่มีจากเดิม
- สนับสนุนการใช้กลุ่มตัวอักษร
- มีความสามารถในการให้สิทธิ์เพิ่มขึ้น(Privilege)
- สนับสนุนการ SQL ใช้ แบบ Dynamic
- เพิ่มมาตรฐานในการใช้ Embedded SQL
- มีโอเปอเรเตอร์เชิงสัมพันธ์เพิ่มขึ้น ฯลฯ
ในขณะที่เขียนตำรานี้ ANSI กำลังทบทวนและปรับปรุง SQL อีกครั้ง (SQL/3) จุดประสงค์ของการกำหนดมาตรฐานเพื่อประโยชน์ในการใช้คำสั่งนี้ร่วมกันในระบบที่แตกต่างกันได้
(Application Portability) นอกจากนี้การเรียนรู้การใช้คำสั่ง SQL ตามมาตรฐานที่กำหนดขึ้น เป็นการง่ายที่จะนำไปประยุกต์ใช้หรือเรียนรู้เพิ่มเติมจากคำสั่ง SQL ของผู้ผลิตแต่ละรายได้
ประเภทของคำสั่ง SQL
1. ภาษาสำหรับนิยามข้อมูล (Data Definition Language : DDL) ประกอบด้วยคำสั่งที่ใช้ในการกำหนดโครงสร้างข้อมูลว่ามีคอลัมน์อะไร แต่ละคอลัมน์เก็บข้อมูลประเภทใด รวมถึงการเพิ่มคอลัมน์ การกำหนดดัชนี การกำหนดวิวของผู้ใช้ เป็นต้น
2. ภาษาสำหรับการจัดการข้อมูล (Data Manipulation Language : DML) ประกอบด้วยคำสั่งที่ใช้ในการเรียกใช้ข้อมูล การเปลี่ยนแปลงข้อมูล การเพิ่มหรือลบข้อมูล เป็นต้น
3. ภาษาที่ใช้ในการควบคุมข้อมูล (Data Control Language : DCL) ประกอบด้วยคำสั่งที่ใช้ในการควบคุม หรือป้องกันการเกิดเหตุการณ์ที่ผู้ใช้หลายคนเรียกใช้ข้อมูลพร้อมกัน โดยที่ข้อมูลนั้น ๆ อยู่ในระหว่างการปรับปรุงแก้ไข ซึ่งเป็นเวลาเดียวกับที่ผู้ใช้อีกคนหนึ่งก็เรียกใช้ข้อมูลนี้ ทำให้ข้อมูลที่ผู้ใช้คนที่สองได้ไปเป็นค่าเก่าที่ไม่ถูกต้อง ทั้งนี้เพราะผู้ใช้คนแรกยังปรับปรุงแก้ไขข้อมูลไม่เสร็จ นอกจากนี้ ยังประกอบด้วยคำสั่งที่เกี่ยวข้องกับการควบคุมความปลอดภัยของข้อมูลด้วยการให้สิทธิ์ผู้ใช้ที่แตกต่างกัน
SQL หรือ Structured Query Language
เป็นภาษาที่ใช้ในการติดต่อกับฐานข้อมูลหรือพูดอีกอย่างก็คือ เป็นภาษาที่ใช้ในการสั่งให้ฐานฐานข้อมูลกระทำการใด ๆ ตามคำสั่งที่เราสั่ง ซึ่งในการติดต่อฐานข้อมูลนั้น ไม่ว่าจะเป็น SQL Server , Microsoft Access , MySQL ,DB2 หรือแม้แต่ Oracle ก็จะต้องใช้คำสั่งภาษา SQL ในการควบคุมทั้งสิ้น และเราจะมาเรียนรู้ถึงคำสั่งพื้นฐาน ของ SQL ที่จำเป็น
โดยส่วนใหญ่แล้วการใช้คำสั่ง SQL เพื่อติดต่อฐานข้อมูลนั้น จะใช้โดยหลักคือ 3 กรณี
1. การเรียกดู
2. การแก้ไข ลบ, เพิ่ม, เปลี่ยนแปลง
3. การสร้างขึ้นใหม่
เช่นการสร้าง Table ขึ้นมา 3 Table
1.customer เป็นตารางเก็บข้อมูลลูกค้า
2.audit เป็นตารางเก็บข้อมูลการใช้ยอดเงินลูกค้า 3.country เป็นตารางเก็บข้อมูลประเทศ
Table : Customer
CustomerID | Name | Email | CountryCode | Budget | Used |
C001 | Win Weerachai | win.weerachai@thaicreate.com | TH | 1000000 | 600000 |
C002 | John Smith | john.smith@thaicreate.com | EN | 2000000 | 800000 |
C003 | Jame Born | jame.born@thaicreate.com | US | 3000000 | 600000 |
C004 | Chalee Angel | chalee.angel@thaicreate.com | US | 4000000 | 100000 |
Table : audit
AuditID | CustomerID | Date | Used |
1 | C001 | 2008-07-01 | 100000 |
2 | C001 | 2008-07-05 | 200000 |
3 | C001 | 2008-07-10 | 300000 |
4 | C002 | 2008-07-02 | 400000 |
5 | C002 | 2008-07-07 | 100000 |
6 | C002 | 2008-07-15 | 300000 |
7 | C003 | 2008-07-20 | 400000 |
8 | C003 | 2008-07-25 | 200000 |
9 | C004 | 2008-07-04 | 100000 |
Table : country
CountryCode | CountryName |
TH | Thailand |
EN | English |
US | United states |