700 likes | 1k Views
ภาษา SQL (Structured Query Language).
E N D
SQL (Structured Query Language)เป็นภาษามาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์ สามารถใช้งานได้กับเครื่องคอมพิวเตอร์หลายระดับ ปัจจุบันมีซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS) ที่สนับสนุนการใช้คำสั่ง SQL เช่น ORACLE, DB2, MS-SQL, MS-Access นอกจากนี้ภาษา SQL ถูกนำมาใช้เขียนร่วมกับโปรแกรมภาษาต่างๆ เช่น ภาษา C/C++, VisualBasic และ Java วัตถุประสงค์ของ SQL 1.สร้างฐานข้อมูลและ ตาราง 2. สนับสนุนการจัดการฐานข้อมูล ซึ่งประกอบด้วย การเพิ่ม การปรับปรุง และการลบข้อมูล 3. สนับสนุนการเรียกใช้หรือ ค้นหาข้อมูล
ประเภทของคำสั่งภาษา SQL1. ภาษานิยามข้อมูล(Data Definition Language : DDL) เป็นคำสั่งที่ใช้ในการสร้างฐานข้อมูล กำหนดโครงสร้างข้อมูลว่ามี Attributeใด ชนิดของข้อมูลรวมทั้งการเปลี่ยนแปลงตาราง และการสร้างดัชนี คำสั่ง : CREATE,DROP,ALTER
2. ภาษาจัดการข้อมูล(Data Manipulation Language :DML) เป็นคำสั่งที่ใช้ในการเรียกใช้ เพิ่ม ลบ และเปลี่ยนแปลงข้อมูลในตารางคำสั่ง : SELECT,INSERT,UPDATE,DELETE 3. ภาษาควบคุมข้อมูล(Data Control Language : DCL) เป็นคำสั่งที่ใช้ในการกำหนดสิทธิการอนุญาติ หรือ ยกเลิก การเข้าถึงฐานข้อมูล เพื่อป้องกันความปลอดภัยของฐานข้อมูล คำสั่ง : GRANT,REVOKE
ภาษานิยามข้อมูล (Data Definition Language: DDL) ภาษานิยามข้อมูลประกอบด้วยคำสั่ง ดังนี้ CREATE คำสั่งที่ใช้ในการสร้าง - CREATE TABLE สร้างตาราง - CREATE INDEX สร้างดัชนี - CREATE VIEW สร้างวิว DROP คำสั่งที่ใช้ในการลบ - DROP TABLE ลบตาราง - DROP INDEX ลบดัชนี - DROP VIEW ลบวิว ALTER คำสั่งที่ใช้ในการเปลี่ยนแปลงโครงสร้างตาราง
การสร้างตาราง : CREATE TABLEคำสั่งที่ใช้ คือ CREATE TABLE มีรูปแบบ คือ CREATE TABLE table_name ( field1 type [(size)] [NOT NULL] , field2 type [(size)] [NOT NULL] , …………... CONSTRAINT name PRIMARY KEY (primary1, primary2 , ...) FOREIGN KEY (ref1, ref2 , ..) REFERENCES foreigntable (foreignfield1 , foreignfield2 , ...) );
ตัวอย่าง Create table Student ( ID integer PRIMARY KEY NOT NULL, FName char(30), LName char(30) )
การลบตาราง : DROP TABLEคำสั่งที่ใช้ในการลบตารางจะใช้คำสั่ง DROP TABLE tablename ตัวอย่าง DROP TABLE Employee;
การสร้างและลบดัชนี:CREATE /DROP INDEXการสร้างดัชนีสำหรับตาราง - เลือก column หรือ กลุ่มของ column จากตารางขึ้นมาเป็นดัชนี เช่น ชื่อนักศึกษา - ในหนึ่งตารางสามารถมีดัชนีได้หลายดัชนี - ช่วยในการค้นหาข้อมูลได้รวดเร็ว
การสร้างและลบดัชนี:CREATE /DROP INDEXคำสั่งที่ใช้ในการสร้างและลบดัชนี • CREATE INDEX Index-name • ON table-name(attribute-name1,….) • ex. CREATE INDEX PRO_INDEX • ON PRODUCT(PRODUCT_NAME); • DROP INDEX Index-name • ex. DROP INDEX PRO_INDEX ;
ตัวอย่าง การสร้างดัชนี โดยใช้ชื่อคนงานเป็นดัชนี CREATE INDEX NAME_IDX ON WORKER (WK_NAME) ตัวอย่าง การสร้างดัชนี โดยใช้รหัสคนงานเป็นดัชนี CREATE INDEX CODE_IDX ON WORKER (WK_ID)
การสร้างวิว : CREATE VIEW เป็นการสร้างตารางสมมติขึ้นมาให้กับผู้ใช้งาน โดยการดึงข้อมูลบางส่วนมาจากฐานข้อมูล เพื่อให้ผู้ใช้งานเรียกข้อมูลที่ต้องการจากวิวที่กำหนดให้เท่านั้น คำสั่งที่ใช้ในการสร้างวิว คือ CREATE VIEW view-name [column_name1, column_name2,...] AS SELECT attribute1,attribute2,.. FROM table-name WHERE condition การลบวิว ใช้คำสั่ง DROP VIEW view-name
ex. Create view my_view1 as select pro_id , pro_name , pro_price from product where supid = 5 ; ex. DROP VIEW ex. DROP VIEW my_view1
การเปลี่ยนแปลงโครงสร้างตาราง : ALTER TABLEเป็นการเปลี่ยนแปลงโครงสร้างตารางที่สร้างไว้ ดังนี้ 1. ADD เป็นการเพิ่ม column ในตาราง 2. MODIFY เป็นการแก้ไขเปลี่ยนแปลง column 3. DROP เป็นการลบ column คำสั่งที่ใช้ ALTER TABLE tablename [ COMMAND [COLUMN]column_name datatype [CONSTRAINT]]; COMMAND คือ ADD,MODIFY,DROP
Alter Table • ADD Attribute name • ex. ALTER TABLE Employee • ADD Tel CHAR( 10) ; • MODIFY Structure • ex. ALTER TABLE Employee • MODIFY ( EName CHAR(35) ); • DROP Attribute name • ex. ALTER TABLE Employee • DROP Tel CHAR( 10) ;
ภาษาจัดการข้อมูล (Data Manipulation Language:DML) ภาษาจัดการข้อมูลประกอบด้วยคำสั่ง ดังนี้ SELECT ใช้เรียกดูข้อมูลในฐานข้อมูล INSERT ใช้สำหรับเพิ่มข้อมูลในตาราง UPDATE ใช้สำหรับปรับปรุงข้อมูลในตาราง DELETE ใช้สำหรับลบข้อมูลจากตาราง
คำสั่ง SELECTเป็นคำสั่งที่ใช้สำหรับเรียกดูข้อมูลจากตารางในฐานข้อมูล มีรูปแบบอยู่หลายรูปแบบ สามารถเรียกดูข้อมูลโดยมีเงื่อนไขประกอบ รวมทั้งเรียกดูข้อมูลได้จากหลายตาราง รูปแบบของคำสั่งประกอบด้วย 3 ส่วนหลัก คือ SELECT…..FROM…..[WHERE…]
DISTINCT การเรียกดูข้อมูลโดยไม่แสดงรายการที่ซ้ำ FROM กำหนดตารางที่ต้องการใช้เรียกดูข้อมูล WHERE เงื่อนไขที่ใช้ในการค้นหาข้อมูลจากตาราง ORDER BY กำหนดการเรียงลำดับข้อมูล โดยที่ DESC การเรียงลำดับจากมากไปน้อย ASC การเรียงลำดับจากน้อยไปมาก GROUP BY การจัดกลุ่มแถวข้อมูลตามคอลัมน์ที่ระบุ HAVING เงื่อนไขที่ใช้กับ ข้อมูลที่ได้จาก GROUP BY เท่านั้น
การเรียกดูข้อมูลทุก column โดยมีเงื่อนไขSELECT * FROM < table> WHERE <condition> การเรียกดูข้อมูลบาง column SELECT <column> FROM < table> การเรียกดูจากหลายตาราง SELECT * FROM < table1> <table2>
Mathematics Operator เป็น operator ที่ใช้ในการคำนวณ ได้แก่ เครื่องหมาย +, -, *, / ตัวอย่าง SELECT ID,FName,LName,Salary*0.05 AS Commision FROM Employee; ID FName LName Commision 1 John Smith 650 2 Mary Jones 750 3 Andy Brown 900 4 Jane Wright 1,000 5 John Jones 1,050
WHERE Condition • Mathematics Operator + , - , * , / ex. Select pro_name , pro_price * amount as sum from product ;
Comparison Operator เป็น Operator ที่ใช้ในการเปรียบเทียบ โดยใช้เครื่องหมาย ดังนี้ = เท่ากับ < น้อยกว่า > มากกว่า <= น้อยกว่าหรือเท่ากับ >= มากกว่าหรือเท่ากับ <> ไม่เท่ากับ
WHERE Condition • Comparison Operator = , > , < , >= ,< = ,<> ex. Select pro_id , pro_name from product where (price >=5 ) and (amount >=20) ;
Logical Operator in, between , like, not SELECT pro_id, pro_name,sup_id FROM product WHERE sup_id not in ( 1,2);
WHERE Condition SELECT pro_id, pro_name , pro_price FROM product WHERE pro_price between 5 and 20
WHERE Condition SELECT pro_id, pro_name FROM product WHERE pro_name like "p*"
การเรียกดูข้อมูลจากหลายตารางการเรียกดูข้อมูลจากหลายตาราง
การเรียกดูแบบซ้อนกัน : Subqueries หรือ Nested queryเป็นการเรียกดูข้อมูลด้วยคำสั่ง SELECT ซ้อน คำสั่ง SELECT ในลักษณะของ Nested query ชุดคำสั่ง SELECT ข้างในจะถูกประมวลผลก่อน แล้วส่งผลลัพธ์ให้กับ คำสั่ง SELECT ข้างนอก รูปแบบ มีดังนี้ SELECT ……. FROM…….. WHERE……… (SELECT …….. FROM……….. WHERE………. )
ตัวอย่าง ต้องการหารายชื่อพนักงานที่อยู่แผนกเดียวกับ Andy Employee Name Department John Marketing Mary Sales Peter Sales Andy Marketing Anne Marketing
การใช้ Aggregate Functionเป็นการใช้ Function ทางสถิติเพื่อช่วยในการคำนวณ ประกอบด้วย Function ต่างๆ ดังนี้ COUNT เป็นการนับจำนวนแถวข้อมูล SUM เป็นการหาผลรวม AVG เป็นการหาค่าเฉลี่ย MIN เป็นการหาค่าต่ำสุด MAX เป็นการหาค่าสูงสุด
การใช้ GROUP BY เป็นการจัดกลุ่มแถวข้อมูลตามคอลัมน์ที่ระบุ โดยข้อมูลที่เหมือนกันจะถูกจัดให้อยู่ในกลุ่มเดียวกัน
การใช้ HAVINGประโยค HAVING จะใช้ร่วมกับ GROUP BY เสมอ โดยHAVING จะแสดงข้อมูลที่ผ่านการจัดกลุ่มด้วย GROUP BY เพียงบางส่วนตามเงื่อนไขที่กำหนดไว้ใน HAVING