slide7 sql

50
SQLคคคคคคค คคคคคคคคคคค Structure Query Language คคคคคคคคคคคคคคคคคคคคคคคคคค คคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคค (Relational Database Management System) คคคค RDBMS คคคค ANSI (American National Standards Institute) คคคคคคคคคคคคคคคคคคคคคคค คคคคคค คคคคคคค คคคคคคคคคคคคคคคคคคคคคคคคค คคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคค คคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคค คคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคค คคค RDBMS คคคค MS-Access, MS-SQL, Marisa Kuntasup

Upload: marisa-kuntasup

Post on 01-Nov-2014

200 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Slide7 sql

SQLคื�ออะไรมาจากคื�าว่ า Structure Query Language

เป็�นภาษามาตรฐานที่��ใช้�ในการต�ดต อก�บระบบฐานข้�อม"ลเช้�งสั�มพั�นธ์( (Relational Database Management System) หร�อ RDBMS ซึ่+�ง ANSI (American National Standards Institute) ได�ป็ระกาศออกมาอย่ างเป็�นที่างการ

ด�งน�.น ผู้"�ที่��ที่�างานเก��ย่ว่ก�บระบบฐานข้�อม"ลในป็0จจ1บ�นจ�าเป็�นต�องร"� เน��องจากระบบฐานข้�อม"ลที่��ม�อย่" ในป็0จจ1บ�นเก�อบที่�.งหมดเป็�นระบบฐานข้�อม"ลแบบ RDBMS เช้ น MS-Access, MS-SQL, MySQL, Oracle เป็�นต�น

Marisa Kuntasup

Page 2: Slide7 sql

คื�าสั��งต างๆ ข้องภาษา SQL แบ งตามล�กษณะการใช้�งานออกเป็�น 4 กล1 ม ด�งน�.

1.DDL (Data Definition Language) เป็�นกล1 มคื�าสั��งที่��ใช้�สั�าหร�บสัร�างฐานข้�อม"ลหร�อใช้�ก�าหนดโคืรงสัร�างคืว่ามสั�มพั�นธ์(ต างๆ ภาย่ในฐานข้�อม"ล เช้ น

- CREATE TABLE- ALTER TABLE- DROP TABLE- CREATE INDEX- DROP INDEX

Marisa Kuntasup

Page 3: Slide7 sql

2. DML (Data Manipulation Language) เป็�นกล1 มคื�าสั��งที่��พั�ฒนาข้+.นตามแนว่คื�ดข้อง Relational Algebra และ Record Relational Calculus โดย่ป็ระกอบด�ว่ย่คื�าสั��งที่��ใช้�สั�าหร�บ เพั��ม ลบ หร�อเป็ล��ย่นแป็ลงข้�อม"ลในฐานข้�อม"ล เช้ น

- SELECT- UPDATE- DELETE- INSERT INTO

Marisa Kuntasup

Page 4: Slide7 sql

3. DCL (Data Control Language) ใช้�ในการคืว่บคื1มข้�อม"ล การเก�ดภาว่ะพัร�อมก�น หร�อการป็8องก�นการเก�ดเหต1การณ(ที่��ผู้"�ใช้�หลาย่คืนเร�ย่กใช้�ข้�อม"ลเด�ย่ว่ก�น ณ เว่ลาใดเว่ลาหน+�ง เช้ น

- LOCK TABLES- UNLOCK TABLES- CONSTRAINT

4 . RIGHTS ใช้�ในการก�าหนดสั�ที่ธ์�9บ�ญช้�ผู้"�ใช้�งาน เพั��อก�าหนดระด�บช้�.นคืว่ามป็ลอดภ�ย่ในการเข้�าถึ+งต�ว่ฐานข้�อม"ล เช้ น

- GRANT- REVOKE

Marisa Kuntasup

Page 5: Slide7 sql

- สร้�างฐานข้�อมู ล CREATE DATABASE

<database name>;- ลบฐานข้�อมู ล

DROP DATABASE <database name>;

Marisa Kuntasup

Page 6: Slide7 sql

การสัร�างตาราง : CREATE TABLE

คำ�าส��งที่��ใช้� คำ�อ CREATE TABLE มู�ร้ ปแบบ คำ�อ

