96
Chapter 10 : Chapter 10 : ภภภภภภภภภภภ ภภภภภภภภภภภ ภภภภภภภภภภภภภภภภ ภภภภภภภภภภภภภภภภ SQL SQL (SQL Command) (SQL Command) 1 4122205Z ภภภภภภภภภภภภภภภภ ภภภภภภภภภ ภ.ภภภภภภ ภภภภภภภภภ

Chapter 10 : ภาษาทางด้านฐานข้อมูลคำสั่ง SQL ( SQL Command)

Embed Size (px)

DESCRIPTION

Chapter 10 : ภาษาทางด้านฐานข้อมูลคำสั่ง SQL ( SQL Command). 4122205Z ระบบฐานข้อมูลและการออกแบบ อ.ชาณิภา ซ่อนกลิ่น. แนะนำภาษา SQL. Query Language หรือเอสคิวแอล ( SQL) หรือซีควอล ( SE-QUEL) เป็นภาษาที่พัฒนาขึ้นมาโดยบริษัท IBM - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

Chapter 10 : Chapter 10 : ภาษาทางด้�านฐานภาษาทางด้�านฐานข้�อมู�ลคำ�าสั่��ง ข้�อมู�ลคำ�าสั่��ง SQL SQL

(SQL Command) (SQL Command)

1

4122205Z ระบบฐานข้�อมู�ลและการออกแบบ

อ.ชาณิ�ภา ซ่�อนกล��น

Page 2: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

•Query Language หรื�อเอสคิ�วแอล (SQL) หรื�อซี�คิวอล (SE-QUEL) เป็�นภาษาที่��พั�ฒนาขึ้��นมาโดยบรื�ษ�ที่ IBM

• เป็�นภาษามาตรืาฐานบนรืะบบฐานขึ้%อม&ลเชิ�งส�มพั�นธ์* สามารืถใชิ%งานได%กั�บเคิรื��องคิอมพั�วเตอรื*หลายรืะด�บ

•ภาษา SQL (Standard Query Language) เป็�นส/วนหน��งขึ้องรืะบบฐานขึ้%อม&ลแบบรื�เลชิ��นเนล(Relational Database) ที่��ได%รื�บคิวามน�ยมมากัเพัรืาะง/ายต/อคิวามเขึ้%าใจ และอย&/ในรื&ป็ภาษาอ�งกัฤษ

•ป็2จจ3บ�นม�ซีอฟต*แวรื*รืะบบจ�ดกัารืฐานขึ้%อม&ล (DBMS) ที่��สน�บสน3นกัารืใชิ%คิ5าส��ง SQL เชิ/น MySQL, ORACLE, DB2,SQL Sever, MS-Access

2

แนะน�าภาษา SQL

Page 3: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

3

SQL (Structure Query Language)

พัจนาน3กัรืมขึ้%อม&ล (Data Dictionary)

โป็รืแกัรืมอ5านวยคิวามสะดวกั (General Utilities)

โป็รืแกัรืมชิ/วยสรื%างโป็รืแกัรืมป็รืะย3กัต*

(Application Generators)โป็รืแกัรืมชิ/วยสรื%างรืายงาน (Report Generators)

DBMS

สั่�วนประกอบข้องระบบจั�ด้การฐานข้�อมู�ล

Page 4: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

1. สั่ร�างฐานข้�อมู�ลและตาราง 2. สั่น�บสั่น#นการจั�ด้การฐานข้�อมู�ล ซ่$�งประกอบด้�วย

การเพิ่��มู การปร�บปร#งและการลบข้�อมู�ล 3. สั่น�บสั่น#นการเร(ยกใช�หร+อสั่+บคำ�นข้�อมู�ล

4

ว�ตถุ#ประสั่งคำ-ข้อง SQL

Page 5: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

5

ประเภทข้องคำ�าสั่��งในภาษา SQL

1. DDL (Data Definition Language) เป็�นชิ3ดคิ5าส� �งที่��ใชิ%ในกัารืน�ยาม กั5าหนด หรื�อกัารืสรื%างขึ้%อม&ลบนฐานขึ้%อม&ล ได%แกั/ คิ5าส� �ง CREATE TABLE เป็�นต%น2. DML (Data Manipulation Language) เป็�นชิ3ดคิ5าส� �งที่��ใชิ%ในกัารืป็รืะมวลผลหรื�อจ�ดกัารืกั�บขึ้%อม&ลในฐานขึ้%อม&ล ได%แกั/ คิ5าส� �ง SELECT, INSERT , UPDATE เป็�นต%น3. DCL (Data Control Language) เป็�นคิ5าส� �งที่��ใชิ%ในกัารืคิวบคิ3มส�ที่ธ์�7ขึ้องผ&%ใชิ%ในกัารืใชิ%ขึ้%อม&ล รืวมที่��งส/วนที่��ใชิ%คิวบคิ3มกัารืใชิ%ฐานขึ้%อม&ลจากัผ&%ใชิ%หลายๆคินพัรื%อมกั�น

Page 6: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

6

ร�ปแสั่ด้งประเภทข้องคำ�าสั่��งในภาษา SQL

ภาษา SQL(Standard Query

Language)

ภาษา SQL(Standard Query

Language)

Page 7: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

7

1.ภาษาน�ยามูข้�อมู�ล (Data Definition Language)

▫CREATE ใชิ%สรื%างตารืาง▫ALTER ใชิ%แกั%ไขึ้/เป็ล��ยนแป็ลงตารืาง▫DROP ใชิ%ส5าหรื�บลบตารืาง

เป.นกล#�มูคำ�าสั่��งท(�ใช�กระท�าก�บโคำรงสั่ร�างข้องฐานข้�อมู�ล

Page 8: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

8

ร�ปแบบ >>

CREATE TABLE ชิ��อตารืาง( ชิ��อคิอล�มน* 1 ป็รืะเภที่ขึ้%อม&ล Constraint, ชิ��อคิอล�มน* 2 ป็รืะเภที่ขึ้%อม&ล Constraint, PRIMARY KEY (ชิ��อคิอล�มน* ) , FOREIGN KEY (ชิ��อคิอล�มน* )REFERENCES ชิ��อตารืาง,);

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

Page 9: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

9

ต�วอย�าง >>

CREATE TABLE EMPLOYEE (ID CHAR(5) NOT NULL ,NAME VARCHAR(35) NOT NULL ,ADDRESS VARCHAR(15) NOT NULL ,PHONE CHAR(8) NOT NULL ,EMAIL CHAR(1) NOT NULL ,PRIMARY KEY (ID)

);

Constraintชิน�ดขึ้%อม&ล

ชิ��อตารืาง EMPLOYEE

ให% ID เป็�น PK

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

Page 10: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

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

10

ต�วอย�าง >>

CREATE TABLE PRODUCT (P_CODE VARCHAR(10) NOT NULL ,P_DESCRIPT VARCHAR(35) NOT NULL ,P_INDATE DATE NOT NULL ,P_ONHAND SMALLINT NOT NULL ,P_MIN SMALLINT NOT NULL ,P_PRICE NUMBER NOT NULL ,P_DISCOUNT NUMBER NOT NULL ,ID CHAR(5) ,PRIMARY KEY (P_CODE) ,FOREIGN KEY (ID) REFERENCES EMPLOYEE(ID)

);

Constraintชิน�ดขึ้%อม&ล

ชิ��อตารืาง PRODUCT

ให% ID เป็�น FK

Page 11: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

11

ร�ปแบบ >>

ALTER TABLE ชิ��อตารืางคิ5าส��งเป็ล��ยนแป็ลงตารืาง ชิ��อคิอล�มน* ป็รืะเภที่ขึ้%อม&ล ;

คิ5าส��งกัารืเป็ล��ยนแป็ลง ได%แกั/1. ADD เพั��มคิอล�มน*2. MODIFY แกั%ไขึ้คิอล�มน*ในตารืาง3. DROP ลบคิอล�มน*

