91
คคคคคคค SQL

คำสั่ง SQL

Embed Size (px)

DESCRIPTION

คำสั่ง SQL. วัตถุประสงค์. เรียนรู้คำสั่ง SQL พื้นฐานสำหรับการสร้างโครงสร้างของฐานข้อมูล เรียนรู้คำสั่งสำหรับการเรียกดูข้อมูล เรียนรู้คำสั่งสำหรับการ update ข้อมูล (เพิ่ม, ลบ, แก้ไข). SQL (Structured Query Language) - PowerPoint PPT Presentation

Citation preview

Page 1: คำสั่ง  SQL

คำ��สั่��ง SQL

Page 2: คำสั่ง  SQL

วั�ตถุ�ประสงค์�

เร�ยนร� �ค์��ส��ง SQL พื้��นฐ�นส��หร�บก�รสร��งโค์รงสร��งของฐ�นข�อมู�ล

เร�ยนร� �ค์��ส��งส��หร�บก�รเร�ยกดู�ข�อมู�ล เร�ยนร� �ค์��ส��งส��หร�บก�ร update ข�อมู�ล (เพื้#�มู ,

ลบ , แก�ไข)

Page 3: คำสั่ง  SQL

3

SQL (Structured Query Language)

เป'นภ�ษ�มู�ตร�ฐ�นบนระบบฐ�นข�อมู�ลเชิ#งส�มูพื้�นธ์�ส�มู�รถุใชิ�ง�นไดู�ก�บเค์ร��องค์อมูพื้#วัเตอร�หล�ยระดู�บ ป-จจ�บ�นมู�ซอฟต�แวัร�ระบบจ�ดูก�รฐ�นข�อมู�ล (DBMS) ที่��สน�บสน�นก�รใชิ�ค์��ส��ง SQL เชิ2น ORACLE, DB2, MS-SQL, MS-Access นอกจ�กน��ภ�ษ� SQL ถุ�กน��มู�ใชิ�เข�ยนร2วัมูก�บโปรแกรมูภ�ษ�ต2�งๆ เชิ2น ภ�ษ� C/C++, VisualBasic และ Java วั�ตถุ�ประสั่งคำ�ของ SQL

1. สร��งฐ�นข�อมู�ลและ ต�ร�ง 2. สน�บสน�นก�รจ�ดูก�รฐ�นข�อมู�ล ซ4�งประกอบดู�วัย ก�รเพื้#�มู ก�รปร�บปร�ง และก�รลบข�อมู�ล 3. สน�บสน�นก�รเร�ยกใชิ�หร�อ ค์�นห�ข�อมู�ล

Page 4: คำสั่ง  SQL

4

ประเภทของคำ��สั่��งภ�ษ� SQL1. ภ�ษ�นิ�ย�มข�อม�ล(Data Definition

Language : DDL) เป'นค์��ส��งที่��ใชิ�ในก�รสร��งฐ�นข�อมู�ล ก��หนดูโค์รงสร��งข�อมู�ลวั2�มู� Attributeใดู ชิน#ดูของข�อมู�ล รวัมูที่��งก�รเปล��ยนแปลงต�ร�ง และก�รสร��งดู�ชิน� ค์��ส��ง : CREATE,DROP,ALTER

2. ภ�ษ�จั�ดก�รข�อม�ล (Data Manipulation Language :DML) เป'นค์��ส��งที่��ใชิ�ในก�รเร�ยกใชิ� เพื้#�มู ลบ และเปล��ยนแปลงข�อมู�ลในต�ร�ง ค์��ส��ง : SELECT,INSERT,UPDATE,DELETE

3. ภ�ษ�คำวับคำ�มข�อม�ล (Data Control Language : DCL) เป'นค์��ส��งที่��ใชิ�ในก�รก��หนดูส#ที่ธ์#ก�รอน�ญ�ต# หร�อ ยกเล#ก ก�รเข��ถุ4งฐ�นข�อมู�ล เพื้��อป6องก�นค์วั�มูปลอดูภ�ยของฐ�นข�อมู�ล

ค์��ส��ง : GRANT,REVOKE

Page 5: คำสั่ง  SQL

5

CREATE DATABASE database_name

Page 6: คำสั่ง  SQL

6

ภ�ษ�นิ�ย�มข�อม�ล (Data Definition Language:

DDL) ภ�ษ�น#ย�มูข�อมู�ลประกอบดู�วัยค์��ส��ง ดู�งน�� CREATE คำ��สั่��งท"�ใช้�ในิก�รสั่ร��ง - CREATE TABLE สร��งต�ร�ง - CREATE INDEX สร��งดู�ชิน� - CREATE VIEW สร��งวั#วั DROP คำ��สั่��งท"�ใช้�ในิก�รลบ - DROP TABLE ลบต�ร�ง - DROP INDEX ลบดู�ชิน� - DROP VIEW ลบวั#วั ALTER คำ��สั่��งท"�ใช้�ในิก�รเปล"�ยนิแปลงโคำรงสั่ร��งต�ร�ง