CREATE TABLE <table_name> ( <column1> <datatype> (<size>) [NOT NULL / NULL] , <column2> <datatype> (<size>) [NOT NULL / NULL] , …………...CONSTRAINT <table_name> PRIMARY KEY (<pkcolumn1, pkcolumn2> , ...>) FOREIGN KEY (<refcolumn1, refcolumn2, …>) REFERENCES <foreigntable> (<fkcolumn1, fkcolumn2, ...>) );

Marisa Kuntasup

Page 7: Slide7 sql

แบบที่�� 1CREATE TABLE

Student ( ID integer(3)

NOT NULL, FName

char(30), LName

char(30),CONTRAINT

StudentPRIMARY KEY (ID)

) ;

ต�ว่อย่ าง

แบบที่�� 2CREATE TABLE

Student ( ID integer(3)

NOT NULL, FName

char(30), LName

char(30),PRIMARY KEY (ID) ) ;

Marisa Kuntasup

Page 8: Slide7 sql

CREATE TABLE Employee ( Emp integer NOT NULL, EName char(30), EDept integer,PRIMARY KEY (Emp),FOREIGN KEY (EDept) REFFERENCE Department (Dept) ) ;

Marisa Kuntasup

Page 9: Slide7 sql

เปล��ยนแปลงโคำร้งสร้�างตาร้าง

ALTER TABLE <table_name> Database update (<column_name>

<datatype> (<size>));

หมูายเหต โดย Database update เป"นการ้ก�าหนดการ้เปล��ยนแปลงคำ$าต$างๆ ข้องตาร้างที่��มู�อย $เด&มูได�แก$

- ADD เป"นการ้เพิ่&�มูคำอล�มูน) - MODIFY เป"นการ้แก�ไข้คำ$าในคำอล�มูน) - DROP COLUMN เป"นลบคำอล�มูน)

ลบตาร้าง

DROP TABLE <table_name>;

Marisa Kuntasup

Page 10: Slide7 sql

- 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) ;

ต�ว่อย่ าง Alter Table

Marisa Kuntasup

Page 11: Slide7 sql

–ด�ช้น�•สร้�างด�ช้น�CREATE INDEX <index name> on <table name>(<column

name>[,<column name>]..);•ลบด�ช้น�DROP INDEX <index name>;

Marisa Kuntasup

Page 12: Slide7 sql

การบ�นที่+ก ป็ร�บป็ร1ง ลบและการเร�ย่กข้�อม"ลอย่ างง าย่

- เพิ่&�มูข้�อมู ลที่�ละแถวINSERT INTO <table name>[(<column1, column2,….>)] values (<value1, value2,…>);

- เพิ่&�มูข้�อมู ลโดยการ้ใช้�คำ�าส��งคำ�นหาข้�อมู ลINSERT INTO <table name>[(<column1, column2,….>)] SELECT <statement>;

Marisa Kuntasup

Page 13: Slide7 sql

– ปร้�บปร้ งแถวข้�อมู ลUPDATE <table name> SET<column1>[, column2, ...)]=<expression|subquery> [WHERE <condition>];

– ลบข้�อมู ลที่�-งแถวDELETE FROM <table name> [WHERE <condition>];

การบ�นที่+ก ป็ร�บป็ร1ง ลบและการเร�ย่กข้�อม"ลอย่ างง าย่

Marisa Kuntasup

Page 14: Slide7 sql

ต�ว่อย่ างคื�าสั��ง INSERT

ex. INSERT INTO product

VALUES (10,book,30, 5 );

product

Marisa Kuntasup

Page 15: Slide7 sql

ต�ว่อย่ างคื�าสั��ง UPDATE

1

6

Marisa Kuntasup

Page 16: Slide7 sql

ต�ว่อย่ างคื�าสั��ง DELETE

Marisa Kuntasup

Page 17: Slide7 sql

การเร�ย่กด"ข้�อม"ลโดย่ใช้�คื�าสั��ง SELECT

การเร�ย่กคื�นข้�อม"ลอย่ างง าย่SELECT 1<column ,

2 ,…>column FROM <table

name>[WHERE <condition>];

Marisa Kuntasup

Page 18: Slide7 sql

