วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

SQL


     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 - 8000n
Varchar[(n)]1 – 8000ความยาวข้อมูล
Text231-1(2,147,483,647) ตัวอักษร16+Multiple of 2k

2.2 Binary

ชนิดข้อมูล
ขอบเขตของชนิดข้อมูลขนาดหน่วยความจำ (ไบต์)
Binary(n)1 - 8000n
Varbinary(n)1 - 8000n + 1
Image231 -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,20794


2.4 Logical

ชนิดข้อมูล
ขอบเขตของชนิดข้อมูลขนาดหน่วยความจำ (ไบต์)
Bit0 หรือ 11

2.5 Numeric

ชนิดข้อมูล
ขอบเขตของชนิดข้อมูลขนาดหน่วยความจำ (ไบต์)
Int±2,147,483,6474
Smallint±327672
Tinyint0 2551
Float(p)
P (Precision) คือ การนับจำนวน รวมของเลขหน้าและหลังทศนิยม มีค่าตั้งแต่ 1 ถึง 28
S (Scale) คือ จำนวนตัวเลขหลัง ทศนิยม
±1.79E+3084 (Precision<16)
8(Precision>=16)
Double p±1.79E+3088
Real±1.79E+3084
Numeric(p,s)
Decimal(p,s)
±1032 ถึง 17
Money±$922,337,203,685,477.58078
Smallmoney±$214,748.36474

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

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


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

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








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

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