1.1k likes | 1.29k Views
คำสั่ง SQL. วัตถุประสงค์. เรียนรู้คำสั่ง SQL พื้นฐานสำหรับการสร้างโครงสร้างของฐานข้อมูล เรียนรู้คำสั่งสำหรับการเรียกดูข้อมูล เรียนรู้คำสั่งสำหรับการ update ข้อมูล (เพิ่ม, ลบ, แก้ไข). SQL (Structured Query Language)
E N D
วัตถุประสงค์ • เรียนรู้คำสั่ง SQL พื้นฐานสำหรับการสร้างโครงสร้างของฐานข้อมูล • เรียนรู้คำสั่งสำหรับการเรียกดูข้อมูล • เรียนรู้คำสั่งสำหรับการ update ข้อมูล (เพิ่ม, ลบ, แก้ไข)
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) ;
1. การสืบค้นข้อมูลด้วยคำสั่ง SQL Name Subject Grade แสนดีVB A สุดสวยVBC สมบัติ Database B สมศักดิ์ Database B สมบูรณ์Database A สมหวังVBA SQL สืบค้นข้อมูล ฐานข้อมูล ข้อมูลผลลัพธ์
2. โครงสร้างคำสั่ง SQL สำหรับสืบค้นข้อมูล SELECT [ ALL | DISTRINCT ] { column_name/* } [ , column_name…] FROM table name [ , table_name…] [ WHERE condition ] [ GROUP BY column_name [,column_name] [HAVING condition ] ] [ORDER BY column_name1 [ASC|DESC] [,column_name2 [ASC|DESC]] [,.......,column_name n [ASC|DESC]] ]
ตัวอย่างข้อมูล คำสั่ง SQL Books ผลลัพธ์จากการใช้คำสั่ง SQL Publisher
3. สืบค้นข้อมูลจากหนึ่งตาราง Syntax SELECT column_name /* [column_name …] FROM table_name
3. สืบค้นข้อมูลจากหนึ่งตาราง < ต่อ… > Detail * เครื่องหมายดอกจัน หมายถึง ทุกคอลัมน์ column_nameชื่อคอลัมน์ ( ฟิลด์ ) table_nameชื่อตาราง
แสดงทุกแถวและคอลัมน์ SELECT * FROM Books Books BID Title PID Price 1001 Windows98 12 500 1002 Office97 12 150 1003 Java Vs C++ 05 250 1004 Database 04 155 1005 Netcape 04 490 1006 C Algorithm 12 1000 1007 Networking 04 1950 1008 Digitalimage
แสดงทุกแถวและบางคอลัมน์แสดงทุกแถวและบางคอลัมน์ SELECT Title,Price FROM Books Books Title Price Windows98 500 Office97 150 Java Vs C++ 250 Database 155 Netcape 490 C Algorithm 1000 Networking 1950 Digitalimage
4. สืบค้นข้อมูลโดยมีเงื่อนไข Syntax SELECT column_name /* [column_name …] FROM table_name WHERE condition
4. สืบค้นข้อมูลโดยมีเงื่อนไข < ต่อ… > Detail * เครื่องหมายดอกจัน หมายถึง ทุกคอลัมน์ column_nameชื่อคอลัมน์ ( ฟิลด์ ) table_nameชื่อตาราง condition เงื่อนไขในการแสดงข้อมูลในแนวแถว
4. สืบค้นข้อมูลโดยมีเงื่อนไข < ต่อ… > Detail ชนิดเงื่อนไขเครื่องหมาย เปรียบเทียบ = > < >= <= <> รวบรวม AND , OR ปฏิเสธ NOT ตรวจสอบค่า NULL IS NULL ตรวจสอบช่วง BETWEEN…AND รายการ IN ตรวจสอบข้อความ LIKE
5. สืบค้นข้อมูลโดยมีเงื่อนไขเปรียบเทียบ Syntax SELECT column_name /* [column_name …] FROM table_name WHERE expression เงื่อนไขเปรียบเทียบexpression
5. สืบค้นข้อมูลโดยมีเงื่อนไขเปรียบเทียบ < ต่อ… > Detail Expression ชื่อคอลัมน์และค่าคงที่ เงื่อนไขเปรียบเทียบ = เท่ากับ > มากกว่า < น้อยกว่า >= มากกว่าหรือเท่ากับ <= น้อยกว่าหรือเท่ากับ <> ไม่เท่ากับ
แสดงข้อมูลเงื่อนไขเปรียบเทียบแสดงข้อมูลเงื่อนไขเปรียบเทียบ SELECT Title,Price FROM Books WHERE Price < 1000 Books Title Price Windows98 500 Office97 150 Java Vs C++ 250 Database 155 Netcape 490
แสดงข้อมูลเงื่อนไขเปรียบเทียบแสดงข้อมูลเงื่อนไขเปรียบเทียบ SELECT Title,Price FROM Books WHERE Price <= 1000 Books Title Price Windows98 500 Office97 150 Java Vs C++ 250 Database 155 Netcape 490 C Algorithm 1000
แสดงข้อมูลเงื่อนไขเปรียบเทียบแสดงข้อมูลเงื่อนไขเปรียบเทียบ SELECT Title,Price FROM Books WHERE Price <> 1000 Books Title Price Windows98 500 Office97 150 Java Vs C++ 250 Database 155 Netcape 490 Networking 1950
6. สืบค้นข้อมูลโดยมีหลายเงื่อนไข Syntax SELECT column_name /* [ , column_name …] FROM table_name WHERE เงื่อนไขที่ 1 การรวมเงื่อนไข เงื่อนไขที่ 2 [ การรวมเงื่อนไข เงื่อนไขที่_ n ]
6. สืบค้นข้อมูลโดยมีหลายเงื่อนไข Detail Conditionเงื่อนไขต่างๆ การรวมเงื่อนไข AND การรวมเงื่อนไขแบบทั้งหมด OR การรวมเงื่อนไขแบบอย่างใดอย่างหนึ่ง
แสดงข้อมูลหลายเงื่อนไขแสดงข้อมูลหลายเงื่อนไข SELECT Title,Price FROM Books WHERE ( Price > 500 ) OR ( PID < 12 ) Books Title Price Java Vs C++ 250 Database 155 Netcape 490 C Algorithm 1000 Networking 1950
แสดงข้อมูลหลายเงื่อนไขแสดงข้อมูลหลายเงื่อนไข SELECT Title,Price FROM Books WHERE ( Price >= 500 ) AND ( Price <= 1000 ) Books Title Price windows98 500 C Algorithm 1000
แสดงข้อมูลหลายเงื่อนไขแสดงข้อมูลหลายเงื่อนไข SELECT Title,Price FROM Books WHERE (( Price >= 500 ) AND ( Price <= 1000 )) OR ( PID = 4 ) Books Title Price windows98 500 Database 155 Netcape 490 C Algorithm 1000 Networking 1950
7. สืบค้นข้อมูลเงื่อนไขปฏิเสธ Syntax SELECT column_name /* [ , column_name …] FROM table_name WHERE เงื่อนไขปฏิเสธ condition
7. สืบค้นข้อมูลเงื่อนไขปฏิเสธ < ต่อ … > Detail Conditionเงื่อนไขใดๆ เงื่อนไขปฏิเสธ NOT ปฏิเสธ
แสดงข้อมูลเงื่อนไขปฏิเสธแสดงข้อมูลเงื่อนไขปฏิเสธ SELECT Title,Price FROM Books WHERE NOT ( PID = 4 ) Books Title Price Windows98 500 Office97 150 Java Vs C++ 250 C Algorithm 1000
8. สืบค้นข้อมูลที่เป็นค่า NULL Syntax SELECT column_name /* [ , column_name …] FROM table_name WHERE expression IS [ NOT ] NULL
8. สืบค้นข้อมูลที่เป็นค่า NULL< ต่อ … > Detail NULLคือข้อมูลที่ไม่มีค่าใดๆ เมื่อมีการเพิ่มข้อมูลใน record โดยถ้าฟิลด์ใดไม่ได้ใส่ข้อมูลและฟิลด์ไม่มีการกำหนดค่า default ฟิลด์นั้นจะมีข้อมูลเป็น NULL
แสดงข้อมูลที่เป็นค่า NULL SELECT Title,Price FROM Books WHERE Price IS NULL Books Title Price Digital Image
แสดงข้อมูลที่ไม่เป็นค่า NULL SELECT Title , Price FROM Books WHERE Price IS NOT NULL Books Title Price Windows98 500 Office97 150 Java Vs C++ 250 Database 155 Netcape 490 C Algorithm 1000 Networking 1950
9. สืบค้นข้อมูลเป็นช่วง Syntax SELECT column_name /* [ , column_name …] FROM table_name WHERE expression [ NOT ] BETWEEN expression AND expression
9. สืบค้นข้อมูลเป็นช่วง < ต่อ … > Detail การสืบค้นข้อมูลแบบเว้นช่วงหมายถึงผู้ใช้สามารถระบุได้ว่าข้อมูล ระหว่างค่าไหนถึงค่าไหนที่จะถูกแสดงดังนั้นการสืบค้นข้อมูลแบบนี้จะใช้รูปแบบ BETWEEN…. AND …. เช่น column_name BETWEEN 10 AND 20 มีค่าเท่ากับ (( cloumnb_name >= 10 ) AND ( column _name <= 20))
แสดงข้อมูลที่เป็นช่วงแสดงข้อมูลที่เป็นช่วง SELECT Title , Price FROM Books WHERE Price BETWEEN 500 AND 1000 Books Title Price Windows98 500 C Algorithm 1000
แสดงข้อมูลที่เป็นช่วงแสดงข้อมูลที่เป็นช่วง SELECT Title , Price FROM Books WHERE Price NOT BETWEEN 500 AND 1000 Books Title Price office97 150 JAVA Vs C++ 250 Database 155 Netcape 490 Networking 1950