การเร�ย่กด"ข้�อม"ลโดย่ใช้�ฟั0งก(ช้�นรว่มเป็�นการจ�ดกล1 มข้�อม"ลโดย่ใช้�คื�าสั��ง GROUP BY SELECT <column1, column2, …> FROM <table name> [WHERE <condition>] [GROUP BY <groupingcolumn>] [HAVING <condition>]

การเร�ย่กด"ข้�อม"ลในร"ป็แบบต างๆ

Marisa Kuntasup

Page 19: Slide7 sql

DISTIN CT

การ้เร้�ยกด ข้�อมู ลโดยไมู$แสดงร้ายการ้ที่��ซ้ำ�-า

FROM ก�าหนดตาร้างที่��ต�องการ้ใช้�เร้�ยกด ข้�อมู ล

WHERE เง��อนไข้ที่��ใช้�ในการ้คำ�นหาข้�อมู ลจากตาร้าง

ORDER BY

ก�าหนดการ้เร้�ยงล�าด�บข้�อมู ล โดยที่��

DESC การ้เร้�ยงล�าด�บจากมูากไปน�อย

ASC การ้เร้�ยงล�าด�บจากน�อยไปมูากGROUP BY

การ้จ�ดกล $มูแถวข้�อมู ลตามูคำอล�มูน)ที่��ร้ะบ

HAVING

เง��อนไข้ที่��ใช้�ก�บ ข้�อมู ลที่��ได�จาก GROUP BY เที่$าน�-น

Marisa Kuntasup

Page 20: Slide7 sql

การเร�ย่กด"ข้�อม"ลจากหลาย่ตาราง เป"นการ้ก�าหนดคำวามูส�มูพิ่�นธ์)ร้ะหว$าง

ตาร้างที่�-งหลาย ซ้ำ1�งสามูาร้ถเช้��อมูต$อข้�อมู ลก�นโดยการ้ใช้�คำ�า

ส��ง WHERE SELECT <columns>

FROM < table1> <table2>[WHERE <condition>]

การเร�ย่กด"ข้�อม"ลในร"ป็แบบต างๆ

Marisa Kuntasup

Page 21: Slide7 sql

Marisa Kuntasup

Page 22: Slide7 sql

Marisa Kuntasup

Page 23: Slide7 sql

Marisa Kuntasup

Page 24: Slide7 sql

Marisa Kuntasup

Page 25: Slide7 sql

Marisa Kuntasup

Page 26: Slide7 sql

ต�ว่อย่ างการเร�ย่กด"ข้�อม"ลจากหลาย่ตาราง

Marisa Kuntasup

Page 27: Slide7 sql

Marisa Kuntasup

Page 28: Slide7 sql

Marisa Kuntasup

Page 29: Slide7 sql

เป"นการ้เร้�ยกด ข้�อมู ลด�วยคำ�าส��ง SELECT ซ้ำ�อน คำ�าส��ง SELECT ในล�กษณะข้อง Nested query ช้ ดคำ�าส��งSELECT ข้�างในจะถ กปร้ะมูวลผลก$อน แล�วส$งผลล�พิ่ธ์)ให�ก�บ คำ�าส��ง SELECT ข้�างนอก ร้ ปแบบ มู�ด�งน�-

SELECT …….

FROM……..

WHERE………

(SELECT ……..

FROM………..

WHERE………. )

การเร�ย่กด"แบบซึ่�อนก�น : Subqueries หร�อ Nested query

Marisa Kuntasup

Page 30: Slide7 sql

ต�วอย$าง ต�องการ้หาร้ายช้��อพิ่น�กงานที่��อย $แผนกเด�ยวก�บ Andy

NameDepartmentJohnM MMMMMMMM M MMM

Sales MMMMMSales

MMMM Marketing Anne

Marketing

Employee

Marisa Kuntasup

Page 31: Slide7 sql

Subqueries ข้องคื�าสั��งด�านบน คื�อ ‘Maketing’

Marisa Kuntasup

Page 32: Slide7 sql

การเร�ย่งล�าด�บข้�อม"ล ORDER BY

Marisa Kuntasup

Page 33: Slide7 sql

การใช้� GROUP BY เป"นการ้จ�ดกล $มูแถว ข้�อมู ลตามูคำอล�มูน)ที่��ร้ะบ โดยข้�อมู ลที่��เหมู�อนก�นจะ

