หน่วยการเรียนรู้ที่ 4
ภาษา SQL
Structured Query Language ; SQL
SQL จัดเป็นภาษามาตรฐานบนระบบฐานข้อมูลเชิงสัมพันธ์ ซึ่งเป็นภาษาที่สามารถใช้งานได้ในคอมพิวเตอร์หลายระดับด้วยกัน ไม่ว่าจะเป็นระดับเมนเฟรมคอมพิวเตอร์จนถึงไมโครคอมพิวเตอร์ ชุดคำสั่ง หรือ ภาษา SQL นั้นถูกพัฒนาจากแนวความคิดทางคณิตศาสตร์ คือ Relational Algebra และ Relation Calculus ตามแนวคิดของเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์ ที่ E.F. Codd เป็นผู้คิดค้นขึ้น
เมื่อปี ค.ศ. 1970 และต่อมาบริษัท IBM จึงเริ่มทำการวิจัยพัฒนาเมื่อ ปี ค.ศ. 1974 โดยใช้ชื่อว่า “SEQUEL” (Structured English Query Language) จากนั้นจึงมีการปรับปรุงและเปลี่ยนชื่อมาเป็น SQL
หลังจากปี ค.ศ. 1970 เป็นต้นมา ระบบฐานข้อมูล ORACLE ซึ่งถูกพัฒนาโดยบริษัท ORACLE Corporation และถือเป็นก้าวแรกในเชิงพาณิชย์สำหรับการพัฒนาระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่ตั้งอยู่บนพื้นฐานของ SQL และต่อมาก็มีผลิตภัณฑ์อื่นๆ พัฒนาตามมา เช่น INGRESS
เมื่อมีผลิตภัณฑ์จากผู้ผลิตต่างๆ มากขึ้น จึงทำให้เกิด SQL หลายๆรูปแบบจากผลิตภัณฑ์ต่างๆ ดังนั้นในราวปี ค.ศ. 1982 ทาง ANSI จึงได้คิดค้นและร่างมาตรฐานของชุดคำสั่ง SQL เพื่อให้ผู้ผลิตรายต่างๆ สร้างชุดคำสั่งดังกล่าวให้อยู่ภายใต้มาตรฐานเดียวกัน แต่ในปัจจุบันแต่ละผลิตภัณฑ์ต่างก็มีการเพิ่มคุณสมบัติพิเศษเพิ่มเติมเพื่อให้มีประสิทธิภาพยิ่งขึ้นและถือเป็นจุดขายของผลิตภัณฑ์ แต่ทั้งนี้ โดยหลักการแล้วชุดคำสั่งดังกล่าวยังคงตั้งอยู่บนพื้นฐานที่ทาง ANSI บัญญัติไว้ โดยในปัจจุบันมีระบบการจัดการฐานข้อมูลต่างๆ อาทิเช่น ORACLE , DB2 , SYBASE , Informix , MS-SQL , MS-Access ตลอดจน MS-FoxPro เป็นต้น ซึ่งการใช้งานภาษา SQL ในปัจจุบันมี 2 ลักษณะ คือ แบบโต้ตอบ (Interactive SQL) และ แบบฝังตัวในโปรแกรม (Embedded SQL)
วัตถุประสงค์ของ SQL
1. สร้างฐานข้อมูลและโครงสร้างรีเลชั่น
2. สนับสนุนงานด้านการจัดการฐานข้อมูลพื้นฐาน เช่น การเพิ่ม การปรับปรุง การลบข้อมูลจากรีเลชั่น
3. สนับสนุนการค้นหา สืบถาม หรือคิวรี่ข้อมูลและการแปลงข้อมูลให้อยู่ในรูปสารสนเทศ
ประเภทของคำสั่งภาษา SQL
1. ภาษานิยามข้อมูล (Data Definition Language : DDL) เป็นกลุ่มคำสั่งที่ใช้ในการสร้างฐานข้อมูล การกำหนดโครงสร้างข้อมูลว่ามีคอลัมน์หรือแอตตริบิวต์ใด ชนิดข้อมูลเป็นประเภทใด รวมทั้งการจัดการด้านการเพิ่ม แก้ไข ลบ แอตตริบิวต์ต่างๆในรีเลชั่น และการสร้างดัชนี
2. ภาษาการจัดการข้อมูล (Data Manipulation Language : DML) เป็นกลุ่มคำสั่งที่ถือเป็นแกนสำคัญของภาษา SQL โดยกลุ่มคำสั่งเหล่านี้จะใช้ในการ Update เพิ่ม ปรับปรุงและการ Query ข้อมูลในฐานข้อมูล ซึ่งอาจเป็นชุดคำสั่งในลักษณะ Interactive SQL หรือ Embedded SQL ก็ได้
3. ภาษาควบคุมข้อมูล (Data Control Language : DCL) ซึ่งเป็นกลุ่มคำสั่งที่จะช่วยให้ผู้บริหารฐานข้อมูล (DBA) สามารถควบคุมฐานข้อมูลเพื่อกำหนดสิทธิการอนุญาต (Grant) หรือการยกเลิกการเข้าใช้ (Revoke) ฐานข้อมูล ซึ่งเป็นกระบวนการป้องกันความปลอดภัยในฐานข้อมูล รวมทั้งการจัดการทรานแซกชั่น (Transaction Management)
แต่ละ DBMS จะมีการกำหนดชนิดข้อมูลซึ่งประกอบไปด้วยตัวแปรต่างๆ เช่น numeric , string , date , time เป็นต้น
ตารางแสดงชนิดของข้อมูลของ ORACLE7
CREATE คำสั่งที่ใช้ในการสร้าง เช่น CREATE TABLE สร้างตาราง , CREATE VIEW สร้างวิว
DROP คำสั่งที่ใช้ในการลบ เช่น DROP TABLE ลบตาราง , DROP VIEW ลบวิว
ALTER คำสั่งที่ใช้ในการเปลี่ยนแปลงโครงสร้างตาราง
ภาษาการจัดการข้อมูล (Data Manipulation Language : DML)
SELECT คำสั่งที่ใช้ในการคิวรีข้อมูลในฐานข้อมูล
INSERT คำสั่งที่ใช้เพิ่มข้อมูลในตาราง
UPDATE คำสั่งที่ใช้ปรับปรุงข้อมูล (Update) ในตาราง
DELETE คำสั่งที่ใช้ลบข้อมูลออกจากตาราง
SELECT คำสั่งที่ใช้ในการคิวรีข้อมูลในฐานข้อมูล
INSERT คำสั่งที่ใช้เพิ่มข้อมูลในตาราง
UPDATE คำสั่งที่ใช้ปรับปรุงข้อมูล (Update) ในตาราง
DELETE คำสั่งที่ใช้ลบข้อมูลออกจากตาราง
Select Statement
คำสั่ง Select เป็นคำสั่งที่ใช้เรียกดูข้อมูลจากตารางข้อมูลตามความต้องการของผู้ใช้ โดยสามารถใช้ร่วมกับ Function ทางคณิตศาสตร์ หรือเงื่อนไขประกอบต่างๆ ใน SQL Command ได้ อีกทั้งยังสามารถเรียกดูข้อมูลจากหลายๆตารางพร้อมกัน ซึ่งประโยค SELECT จะมีรูปแบบการใช้งานดังนี้
Column_expression เป็นการแทนค่าชื่อคอลัมน์ หรือ expression , table_name คือชื่อของตารางที่ต้องการเข้าถึงเพื่อวิวข้อมูล และ alias คือชื่อย่อของตารางที่ใช้แทน table_name โดยลำดับของการประมวลผลชุดคำสั่ง SELECT มีดังนี้
? FROM กำหนดตารางที่ต้องการใช้งาน
? WHERE สร้างเงื่อนไขเพื่อการกรอง (filter) แถวที่ต้องการ
? GROUP BY จัดกลุ่ม แถว ที่มีค่าคอลัมน์เดียวกัน
? HAVING กรองกลุ่มเนื้อหาในบางเงื่อนไขจาก GROUP BY
? ORDER BY กำหนดให้เรียงผลลัพธ์ โดยที่ ASC คือการเรียงลำดับจากน้อยไปมาก (Default) และ DESC คือการเรียงลำดับจากมากไปน้อย
ใน SQL สามารถใช้เครื่องหมายเปรียบเทียบ (Comparison Operators) ต่างๆ ได้ดังนี้
= , ? , ? , ? , ? และ ? ? หรือ ? หรือใช้เครื่องหมายทางตรรกะ (logical Operators) ได้แก่ AND , OR , NOT หรือการใช้เงื่อนไข (Condition) อื่นๆ เช่น
- BETWEEN / NOT BETWEEN ใช้แสดงข้อมูลเป็นช่วงๆ หรือระหว่างข้อมูล A ถึง B
- IN / NOT IN ใช้แสดงตำแหน่งข้อมูลหรือกำหนดตำแหน่ง
- LIKE / NOT LIKE เป็นโอเปอเรเตอร์ที่ใช้ในการค้นหาข้อมูลด้วยตัวอักษรด้วยเครื่องหมาย
Wildcard เช่น % และ _ คล้ายๆ การใช้ * ใน DOS
- IS NULL / IS NOT NULL ใช้ค้นหาข้อมูลที่บางคอลัมน์ของตาราง มี/ไม่มี ข้อมูล
- COUNT เป็นฟังก์ชั่นใช้ในการนับคำนวณ
- SUM เป็นฟังก์ชั่นหาผลรวม
- AVG เป็นฟังก์ชั่นหาค่าเฉลี่ย
- MIN เป็นฟังก์ชั่นหาค่าต่ำสุด
- MAX เป็นฟังก์ชั่นหาค่าสูงสุด
และยังมี การใช้ SQL Command สำหรับการจัดการข้อมูลในลักษณะอื่นๆ อีกมากมาย เช่น NESTED QUERY การ JOIN , การ UNION , INTERSECT , EXCEPT ตลอดจนการ INSERT DELETE และ UPDATE ข้อมูลในตาราง ซึ่งสามารถติดตามได้จากหนังสือหรือ คู่มือภาษา SQL ทั่วๆ ไป
ภาษาควบคุมข้อมูล (Data Control Language ; DCL)
การควบคุมข้อมูลถือเป็นการควบคุมความปลอดภัยในการใช้งานข้อมูลจากฐานข้อมูล กล่าวคือ ฐานข้อมูลมีวัตถุประสงค์ที่ต้องการให้ผู้ใช้หลายๆคนสามารถเข้าถึงข้อมูลส่วนกลางได้ ซึ่งหากปราศจากควบคุมความปลอดภัยในฐานข้อมูลแล้ว ย่อมก่อให้เกิดปัญหาต่างๆตามมา ดังนั้นผู้บริหารฐานข้อมูล จึงจำเป็นต้องทำการกำหนดสิทธิการเข้าใช้งานที่ควรจะเป็นให้แก่ User ในแต่ละระดับ ว่าจะสามารถเข้าถึงข้อมูลได้มากน้อยอย่างไร
ความปลอดภัยในฐานข้อมูลถือเป็นสิ่งสำคัญที่ไม่ควรมองข้าม เพราะข้อมูลอาจเกิดความเสียหายได้ถ้าไม่มีการควบคุมความปลอดภัย ดังนั้นเมื่อมีการควบคุมความปลอดภัย นั่นหมายถึงการป้องกันมิให้ผู้ที่ไม่มีสิทธิในการเข้าถึงข้อมูลจัดการกับข้อมูลในฐานข้อมูลได้ เช่น การกำหนดให้ผู้ใช้งานในแผนกแคชเชียร์สามารถเข้าถึงข้อมูลเพียงแค่เรียกดูราคาสินค้าเท่านั้น ไม่สามารถปรับปรุงข้อมูลราคาสินค้าเหล่านั้นได้ แต่พนักงานการตลาดที่ดูแลเรื่องราคาสินค้าและโปรโมชั่น มีสิทธิเข้าถึงข้อมูลราคาและเปลี่ยนแปลงราคาสินค้าได้ เป็นต้น การจัดการดังกล่าวจะทำให้ฐานข้อมูลในองค์การมีความปลอดภัยต่อการบุกรุกไม่ว่าจะเป็นการจงใจหรือไม่ตั้งใจก็ตาม และช่วยลดความเสี่ยงต่อการสูญหายของข้อมูลด้วย
นอกจากความปลอดภัยในการกำหนดสิทธิการใช้งานของผู้ใช้แล้ว ยังรวมไปถึงการควบคุมภาวะการเข้าพร้อมกัน (Concurrency Control) ด้วยซึ่งหากปราศจากการควบคุมอาจก่อให้เกิดความผิดพลาดในการ อัพเดทข้อมูลและส่งผลต่อความเสียหายในข้อมูลได้ เช่น การบันทึกข้อมูลบัญชีของธนาคารแห่งหนึ่ง ซึ่งวันวันหนึ่งมีลูกค้ามากมายหลายคนเข้าใช้บริการตู้ ATM จากหลายๆ สถานที่ ถ้าหากไม่มีการควบคุมภาวะการเข้าถึงข้อมูลพร้อมกัน ลูกค้า ตั้งแต่2 คน ขึ้นไปใช้ATM พร้อมกัน ข้อมูลทางบัญชีอาจรับข้อมูลของลูกค้าคนหนึ่งแต่อีกคนหนึ่งอาจไม่รับ ทำให้ข้อมูลเสียหายไม่ตรงกับความเป็นจริงได้ จึงต้องมีการควบคุมภาวะการเข้าพร้อมกันด้วยการให้ข้อมูลของฝ่ายใดฝ่ายหนึ่งเกิดการรอ (wait) จนกว่ารายการของลูกค้าคนที่เข้าถึงข้อมูลได้ก่อนจะแล้วเสร็จ แล้วจึงค่อยดำเนินการต่อไป
คำสั่ง GRANT เป็นคำสั่งที่ใช้ในการกำหนดสิทธิในการเข้าถึงข้อมูลว่าจะให้ผู้ใช้รายใดเข้าถึงฐานข้อมูล สามารถจัดการข้อมูลในตาราง หรือวิว ใดบ้าง เช่น กำหนดให้ผู้ใช้บางคนสามารถ SELECT ข้อมูลได้อย่างเดียว ในขณะที่บางคนสามารถปรับปรุงเปลี่ยนแปลงแก้ไขข้อมูลได้ ด้วยการ INSERT DELETE เป็นต้น
ตัวอย่างโปรแกรมสำเร็จรูปในการจัดการฐานข้อมูล
(Microsoft Access , Microsoft SQL Server และ MySQL)
1. โปรแกรม Microsoft Access
เป็นโปรแกรมการจัดการฐานข้อมูลในช่วงต้นๆ ของ กลุ่มบริษัทไมโครซอฟท์ ซึ่งออกแบบให้ใช้งานจัดการฐานข้อมูลได้ง่าย ไม่ซับซ้อน ซึ่งประกอบไปด้วยองค์ประกอบหลักของแถบเครื่องมือ (tool bar) ตามโครงสร้างของโปรแกรมไมโครซอฟท์ออฟฟิศทั่วไป ส่วนของการจัดการฐานข้อมูลประกอบไปด้วย ตาราง แบบสอบถาม ฟอร์ม รายงาน แมโครและโมดูล ดังภาพข้างล่าง
ในภาพแสดงถึงมุมมองหนึ่งใน Microsoft Access ที่แสดงโครงสร้างของข้อมูล Customers ในระบบการจัดการฐานข้อมูลของบริษัท Northwind ว่าประกอบไปด้วยกลุ่มของ ฟีลด์ข้อมูลใดบ้างและชนิดข้อมูล (Data types) เป็นอย่างไร พร้อมกับคำอธิบายข้อมูล (Data description)
Microsoft Access มีความสามารถในการแสดงในมุมมองที่หลากหลาย ดังภาพข้างล่างบนเป็นลักษณะการเรียกดูฐานข้อมูลพนักงานในลักษณะที่เรียกว่ามุมมอง ฟอร์ม (Form View) สามารถแสดงข้อมูลที่จำเป็นได้ภายในหน้าจอเดียวกัน และมีรูปแบบสวยงาม ซึ่งมีลักษณะการใช้งานที่ง่ายกว่ามุมมองตารางข้อมูล (Table หรือ Relation) ดังภาพข้างล่าง
Query คิวรี่ เป็นองค์ประกอบที่สำคัญมากของระบบการจัดการฐานข้อมูล เพราะหมายถึงการสอบถามหรือเรียกดูข้อมูลตามความต้องการของผู้ใช้ (Customized data inquiry) ซึ่งผู้ใช้สามารถตั้งคำถามได้ตามต้องการเช่น ต้องการทราบยอดขายของสินค้าในปี 1995 ดังตัวอย่างในภาพข้างล่างMicrosoft Access ก็จะแสดงข้อมูลออกมาให้ในตารางขวามือ ลักษณะการเรียกดูข้อมูลตามวัตถุประสงค์ใช้งานแบบนี้เรียกว่า “แบบสอบถาม” หรือ “QUERY
2. Microsoft SQL Server
เป็นโปรแกรมการจัดการฐานข้อมูลในตระกูล Microsoft อีกเช่นกัน แต่เน้นใช้งานในระบบเครือข่าย Client / Server โดยเฉพาะ ดังนั้นการใช้งานฐานข้อมูล SQL Server ต้องมีการสร้างระบบเครือข่ายและให้ Sever เป็นฐานข้อมูล ส่วนที่ Clients จะมีเพียงแต่ตัวโปรแกรมเท่านั้น เป็นการประหยัดทรัพยากรหน่วยความจำในเครื่อง Clients และต้องการให้มีศูนย์กลางข้อมูลอยู่เพียงแหล่งเดียวเพื่อการจัดการและควบคุมการเข้าใช้ได้อย่างมีประสิทธิภาพ โปรแกรม MS-SQL Server จึงถูกพัฒนาขึ้นภายใต้การใช้ภาษา SQL ที่เป็นสากล ที่สามารถใช้งานร่วมกับฐานข้อมูลอื่นที่มีโครงสร้างภาษาเดียวกัน เช่น ฐานข้อมูลที่สร้างขึ้นจาก Microsoft Access ก็สามารถใช้งานร่วมกันกับ SQL Server ได้เลย คำสั่งต่างๆ ที่ใช้ใน SQL Server กับ Access จึงเป็นคำสั่งเดียวกัน และออกแบบให้งานได้ง่ายด้วยหน้าต่าง
Windows ที่ผู้ใช้ส่วนใหญ่คุ้นเคย การใช้งาน SQL Server จะต้องอยู่บนสถาปัตยกรรมโครงสร้างฐานข้อมูลแบบ Client /
Server และมีการเชื่อมต่อ (connect) กับฐานข้อมูลทุกครั้งที่มีการใช้งาน
ภาพแสดงหน้าต่างโปรแกรมการจัดการฐานข้อมูล Microsoft SQL Server 2000
3. MySQL
โปรแกรม MySQL เป็นโปรแกรมการจัดการฐานข้อมูลอีกโปรแกรมหนึ่งที่ใช้ภาษา SQL เป็นที่นิยมและรู้จักกันในวงการ DBMS อย่างกว้างขวาง ซึ่งนักบริหารฐานข้อมูลนิยมใช้กันมากในปัจจุบัน เพราะใช้งานได้ดีในระบบปฏิบัติการทุกชนิด โดยเฉพาะอย่างยิ่งในระบบปฏิบัติการลีนุกซ์ ซึ่งรองรับ My SQL ได้เป็นอย่างดี MySQL เป็นโปรแกรมบริหารจัดการด้านฐานข้อมูล (Database Management)
MySQL ทำงานในลักษณะฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management System : RDBMS) คำว่า ฐานข้อมูลเชิงสัมพันธ์ ก็คือ ฐานข้อมูลที่แยกข้อมูลไปเก็บเอาไว้ในหน่วยย่อย ซึ่งเรียกว่าตารางข้อมูล (Table) แทนที่จะเก็บข้อมูลทั้งหมดรวมกันเอาไว้แห่งเดียว และแต่ละหน่วยย่อยที่ใช้เก็บข้อมูลต่างมีความสัมพันธ์เชื่อมโยงกันอยู่ ยกตัวอย่างเช่น ข้อมูลสินค้า ซึ่งสามารถจัดเก็บแยกกันได้ แล้วอาศัยรหัสของสินค้าในการเรียกค้นข้อมูลที่จัดเก็บแยกกันเอาไว้ การที่เราจะเข้าไปจัดการกับข้อมูล ต้องอาศัยภาษาคอมพิวเตอร์ที่เรียกว่า SQL ซึ่งย่อมาจาก Structure Query Language ชื่อ MySQL ก็สื่อให้ทราบว่าเกี่ยวกับภาษา SQL อยู่แล้ว ดังนั้น MySQL จึงทำงานตามคำสั่งภาษา SQL ได้ อันเป็นไปตามมาตรฐานของโปรแกรมทางด้านฐานข้อมูลที่จะต้องมีความสามารถรองรับคำสั่งที่เป็นภาษา SQL
MySQL เป็นโปรแกรมที่เปิดเผยรายละเอียดซอร์สโค้ดต่อบุคคลทั่วไป (Open Source Software) ซึ่งหมายความว่า ใครก็ตามที่มีความรู้ทางด้านภาษาคอมพิวเตอร์อย่างดีก็สามารถนำเอาซอร์สโค้ดของโปรแกรม MySQL ซึ่งเขียนด้วยภาษา C ไปดัดแปลง ปรับปรุง แก้ไข ให้ตรงกับที่ต้องการได้ทันทีโดยไม่ผิดกฎหมาย ใช้ได้กับระบบปฏิบัติการหลากหลายระบบ เช่น Linux, Solaris, Mac OS X Server, OS/2 Warp, Sun OS, Windows 9x/NT/2000/XP และระบบตระกูล Unix อีกมากมาย ซึ่งทุกระบบปฏิบัติการสามารถเชื่อมโยงและแลกเปลี่ยนข้อมูลกันได้เป็นอย่างดี
ภาพที่ 4.13 ตัวอย่างหน้าต่างของโปรแกรม MySQL (www.MySQL.com)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น