ALTER TABLE การแก�ไข้/เปล(�ยนแปลงตาราง

Page 12: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

12

ต�วอย�าง ADD เพิ่��มูคำอล�มูน-

โจัทย- >> เพั��มคิอล�มน*ที่��เป็�นรืห�สแผนกั(IDdepartment) ในตารืาง employee เพั��อบอกัว/าพัน�กังานส�งกั�ดอย&/

แผนกัใด SQL >> ALTER TABLE employee

ADD IDdepartment char(6) ;

ALTER TABLE การแก�ไข้/เปล(�ยนแปลงตาราง

Page 13: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

13

ต�วอย�าง MODIFY แก�ไข้คำอล�มูน-ในตาราง

โจัทย- >> เป็ล��ยนขึ้นาดขึ้องขึ้%อม&ลในคิอล�มน* IDdeparment

ในตารืาง employee จากัขึ้นาด 6 ต�วอ�กัษรื เป็�นขึ้นาด 5 ต�วอ�กัษรื SQL >> ALTER TABLE employee MODIFY (IDdepartment char(5)) ;

ALTER TABLE การแก�ไข้/เปล(�ยนแปลงตาราง

Page 14: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

ALTER TABLE การแก�ไข้/เปล(�ยนแปลงตาราง

14

ต�วอย�าง DROP ลบคำอล�มูน-

โจัทย- >> ลบคิอล�มน*ที่��เป็�นรืห�สแผนกั(IDdepartment)

ในตารืาง employee SQL >> ALTER TABLE employee

DROP IDdepartment ;

Page 15: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

DROP TABLE การลบตาราง

15

ร�ปแบบ >>

DROP TABLE ชิ��อตารืาง ;

ต�วอย�าง

DROP TABLE ORDER;SQL >>

ต%องกัารืลบตารืาง(Table) ORDER ออกัจากัฐานขึ้%อม&ล

โจัทย- >>

Page 16: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

16

2. ภาษาจั�ด้การข้�อมู�ล (Data Manipulation Language)

▫SELECT ใชิ%เรื�ยกัขึ้%อม&ลในตารืางมาแสดงผล▫INSERT ใชิ%เพั��มขึ้%อม&ลเขึ้%าไป็ในตารืาง▫UPDATE ใชิ%แกั%ไขึ้ขึ้%อม&ลในตารืาง▫DELETE ใชิ%ลบขึ้%อม&ลในตารืาง

เป.นกล#�มูคำ�าสั่��งท(�กระท�าก�บข้�อมู�ลในฐานข้�อมู�ล

Page 17: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

SELECT <การเร(ยกด้�ข้�อมู�ล>

17

ร�ปแบบ >>

SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืาง ;

การเร(ยกด้�ข้�อมู�ลในคำอล�มูน-ท(�ต�องการ

Page 18: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

SELECT <การเร(ยกด้�ข้�อมู�ล>

18

ต�วอย�าง

SELECT First_name, Last_name FROM Employees ;

Emp_ID

First_name

Last_name

Address

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

Employees

ต�องการแสั่ด้งช+�อและนามูสั่ก#ลข้องพิ่น�กงานโจัทย- >>

SQL >>

First_name

Last_name

สมชิาย ชิาตรื�สมหญิ�ง งามแที่%

ผลล�พิ่ธ์- >>

Page 19: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

SELECT <การเร(ยกด้�ข้�อมู�ล>

19

ร�ปแบบ >>

SELECT *FROM ชิ��อตารืาง ;

การเร(ยกด้�ข้�อมู�ลในท#ก ๆ คำอล�มูน-

Page 20: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

SELECT <การเร(ยกด้�ข้�อมู�ล>

20

ต�วอย�าง

SELECT * FROM Employees ;

Emp_ID

First_name

Last_name

Address

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

Employees

ต�องการแสั่ด้งข้�อมู�ลข้องพิ่น�กงานโจัทย- >>

SQL >>

ผลล�พิ่ธ์- >>Emp_ID

First_name

Last_name

Address

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

Page 21: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

SELECT <การเร(ยกด้�ข้�อมู�ล>

21

ร�ปแบบ >>

SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE เง��อนไขึ้ ;

การเร(ยกด้�ข้�อมู�ลเฉพิ่าะบางแถุวท(�ตรงตามูเง+�อนไข้

โด้ยภายในเง+�อนไข้ประกอบด้�วยเง��อนไขึ้ => คิอล�มน*ที่��เป็�นเง��อนไขึ้

Operator Value

Page 22: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

SELECT <การเร(ยกด้�ข้�อมู�ล>

22

ต�วอย�าง

SELECT First_name, Last_name, AddressFROM Employees WHERE Address = ‘อ3ตรืด�ตถ*’;

Emp_ID

First_name

Last_name

Address

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

Employees

ต�วอย�าง แสั่ด้งช+�อ นามูสั่ก#ล และท(�อย��ข้องพิ่น�กงาน โด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงาน ท(�อย��จั�งหว�ด้อ#ตรด้�ตถุ-

โจัทย- >>

SQL >>

ผลล�พิ่ธ์- >>First_name

Last_name

Address

สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

Address คิอล�มน*ที่��เป็�นเง��อนไขึ้

= คิ�อ operator

อ3ตรืด�ตถ* คิ�อ value

Page 23: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน WhereOperator ที่��สามารืถใชิ%กั5าหนดเง��อนไขึ้ใน where ม�ด�งน�� •ต�วเปร(ยบเท(ยบ (Comparison operators)

ได%แกั/ เคิรื��องหมาย =, <, >, <=, >=, <>• ต�วปฏิ�บ�ต�การทางด้�านลอจั�ก (Logical operators)▫ AND▫ OR▫ NOT

•ต�วปฏิ�บ�ต�การพิ่�เศษ NOT, BETWEEN , IN , LIKE , OR , SOME , IS NULL , IS NOT NULL , EXISTS , DISTINCT

23

เช+�อมูต�อเง+�อนไข้ในกรณิ(ท(�มู(มูากกว�า 1 เง+�อนไข้

Page 24: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where•ต�วเปร(ยบเท(ยบ (Comparison operators)

24

ต�วเปร(ยบเท(ยบ

คำวามูหมูาย

= เที่/ากั�บ< น%อยกัว/า

<= น%อยกัว/าหรื�อเที่/ากั�บ

> มากักัว/า>= มากักัว/าหรื�อ

เที่/ากั�บ <> หรื�อ

!=ไม/เที่/ากั�บ

Page 25: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where•ต�ว Logical operators

25

Logical operators

คำวามูหมูาย

AND และOR หรื�อ

NOT ตรืงกั�นขึ้%าม , ไม/เที่/ากั�บ

Page 26: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where•ต�วปฏิ�บ�ต�การพิ่�เศษ (Special operators)

26

▫BETWEEN…AND… : ตรืวจสอบชิ/วงขึ้องคิ/าใน Attribute

▫ IS NULL : ตรืวจสอบว/าม�คิ/าว/างหรื�อไม/▫ IS NOT NULL : ตรืวจสอบว/าไม/ม�คิ/าว/างหรื�อไม/▫LIKE : ตรืวจสอบคิ/า String ใน Attribute ว/าม�

ส/วน คิล%ายกั�บที่��กั5าหนดไว%หล�ง LIKE หรื�อไม/

▫ IN : ตรืวจสอบคิ/าใน Attribute ว/าตรืงกั�นกั�บที่�� กั5าหนดไว%หล�ง IN หรื�อไม/

▫EXISTS : ตรืวจสอบว/าม�กัารื Return คิ/าขึ้อง Subquery หรื�อไม/

▫DISTINCT : จ5ากั�ดคิ/าให%แสดงผลโดยคิ/าไม/ซี5�ากั�น

Page 27: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

27

Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

Employees

ต�องการ แสั่ด้งช+�อ นามูสั่ก#ล ท(�อย�� และเง�นเด้+อนโด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงานท(�อย��จั�งหว�ด้อ#ตรด้�ตถุ-และมู(เง�นเด้+อนมูากกว�า 5000 บาท

โจัทย- >>

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% AND

จัากโจัทย- สั่��งท(�ต�องแสั่ด้ง คำ+อ ชิ��อ นามสกั3ล ที่��อย&/ เง�นเด�อนจัากตาราง พัน�กังานเง+�อนไข้ พัน�กังานคินน��นต%องอย&/จ�งหว�ดอ3ตรืด�ตถ* และม�

เง�นเด�อน มากักัว/า 5000 บาที่คำอล�มูน-เง+�อนไข้ Address และ Salary

Page 28: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

28

First_name

Last_name

Address

Salary

สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

Employees

จัากโจัทย-จัะเห7นว�า มู(สั่องเง+�อนไข้ และต�องเป.นจัร�งท�8งสั่องเง+�อนไข้ ด้�งน�8นจั$งต�องใช� AND เช+�อมูระหว�าง 2เง+�อนไข้น(8

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% AND

SELECT First_name, Last_name, Address, SalaryFROM Employees WHERE Address = ‘อ3ตรืด�ตถ* ’AND Salary > 5000;

จัะเห7นว�าผลล�พิ่ธ์-ท(�ได้�พิ่น�กงานคำนน�8นต�องอย��อ#ตรด้�ตถุ-และมู(เง�นเด้+อนมูากกว�า 5000

SQL >>

Page 29: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

29

Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

Employees

ต�องการ แสั่ด้งช+�อ นามูสั่ก#ล ท(�อย�� และเง�นเด้+อนโด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงานท(�อย��จั�งหว�ด้อ#ตรด้�ตถุ-หร+อมู(เง�นเด้+อนมูากกว�า 5000 บาท

โจัทย- >>

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% OR

จัากโจัทย- สั่��งท(�ต�องแสั่ด้ง คำ+อ ชิ��อ นามสกั3ล ที่��อย&/ เง�นเด�อนจัากตาราง พัน�กังานเง+�อนไข้ พัน�กังานคินน��นต%องอย&/จ�งหว�ดอ3ตรืด�ตถ* หรื�อม�

เง�นเด�อน มากักัว/า 5000 บาที่คำอล�มูน-เง+�อนไข้ Address และ Salary

Page 30: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

30

Employees

จากัโจที่ย*จะเห:นว/า ม�สองเง��อนไขึ้ แต/โจที่ย*ใชิ%คิ5าว/าหรื�อ แสดงว/าม�เง��อนไขึ้ใดเง��อนใดหน��งเป็�นจรื�ง หรื�อเป็�นจรื�งที่��งสองเง��อนไขึ้กั:ได% ด�งน��นจ�งต%องใชิ% OR เชิ��อมรืะหว/าง 2 เง��อนไขึ้น��

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% OR

SELECT First_name, Last_name, Address, SalaryFROM Employees WHERE Address = ‘อ3ตรืด�ตถ*’ OR Salary > 5000;

SQL >>

First_name

Last_name

Address

Salary

สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000จัะเห7นว�าผลล�พิ่ธ์-ท(�ได้� สั่มูชายไมู�ได้�อย��จั�งหว�ด้อ#ตรด้�ตถุ- แต�ท(�สั่มูชายแสั่ด้งในผลล�พิ่ธ์- เพิ่ราะมู(เง�นเด้+อนมูากกว�า 5000 สั่ร#ป ผลล�พิ่ธ์-ท(�ได้�จัาก OR เข้�าเง+�อนไข้ใด้เง+�อนไข้หน$�งก7เป.นจัร�งแล�ว

Page 31: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

31

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% BETWEEN…

AND…

ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* Between Value1 AND value2 ;

กั5าหนดเง��อนไขึ้ให%กั�บ where โดยเล�อกัชิ/วงขึ้%อม&ลที่��สนใจ

Page 32: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

32

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% BETWEEN…

AND… Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

003 สมใจ ส3ขึ้สม แพัรื/ 5000

Employees

ต�องการ แสั่ด้งช+�อ และเง�นเด้+อนข้องพิ่น�กงาน โด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงานท(�มู(เง�นเด้+อน 6000 ถุ$ง 15000

โจัทย- >>

SELECT First_name, SalaryFROM Employees WHERE Salary Between 6000 AND 15000;

SQL >> First_name

Salary

สมชิาย 15000

สมหญิ�ง 6000

ผลล�พิ่ธ์- >>

Page 33: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

33

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% Not Between…

AND….Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

003 สมใจ ส3ขึ้สม แพัรื/ 5000

Employees

ต�องการ แสั่ด้งช+�อ และเง�นเด้+อนข้องพิ่น�กงาน โด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงานท(�มู(เง�นเด้+อนไมู�อย��ในช�วง 6000 ถุ$ง 15000

โจัทย- >>

SELECT First_name, SalaryFROM Employees WHERE Salary Not Between 6000 AND 15000;

SQL >> First_name

Salary

สมใจ 5000

ผลล�พิ่ธ์- >>

การใช� Not ร�วมูก�บ Between….AND… เป.นการระบ#เง+�อนไข้ว�า ข้�อมู�ลต�องไมู�อย��ในช�วงท(�ก�าหนด้

Page 34: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

34

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% LIKE

ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* Like pattern ;

เล�อกัขึ้%อม&ลที่��ตรืงกั�บคิวามต%องกัารืด%วย LIKE

คำ+อสั่��งท(�ต�องต�องการคำ�นหา โดย Pattern ม�รื&ป็แบบด�งน��

% หมายถ�ง ต�วอ�กัษรืใด ๆ จ5านวนไม/จ5ากั�ดต�วอ�กัษรื

_ หมายถ�ง ต�วอ�กัษรืใด ๆ จ5านวน 1 ต�วอ�กัษรื

Page 35: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

35

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% LIKE

ร�ปแบบ ต�วอย�าง คำ�าอธ์�บาย ผลล�พิ่ธ์-'%value' ‘%y' ต�วอ�กัษรืด%านหน%าเป็�นอะไรืกั:ได% ต�วส3ด

ต%องเป็�น yJaneny , Nuy

'value%' ‘K%' ขึ้%อคิวามน��นต%องขึ้��นต%นด%วย K Kacha

'%value%' '%a%' ขึ้%อคิวามต%องม� a ป็รืะกัอบอย&/ ในขึ้%อคิวาม

Chane, Nuyza

'%value%value%'

'%a%e%'

ขึ้%อคิวามต%องม� a และ e ป็รืะกัอบอย&/ในขึ้%อคิวาม แต/ล5าด�บขึ้อง a ต%องมากั/อนต�วอ�กัษรื e

Alen, Chane

'_ value%' '_ a%' ในขึ้%อคิวาม ต�วอ�กัษรืต�วแรืกัเป็�นอะไรืกั:ได%ขึ้อให%ต�วอ�กัษรืต�วที่�� 2 เป็�น a

Rattana,Cat

‘%value_ _ '

'%a_ _' ในขึ้%อคิวาม ต�วอ�กัษรืสองต�วหล�งจะเป็�นอะไรืกั:ได%แต/ต�วที่��สาม (น�บจากัด%านหล�ง ) ต%องเป็�น a

Ball, Hall

Page 36: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

36

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% Not Like

ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* Not Like pattern ;

กัารืใชิ% Not Like คิ�อกัารืกั5าหนดเง��อนว/า ขึ้%อคิวามที่��เรืาต%องกัารืคิ%นหาต%องไม/ใชิ/ที่��เรืารืะบ3ลงไป็ใน Pattern

SELECT last_nameFROM EmployeesWHERE last_name Not Like '%รื%';

ผลล�พัธ์*ที่��ได% คิ�อ last_name ที่��แสดงผลจะไม/ม�ต�ว รื ป็รืากัฏอย&/ใน last_name

เช�น >>

Page 37: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

37

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IN

ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* IN (value1,value2,...);

เป็�นคิ5าส��งที่��ใชิ%ส5าหรื�บกัารืรืะบ3เง��อนไขึ้กัารืเล�อกัขึ้%อม&ลในตารืาง (Table) โดยเล�อกัเฉพัาะคิ/าที่��กั5าหนด

Page 38: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

38

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IN

Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

003 สมใจ ส3ขึ้สม แพัรื/ 5000

004 สมหว�ง ที่3กัเรื��อง พัะเยา 7800

Employees

ต�องการ แสั่ด้งรห�สั่ และช+�อข้องพิ่น�กงาน โด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงานท(�มู(รห�สั่ 001002004

โจัทย- >>

SELECT Emp_ID, First_nameFROM Employees WHERE Emp_ID IN ('001', '002','004');

SQL >> ผลล�พิ่ธ์- >>Emp_ID

First_name

001 สมชิาย002 สมหญิ�ง004 สมหว�ง

Page 39: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

39

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% Not IN

Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

003 สมใจ ส3ขึ้สม แพัรื/ 5000

004 สมหว�ง ที่3กัเรื��อง พัะเยา 7800

Employees

ต�องการ แสั่ด้งรห�สั่ และช+�อข้องพิ่น�กงาน โด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงานท(�ไมู�มู(รห�สั่ 001 002004, ,

โจัทย- >>

SELECT Emp_ID, First_nameFROM Employees WHERE Emp_ID Not IN ('001', '002','004');

SQL >> ผลล�พิ่ธ์- >>Emp_ID

First_name

003 สมใจ

Page 40: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

40

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IS NULL

ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* IS NULL;

เป็�นกัารืรืะบ3เง��อนไขึ้ว/าคิอล�มน*ที่��ต%องกัารืต%องม�คิ/าเป็�น NULL

Page 41: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

41

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IS NULL

Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

003 สมใจ ส3ขึ้สม 5000

004 สมหว�ง ที่3กัเรื��อง 7800

Employees

ต�วอย�าง แสั่ด้งช+�อและท(�อย��ข้องพิ่น�กงาน โด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงานท(�ไมู�ได้�ระบ#ท(�อย��

โจัทย- >>

SELECT First_name, AddressFROM Employees WHERE Address IS NULL;

SQL >> ผลล�พิ่ธ์- >>First_name

Address

สมใจสมหว�ง

Page 42: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

42

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IS NOT NULL

ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* IS NOT NULL;

เป็�นกัารืรืะบ3เง��อนไขึ้ว/าคิอล�มน*ที่��ต%องกัารืต%องไม/ม�คิ/าเป็�น NULL

Page 43: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

43

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IS NOT NULL

Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

003 สมใจ ส3ขึ้สม 5000

004 สมหว�ง ที่3กัเรื��อง 7800

Employees

ต�วอย�าง แสั่ด้งช+�อและท(�อย��ข้องพิ่น�กงาน โด้ยจัะแสั่ด้งข้�อมู�ลเฉพิ่าะพิ่น�กงานท(�ระบ#ท(�อย��

โจัทย- >>

SELECT First_name, AddressFROM Employees WHERE Address IS NOT NULL;

SQL >> ผลล�พิ่ธ์- >>First_name

Address

สมชิาย เชิ�ยงใหม/

สมหญิ�ง อ3ตรืด�ตถ*

Page 44: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

44

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% DISTINCT

ร�ปแบบ >>SELECT DISTINCT ชิ��อคิอล�มน*ที่��ต%องกัารืให%แสดงผลคิ/าซี5�าเพั�ยง 1 คิ/าFROM ชิ��อตารืาง;

- ใชิ%ส5าหรื�บกัารืแสดงผลคิ/าที่��ซี5�ากั�นเพั�ยง 1 คิ/า

Page 45: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

45

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% DISTINCT

หากไมู�ใช� DISTINCT ผลล�พิ่ธ์-จัะได้�คำ�าท(�ซ่�8าก�น

SELECT V_CODEFROM PRODUCT;

SELECT DISTINCT V_CODEFROM PRODUCT;ผลล�พิ่ธ์- ผลล�พิ่ธ์-

Page 46: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

46

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where

Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% DISTINCT

FirstName

LastName

Amphur

มานะ พัากัเพั�ยรื เม�องอดที่น ต��งใจเรื�ยน เม�องมาน� หม��นเพั�ยรื ป็ง

Personal

ผลล�พิ่ธ์-Amph

ur

เม�องป็ง

SELECT DISTINCT AmphurFROM Personal;

Page 47: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

INSERT < การเพิ่��มูข้�อมู�ลเข้�าไปในตาราง >

47

ร�ปแบบ >>

INSERT INTO ชิ��อตารืาง VALUES (ขึ้%อม&ลที่3กัคิอล�มน*);

การเพิ่��มูข้�อมู�ลลง หร+อ การเพิ่��มูแถุว(Row) เข้�าไปในตาราง

INSERT INTO ชิ��อตารืาง (ชิ��อที่3กัคิอล�มน*) VALUES (ขึ้%อม&ลที่3กัคิอล�มน*);

หร+อ

Page 48: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

48

ต�วอย�าง

INSERT < การเพิ่��มูข้�อมู�ลเข้�าไปในตาราง >

INSERT INTO customerVALUES (‘101’,‘สมป็อง’, ‘เชิ�ยงใหม/’,‘073658758’, 150000 ,100000 ) ;

SQL >>

ป็>อนขึ้%อม&ลขึ้องล&กัคิ%าใหม/ ซี��งม�รืห�ส 101 ชิ��อสมป็อง อาศั�ยอย&/ เชิ�ยงใหม/

เบอรื*โที่รืศั�พัที่* 073658758 ม�วงเง�น150,000 บ. และยอดเง�นคิงเหล�อ100,000 บ.

โจัทย- >>

Page 49: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

49

ต�วอย�าง

INSERT < การเพิ่��มูข้�อมู�ลเข้�าไปในตาราง >

SQL >>INSERT INTO Orders(ProdID, Product, EmpID)VALUES (999, “Ram”, “02”);

ProdID

Product

EmpID

234 Printer

01

657 Table 03

865 Chair 03

OrdersProdI

DProdu

ctEmpID

234 Printer 01

657 Table 03

865 Chair 03

999 Ram 02

Orders

Page 50: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>

50

ร�ปแบบ >>

UPDATE ชิ��อตารืาง SET ชิ��อคิอล�มน* = ขึ้%อม&ลใหม/ WHERE เง��อนไขึ้;

การแก�ไข้ข้�อมู�ลในตาราง

Page 51: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

51

ต�วอย�างUPDATE PRODUCTSET P_DATE = ’18-JAN-2004’WHERE P_CODE = ‘P0000007’;

SQL >>

UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>

แกั%ไขึ้ขึ้%อม&ลว�นที่��ส�นคิ%าเขึ้%าคิล�ง (P_DATE) โดยให%แกั%ไขึ้เฉพัาะส�นคิ%าที่��ม�รืห�สส�นคิ%า (P_CODE) เป็�น P0000007 ให%เป็�นว�นที่��ส�นคิ%าเขึ้%าคิล�งเป็�น -18 JAN-2004

Page 52: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

52

ต�วอย�างUPDATE BookSET Author = ’สมโชิคิ’WHERE Book_name = ‘รืะบบฐานขึ้%อม&ล’;

SQL >>

UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>

แกั%ไขึ้ขึ้%อม&ลผ&%แต/ง (Author) โดยให%แกั%ไขึ้เฉพัาะหน�งส�อที่��ชิ��อรืะบบฐานขึ้%อม&ล (Book_name) ให%เป็�นผ&%แต/งชิ��อสมโชิคิ

Page 53: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

53

ต�วอย�างUPDATE BookSET Author = ’สมโชิคิ’ , publisher=‘ดอกัหญิ%า’WHERE Book_id = ‘00015’;

SQL >>

UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>

แกั%ไขึ้ขึ้%อม&ลผ&%แต/ง (Author) โดยให%แกั%ไขึ้เฉพัาะหน�งส�อที่��ม�รืห�ส 0 0 0 1 5 (Book_id) ให%เป็�นผ&%แต/งชิ��อสมโชิคิ และส5าน�กัพั�มพั*ดอกัหญิ%า

Page 54: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

54

ต�วอย�าง UPDATE แบบไมู�ระบ#แถุว

UPDATE EmployeesSET Name = “FOX”;

SQL >>

UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>

EmpID Name

01 ANT

02 BAT

03 CAT

04 DOG

EmployeesEmployees

EmpID Name

01 FOX

02 FOX

03 FOX

04 FOX

EmployeesEmployees

Page 55: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

55

ต�วอย�าง UPDATE แบบระบ#แถุว UPDATE Employees

SET Name = “FOX”WHERE EmpID = “04”;

SQL >>

UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>

EmpID Name

01 ANT

02 BAT

03 CAT

04 DOG

Employees

EmpID Name

01 ANT

02 BAT

03 CAT

04 FOX

Employees

Page 56: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

DELETE < การลบข้�อมู�ลในตาราง >

56

ร�ปแบบ >>

DELETE FROM ชิ��อตารืางWHERE เง��อนไขึ้;

การลบข้�อมู�ล หร+อ การลบแถุว(Row) ออกจัากตาราง

Page 57: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

57

ต�วอย�าง

DELETE < การลบข้�อมู�ลในตาราง >

DELETE FROM employeeWHERE E_name = ‘ว�ไล’ ;

SQL >>

ในกัรืณี�ที่��พัน�กังานชิ��อ ว�ไล‘ ’ ลาออกัจากับรื�ษ�ที่ โจัทย- >>

Page 58: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

58

ต�วอย�าง DELETE แบบระบ#แถุว

DELETE FROM EmployeesWHERE EmpID = “04”;

SQL >>

EmpID Name

01 ANT

02 BAT

03 CAT

04 DOG

EmployeesEmployees

EmpID Name

01 ANT

02 BAT

03 CAT

EmployeesEmployees

DELETE < การลบข้�อมู�ลในตาราง >

Page 59: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

59

ต�วอย�าง DELETE แบบไมู�ระบ#แถุว

DELETE FROM Employees;SQL >>

EmpID Name

01 ANT

02 BAT

03 CAT

04 DOG

EmployeesEmployees

EmpID Name

EmployeesEmployees

DELETE < การลบข้�อมู�ลในตาราง >

Page 60: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

60

3. ภาษาคำวบคำ#มูข้�อมู�ล (Data Control Language)

▫GRANT เป็�นคิ5าส��งให%ส�ที่ธ์�7ผ&%ใชิ% (User)▫REVOKE เป็�นคิ5าส��งยกัเล�กัส�ที่ธ์�7ผ&%ใชิ% (User)

คำวบคำ#มูสั่�ทธ์�9ข้องผ��ใช�ในการใช�ข้�อมู�ล รวมูท�8งสั่�วนท(�ใช�คำวบคำ#มูการใช�ฐานข้�อมู�ลจัากผ��ใช�หลายๆคำนพิ่ร�อมูก�น

Page 61: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

61

สั่�วนท(� สั่�วนท(� 22

Page 62: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

62

การ จั�ด้เร(ยงข้�อมู�ลด้�วย ORDER BY

SELECT IDCustomer , C_name FROM customer

ORDER BY C_name ASC;

SQL น�อยไปหามูาก

ต%องกัารืที่รืาบรืห�สและชิ��อขึ้องล&กัคิ%าที่��งหมด โดยแสดงผลแบบเรื�ยงตามล5าด�บชิ��อล&กัคิ%าจากัน%อยไป็หามากั และ มากัไป็น%อย

โจัทย- >>

ร�ปแบบ >>

SELECT IDCustomer , C_name FROM customer ORDER BY C_name DESC;

SQL มูากไปหา น�อย

ORDER BY ชิ��อคิอล�มน* DESC; เรื�ยงจากัมากัไป็น%อย

ORDER BY ชิ��อคิอล�มน* ASC; เรื�ยงจากัน%อยไป็

มากั

ORDER BY ชิ��อคิอล�มน* ; เรื�ยงจากัน%อยไป็มากั

Page 63: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

63

ต�วอย�าง การ จั�ด้เร(ยงข้�อมู�ลด้�วย ORDER BY

SELECT *FROM AddressORDER BY ZipCode ASC;

Amphur ZipCode

เม�องพัะเยา 560

00

จ3น 560

02

ป็ง 560

01

AddressAddress ผลล�พิ่ธ์-ผลล�พิ่ธ์-Amphur ZipCode

เม�องพัะเยา 560

00

ป็ง 560

01

จ3น 560

02

น�อยไปหามูาก

Page 64: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

64

ต�วอย�าง การ จั�ด้เร(ยงข้�อมู�ลด้�วย ORDER BY

SELECT *FROM AddressORDER BY ZipCode DESC;

Amphur ZipCode

เม�องพัะเยา 560

00

จ3น 560

02

ป็ง 560

01

AddressAddress ผลล�พิ่ธ์-ผลล�พิ่ธ์-Amphur ZipCode

จ3น 560

02

ป็ง 560

01

เม�องพัะเยา 560

00

มูากไปหาน�อย

Page 65: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

65

ต�วอย�าง การ จั�ด้เร(ยงข้�อมู�ลด้�วย ORDER BY

SELECT Id, Name, Addr, Curr_Bal FROM customerORDER BY Curr_Bal DESC;

แสดงรืห�ส(Id) , ชิ��อ(Name) , ที่��อย&/(Addr) และเง�นคิ%างชิ5ารืะ(Curr_Bal )ขึ้องล&กัคิ%า(customer)โดยเรื�ยงตามเง�นคิ%างชิ5ารืะจากัมากัไป็น%อย

โจัทย- >>

Id Name Addr Curr_Bal- - - - - - - - - - - - - - - - - - - - - - - - - - - -197 วรืชิาต� ส�คิล5�า อย3ธ์ยา

500000

110 ศั�รื� ส3ขึ้พัาน�ชิกัรื3งเที่พัฯ 200000

217 อน�นต* บ3ญิญิาน3พังศั*กัรื3งเที่พัฯ 200000

309 ส3ภาวด� เพัชิรืส3ขึ้ รืะยอง 150000

100 โสภา ส�คิล5�ากัรื3งเที่พัฯ 100000

Page 66: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

66

ต�วอย�าง การ จั�ด้เร(ยงข้�อมู�ลด้�วย ORDER BY

SELECT P_CODE, P_DESCRIPT, P_INDATE, P_PRICEFROM PRODUCTORDER BY P_PRICE DESC;

ต%องกัารืด&รืห�สส�นคิ%า(P_CODE) ชิ��อส�นคิ%า(P_DESCRIPT) ว�นที่��ส�นคิ%าเขึ้%ามา(P_INDATE) และรืาคิาส�นคิ%า(P_PRICE) จากัตารืางส�นคิ%า(PRODUCT ) โดยให%เรื�ยงล5าด�บตามรืาคิาส�นคิ%าจากัมากัไป็น%อย

โจัทย- >>

Page 67: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

67

ต�วอย�าง การ จั�ด้เร(ยงข้�อมู�ลด้�วย ORDER BY

SELECT P_DESCRIPT, V_CODE, P_INDATE, P_PRICEFROM PRODUCTORDER BY V_CODE ASC, P_PRICE DESC;

ต%องกัารืด&ชิ��อส�นคิ%า(P_DESCRIPT) รืห�สผ&%คิ%าส/ง(V_CODE) ว�นที่��ส�นคิ%าเขึ้%ามา(P_INDATE) และรืาคิาส�นคิ%า(P_PRICE) จากัตารืางส�นคิ%า(PRODUCT ) โดยให%เรื�ยงล5าด�บตามรืห�สผ&%คิ%าส/งจากัน%อยไป็หามากั ถ%าหากัผ&%คิ%าส/งเป็�นรืายเด�ยวกั�นให%แสดงผลเรื�ยงล5าด�บตามรืาคิาส�นคิ%าจากัมากัไป็หาน%อย

โจัทย- >>

Page 68: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

68

ต�วอย�าง การ จั�ด้เร(ยงข้�อมู�ลด้�วย ORDER BY

SELECT P_DESCRIPT, V_CODE, P_PRICEFROM PRODUCT

WHERE P_PRICE < 500ORDER BY V_CODE ASC, P_PRICE DESC;

ต%องกัารืด&ชิ��อส�นคิ%า(P_DESCRIPT) รืห�สผ&%คิ%าส/ง(V_CODE) และรืาคิาส�นคิ%า(P_PRICE) ที่��ม�รืาคิาส�นคิ%าต5�ากัว/า 500 บาที่ จากัตารืางส�นคิ%า(PRODUCT ) โดยให%เรื�ยงล5าด�บตามรืห�สผ&%คิ%าส/งจากัน%อยไป็หามากั ถ%าหากัผ&%คิ%าส/งเป็�นรืายเด�ยวกั�นให%แสดงผลเรื�ยงล5าด�บตามรืาคิาส�นคิ%าจากัมากัไป็หาน%อย

โจัทย- >>

Page 69: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

69

การเปล(�ยนห�วคำอล�มูน-เป:นข้�อคำวามูอ+�นโด้ยการใช� ALIAS

ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่�� 1 AS ชิ��อคิอล�มน*ใหม/ , ชิ��อคิอล�มน*ที่��2,....

FROM ชิ��อตารืาง;

ALIAS คิ�อ กัารืสรื%างชิ��อจ5าลองขึ้��นมาใหม/ให%คิอล�มน*ในขึ้ณีะที่��แสดงผล

หมูายเหต# จะเป็ล��ยนชิ��อคิอล�มน*ในกัารืแสดงผลเที่/าน��น โดยที่��จะไม/ไป็เป็ล��ยนในโคิรืงสรื%าง ขึ้องตารืางจรื�ง

Page 70: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

70

Emp_ID

First_name

Last_name

Address

Salary

001 สมชิาย ชิาตรื� เชิ�ยงใหม/

15000

002 สมหญิ�ง งามแที่% อ3ตรืด�ตถ*

6000

003 สมใจ ส3ขึ้สม แพัรื/ 5000

Employees

ต�องการ แสั่ด้งรห�สั่ และช+�อข้องพิ่น�กงาน โด้ยเปล(�ยนช+�อคำอล�มูน- Emp_ID เป.น ID

โจัทย- >>

SELECT Emp_ID AS ID, First_nameFROM Employees ;

SQL >> ผลล�พิ่ธ์- >> ID First_name

001 สมชิาย002 สมหญิ�ง003 สมใจ

ต�วอย�าง การใช� ALIAS

เปล(�ยนช+�อคำอล�มูน- Emp_ID เป.น ID

Page 71: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

71

Operators ในการคำ�านวณิ

Operator

คำวามูหมูาย

+ บวกั- ลบ* คิ&ณี/ หารื^ ยกักั5าล�ง

Page 72: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

72

การคำ�านวณิในคำ�าสั่��ง SQL และการใช�ช+�อแทน (Alias)

SELECT P_DESCRIPT, P_ONHAND, P_PRICE, P_ONHAND*P_PRICEFROM PRODUCTORDER BY P_PRICE ASC;

P_DESCRIPT

P_ONHAND

P_PRICE

P_ONHAND*P_PRICE

ตะไบ 46 41 1886

คิ%อน 23 90 2070

สว/านไรื%สาย

12 38

0

4560

สั่�งเกตเมู+�อมู(การคำ�านวณิโด้ยใช�

P_ONHAND*P_PRICE ผลล�พิ่ธ์-ท(�ได้�จัะแสั่ด้งใน

คำอล�มูน- P_ONHAND*P_PRICE ซ่$�งคำอล�มูน-น(8เป.นคำอล�มูน-ท(� phpMyAdminสั่ร�างข้$8น

มูาให�เองโด้ยอ�ตโนมู�ต�

Page 73: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

73

ต�วอย�าง คำ�านวณิในคำ�าสั่��ง SQL และการใช�ช+�อแทน (Alias)

SELECT P_DESCRIPT, P_ONHAND, P_PRICE, P_ONHAND*P_PRICE AS TOTAL_VALUEFROM PRODUCT;

ต%องกัารืหาว/าส�นคิ%าที่��เหล�ออย&/ในตารืางแต/ละชิน�ดม�ม&ลคิ/ารืวม(TOTAL_VALUE) เที่/ากั�บเที่/าไรื

โจัทย- >>

ตาราง PRODUCTP_CODE P_DESCR

IPTP_ONHA

NDP_PRICE

1 คิ%อน 23 90

2 ตะไบ 46 41

3 สว/านไรื%สาย 12 380

P_DESCRIPT

P_ONHAND

P_PRICE

TOTAL_VALUE

ตะไบ 46 41 1886

คิ%อน 23 90 2070

สว/านไรื%สาย

12 38

0

4560

ผลล�พิ่ธ์- >>

Page 74: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

74

ต�วอย�าง คำ�านวณิในคำ�าสั่��ง SQL และการใช�ช+�อแทน (Alias)

SELECT P_CODE, P_INDATE, P_INDATE + 90 AS EXPIRE_DATEFROM PRODUCT;

ต%องกัารืแสดงรืห�สส�นคิ%า(P_CODE) ว�นที่��ส�นคิ%าน��นเขึ้%ามาในคิล�งส�นคิ%า (P_INDATE) และว�นที่��ส�นคิ%าแต/ละต�วจะม�ว�นส��นส3ดกัารืรื�บป็รืะกั�น(EXPIRE_DATE)ในที่��น��คิ�ดที่�� 90 ว�น โดยกัารืคิ�ดจะคิ�ดเรื��มจากัว�นที่��ส�นคิ%าน��นเขึ้%ามาในคิล�งส�นคิ%า

โจัทย- >>

กัารืรื�บป็รืะกั�นในที่��น��คิ�ดที่�� 90 ว�น โดยกัารืคิ�ดจะคิ�ดเรื��มจากัว�นที่��ส�นคิ%าน��นเขึ้%ามาในคิล�งส�นคิ%า ว�ธ์�คิ�ด ว�นที่��ส�นคิ%าเขึ้%ามาในคิล�งส�นคิ%า คิ�อ P_INDATEกัารืรื�บป็รืะกั�นที่างบรื�ษ�ที่กั5าหนด รื�บป็รืะกั�นส�นคิ%า 90 ว�น จะได%สมกัารืด�งน��

Page 75: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

75

ฟั<งก-ช�นสั่�าหร�บหาคำ�าข้องกล#�มูข้�อมู�ลฟั<งก-ช�น หน�าท(�AVG ผลล�พัธ์*เป็�นคิ/าเฉล��ยขึ้องขึ้%อม&ลที่��ง

กัล3/มSUM ผลล�พัธ์*เป็�นผลบวกัขึ้องขึ้%อม&ลที่��ง

กัล3/ม MIN ผลล�พัธ์*เป็�นคิ/าน%อยที่��ส3ดขึ้องขึ้%อม&ล

ที่��งกัล3/มMAX ผลล�พัธ์*เป็�นคิ/ามากัที่��ส3ดขึ้องขึ้%อม&ล

ที่��งกัล3/มCOUNT ผลล�พัธ์*เป็�นจ5านวนรืายกัารืขึ้อง

ขึ้%อม&ลที่��งกัล3/ม

SELECT ฟ2งกั*ชิ�น (ชิ��อคิอล�มน*ที่��ต%องกัารืแสดง or *)FROM ชิ��อตารืาง ;

ร�ปแบบ >>

Page 76: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

76

SELECT AVG(salary)FROM employee ;

ต%องกัารืที่รืาบคิ/าเฉล��ยเง�นเด�อน(salary)พัน�กังาน(employee)ที่3กัคิน

โจัทย- >>

SQL >> AVG(salary)

5642

ผลล�พิ่ธ์- >>

ต�วอย�าง หาคำ�าเฉล(�ยด้�วย AVG()

Page 77: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

77

SELECT AVG(P_PRICE)FROM PRODUCT;

ต%องกัารืที่รืาบรืาคิาส�นคิ%าเฉล��ย(P_PRICE )โจัทย- >>

SQL >> AVG(P_PRICE)

40

ผลล�พิ่ธ์- >>

โจัทย- >>SQL >>

ต%องกัารืด&ส�นคิ%า (PRODUCT) ที่��ม�รืาคิา (P_PRICE) ส&งกัว/ารืาคิาส�นคิ%าเฉล��ย

ต�วอย�าง หาคำ�าเฉล(�ยด้�วย AVG()

SELECT *FROM PRODUCT

WHERE P_PRICE > (SELECT AVG(P_PRICE) FROM PRODUCT)ORDER BY P_PRICE DESC;

หาราคำาสั่�นคำ�าเฉล(�ย

P_CODE

P_DESCRIPT

P_ONHAND

P_PRICE

1 คิ%อน 23 90

2 ตะไบ 46 41

ผลล�พิ่ธ์- >>

Page 78: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

78

ต�วอย�าง หาผลรวมูด้�วย SUM()

SELECT SUM(AMOUNT)FROM PRODUCT;

โจัทย- >>SQL >>

ต%องกัารืด&ผลรืวมขึ้องจ5านวนส�นคิ%า (AMOUNT)ที่��อย&/ในคิล�งส�นคิ%าที่��งหมด

SELECT SUM(P_ONHAND * P_PRICE) AS TOTAL_VALUEFROM PRODUCT;

โจัทย- >>

SQL >>

ต%องกัารืหาม&ลคิ/าส�นคิ%าที่��ม�อย&/ในรื%านที่��งหมดหมูายเหต# ม&ลคิ/าส�นคิ%าแต/ละป็รืะเภที่ = จ5านวนส�นคิ%าแต/ละป็รืะเภที่(P_ONHAND) *รืาคิาส�นคิ%าต/อหน/วย(P_PRICE)

P_DESCRIPT

P_ONHAND

P_PRICE

ตะไบ 46 41

คิ%อน 23 90

TOTAL_VALUE

3956

ผลล�พิ่ธ์- >>

SUM(AMOUNT)

69

ผลล�พิ่ธ์- >>

Page 79: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

79

ต�วอย�าง หาคำ�าต��าสั่#ด้ MIN()

SELECT MIN(P_PRICE)FROM PRODUCT;

ต%องกัารืหารืาคิาส�นคิ%า(P_PRICE)ที่��ถ&กัที่��ส3ดในรื%านโจัทย- >>SQL >> MIN(P_PR

ICE)

41

ผลล�พิ่ธ์- >>

SELECT *FROM PRODUCT

WHERE P_PRICE = (SELECT MIN(P_PRICE) FROM PRODUCT);

โจัทย- >>SQL >>

ต%องกัารืด&รืายละเอ�ยดขึ้องส�นคิ%าที่��ถ&กัที่��ส3ดในรื%าน

P_DESCRIPT

P_ONHAND

P_PRICE

ตะไบ 46 41

คิ%อน 23 90

ผลล�พิ่ธ์- >>P_DESCRIPT

P_ONHAND

P_PRICE

ตะไบ 46 41

Page 80: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

80

ต�วอย�าง หาคำ�าสั่�งสั่#ด้ MAX()

SELECT MAX(P_PRICE)FROM PRODUCT;

โจัทย- >>

SQL >> ผลล�พิ่ธ์- >>

โจัทย- >>

SQL >>

ต%องกัารืหารืาคิาส�นคิ%าที่��แพังที่��ส3ดในรื%าน

MAX(P_PRICE)

90

ต%องกัารืด&รืายละเอ�ยดขึ้องส�นคิ%าที่��แพังที่��ส3ดในรื%าน

SELECT *FROM PRODUCT

WHERE P_PRICE = (SELECT MAX(P_PRICE) FROM PRODUCT);

P_DESCRIPT

P_ONHAND

P_PRICE

ตะไบ 46 41

คิ%อน 23 90

ผลล�พิ่ธ์- >>P_DESCRIPT

P_ONHAND

P_PRICE

ตะไบ 46 90

Page 81: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

81

ต�วอย�าง น�บจั�านวนรายการ COUNT()

SELECT COUNT(* )FROM customer ;

โจัทย- >>

SQL >> ผลล�พิ่ธ์- >>

ต%องกัารืน�บจ5านวนล&กัคิ%าขึ้องบรื�ษ�ที่

COUNT(*)

21

Page 82: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

82

ต�วอย�าง น�บจั�านวนรายการ COUNT()โจัทย- >>

SQL >>

แสดงจ5านวนรืายกัารืส��งซี��อส�นคิ%าที่��งหมด พัรื%อมรืะบ3จ5านวนรืายกัารืส�นคิ%าที่��งหมดที่��ม�กัารืส��งซี��อ

SELECT COUNT(*) AS TOTAL , COUNT(DISTINCT IDOrder) AS ORDER FROM Order;

น�บจ5านวนรืายกัารืส��งซี��อส�นคิ%าที่��งหมดพัรื%อมที่��งเป็ล��ยนห�วคิอล�มน*เป็�น TOTAL

น�บจ5านวนรืายกัารืส�นคิ%าที่��งหมดที่��ม�กัารืส��งซี��อโดยไม/น�บจ5านวนรืายกัารืที่��ไม/ซี5�ากั�นพัรื%อมที่��งเป็ล��ยนห�วคิอล�มน*เป็�น ORDER

ผลล�พิ่ธ์- >>TOTAL ORDER

2 R1

1 R2

OrderDate

IDOrder

1-SEP-2012

R1

12-SEP-2012

R2

1-OCT-2012

R1

Page 83: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

83

GROUP BY และ HAVING

GROUP BY เป็�นคิ5าส��งที่��ใชิ%ส5าหรื�บกัารืแสดงผลในล�กัษณีะจ�ดกัล3/ม อาจใชิ%รื/วมกั�บ HAVING ในกัารืกั5าหนดเง��อนไขึ้ขึ้องกัารืแสดงผล

ร�ปแบบ >> SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืแสดง หรื�อ *FROM ชิ��อตารืาง WHERE เง��อนไขึ้GROUP BY ชิ��อคิอล�มน*ที่��ต%องกัารืจ�ดกัล3/มHAVING เง��อนไขึ้ORDER BY ชิ��อคิอล�มน*ที่��ต%องกัารืเรื�ยงล5าด�บ

ASC หร+อ DESC;

Page 84: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

84

ต�วอย�าง การใช� GROUP BY

SELECT Name, SUM(Amount)FROM IncomeGROUP BY Name;

Name Amount

ANT 5500

BAT 4500

ANT 7100

IncomeIncome ผลล�พิ่ธ์-ผลล�พิ่ธ์-

จั�ด้กล#�มูโด้ยใช�ช+�อ(Name)

Name SUM(Amount)

ANT 12600

BAT 4500

Page 85: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

85

ต�วอย�าง การใช� GROUP BY

SELECT address, AVG(credit_lim)FROM customer GROUP BY address;

โจัทย- >>

SQL >>

ต%องกัารืที่รืาบคิ/าเฉล��ยขึ้องวงเง�น(credit_lim)ขึ้องล&กัคิ%า(customer )แต/ละกัล3/มโดยแบ/งกัล3/มตามที่��อย&/(address)

จั�ด้กล#�มูตามูท(�อย��(address)

Page 86: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

86

ต�วอย�าง การใช� GROUP BY และ HAVING

SELECT Name, SUM(Amount)FROM IncomeGROUP BY Name

HAVING NAME = “ANT”;

Name Amount

ANT 5500

BAT 4500

ANT 7100

IncomeIncome ผลล�พิ่ธ์-ผลล�พิ่ธ์-

จั�ด้กล#�มูโด้ยใช�ช+�อ(Name)

Name

SUM(Amount)

ANT 12600

แสั่ด้งผลเฉพิ่าะ NAME เท�าก�บ ANT

Page 87: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

87

ต�วอย�าง การใช� GROUP BY และ HAVING

SELECT address, AVG(credit_lim)FROM customer GROUP BY addressHAVING AVG(credit_lim)>=300000

;

โจัทย- >>

SQL >>

ต%องกัารืที่รืาบคิ/าเฉล��ยขึ้องวงเง�นขึ้องล&กัคิ%าแต/ละกัล3/มโดยแบ/งกัล3/มตามที่��อย&/(address)ที่��ม�วงเง�นเฉล��ยต��งแต/ 300000, ขึ้��นไป็

จั�ด้กล#�มูตามูท(�อย��(address)

มู(วงเง�นเฉล(�ยต�8งแต� 300000, ข้$8นไป

มู�ลคำ�าเฉล(�ยข้องวงเง�น

address AVG(credit_lim)

Ayuthaya 800000

Bangkok 500000

Rayong 300000

Page 88: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

88

ต�วอย�าง การใช� GROUP BY และ WHERE

SELECT V_CODE, SUM(P_PRICE * P_ONHAND)

FROM PRODUCTWHERE V_CODE <> NULLGROUP BY V_CODE;

โจัทย- >>

SQL >>

ต%องกัารืด&ม&ลคิ/ารืวมขึ้องส�นคิ%าที่��แต/ละผ&%คิ%าส/ง(V_CODE ) ส/งส�นคิ%าให%กั�บเรืา

จั�ด้กล#�มูตามูผ��คำ�าสั่�ง (V_CODE)

ผ��คำ�าสั่�งต�องสั่�งสั่�นคำ�า คำ+อ ไมู�มู(คำ�าเท�าก�บ คำ�าว�าง

มู�ลคำ�ารวมูข้องสั่�นคำ�า

P_DESCRIPT

P_ONHAND

P_PRICE

V_CODE

ตะไบ 46 41 v001

คิ%อน 23 90 v001

สว/านไรื%สาย

12 38

0

v002

ตะป็& 10 50

V_CODE

SUM(P_PRICE * P_ONHAND)

v001

3956

v002 4560

ผลล�พิ่ธ์- >>

Page 89: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

89

ต�วอย�าง การใช� GROUP BY และ WHERE

SELECT V_CODE, AVG(P_PRICE)FROM PRODUCTWHERE V_CODE <> NULLGROUP BY V_CODE;

โจัทย- >>

SQL >>

ต%องกัารืด&รืาคิาเฉล��ยขึ้องส�นคิ%าที่��แต/ละผ&%คิ%าส/ง(V_CODE ) ส/งส�นคิ%าให%กั�บเรืา

จั�ด้กล#�มูตามูผ��คำ�าสั่�ง (V_CODE)

ผ��คำ�าสั่�งต�องสั่�งสั่�นคำ�า คำ+อ ไมู�มู(คำ�าเท�าก�บ คำ�าว�าง

ราคำาเฉล(�ยข้องสั่�นคำ�า

P_DESCRIPT

P_ONHAND

P_PRICE

V_CODE

ตะไบ 46 41 v001

คิ%อน 23 90 v001

สว/านไรื%สาย

12 38

0

v002

ตะป็& 10 50

V_CODE

AVG(P_PRICE)

v001

65.5

v002 380

ผลล�พิ่ธ์- >>

Page 90: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

90

ต�วอย�าง การใช� GROUP BY ,WHERE และ HAVING

SELECT V_CODE, AVG(P_PRICE)FROM PRODUCTWHERE V_CODE <> NULLGROUP BY V_CODEHAVING AVG(P_PRICE) < 100;

โจัทย- >>

SQL >>

ต%องกัารืด&รืาคิาเฉล��ยขึ้องส�นคิ%าที่��แต/ละผ&%คิ%าส/ง ส/งส�นคิ%าให%กั�บเรืา โดยด&เฉพัาะรืาคิาเฉล��ยที่��ต5�ากัว/า 100

จั�ด้กล#�มูตามูผ��คำ�าสั่�ง (V_CODE)

ผ��คำ�าสั่�งต�องสั่�งสั่�นคำ�า คำ+อ ไมู�มู(คำ�าเท�าก�บ คำ�าว�าง

ราคำาเฉล(�ยข้องสั่�นคำ�า

ด้�เฉพิ่าะราคำาเฉล(�ยท(�ต��ากว�า 100P_DESC

RIPTP_ONHAND

P_PRICE

V_CODE

ตะไบ 46 41 v001

คิ%อน 23 90 v001

สว/านไรื%สาย

12 38

0

v002

ตะป็& 10 50

V_CODE

AVG(P_PRICE)

v001

65.5

ผลล�พิ่ธ์- >>

Page 91: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

91

ต�วอย�าง การใช� GROUP BY ,WHERE และ HAVING

SELECT V_CODE, SUM(P_ONHAND), AVG(P_PRICE)

FROM PRODUCTWHERE V_CODE IS NOT NULLGROUP BY V_CODEHAVING AVG(P_PRICE) < 100;

โจัทย- >>

SQL >>

ต%องกัารืด&ขึ้%อม&ลคิ/าเฉล��ยขึ้องส�นคิ%าและหาจ5านวนส�นคิ%าที่��งหมดที่��แต/ละผ&%คิ%าส/งส�นคิ%าให%กั�บเรืา โดยด&เฉพัาะม&ลคิ/าเฉล��ยขึ้องรืาคิาส�นคิ%าที่��ต5�ากัว/า 100

จั�ด้กล#�มูตามูผ��คำ�าสั่�ง (V_CODE)

ผ��คำ�าสั่�งต�องสั่�งสั่�นคำ�า คำ+อ ไมู�มู(คำ�าเท�าก�บ คำ�าว�าง

ราคำาเฉล(�ยข้องสั่�นคำ�า

ด้�เฉพิ่าะราคำาเฉล(�ยท(�ต��ากว�า 100

หาจั�านวนสั่�นคำ�า

P_DESCRIPT

P_ONHAND

P_PRICE

V_CODE

ตะไบ 10 41 v001

คิ%อน 20 90 v001

สว/านไรื%สาย

12 38

0

v002

ตะป็& 10 50

V_CODE

SUM(P_ONHAND)

AVG(P_PRICE)

v001

30 65.5ผลล�พิ่ธ์- >>

Page 92: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

92

ต�วอย�าง การใช� GROUP BY ,WHERE และ HAVING

SELECT V_CODE, SUM(P_ONHAND), AVG(P_PRICE)

FROM PRODUCTWHERE V_CODE IS NOT NULLGROUP BY V_CODEHAVING AVG(P_PRICE) < 100;

โจัทย- >>

SQL >>

ต%องกัารืด&ขึ้%อม&ลคิ/าเฉล��ยขึ้องส�นคิ%าและหาจ5านวนส�นคิ%าที่��งหมดที่��แต/ละผ&%คิ%าส/งส�นคิ%าให%กั�บเรืา โดยด&เฉพัาะม&ลคิ/าเฉล��ยขึ้องรืาคิาส�นคิ%าที่��ต5�ากัว/า 100

SELECT V_CODE, SUM (P_ONHAND) AS AMOUNT_OF_PRODUCT, AVG(P_PRICE) AS PRICE_AVERAGE

FROM PRODUCTWHERE V_CODE IS NOT NULLGROUP BY V_CODEHAVING AVG(P_PRICE) < 100;

หร+อ ใช� Alias (ช+�อแทน ) เพิ่+�อการแสั่ด้งผลท(�ด้(ย��งข้$8น

V_CODE

AMOUNT_OF_PRODUCT

PRICE_AVERAGE

v001

30 65.5

ผลล�พิ่ธ์- >>

Page 93: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

93

ต�วอย�าง การใช� GROUP BY และ WHERE

SELECT V_CODE, SUM(P_PRICE * P_ONHAND) AS TOTAL_PRICE

FROM PRODUCTWHERE V_CODE <> NULLGROUP BY V_CODEORDER BY TOTAL_PRICE DESC;

โจัทย- >>

SQL >>

ต%องกัารืด&ม&ลคิ/ารืวมขึ้องส�นคิ%าที่��แต/ละผ&%คิ%าส/ง(V_CODE ) ส/งส�นคิ%าให%กั�บเรืาและให%แสดงผลเรื�ยงตามรืาคิาจากัมากัไป็หาน%อย

P_DESCRIPT

P_ONHAND

P_PRICE

V_CODE

ตะไบ 46 41 v001

คิ%อน 23 90 v001

สว/านไรื%สาย

12 38

0

v002

ตะป็& 10 50

V_CODE

TOTAL_PRICE

v002 456

0

v001

395

6

ผลล�พิ่ธ์- >>

Page 94: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

94

การแสั่ด้งผลจัากหลายตารางโด้ยการ Join (เช+�อมู)

SELECT PRODUCT.P_DESCRIPT, VENDOR.V_NAME,

VENDOR.V_CONTACT, VENDOR.V_AREACODE,

VENDOR.V_PHONEFROM PRODUCT, VENDORWHERE PRODUCT.V_CODE =

VENDOR.V_CODE;

โจัทย- >>

SQL >>

ต%องกัารืด&รืายละเอ�ยดส�นคิ%า(P_DESCRIPT ) และต%องกัารืที่รืาบชิ��อผ&%คิ%าส/ง(V_NAME )พัน�กังานที่��เรืาต�ดต/อ(V_CONTACT)และที่��อย&/ขึ้องผ&%คิ%าส/ง(V_AREACODE)และเบอรื*โที่รืศั�พัที่*ผ&%คิ%าส/ง(V_PHONE)

PRODUCT(P_CODE,P_DESCRIPT, P_PRICE, P_INDATE, V_CODE) FK(V_CODE ) to VENDOR

VENDOR(V_CODE, V_NAME, V_CONTACT, V_AREACODE, V_PHONE)

ตารางสั่�นคำ�า(PRODUCT) มู(รายละเอ(ยด้ด้�งน(8

ตารางผ��คำ�าสั่�ง(VENDOR) มู(รายละเอ(ยด้ด้�งน(8

น�าเอาคำอล�มูน-ท(�ท�8ง 2 ตารางมูาเป.นเง+�อนไข้

ช+�อตาราง.ช+�อคำอล�มูน-

ช+�อตารางท(�น�ามูาเช+�อมูก�น

Page 95: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

95

การแสั่ด้งผลจัากหลายตารางโด้ยการ Join (เช+�อมู)

SELECT PRODUCT.P_DESCRIPT, PRODUCT.P_INDATE, PRODUCT.P_PRICE, VENDOR.V_NAME,

VENDOR.V_AREACODE, VENDOR.V_PHONE

FROM PRODUCT, VENDORWHERE PRODUCT.V_CODE = VENDOR.V_CODE AND PRODUCT.P_INDATE > “1-SEP-

2012”;

โจัทย- >>

SQL >>

ต%องกัารืด&รืายละเอ�ยดส�นคิ%า (P_DESCRIPT ) และผ&%คิ%าส/งที่��ส/งส�นคิ%า(V_NAME )หล�งว�นที่�� -1 SEP-2012(P_INDATE)

PRODUCT(P_CODE,P_DESCRIPT, P_PRICE, P_INDATE, V_CODE) FK(V_CODE ) to VENDOR

VENDOR(V_CODE, V_NAME, V_CONTACT, V_AREACODE, V_PHONE)

ตารางสั่�นคำ�า(PRODUCT) มู(รายละเอ(ยด้ด้�งน(8

ตารางผ��คำ�าสั่�ง(VENDOR) มู(รายละเอ(ยด้ด้�งน(8

น�าเอาคำอล�มูน-ท(�ท�8ง 2 ตารางมูาเป.นเง+�อนไข้

ช+�อตาราง.ช+�อคำอล�มูน-

ช+�อตารางท(�น�ามูาเช+�อมูก�น

สั่�งสั่�นคำ�าหล�งว�นท(� -1 SEP-2012(P_INDATE)

Page 96: Chapter 10  :   ภาษาทางด้านฐานข้อมูลคำสั่ง  SQL  ( SQL Command)

96

แบบฝึ?กห�ด้1 จงเขึ้�ยนสคิรื�ป็ต*คิ5าส��ง SQL ด�งต/อไป็น��

11. จงเป็ล��ยนชิน�ดขึ้องขึ้%อม&ล ขึ้องตารืาง student คิอล�มน* student_id เป็ล��ยนเป็�น int(5)

12. จงเพั��ม คิอล�มน* department ขึ้องตารืาง teacher โดยม�ชิน�ดขึ้%อม&ลเป็�น char(20)

13. หากัต%องกัารืลบคิอล�มน* department ขึ้องตารืาง teacher ต%องเขึ้�ยนคิ5าส��งอย/างไรื

2.จงเขึ้�ยนสคิรื�ป็ต*คิ5าส��ง SQL เพั��อแที่รืกัขึ้%อม&ล (Insert) ลงในตารืางด�งต/อไป็น�� Table name : subject

3.จงเขึ้�ยนสคิรื�ป็ต*คิ5าส��ง SQL เพั��อขึ้อด&ขึ้%อม&ลด�งต/อไป็น�� 31. น�กัศั�กัษาที่��ม�งานอด�เรืกั(Hobby) คิ�อ อ/านหน�งส�อ โดยให%แสดงรืห�ส‘ ’

น�กัศั�กัษา(St_Code)และชิ��องานอด�เรืกั (Hobby) จากัตารืางน�กัศั�กัษา(Student)

32. รืห�สว�ชิา ‘I003’ ใชิ%หน�งส�อเล/มใดสอนบ%าง โดยให%แสดงรืห�สว�ชิา(Subject_id) และชิ��อหน�งส�อ(BookName ) จากัตารืาง รืายว�ชิา(Subject)

33. แสดงรืายชิ��อน�กัศั�กัษาที่��ขึ้��นต%นด%วย ม และเรื�ยนอย&/ใน ‘ ’ class ‘B’ โดยให%แสดงชิ��อน�กัศั�กัษา (St_Name) และ class จากัตารืางน�กัศั�กัษา(Student)

34 ให%แสดงรืห�สน�กัศั�กัษา (St_Code)ที่��ม�งานอด�เรืกั (Hobby) คิ�อ ฟ2งเพัลง และที่5าเว:บไซีต* จากัตารืางน�กัศั�กัษา(Student)

35. ให%แสดงรืห�สน�กัศั�กัษา (St_Code) ที่��ได%คิะแนน(Point)รืะหว/าง - 7080 ขึ้องว�ชิา(Subject_id) ‘I001’

จากัตารืางคิะแนนสอบ(ExamPoint)

Subject_id Name credit

I004กัารืว�เคิรืาะห*และออกัแบบรืะบบ 3

S003 โป็รืแกัรืมชิ��นส&ง 2