ถ กจ�ดให�อย $ในกล $มูเด�ยวก�น

Marisa Kuntasup

Page 34: Slide7 sql

ต�ว่อย่ าง GROUP BY

ผู้ลที่��ได�

Marisa Kuntasup

Page 35: Slide7 sql

Grouping and Aggregates

EmployeeSELECT Gender, AVG(AGE) AS AAGEFROM EmployeeGROUP BY Gender;

ผู้ลที่��ได�

หาคื าเฉล��ย่ข้องอาย่1จ�ดกล1 มตาม ‘Gender’

Marisa Kuntasup

Page 36: Slide7 sql

การใช้� การใช้� HAVINGHAVINGป็ระโย่คื ป็ระโย่คื HAVING HAVING จะใช้�ร ว่มก�บ จะใช้�ร ว่มก�บ

GROUP BY GROUP BY เสัมอ โดย่เสัมอ โดย่HAVING HAVING จะแสัดงข้�อม"ลที่��จะแสัดงข้�อม"ลที่��ผู้ านการจ�ดกล1 มด�ว่ย่ ผู้ านการจ�ดกล1 มด�ว่ย่ GROUP BY GROUP BY เพั�ย่งบางสั ว่นเพั�ย่งบางสั ว่นตามเง��อนไข้ที่��ก�าหนดไว่�ใน ตามเง��อนไข้ที่��ก�าหนดไว่�ใน HAVINGHAVING

Marisa Kuntasup

Page 37: Slide7 sql

