วันอาทิตย์ที่ 28 สิงหาคม พ.ศ. 2554

มารู้จัก SQL กัน


ความรู้เกี่ยวกับ SQL
ความเป็นมาของ SQL
          SQL ย่อมาจาก Structured Query Language เป็นภาษาที่ใช้ในการจัดการของฐานข้อมูลเชิงสัมพันธ์ ผู้คิดค้น SQL เป็นรายแรกคือ บริษัทไอบีเอ็ม หลังจากนั้นมาผู้ผลิตซอฟท์แวร์ด้านระบบจัดการฐานข้อมูลเชิงสัมพันธ์ได้พัฒนาระบบที่สนับสนุน SQL มากขึ้น จนเป็นที่นิยมใช้กันอย่างแพร่หลายในปัจจุบัน โดยผู้ผลิตแต่ละรายก็พยายามพัฒนาระบบจัดการฐานข้อมูลของตนให้มีลักษณะเด่นเฉพาะขึ้นมา ทำให้รูปแบบการใช้คำสั่ง SQL มีรูปแบบแตกต่างกันไปบ้าง ในขณะที่ American National Standards Institute (ANSI) ได้กำหนดรูปแบบมาตรฐานของ SQL ขึ้น ซึ่งเป็นมาตรฐานของคำสั่ง SQL ตาม ANSI-86
          ต่อมาในปี 1992 ANSI ได้ปรับปรุงมาตรฐานของ SQL/2 และเป็นที่ยอมรับของ ISO (International Organization for Standardization) SQL/2 มีรายละเอียดเพิ่มขึ้น เช่น
·       เพิ่มประเภทของข้อมูลที่มีจากเดิม
·       สนับสนุนการใช้กลุ่มตัวอักษร
·       มีความสามารถในการให้สิทธิ์เพิ่มขึ้น (Privilege)
·       สนับสนุนการใช้ SQL แบบ Dynamic
·       เพิ่มมาตรฐานในการใช้ Embedded SQL
·       มีโอเปอเรเตอร์เชิงสัมพันธ์เพิ่มขึ้น
นอกจากนี้ ANSI ได้ทบทวนและปรับปรุง SQL อีกครั้ง SQL/3 จุดประสงค์ของการกำหนดมาตรฐาน เพื่อประโยชน์ในการใช้คำสั่งนี้ร่วมกันในระบบที่แตกต่างกันได้ (Application Portability) นอกจากนี้การเรียนรู้การใช้คำสั่ง SQL ตามมาตรฐานที่กำหนดขึ้น เป็นการง่ายที่จะนำไปประยุกต์ใช้หรือเรียนรู้เพิ่มเติมจากคำสั่ง SQL ของผู้ผลิตแต่ละรายได้

ประเภทของคำสั่ง SQL
1.     ภาษาสำหรับนิยามข้อมูล (Data Definition Language : DDL) ประกอบด้วยคำสั่งที่ใช้ในการกำหนดโครงสร้างข้อมูลว่ามีคอลัมน์อะไร แต่ละคอลัมน์เก็บข้อมูลประเภทใด รวมถึงการเพิ่มคอลัมน์ การกำหนดดัชนี การกำหนดวิวของผู้ใช้ เป็นต้น
2.     ภาษาสำหรับการจัดดำเนินการข้อมูล (Data Manipula-tion Language : DML) ประกอบด้วยคำสั่งที่ใช้ในการเรียกใช้ข้อมูล การเปลี่ยนแปลงข้อมูล การเพิ่มหรือลบข้อมูล เป็นต้น
3.     ภาษาที่ใช้ในการควบคุมข้อมูล (Data Control Language : DCL) ประกอบด้วยคำสั่งที่ใช้ในการควบคุม การเกิดภาวะพร้อมกัน หรือป้องกันการเกิดเหตุการณ์ที่ใช้หลายคนเรียกใช้ข้อมูลพร้อมกัน โดยที่ข้อมูลนั้น อยู่ระหว่างการปรับปรุงแก้ไข ซึ่งเป็นเวลาเดียวกับที่ผู้ใช้อีกคนหนึ่งก็เรียกใช้ข้อมูลนี้ ทำให้ข้อมูลที่ผู้ใช้คนที่สองได้ไปเป็นค่าที่ไม่ถูกต้อง

รูปแบบการใช้คำสั่ง SQL
          สามารถใช้ได้เป็น 2 รูปแบบ ดังนี้คือ
1.           คำสั่ง SQL ที่ใช้เรียกดูข้อมูลแบบโต้ตอบ (Interactive SQL) เป็นการใช้คำสั่ง SQL สั่งงานบนจอภาพ เพื่อเรียกดูข้อมูลจากฐานข้อมูลได้โดยตรงในขณะที่ทำงาน
2.           คำสั่ง SQL ที่ใช้เขียนร่วมกับโปรแกรมอื่น (Embedded SQL) เป็นการนำคำสั่ง SQL ไปใช้ร่วมกับชุดคำสั่งงานที่เขียนโดยภาษาต่าง เช่น Cobol , Pascal , PL/ เป็นต้น

ประโยชน์ของ SQL
          SQL เป็นภาษาฐานข้อมูล ที่สามารถใช้ในเรื่องของการนิยามข้อมูลการเรียกใช้ หรือการควบคุมคำสั่งเหล่านี้จะช่วยประหยัดเวลาในการพัฒนาระบบงาน หรือนำไปใช้ในส่วนของการสร้างฟอร์ม (Form) การทำรายงาน (Report) ของระบบงานต่าง ได้รวดเร็วยิ่งขึ้น

ข้อตกลงมาตรฐานในการใช้คำสั่ง SQL
          โดยทั่วไป คำสั่ง SQL หนึ่ง จะจบด้วยเครื่องหมาย ; รูปแบบคำสั่งแต่ละคำสั่งใน SQL มีสัญลักษณ์ที่ใช้แทนความหมาย ดังนี้
สัญลักษณ์

ความหมาย

ตัวพิมพ์ใหญ่

        < >               (.)             [ ]     

          ::=    


          |
คำสั่ง
ชื่อต่าง หรือนิพจน์ที่ผู้ใช้จะต้องกำหนดค่าขึ้นมา
สามารถระบุเพิ่มจากสิ่งที่เคยระบุมาแล้วข้างหน้า
คำสั่งนั้นๆจะมีสิ่งที่ระบุไว้ในเครื่องหมายนี้หรือไม่ก็ได้
ส่วนที่อยู่ด้านขวาเครื่องหมายนี้ เป็นคำอธิบายหรือคำนิยามของสิ่งที่อยู่ด้านซ้ายของเครื่องหมายนี้
อาจจะเลือกใช้สิ่งใดสิ่งหนึ่งที่อยู่ด้านซ้ายหรือด้านขวาของเส้นนี้ได้

 

 





 

การเรียกดูข้อมูล

          การเรียกข้อมูลจากตารางสามารถทำได้หลายรูปแบบทั้งที่มีเงื่อนไข หรือแม้แต่การเรียกดูข้อมูลจากหลายตาราง

 

การเรียกดูข้อมูลทั้งตาราง

          รูปแบบของคำสั่ง 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                  ใช้แสดงหน้าเงื่อนไขใดเงื่อนไขหนึ่ง เพื่อ
ให้ได้ข้อมูลที่ไม่เป็นตามเงื่อนไขที่ระบุ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น