Page 7: คำสั่ง  SQL

7

ก�รสั่ร��งต�ร�ง : 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 , ...));

Page 8: คำสั่ง  SQL

8

ต�วัอย'�ง

Create table Student ( ID integer PRIMARY KEY NOT NULL, FName char(30), LName char(30) )

Page 9: คำสั่ง  SQL

9

Page 10: คำสั่ง  SQL

10

ก�รลบต�ร�ง : DROP TABLEค์��ส��งที่��ใชิ�ในก�รลบต�ร�งจะใชิ�ค์��ส��ง

DROP TABLE tablename ต�วัอย2�ง

DROP TABLE Employee;

Page 11: คำสั่ง  SQL

11

ก�รสั่ร��งและลบด�ช้นิ":CREATE /DROP INDEX ก�รสร��งดู�ชิน�ส��หร�บต�ร�ง

- เล�อก column หร�อ กล�2มูของ column จ�กต�ร�งข4�นมู�เป'นดู�ชิน� เชิ2น ชิ��อน�กศึ4กษ�

- ในหน4�งต�ร�งส�มู�รถุมู�ดู�ชิน�ไดู�หล�ยดู�ชิน�

- ชิ2วัยในก�รค์�นห�ข�อมู�ลไดู�รวัดูเร8วั

Page 12: คำสั่ง  SQL

12

ก�รสั่ร��งและลบด�ช้นิ":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 ;

Page 13: คำสั่ง  SQL

13

ต�วัอย2�ง ก�รสร��งดู�ชิน� โดูยใชิ�ชิ��อค์นง�นเป'นดู�ชิน�

CREATE INDEX NAME_IDXON WORKER (WK_NAME)

ต�วัอย2�ง ก�รสร��งดู�ชิน� โดูยใชิ�รห�สค์นง�นเป'นดู�ชิน�

CREATE INDEX CODE_IDXON WORKER (WK_ID)

Page 14: คำสั่ง  SQL

14

Page 15: คำสั่ง  SQL

15

Page 16: คำสั่ง  SQL

16

ก�รสั่ร��งวั�วั : CREATE VIEWเป'นก�รสร��งต�ร�งสมูมูต#ข4�นมู�ให�ก�บผู้��

ใชิ�ง�น โดูยก�รดู4งข�อมู�ลบ�งส2วันมู�จ�กฐ�นข�อมู�ล เพื้��อให�ผู้��ใชิ�ง�นเร�ยกข�อมู�ลที่��ต�องก�รจ�กวั#วัที่��ก��หนดูให�เที่2�น��น ค์��ส��งที่��ใชิ�ในก�รสร��งวั#วั ค์�อCREATE VIEW view-name

[column_name1, column_name2,...] AS SELECT attribute1,attribute2,..

FROM table-name WHERE condition

ก�รลบวั#วั ใชิ�ค์��ส��งDROP VIEW view-name

Page 17: คำสั่ง  SQL

17

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

Page 18: คำสั่ง  SQL

18

ก�รเปล"�ยนิแปลงโคำรงสั่ร��งต�ร�ง : ALTER TABLE เป'นก�รเปล��ยนแปลงโค์รงสร��งต�ร�งที่��สร��งไวั� ดู�งน�� 1. ADD เป'นก�รเพื้#�มู column ในต�ร�ง 2. MODIFY เป'นก�รแก�ไขเปล��ยนแปลง column

3. DROP เป'นก�รลบ column

ค์��ส��งที่��ใชิ�ALTER TABLE tablename [ COMMAND [COLUMN]column_name

datatype [CONSTRAINT]];

COMMAND ค์�อ ADD,MODIFY,DROP

Page 19: คำสั่ง  SQL

19

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

Page 20: คำสั่ง  SQL

1. ก�รสั่(บคำ�นิข�อม�ลด�วัยคำ��สั่��ง SQL

SQL สั่(บคำ�นิข�อม�ลSQL สั่(บคำ�นิข�อม�ล

ฐ�นข�อมู�ล

ข�อมู�ลผู้ลล�พื้ธ์�

Name Subject Grade แสนดู� VB

A ส�ดูสวัย VB C สมูบ�ต# Database

B สมูศึ�กดู#: Database

B สมูบ�รณ์� Database A สมูหวั�ง VB A

Page 21: คำสั่ง  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]] ]