– โอเป็อเรเตอร(คืณ�ตศาสัตร( ได�แก plus(+), minus(-), divide(/), multiply(*), modula(%)

– โอเป็อเรเตอร(เป็ร�ย่บเที่�ย่บ จะได�คื ากล�บคื�นมา 3 คื า คื�อ TRUE, FALSE และ UNKNOW (ในกรณ�คื าที่��เป็ร�ย่บเที่�ย่บเป็�น Null)

– โอเป็อเรเตอร(อ�กข้ระ ได�แก LIKE ใช้�ร ว่มก�บ ‘%’ หร�อ ‘_’

– โอเป็อเรเตอร(ตรรกะ ได�แก AND, OR, NOT, IN, BETWEEN…AND

โอเป็อร(เรเตอร( สัามารถึแย่กออกเป็�น 4ป็ระเภที่ ได�แก

Marisa Kuntasup

Page 38: Slide7 sql

Mathematics Operator เป"น operator ที่��ใช้�ในการ้คำ�านวณ ได�แก$ เคำร้��องหมูาย - +, , * , /

ต�วอย$าง

SELECT ID,FName,LName,Salary*0.05 AS Commision

FROM Employee;ID FNa

meLName

Commision1 John

Smith 6502 Mary Jones

7503 Andy Brown 9004 Jane Wright 10005 John Jones 1050,

Marisa Kuntasup

Page 39: Slide7 sql

ต�ว่ป็ฏิ�บ�ต�การ

การที่�างาน

= เที่$าก�บ<> ไมู$เที่$าก�บ< น�อยกว$า> มูากกว$า

<= น�อยกว$าหร้�อเที่$าก�บ>= มูากกว$าหร้�อเที่$าก�บ

ในภาษา SQL ม�ต�ว่ป็ฏิ�บ�ต�การเป็ร�ย่บเที่�ย่บ (Comparison Operator) อย่" 6 แบบ ด�งน�.

Marisa Kuntasup

Page 40: Slide7 sql

ex. Select pro_id , pro_name

from product where (price >=5 )

and (amount

>=20) ;

ต�ว่อย่ าง Comparison Operator

ผู้ลที่��ได�

Marisa Kuntasup

Page 41: Slide7 sql

ป็ระโย่คืสั ว่นเง��อนไข้• Relation Operator

ปร้ะโยคำเง��อนไข้จะมู�ต�วปฏิ&บ�ต&การ้เช้&งส�มูพิ่�นธ์) (Relation Operator ) ที่��ใช้�ในการ้ก�าหนดเง��อนไข้การ้ที่�างานข้�อมู ล

• Logical Operatorเง��อนไข้ที่��ต�องการ้ใช้�ในการ้ที่�างานก�บข้�อมู ล อาจมู�หลายเง��อนไข้ปร้ะกอบก�น (Compound Condition ) จะต�องใช้�ต�วปฏิ&บ�ต&การ้เช้&งตร้ร้กะ (Logical Operator ) ในการ้ร้วมูเง��อนไข้เข้�าด�วยก�น

Note “การ้ใช้�วงเล7บ เมู��อมู�เง��อนไข้มูากข้1-น อาจต�องใช้�วงเล7บ”เพิ่��อก�าหนดข้อบเข้ตเง��อนไข้ที่��ใช้�คำ�ดเล�อกข้�อมู ล เพิ่��อให�ได�ที่�างานก�บช้ ดข้�อมู ลที่��ต�องการ้และลดคำวามูส�บสนในการ้ตร้วจสอบคำวามูถ กต�อง การ้ที่�างานจะเร้&�มูต�นที่��วงเล7บในส ดก$อน Marisa Kuntasup

Page 42: Slide7 sql

ต�ว่ป็ฏิ�บ�ต�ต�ว่ป็ฏิ�บ�ต�การการ

การที่�างานการที่�างาน

AND และ (ผู้ลล�พัธ์(เง��อนไข้ที่�.งสัองข้�างต�องเป็�นจร�ง)

OR หร�อ (ผู้ลล�พัธ์(เง��อนไข้ข้�างใดข้�างหน+�งต�องเป็�นจร�ง)

IN ข้�อม"ลอย่" ในกล1 มที่��ก�าหนดไว่�BETWE

ENข้�อม"ลอย่" ในช้ ว่งที่��ก�าหนดไว่�

NOT ตรงข้�ามก�บเง��อนไข้ที่��ระบ1ตามหล�งคื�าน�.

LIKE คืล�าย่ (ใช้�ก�บข้�อม"ลแบบต�ว่อ�กษร)

ในภาษา SQL ม�ต�ว่ป็ฏิ�บ�ต�การเช้�งตรรกะ Logical Operator ด�งน�.

Page 43: Slide7 sql

ต�ว่อย่ าง Logical Operator

SELECT pro_id, pro_name,sup_id

FROM productWHERE sup_id NOT

IN (1,2);

Marisa Kuntasup

Page 44: Slide7 sql

Marisa Kuntasup

Page 45: Slide7 sql

SELECT pro_id, pro_name , pro_price

FROM productWHERE pro_price

between 5 and 20

ต�ว่อย่ าง Logical Operator

ผลที่��ได�

Marisa Kuntasup

Page 46: Slide7 sql

SELECT pro_id, pro_name

FROM productWHERE

pro_name like "p*"

ต�ว่อย่ าง Logical Operator

ผลที่��ได�

Marisa Kuntasup

Page 47: Slide7 sql

–ฟั0งก(ช้�นในการรว่ม (Aggregate functions)– COUNT, SUM, AVG, MAX, MIN ฯลฯ–ฟั0งก(ช้�นว่�นและเว่ลา (Date and tune functions)

– ADD_MONTHS, LAST_DAY, MONTHS_BETWEEN ฯลฯ

–ฟั0งก(ช้�นคืณ�ตศาสัตร( (Arithmetic functions)– ABS, EXP, ฟั0งก(ช้�นที่างตร�โกณ, LN, LOG, MOD, SQRT ฯลฯ

ฟั9งก)ช้�น มู�ที่�-งหมูด 6 ปร้ะเภที่ คำ�อ

Marisa Kuntasup

Page 48: Slide7 sql

–ฟั0งก(ช้�นต�ว่อ�กข้ระ (Character functions)

– CHR, CONCAT, LOWER, UPPER, REPLACE, SUBSTR ฯลฯ

–ฟั0งก(ช้�นการแป็ลง (Converter functions)

– TO_CHAR, –ฟั0งก(ช้�นอ��นๆ (Miscellaneous functions)

ฟั0งก(ช้�น ม�ที่�.งหมด 6 ป็ระเภที่ (cont.)

Marisa Kuntasup

Page 49: Slide7 sql

ต�วอย$างฟั9งก)ช้�น

Marisa Kuntasup

Page 50: Slide7 sql

ต�วอย$างฟั9งก)ช้�น

Marisa Kuntasup