Page 22: คำสั่ง  SQL

ต�วัอย'�งข�อม�ล ค์��ส��ง SQL ค์��ส��ง SQL

ผู้ลล�พื้ธ์�จ�กก�รใชิ�ค์��ส��ง SQL ผู้ลล�พื้ธ์�จ�กก�รใชิ�ค์��ส��ง SQL

BooksBOOKIDTitle PID Price

1001 Windows98 12 500

1002 Office97 12 150

1003 Java Vs C++ 5 250

1004 Database 4 155

1005 Netcape 4 490

1006 C Algorithm 12 1000

1007 Networking 4 1950

1008 Digital Image

PublisherPID Name

4 SE-Education

5 KTP COM And Consult

12 Microsoft

Page 23: คำสั่ง  SQL

3. สั่(บคำ�นิข�อม�ลจั�กหนิ*�งต�ร�ง

Syntax SELECT *column_name/ [ column_name …]

FROM _

Page 24: คำสั่ง  SQL

3. สั่(บคำ�นิข�อม�ลจั�กหนิ*�งต�ร�ง < … ต'อ >

Detail* เค์ร��องหมู�ยดูอกจ�น หมู�ยถุ4ง ที่�กค์อล�มูน�column_name ชิ��อค์อล�มูน� ( ฟ<ลดู� )table_name ชิ��อต�ร�ง

Page 25: คำสั่ง  SQL

แสั่ดงท�กแถุวัและคำอล�มนิ�Book

sBookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

SELECT * FROM Books

BID Title PIDPrice

1001 Windows9 8 12 500

1002 Office9 7 12 150

1003 Java Vs C++ 05 250

1004 Database 04 155

1 005 Netcape 04 490

1006 C Algorithm 12 1000

1007 Networking 04 1950

1008 Digitalimage

Page 26: คำสั่ง  SQL

แสั่ดงท�กแถุวัและบ�งคำอล�มนิ�Book

s

SELECT Title,Price FROM Books

Title Price

98Windows 500

97Office 150

Java Vs C++ 250Database 155Netcape 490

C Algorithm 1000Networking 1950Digitalimage

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 27: คำสั่ง  SQL

4. สั่(บคำ�นิข�อม�ลโดยม"เง(�อนิไข

Syntax SELECT *column_name/ [ column_name …]

FROM _WHERE condition

Page 28: คำสั่ง  SQL

4. สั่(บคำ�นิข�อม�ลโดยม"เง(�อนิไข < … ต'อ >

Detail* เค์ร��องหมู�ยดูอกจ�น หมู�ยถุ4ง ที่�กค์อล�มูน�column_name ชิ��อค์อล�มูน� ( ฟ<ลดู� )table_name ชิ��อต�ร�งcondition เง��อนไขในก�รแสดูงข�อมู�ลในแนวัแถุวั

Page 29: คำสั่ง  SQL

4. สั่(บคำ�นิข�อม�ลโดยม"เง(�อนิไข < … ต'อ >

Detailช้นิ�ดเง(�อนิไข เคำร(�องหม�ยเปร�ยบเที่�ยบ = > < >= <= <>รวับรวัมู AND , ORปฏิ#เสธ์ NOT

ตรวัจสอบค์2� NULL IS NULL ตรวัจสอบชิ2วัง BETWEEN…

AND ร�ยก�ร IN

ตรวัจสอบข�อค์วั�มู LIKE

Page 30: คำสั่ง  SQL

5. สั่(บคำ�นิข�อม�ลโดยม"เง(�อนิไขเปร"ยบเท"ยบ

Syntax SELECT *column_name/ [ column_name …]

FROM _ WHERE expression เง��อนไขเปร�ยบ

เที่�ยบ expression

Page 31: คำสั่ง  SQL

5. สั่(บคำ�นิข�อม�ลโดยม"เง(�อนิไขเปร"ยบเท"ยบ < … ต'อ >

DetailEEEEEEEEEE ช้(�อคำอล�มนิ�และคำ'�คำงท"�เง��อนไขเปร�ยบเที่�ยบ

= เท'�ก�บ> ม�กกวั'�< นิ�อยกวั'�>= ม�กกวั'�หร(อเท'�ก�บ<= นิ�อยกวั'�หร(อเท'�ก�บ<> ไม'เท'�ก�บ

Page 32: คำสั่ง  SQL

แสั่ดงข�อม�ลเง(�อนิไขเปร"ยบเท"ยบBook

s

SELECT Title,Price FROM Books

WHERE Price < 1000

Title Price

98Windows 500

97Office 150

Java Vs C++ 250

Database 155

Netcape 490

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 33: คำสั่ง  SQL

แสั่ดงข�อม�ลเง(�อนิไขเปร"ยบเท"ยบBook

s

SELECT Title,Price FROM Books

WHERE Price <= 1000

Title Price

98Windows 500

97Office 150

Java Vs C++ 250

Database 155

Netcape 490

C Algorithm 1000

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 34: คำสั่ง  SQL

แสั่ดงข�อม�ลเง(�อนิไขเปร"ยบเท"ยบBook

sBID Title PID Price

736 Windows98 12 500877 Office97 12 1501388 Java Vs C++ 5 2501524Database 4 1551997Netcape 4 4902504C Algorithm 12 10005911Networking 4 19509090Digitalimage

SELECT Title,Price FROM Books

WHERE Price <> 1000

Title Price

98Windows 500

97Office 150

Java Vs C++ 250

Database 155

Netcape 490

Networking 1950

Page 35: คำสั่ง  SQL

6. สั่(บคำ�นิข�อม�ลโดยม"หล�ยเง(�อนิไข

Syntax SELECT EE * [ , column_name …]

FROM _WHERE เง��อนไขที่�� 1 ก�รรวัมูเง��อนไข

เง��อนไขที่��2[ ก�รรวัมูเง��อนไข เง��อนไขที่�� _ n ]

Page 36: คำสั่ง  SQL

6. สั่(บคำ�นิข�อม�ลโดยม"หล�ยเง(�อนิไข

DetailCondition เง��อนไขต2�งๆก�รรวัมูเง��อนไข

AND ก�รรวัมูเง��อนไขแบบที่��งหมูดูOR ก�รรวัมูเง��อนไขแบบอย2�งใดู

อย2�งหน4�ง

Page 37: คำสั่ง  SQL

แสั่ดงข�อม�ลหล�ยเง(�อนิไขBook

s

SELECT Title,Price FROM Books

WHERE ( Price > 500 ) OR ( PID < 12 )

Title Price

Java Vs C++ 250

Database 155

Netcape 490

C Algorithm 1000

Networking 1950

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 38: คำสั่ง  SQL

แสั่ดงข�อม�ลหล�ยเง(�อนิไขBook

s

SELECT Title,Price FROM Books

WHERE ( Price >= 500 ) AND ( Price <= 1000 )

Title Price

98windows 500

C Algorithm 1000

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 39: คำสั่ง  SQL

แสั่ดงข�อม�ลหล�ยเง(�อนิไขBook

s

SELECTTitle,Price

FROM BooksWHERE (( Price >= 500 ) AND( Price <= 1000 )) OR( PID = 4 ) Title Price

98windows 500

Database 155

Netcape 490

C Algorithm 1000

Networking 1950

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 40: คำสั่ง  SQL

7. สั่(บคำ�นิข�อม�ลเง(�อนิไขปฏิ�เสั่ธ

Syntax SELECT EE * [ , column_name …]

FROM _WHERE เง��อนไขปฏิ#เสธ์ condition

Page 41: คำสั่ง  SQL

7. สั่(บคำ�นิข�อม�ลเง(�อนิไขปฏิ�เสั่ธ < … ต'อ >

DetailCondition เง��อนไขใดูๆเง��อนไขปฏิ#เสธ์

NOT ปฏิ#เสธ์

Page 42: คำสั่ง  SQL

แสั่ดงข�อม�ลเง(�อนิไขปฏิ�เสั่ธBook

s

SELECT Title,Price FROM Books

WHERE NOT ( PID = 4 )

Title Price

Windows98 500Office97 150

Java Vs C++ 250

C Algorithm 1000

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 43: คำสั่ง  SQL

8. สั่(บคำ�นิข�อม�ลท"�เป.นิคำ'� NULL

Syntax SELECT EE * [ , column_name …]

FROM _WHERE expression IS [ NOT ]

NULL

Page 44: คำสั่ง  SQL

8. สั่(บคำ�นิข�อม�ลท"�เป.นิคำ'� NULL < … ต'อ >

DetailNULL ค์�อข�อมู�ลที่��ไมู2มู�ค์2�ใดูๆ

เมู��อมู�ก�รเพื้#�มูข�อมู�ลใน record โดูยถุ��ฟ<ลดู� ใดูไมู2ไดู�ใส2ข�อมู�ลและฟ<ลดู�ไมู2มู�ก�รก��หนดูค์2�

default ฟ<ลดู�น��นจะมู�ข�อมู�ลเป'น NULL

Page 45: คำสั่ง  SQL

แสั่ดงข�อม�ลท"�เป.นิคำ'� NULLBook

s

SELECT Title,Price FROM Books

WHERE Price IS NULL

Title Price

Digital Image

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 46: คำสั่ง  SQL

แสั่ดงข�อม�ลท"�ไม'เป.นิคำ'� NULLBook

s

SELECT Title , Price FROM Books

WHERE Price IS NOT NULL

Title Price

98Windows 500

97Office 150

Java Vs C++ 250Database 155

Netcape 490

C Algorithm 1000Networking 1950

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 47: คำสั่ง  SQL

9. สั่(บคำ�นิข�อม�ลเป.นิช้'วัง

Syntax SELECT EE * [ , column_name …]

FROM _WHERE expression [ NOT ]

BETWEEN expression AND expression

Page 48: คำสั่ง  SQL

9. สั่(บคำ�นิข�อม�ลเป.นิช้'วัง < … ต'อ >

Detailก�รส�บค์�นข�อมู�ลแบบเวั�นชิ2วังหมู�ยถุ4งผู้��ใชิ�

ส�มู�รถุระบ�ไดู�วั2�ข�อมู�ล ระหวั2�งค์2�ไหนถุ4งค์2�ไหนที่�� จะถุ�กแสดูงดู�งน��นก�รส�บค์�นข�อมู�ลแบบน��จะใชิ�ร�ปแบบ

BETWEEN…. AND ….เชิ2น column_name BETWEEN 10

AND 20มู�ค์2�เที่2�ก�บ

(( cloumnb_name >= 10 ) AND ( column _name <= 20))

Page 49: คำสั่ง  SQL

แสั่ดงข�อม�ลท"�เป.นิช้'วังBook

s

SELECT Title , Price FROM Books

WHERE Price BETWEEN 500 AND 1000

Title Price

98Windows 500

C Algorithm 1000

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 50: คำสั่ง  SQL

แสั่ดงข�อม�ลท"�เป.นิช้'วังBook

s

SELECT Title ,Price

FROM BooksWHERE Price NOT BETWEEN 500 AND 1000

Title Price

97office 150

JAVA Vs C++ 250 Database

155Netcape 490Networking 1950

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 51: คำสั่ง  SQL

10. สั่(บคำ�นิข�อม�ลต�มคำ'�ท"�ต�องก�ร

Syntax SELECT */ _ [ , column_name …]

FROM _WHERE expression [ NOT ] IN

(value_list)

Page 52: คำสั่ง  SQL

10. สั่(บคำ�นิข�อม�ลต�มคำ'�ท"�ต�องก�ร < … ต'อ >

Detailvalue_list

ค์�อค์2�ที่��ข�อมู�ลที่��แสดูงเป'นร�ยก�ร เชิ2น ร�ยก�รต�วัเลขค์��ระหวั2�ง 1 ถุ4ง10

( 1 , 3 , 5 , 7 , 9 )ร�ยก�รชิ��อค์น

( “สมูชิ�ย” , ” ” สมูพื้งษ� , ”สมู” ศึ�กดู#: )

Page 53: คำสั่ง  SQL

แสั่ดงข�อม�ลต�มคำ'�Book

s

SELECT Title , Price FROM Books

WHERE Price IN (250,500,750 ,1000)

Title Price

98Windows 500

JAVA Vs C++ 250 C Algorithm

1000

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 54: คำสั่ง  SQL

แสั่ดงข�อม�ลต�มคำ'�Book

s

SELECT Title , Price FROM Books

WHERE Price NOT IN (250,500,750 ,1000)

Title Price

97office 150Database 155Netcape 490

Networking 1950

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 55: คำสั่ง  SQL

11. สั่(บคำ�นิข�อม�ลต�มสั่'วันิข�อคำวั�ม

Syntax SELECT */ _ [ , column_name …]

FROM table_nameWHERE expression [ NOT ] LIKE

‘string’

Page 56: คำสั่ง  SQL

11. สั่(บคำ�นิข�อม�ลต�มสั่'วันิข�อคำวั�ม < … ต'อ >

DetailEEEEEE ค์�อ ส2วันของข�อค์วั�มู เชิ2น

“สมู” ” ” หร�อ พื้ง เป'นส2วันของค์��วั2� ”สมู”พื้งษ�

“m”,”i”,”o”,”f”,”t” เป'นส2วันของค์��วั2� ”microsoft”

*%, ส2วันของข�อค์วั�มูใดูๆไมู2จ��ก�ดูต�วั อ�กษร (* In MS Access)

_ , ? ส2วันของข�อค์วั�มูใดูๆหน4�งต�วัอ�กษร (? In MS Access) [ ] ต�วัอ�กษรใดูๆที่��ปร�กฎในชิ2อง [a] หมู�ยถุ4ง

ต�องเป'น a[!] ต�วัอ�กษรใดูๆที่��ไมู2ปร�กฎในชิ2อง [!a] หมู�ย

ถุ4งต�องไมู2เป'น a-[ ] ชิ2วังต�วัอ�กษร เชิ2น [a - c] หมู�ยถุ4ง a , b ,

c

Page 57: คำสั่ง  SQL

แสั่ดงข�อม�ลต�มสั่'วันิข�อคำวั�มBook

s

SELECT Title , Price FROM Books

WHERE Title LIKE ‘N*’

Title Price

Netcape 490

Networking 1950

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 58: คำสั่ง  SQL

แสั่ดงข�อม�ลต�มสั่'วันิข�อคำวั�มBook

sBID Title PID Price

736 Windows98 12 500877 Office97 12 1501388 Java Vs C++ 5 2501524Database 4 1551997Netcape 4 4902504C Algorithm 12 10005911Networking 4 19509090Digitalimage

SELECT Title , Price FROM Books

WHERE Title LIKE ‘ *C* ’

Title Price

97office 150

JAVA Vs C++ 250Netcape 490

c Algorithm 1000

Page 59: คำสั่ง  SQL

แสั่ดงข�อม�ลต�มสั่'วันิข�อคำวั�มBook

s

SELECT Title , Price FROM Books

WHERE Title LIKE ‘?e*’

Title Price

Netcape 490

Networking 1950

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 60: คำสั่ง  SQL

แสั่ดงข�อม�ลต�มสั่'วันิข�อคำวั�มBook

s

SELECT Title , Price FROM Books

WHERE Title LIKE ‘[N,O]*’

Title Price

O 97ffice 150

Netcape 490

Networking 1950

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 61: คำสั่ง  SQL

แสั่ดงข�อม�ลต�มสั่'วันิข�อคำวั�มBook

s

SELECT Title , Price FROM Books

WHERE Title LIKE ‘[!N]*’

Title Price

98Windows 500

O 97ffice 150

JAVA Vs C++ 250Database 155

C 1 00

0

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Page 62: คำสั่ง  SQL

1 2 . ก�รก��จั�ดร�ยก�รซ้ำ�1�

Detailค์��ส��ง DISTINCT ใชิ�ก��จ�ดูร�ยก�รที่��มู�ข�อมู�ลซ���ก�นให�เหล�อเพื้�ยงร�ยก�รเดู�ยวั โดูยใชิ�ข�อมู�ลใน Field ต2�งๆที่��ก��หนดูในค์��ส��ง SELECT เป'นเกณ์ฑ์�ค์��ส��ง DISTINCTROW ที่��หน��ที่��เชิ2นเดู�ยวัก�บค์��ส��ง DISTINCT แต2จะใชิ�ค์2�ของที่�ก Field เป'นเกณ์ฑ์�แที่น

Page 63: คำสั่ง  SQL

ก�รก��จั�ดร�ยก�รซ้ำ�1�STUDEN

T

SELECT DISTINCT NAME

FROM STUDENT

NAME แดง เข"ยวั ฟ้3�

STDID NAME SURNAME

51001 แดง ร'�เร�ง51002 เข"ยวั สั่ดช้(�นิ51003 ฟ้3� สั่"คำร�ม51004 แดง สั่ดใสั่51005 แดง ร'�เร�ง

SELECT DISTINCTROW NAME,SURNAME

FROMSTUDENT

NAMESURNAME แดง ร'�เร�ง เข"ยวั สั่ดช้(�นิ ฟ้3� สั่"คำร�ม แดง สั่ดใสั่

Page 64: คำสั่ง  SQL

1 3 . ก�รเร"ยงล��ด�บข�อม�ลค์��ส��ง ORDER BY

SELECT * FROM Books

ORDER BY PRICEBookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

BookID Title PID Price1002Office97 12 1501004Database 4 1551003 Java Vs C++ 5 2501005Netcape 4 490

1001Windows98 12 5001006C Algorithm 12 10001007Networking 4 1950

Page 65: คำสั่ง  SQL

1 3 . ก�รเร"ยงล��ด�บข�อม�ล (ต'อ)

ค์��ส��ง ORDER BY

SELECT * FROM Books

ORDER BY PRICE DESCBookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

BookID Title PID Price1007Networking 4 19501006C Algorithm 12 1000

1001Windows98 12 5001005Netcape 4 4901003 Java Vs C++ 5 2501004Database 4 1551002Office97 12 150

Page 66: คำสั่ง  SQL

1 4 . ฟ้4งก�ช้�นิ SQL Aggregate

ฟ้4งก�ช้�นิ SUMSELECT SUM(field) AS variable FROM tableฟ้4งก�ช้�นิ COUNTSELECT COUNT(field) AS variable FROM tableฟ้4งก�ช้�นิ AVG

SELECT AVG(field) AS variable FROM table

Page 67: คำสั่ง  SQL

1 4 . ฟ้4งก�ช้�นิ SQL Aggregate (ต'อ)

ฟ้4งก�ช้�นิ MINSELECT MIN(field) AS variable FROM tableฟ้4งก�ช้�นิ MAXSELECT MAX(field) AS variable FROM table

Page 68: คำสั่ง  SQL

1 4 . ฟ้4งก�ช้�นิ SQL Aggregate (ต'อ)

ฟ้4งก�ช้�นิ SUM SELECT

SUM(PRICE) AS SUMPRICE

FROM Books

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

SUMPRICE

4495

Page 69: คำสั่ง  SQL

1 4 . ฟ้4งก�ช้�นิ SQL Aggregate (ต'อ)

ฟ้4งก�ช้�นิ COUNT SELECT

COUNT(BOOKID) AS COUNTBOOK

FROM Books

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

COUNTBOOK

7

Page 70: คำสั่ง  SQL

1 4 . ฟ้4งก�ช้�นิ SQL Aggregate (ต'อ)

ฟ้4งก�ช้�นิ AVG SELECT

AVG(PRICE) AS AVGPRICE

FROM Books

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

AVGPRICE

642.14

Page 71: คำสั่ง  SQL

1 4 . ฟ้4งก�ช้�นิ SQL Aggregate (ต'อ)

ฟ้4งก�ช้�นิ MIN SELECT

MIN(PRICE) AS MINPRICE

FROM Books

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

MINPRICE

150.00

Page 72: คำสั่ง  SQL

1 4 . ฟ้4งก�ช้�นิ SQL Aggregate (ต'อ)

ฟ้4งก�ช้�นิ MAX SELECT

MAX(PRICE) AS MINPRICE

FROM Books

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

MAXPRICE

1,950.00

Page 73: คำสั่ง  SQL

15. ก�รใช้� GROUP BY

GROUP BY

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]] ]

Page 74: คำสั่ง  SQL

15. ก�รใช้� GROUP BY (ต'อ)

Books SELECT

PID,SUM(PRICE) AS SUMPRICE

FROM BooksGROUP BY PID

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

PID SUMPRICE

4 2,595.00 5 250.00 12 1,650.00

Page 75: คำสั่ง  SQL

16. ก�รใช้� HAVING

GROUP BY

ในก�รใชิ� GROUP BY ถุ��ต�องก�รก��หนดูเง��อนไขเพื้#�มูเต#มู ให�ก��หนดูในค์��ส��ง HAVING

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]] ]

Page 76: คำสั่ง  SQL

16. ก�รใช้� HAVING (ต'อ)

Books SELECT

PID,SUM(PRICE) AS SUMPRICE

FROM BooksGROUP BY PIDHAVING PID >=5

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 1950

PID SUMPRICE5 250.00 12 1,650.00

Page 77: คำสั่ง  SQL

กล�'มคำ��สั่��ง DML

คำ��สั่��งในิก�รเพิ่��มข�อม�ลลงต�ร�งข�อม�ล

คำ��สั่��งในิก�รแก�ไขข�อม�ลในิต�ร�งข�อม�ล

คำ��สั่��งในิก�รลบข�อม�ลออกจั�กต�ร�งข�อม�ล

Page 78: คำสั่ง  SQL

คำ��สั่��งในิก�รเพิ่��มข�อม�ลลงต�ร�งข�อม�ล

SyntaxINSERT INTO <table_name>

[( column 1 , column 2 , …)]VALUES ( value 1 , value 2 , … ) ;

Page 79: คำสั่ง  SQL

Detail

ก�รป6อนข�อมู�ลดู�วัยค์��ส��ง INSERT น��อ�จจะระบ�ชิ��อ Column หร�อ ไมู2ระบ�ชิ��อ Column ก8ไดู� แต2ค์2�ของ value จะต�องมู�ค์2�ตรงก�บ Column ในต�ร�งของค์2�

คำ��สั่��งในิก�รเพิ่��มข�อม�ลลงต�ร�งข�อม�ล (ต'อ)

Page 80: คำสั่ง  SQL

แสั่ดงก�รเพิ่��มข�อม�ล (ไม'ระบ� Column)

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage

Books

INSERT INTO Books VALUES ( 1009 , ‘

SQL’ ,5 , 520 )

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage1009SQL 5 520

Page 81: คำสั่ง  SQL

แสั่ดงก�รเพิ่��มข�อม�ล (ระบ� Column)Book

s

INSERT INTO Books (BookID, Title, PID, Price)

VALUES ( 1010 , ‘VB ’ ,5 , 250 )

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage1009SQL 5 5201010VB 5 250

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage1009SQL 5 520

Page 82: คำสั่ง  SQL

คำ��สั่��งในิก�รแก�ไขข�อม�ลในิต�ร�งข�อม�ล

SyntaxUPDATE <table_name> SET < column1> [ , column 2 , …] =

<expression | sub query> [WHERE < condition> ] ;

Page 83: คำสั่ง  SQL

แสั่ดงก�รปร�บปร�งข�อม�ลBook

s

UPDATE BooksSET PRICE =PRICE+50

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 2501004Database 4 1551005Netcape 4 4901006C Algorithm 12 10001007Networking 4 19501008Digitalimage1009SQL 5 5201010VB 5 250

BookID Title PID Price

1001Windows98 12 5501002Office97 12 2001003 Java Vs C++ 5 3001004Database 4 2051005Netcape 4 5401006C Algorithm 12 10501007Networking 4 20001008Digitalimage 501009SQL 5 5701010VB 5 300

Page 84: คำสั่ง  SQL

แสั่ดงก�รปร�บปร�งข�อม�ลBook

s

UPDATE Books SET PRICE = PRICE - 50

WHERE P ID = 12

BookID Title PID Price

1001Windows98 12 5501002Office97 12 2001003 Java Vs C++ 5 3001004Database 4 2051005Netcape 4 5401006C Algorithm 12 10501007Networking 4 20001008Digitalimage 501009SQL 5 5701010VB 5 300

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 3001004Database 4 2051005Netcape 4 5401006C Algorithm 12 10001007Networking 4 20001008Digitalimage 501009SQL 5 5701010VB 5 300

Page 85: คำสั่ง  SQL

คำ��สั่��งในิก�รลบข�อม�ลออกจั�กต�ร�งข�อม�ล

SyntaxDELETE FROM <table_name> [WHERE < condition> ] ;

Page 86: คำสั่ง  SQL

14. ก�รลบข�อม�ลลงในิต�ร�ง < … ต'อ >

Detail

ค์��ส��ง DELETE น�� ห�กไมู2ไดู�ระบ�เง��อนไข[ WHERE <condition>] ข�อมู�ลที่��งหมูดูในต�ร�งจะถุ�ก

ลบออกหมูดู ซ4�งก�รลบข�อมู�ลที่��งหมูดูน��จะที่��ไดู�ก8ต2อเมู��อไมู2มู� ต�ร�งอ��นที่��มู�ค์อล�มูน�ที่��เป'น ค์�ย�นอก ( Foreign key ) ที่��จะ

อ��งอ#งมู�ย�งค์อล�มูน�ที่��เป'นค์�ย�หล�ก ( Primary Key ) ของต�ร�งน��

Page 87: คำสั่ง  SQL

แสั่ดงก�รลบข�อม�ลBook

s

DELETE FROMBooks

WHERE Book ID =1010

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 3001004Database 4 2051005Netcape 4 5401006C Algorithm 12 10001007Networking 4 20001008Digitalimage 501009SQL 5 5701010VB 5 300

BookID Title PID Price

1001Windows98 12 5001002Office97 12 1501003 Java Vs C++ 5 3001004Database 4 2051005Netcape 4 5401006C Algorithm 12 10001007Networking 4 20001008Digitalimage 501009SQL 5 570

Page 88: คำสั่ง  SQL

88

ค์��ส��ง INSERTเป'นก�รเพื้#�มูข�อมู�ลในต�ร�ง

INSERT INTO table-nameINSERT INTO table-name VALUE (var1 , var2 , VALUE (var1 , var2 , ….)….)

ex. Insert into product ex. Insert into product value (10,book,30, 5 );value (10,book,30, 5 );

Page 89: คำสั่ง  SQL

89

คำ��สั่��ง UPDATEเป'นค์��ส��งปร�บปร�งข�อมู�ลในต�ร�ง

UPDATE table-nameSET

column-name1=value1[,column-name2=value2,...] [WHERE condition];

คำ��สั่��ง DELETEเป'นค์��ส��งลบข�อมู�ลแถุวัข�อมู�ลในต�ร�ง

DELETE table-name[WHERE

condition];

Page 90: คำสั่ง  SQL

90

Page 91: คำสั่ง  SQL

อ��งอ#ง

http://www.compsci.buu.ac.th/~seree/lecture/315241/Php/