49
LOGO 1 คคคคคคคคคค คคค คคคคคคคค 3 คคคคคคค 421-343 คคคคคคคคคคคค คคคคคคคคคคคคคค คคคคคคคคคคคคคคคคคคคคคคคคค คคคคคคคคคคคคคค

SQL (Structured Query Language)

  • Upload
    wan

  • View
    67

  • Download
    1

Embed Size (px)

DESCRIPTION

คาบปฏิบัติการ ครั้งที่ 3. SQL (Structured Query Language). รายวิชา 421-343 การออกแบบและพัฒนาฐานข้อมูล. ภาควิชาบรรณารักษศาสตร์และสารนิเทศศาสตร์. ความเป็นมาของภาษาSQL. - PowerPoint PPT Presentation

Citation preview

Page 1: SQL (Structured Query Language)

LOGO

1

คาบปฏิ�บ�ติ�การ คร��งที่�� 3

รายวิ�ชา - 421343 การออกแบบและพั�ฒนาฐานข้�อมู ล

ภาควิ�ชาบรรณาร�กษศาสติร&และสารน�เที่ศศาสติร&

Page 2: SQL (Structured Query Language)

2

ในการสอบถามูข้�อมู ลจากฐานข้�อมู ลน��น ค+าถามูข้องผู้ � “ใช� เร�ยกวิ-า Query” และภาษาที่��ใช�ในการสอบถามู

“ข้�อมู ลเร�ยกวิ-า Query Language” ซึ่/�งใน ป0จจ1บ�นมู�อย -หลายภาษาด้�วิยก�น โด้ยภาษา SQL

พั�ฒนาโด้ยบร�ษ�ที่ IBM เป5นที่��ร �จ�กและใช�ก�นอย-างแพัร- หลาย จ/งถ6อเป5นมูาติรฐานที่��ใช�ใน RDBMS หลายติ�วิ

ที่��ใช�อย -ในป0จจ1บ�น

ควิามูเป5นมูาข้องภาษาSQL

Page 3: SQL (Structured Query Language)

3

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

DDL (Data Definition Language) เป็�นชุ�ดคำสั่� งที่� ใชุ�ใน กรน�ยม กหนด หร�อกรสั่ร�งข้�อม�ลบนฐนข้�อม�ล ได�แก" คำ

สั่� ง CREATE TABLE, CREATE VIEW

DML (Data Manipulation Language) เป็�นชุ�ดคำสั่� งที่� ใชุ�ในกรป็ระมวลผลหร�อจั�ดกรก�บข้�อม�ลในฐนข้�อม�ล ได�แก" คำ

สั่� ง SELECT, INSERT , UPDATE เป็�นต้�น

DCL (Data Control Language) เป็�นคำสั่� งที่� ใชุ�ในกร คำวบคำ�มสั่�ที่ธิ์�)ข้องผ��ใชุ�ในกรใชุ�ข้�อม�ล รวมที่�*งสั่"วนที่� ใชุ�คำวบคำ�มกร

ใชุ�ฐนข้�อม�ลจักผ��ใชุ�หลยๆคำนพร�อมก�น

Page 4: SQL (Structured Query Language)

4

รายละเอ�ยด้ข้�อมู ล (Data Dictionary)

ช6�อเที่เบ�ล ช6�อคอล�มูน& ประเภที่ข้�อมู ล ควิามูหมูาย อ�างถ/งCUSTOMER

PRODUCT

IDcustomer (PK)

Char (6) รห�สั่ล�กคำ�

C_name Varchar(40)

ชุ� อล�กคำ�

C_address Varchar(30)

ที่� อย�"

C_Telephone Varchar(10)

เบอร-โที่รศั�พที่-

C_Creditlim number วงเง�นกรให�สั่�นเชุ� อ

C_currbal number ยอดสั่�นเชุ� อคำงเหล�อ

IDproduct(PK)

Char (6) รห�สั่สั่�นคำ�

p_name Varchar(20)

ชุ� อสั่�นคำ�

p_unitprice number รคำต้"อหน"วย(บที่)

P_onhand number จันวนสั่�นคำ�คำงเหล�อ

P_orderpt number จันวนต้ สั่�ดที่� ต้�องสั่� งซื้�*อเพ� ม

P_orderqty number จันวนที่� ต้�องสั่� งซื้�*อเพ� ม

Page 5: SQL (Structured Query Language)

5

รายละเอ�ยด้ข้�อมู ล (Data Dictionary)

ช6�อเที่เบ�ล ช6�อคอล�มูน& ประเภที่ข้�อมู ล ควิามูหมูาย อ�างถ/งEMPLOYEE

ORDER

IDemployee (PK)

Char (6) รห�สั่พน�กงน

e_name Varchar(40) ชุ� อพน�กงนข้ย

e_salary number(8,2) เง�นเด�อนป็1จัจั�บ�น

e_address Varchar(30) ที่� อย�"e_telephone

Char(10) เบอร-โที่รศั�พที่-

IDorder(PK)

Char (6) รห�สั่ใบสั่� งซื้�*อสั่�นคำ�

IDproduct Char (6) รห�สั่สั่�นคำ� product

qty number จันวนสั่�นคำ�ที่� สั่� งซื้�*อ

discount number สั่"วนลด(%)

IDcustomer

Char (6) รห�สั่ล�กคำ� Customer

IDemployee

Char (6) รห�สั่พน�กงนข้ย

employee

Page 6: SQL (Structured Query Language)

6

การสร�างติาราง(Create Table)

CREATE TABLE <Table_name> (<column_name_1> <data_type> [NOT NULL]

[UNIQUE], (<column_name_2> <data_type> [NOT NULL]

[UNIQUE], … … …

… … …[PRIMARY KEY (column_name,)][FOREIGN KEY (column_name) REFERENCES

table_name]);

▫ กรสั่ร�งต้รงด�วย SQL สั่มรถที่ได�ด�วยคำสั่� งCREATE TABLE ซื้3 งกหนด

ล�กษณะข้องข้�อม�ลเป็�นคำอล�มน- โดยม�ร�ป็แบบด�งน�*ร ปแบบ >>

Page 7: SQL (Structured Query Language)

7

CREATE TABLE Customer

( IDcustomer char(6) NOT NULL UNIQUE,C_name varchar(40) NOT NULL,C_address varchar(30),C_telephone char(10),C_credit number,C_currbal number,PRIMARY KEY (IDcustomer));

ค+าอธิ�บาย >>

SQL >>

กหนดให� IDcustomer เป็�นคำ�ย-หล�ก ด�งน�*นจัะ ใสั่" PRIMARY KEY (IDcustomer) เข้�ไป็ด�วย

และในคำอล�มน- IDcustomer ต้�องม�คำ"เสั่มอ(NOT NULL) และม�คำ"ไม"ซื้*ก�น (UNIQUE) และในแต้"ละแถวคำอล�มน- c_name จัะต้�องม�คำ"

เสั่มอ (NOT NULL) เน� องจักคำวมเป็�นจัร�งที่� ข้องข้�อม�ลที่� ล�กคำ�ที่�กคำนต้�องม�ชุ� อ

โจที่ย& >> สั่ร�งต้รง customer ต้มที่� ได�ออกแบบรยละเอ�ยดต้รงไว�

การสร�างติาราง(Create Table)

Page 8: SQL (Structured Query Language)

8

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

แผนกใด

SQL >> ALTER TABLE employee ADD IDdepartment char(6) ;

การเปล��ยนโครงสร�างข้องติาราง(Alter Table)

ในกรที่งนจัร�ง อจัม�กรเป็ล� ยนแป็ลงโคำรงสั่ร�งข้�อม�ล ข้องต้รงน�*นๆ เน� องจักกรออกแบบที่� อจัผ�ดพลด

หร�ออจัเป็ล� ยนคำวมต้�องกร ในกรแก�ไข้โคำรงสั่ร�งข้อง ต้รงน�*นที่ได�ด�วยคำสั่� ง ALTER TABLE โดยม�ร�ป็แบบ

ด�งน�* ALTER TABLE <Table_name>

ADD <colum_name> <data_type> ;

ร ปแบบ >>

Page 9: SQL (Structured Query Language)

9

โจที่ย& >> ลบคำอล�มน-ที่� เป็�นรห�สั่แผนก(IDdepartment) ในต้รง employee

SQL >> ALTER TABLE employee DROP Iddepartment ;

การเปล��ยนโครงสร�างข้องติาราง(Alter Table)

หกต้�องกรลบคำอล�มน-ก6สั่มรถที่ได�เชุ"นก�นด�วยคำสั่� งต้"อไป็น�*

ALTER TABLE <Table_name>

DROP <colum_name> ;

ร ปแบบ >>

Page 10: SQL (Structured Query Language)

10

การแก�ไข้คอล�มูน&ในติาราง(MODIFY)

โจที่ย& >> เป็ล� ยนข้นดข้องข้�อม�ลในคำอล�มน-Iddeparment ในต้รง employee

จักข้นด 6 ต้�วอ�กษร เป็�นข้นด 5 ต้�วอ�กษร

SQL >> ALTER TABLE employee MODIFY (IDdepartment char(5)) ;

ALTER TABLE <Table_name>

MODIFY <colum_name> <data_type> ;

ร ปแบบ >>

Page 11: SQL (Structured Query Language)

11

การลบติารางออกจากฐานข้�อมู ล(Drop Table)

DROP TABLE Order

DROP TABLE <Table_name>;

ร ปแบบ >>

DROP TABLE ORDER;SQL >>

ต้�องกรลบเที่เบ�ล ORDER ออกจักฐนข้�อม�ล

โจที่ย& >>

Page 12: SQL (Structured Query Language)

12

การเพั��มูข้�อมู ลแติ-ละแถวิ(INSERT)

INSERT INTO <Table_name>

VALUES ([<value 1>, <value 2>,… ) ;

ร ปแบบ >>

INSERT INTO customerVALUES (‘101’,‘Supaporn’, ‘Pattani’,‘073658758’, 150000 ,100000 ) ;

SQL >>

ป็7อนข้�อม�ลข้องล�กคำ�ใหม" ซื้3 งม�รห�สั่ 101 ชุ� อSupaporn อศั�ยอย�" Pattani

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

โจที่ย& >>

Page 13: SQL (Structured Query Language)

13

การเพั��มูข้�อมู ลแติ-ละแถวิ (INSERT) (ต้"อ)

INSERT INTO <Table_name><(list of columnname)>

VALUES <( list of matching value)> ;

ร ปแบบ >>

INSERT INTO customer (IDcustomer , C_name) VALUES (‘150’,‘Walaiporn’) ;

SQL >>

ป็7อนข้�อม�ลข้องล�กคำ�ใหม" ซื้3 งม�รห�สั่ 150 ชุ� อWalaiporn

โจที่ย& >>

ในกรณ�ที่��อาจการเพั��มูข้�อมู ลเฉพัาะบางคอล�มูน& สามูารถเข้�ยนค+าส��งได้�ด้�งน��

Page 14: SQL (Structured Query Language)

14

การเพั��มูข้�อมู ลโด้ยใช�ข้�อมู ลจากติารางอ6�น

SQL >>

ต้�องกรสั่ร�งต้รงใหม" ชุ� อ CustomerInBangkok ซื้3 งป็ระกอบด�วยคำอล�มน- รห�สั่, ชุ� อ และเบอร-โที่รศั�พที่-ข้อง

ล�กคำ� โดยข้�อม�ลในต้รงจัะเล�อกจักต้รง customer ‘เฉพะล�กคำ�ที่� อศั�ยอย�"ใน Bangkok’ เที่"น�*น

โจที่ย& >>

ในกรณ�ที่��อาจการเพั��มูข้�อมู ลเฉพัาะบางคอล�มูน& สามูารถเข้�ยนค+าส��งได้�ด้�งน��

1. สร�างติาราง CustomerInBangkok

CREATE TABLE CustomerInBangkok (IDBangkok char(6) NOT NULL

UNIQUE, B_name varchar(40) NOT NULL, B_telephone char(10) );

2. เพั��มูข้�อมู ลลงในติารางCustomerInBangkok

INSERT INTO CustomerInBangkok

SELECT IDcustomer , C_name,C_telephone

FROM Customer WHERE address =‘Bangkok’ ;

Page 15: SQL (Structured Query Language)

15

UPDATE employeeSET E_salary= 15000WHERE E_name=‘Piyanuch’ ;

การแก�ไข้ข้�อมู ล (Update)

SQL >>

ต้�องกรป็ร�บเง�นเด�อนพน�กงนชุ� อ Piyanuch จักเด�ม14,400 บที่ เป็�น 15,000

โจที่ย& >>

ในกรณ�ที่��เพั��มูข้�อมู ลในติารางแล�วิ และติ�องการแก�ไข้ข้�อมู ลที่��มู�อย -สามูารถเข้�ยนค+าส��งได้�ด้�งน��

UPDATE <Table_name>SET <columnname> =

new_valueWHERE <condition>;

ร ปแบบ >>

Page 16: SQL (Structured Query Language)

16

UPDATE customerSET C_credit = C_credit +

50000WHERE C_address =‘Bangkok’ ;

SQL >>

ต้�องกรเพ� มวงเง�นให�แก"ล�กคำ�ที่� อศั�ยอย�"ใน Bangkok อ�กคำนละ 50,000 บที่

โจที่ย& >>

หากติ�องการแก�ไข้ข้�อมู ลที่��มู�อย - คร��งละหลายแถวิสามูารถเข้�ยนค+าส��งได้�ด้�งน��

การแก�ไข้ข้�อมู ล (Update)

Page 17: SQL (Structured Query Language)

17

DELETE FROM employee

WHERE E_name = ‘Walai’ ;

SQL >>

‘ในกรณ�ที่��พัน�กงานช6�อ Walai’ ลาออก จากบร�ษ�ที่

โจที่ย& >>

DELETE <Table_name>

WHERE <condition>;

ร ปแบบ >>

การลบข้�อมู ล (Delete)

Page 18: SQL (Structured Query Language)

18

SELECT Idcustomer ,C_name,C_address, C_telephone,C_Credit, C_currlim,C_currbal FROM Customer ;

SQL1 >>

ติ�องการสอบถามูข้�อมู ลที่��งหมูด้ข้องล กค�า โจที่ย& >>

SELECT column_name, list of column_name, or * FROM table_name ,or list of table_name;

ร ปแบบ >>

การสอบถามูข้�อมู ล (SELECT)

SELECT * FROM Customer ;

SQL2 >>

*** ในกรณ�ที่� ต้�องกรเร�ยงลด�บกรแสั่ดงข้�อม�ล สั่มรถระบ�ชุ� อคำอล�มน-เร�ยงต้มลด�บที่� ต้�องกรโดยไม"จัเป็�นต้�อง

เร�ยงต้มลด�บที่� สั่ร�งในต้รง

Page 19: SQL (Structured Query Language)

19

SELECT C_name AS “Customer_name”, C_currbal AS “Current Balance”

FROM customer;

SQL >>

แสั่ดงชุ� อและยอดคำงเหล�อข้องล�กคำ�ที่�กคำนโดยให�ห�วคำอล�มน- ชุ� อ แสั่ดงเป็�น Customer_name และ ยอดเง�น

แสั่ดงเป็�นCurrent Balance

โจที่ย& >>

SELECT column_name AS “NEW HEADING”;

ร ปแบบ >>

การเปล��ยนห�วิคอล�มูน&เป5นข้�อควิามูอ6�น(SELECT…AS)

ผู้ลล�พัธิ& >>Customer_name Current Balance----------------------------------------Sopha 1000000Silee 2000000

… …

Page 20: SQL (Structured Query Language)

20

SELECT DISTINCT address

FROM customer ;

SQL >>

ให�แสั่ดงข้�อม�ลที่� อย�"ล�กคำ�ข้องบร�ษ�ที่ว"อย�"ที่� ใดบ�ง

โจที่ย& >>

SELECT DISTINCT ColumnnameFROM Table_name;

ร ปแบบ >>

แสด้งข้�อมู ลที่��ไมู-ซึ่+�าก�นด้�วิยDISTINCT

Page 21: SQL (Structured Query Language)

21

SELECT IDCustomer , C_name FROM customer ORDER BY C_name;

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

ต้�องกรที่รบรห�สั่และชุ� อข้องล�กคำ�ที่�*งหมด โดยแสั่ดงผลแบบเร�ยงต้มลด�บชุ� อล�กคำ�จักน�อยไป็หมก และ มกไป็น�อย

โจที่ย& >>

ORDER BY column_name [DESC] ; เร�ยงจักมกไป็น�อย

ร ปแบบ >>

จ�ด้เร�ยงข้�อมู ลด้�วิย ORDER BY

ORDER BY column_name ; เร�ยงจักน�อยไป็มก

SELECT IDCustomer , C_name FROM customer ORDER BY C_name DESC;

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

Page 22: SQL (Structured Query Language)

22

SELECT C_address , C_name, C_creditlim FROM customer

ORDER BY address, C_name;

SQL >>

ต้�องกรสั่อบถมชุ� อ ที่� อย�" และวงเง�นข้องล�กคำ� โดยเร� มแสั่ดงข้�อม�ลจักกล�"มล�กคำ�ที่� ม�ที่� อย�"เด�ยวก�นจักน�อยไป็หมก และในแต้"ละกล�"มหร�อจั�งหว�ดก6เร�ยงต้มชุ� อล�กคำ�จักน�อยไป็หมก

โจที่ย& >>

จ�ด้เร�ยงข้�อมู ล

address C_name C_Creditlim--------- -------------------------Ayuthaya Worachat5000000Bangkok Anan1000000Bangkok Silee6000000

ผู้ลล�พัธิ& >>

Page 23: SQL (Structured Query Language)

23

การจ�ด้กล1-มูข้�อมู ล (SELECT… GROUP BY)

SELECT address, AVG(credit_lim)FROM customer

GROUP BY address;

SQL >>

ต้�องกรที่รบคำ"เฉล� ยข้องวงเง�นข้องล�กคำ�แต้"ละกล�"ม โดยแบ"งกล�"มต้มที่� อย�"

โจที่ย& >>

SELECT column_name FROM <table name> GROP BY <column name> ;

ร ปแบบ >>

Page 24: SQL (Structured Query Language)

24

เล6อกกล1-มูข้�อมู ลด้�วิย HAVING และ “WHERE

SELECT address, AVG(credit_lim)FROM customer

GROUP BY addressHAVING AVG(credit_lim)>=300000 ;

SQL >>

ต้�องกรที่รบคำ"เฉล� ยข้องวงเง�นข้องล�กคำ�แต้"ละกล�"ม โดยแบ"งกล�"มต้มที่� อย�"ที่� ม�วงเง�นเฉล� ย

ต้�*งแต้" 300,000 ข้3*นไป็

โจที่ย& >>SELECT column_name

FROM <table name>

GROP BY <column name>HAVING <condition> ;

ร ปแบบ >>

addressAVG(credit_lim)

Ayuthaya 800000

Bangkok 533333.33

Rayong 300000

ผู้ลล�พัธิ& >>

Page 25: SQL (Structured Query Language)

25

เล6อกกล1-มูข้�อมู ลด้�วิย HAVING และ “WHERE

SELECT address, AVG(credit_lim)FROM customer

WHERE address IN (‘Bangkok’ , ‘Rayong’)

GROUP BY addressHAVING AVG(credit_lim)>=300000 ;

SQL >>

ต้�องกรที่รบคำ"เฉล� ยข้องวงเง�นข้องล�กคำ�ที่� อย�"ในกร�งเที่พและระยองโดยแบ"งกล�"มต้ม ที่� อย�"ที่� ม�วงเง�นเฉล� ยต้�*งแต้" 300,000 ข้3*นไป็

โจที่ย& >>SELECT column_name

FROM <table name>WHERE <condition>

GROP BY <column name>HAVING <condition> ;

ร ปแบบ >>

addressAVG(credit_lim)

Bangkok 533333.33

Rayong 300000

ผู้ลล�พัธิ& >>

Page 26: SQL (Structured Query Language)

26

SQL >>

ต้�องกรข้�อม�ลที่�*งหมดข้องล�กคำ�เฉพะที่� อศั�ยอย�"ในBangkok

โจที่ย& >>

SELECT column_nameFROMtable_nameWHERE condition ;

ร ปแบบ >>

การสอบถามูข้�อมู ลแบบมู�เง6�อนไข้

SELECT *FROM customerWHERE address = ‘Bangkok’ ;

Page 27: SQL (Structured Query Language)

27

เคร6�องหมูายที่��ใช�เปร�ยบเที่�ยบ

ควิามูหมูาย

= เที่"ก�บ!= ไม"เที่"ก�บ> มกกว"< น�อยกว"

>= มกกว"หร�อเที่"ก�บ<= น�อยกว"หร�อเที่"ก�บ

ติ�วิด้+าเน�นการเช�งเปร�ยบเที่�ยบ(Comparison Operators)

Page 28: SQL (Structured Query Language)

28

SQL >>

สั่อบถมข้�อม�ลข้องล�กคำ�ที่� อย�" Bangkok และม�วงเง�น มกกว" 500,000 บที่

โจที่ย& >>

SELECT *FROM customerWHERE (C_address = ‘Bangkok’) AND (C_creditlim> 500000) ;

ระบ1หลายเง6�อนไข้โด้ยใช� OR

SQL >>

สั่อบถมข้�อม�ลข้องล�กคำ�ที่� อย�" Bangkok หร�อม�วงเง�น มกกว" 500,000 บที่

SELECT *FROM customerWHERE (C_address = ‘Bangkok’) OR (C_creditlim> 500000) ;

โจที่ย& >>

Page 29: SQL (Structured Query Language)

29

SQL 1 >>

สั่อบถมข้�อม�ลข้องล�กคำ�ที่� อย�" Bangkok, Rayong หร�อ Ayuthaya

โจที่ย& >>

SELECT * FROM customerWHERE (C_address = ‘Bangkok’) OR (C_address = ‘Rayong’)

OR (C_address = ‘Ayuthaya’) ;

ระบ1หลายเง6�อนไข้โด้ยใช� IN

SQL 2 >>

SELECT * FROM customerWHERE address IN (‘Bangkok’, ‘Rayong’ , ‘Ayuthaya’)

Page 30: SQL (Structured Query Language)

30

SQL1 >>

สั่อบถมข้�อม�ลข้องล�กคำ�ที่� ไม"อย�"ในBangkok โจที่ย& >>

SELECT *FROM customerWHERE C_address != ‘Bangkok’ ;

SQL2 >>

SELECT *FROM customerWHERE NOT C_address = ‘Bangkok’;

ระบ1หลายเง6�อนไข้โด้ยใช� NOT

Page 31: SQL (Structured Query Language)

31

SELECT column_nameFROM table_nameWHERE column_name BETWEEN values1 AND values2 ;

ร ปแบบ >>

เล6อกข้�อมู ลที่��อย -ในช-วิงที่��ติ�องการด้�วิยBETWEEN…AND

*** สั่หร�บเล�อกแสั่ดงข้�อม�ลที่� อย�"ระหว"งคำ"ที่� กหนด(values1) และ values2***

SELECT column_nameFROM table_nameWHERE column_name NOT BETWEEN

values1 AND values2 ;

ร ปแบบ >>

*** สั่หร�บเล�อกแสั่ดงข้�อม�ลที่� ม�คำ"ไม"อย�"ระหว"งคำ"ที่� กหนด***

Page 32: SQL (Structured Query Language)

32

SQL1 >>

แสั่ดงชุ� อข้องพน�กงนที่� ม�เง�นเด�อนอย�"ระหว"ง 3,500 และ 5,000 บที่

โจที่ย& >>

SELECT e_nameFROM employeeWHERE (salary >= 3500)AND (salary <= 5000) ;

SQL2 >>

เล6อกข้�อมู ลที่��อย -ในช-วิงที่��ติ�องการด้�วิยBETWEEN…AND

SELECT e_nameFROM employeeWHERE salaryBETWEEN 3500 AND 5000 ;

Page 33: SQL (Structured Query Language)

33

คำสั่� ง SQL สั่มรถกหนดเง� อนไข้เพ� อเล�อกข้�อม�ล “โดยใชุ�คำว" LIKE” ‘และ _’ โดยม�รยละเอ�ยด

ด�งน�*

เล6อกข้�อมู ลที่��ติรงก�บควิามูติ�องการด้�วิยLIKE

เคร6�องหมูาย/ค+า

การแที่นค-า

‘_’ แที่นต้�วอ�กษรใดๆ 1 ต้�วอ�กษร‘%’ แที่นต้�วอ�กษรก� ต้�วก6ได� หร�อเป็�น 0

(ไม"ม�ข้�อม�ลเลยก6ได�)

Page 34: SQL (Structured Query Language)

34

SQL1 >>

‘แสั่ดงชุ� อข้องล�กคำ�ที่� ข้3*นต้�นด�วย So’โจที่ย& >>

SELECT C_nameFROMcustomerWHEREc_namelike ‘So%’ ;

เล6อกข้�อมู ลที่��ติรงก�บควิามูติ�องการด้�วิยLIKE

SQL1 >>

‘แสั่ดงชุ� อข้องล�กคำ�ที่� ข้3*นต้�นด�วย Si’ และต้มด�วย อ�กษรได�ก6ได� 3 ต้�ว

โจที่ย& >>

SELECT C_nameFROM customerWHERE c_namelike ‘Si_ _ _’ ;

C_name ------------

SophaSomchaiSomsak

ผู้ลล�พัธิ& >>

C_name ------------

Silee

ผู้ลล�พัธิ& >>

Page 35: SQL (Structured Query Language)

35

ฟั0งก&ช��นส+าหร�บการค+านวิณที่างคณ�ติศาสติร&ฟั0งก&ช��น พัารามู�เติอร&(Argum

ent) การค6นค�า

(Returned values)

ABS(m) m= เลข้จันวนเต้6ม คำ"ต้�วเลข้บวกข้อง m เชุ"น ABS(-3) = 3

MOD(m,n) m= เลข้จันวนเต้6ม(ต้�วต้�*ง) n = เลข้จันวนเต้6ม(ต้�วหร)

เศัษที่� ได�จักกรหร m ด�วย n เชุ"น MOD(9,2) = 1

POWER(m,n)

m= เลข้จันวนเต้6ม(ต้�วต้�*ง) n = เลข้จันวนเต้6ม(ต้�วยกกล�ง)

คำ"ข้อง m ยกกล�ง n(mn) เชุ"น POWER(4,2)=16

ROUND(m,n)

m= เลข้จันวนเต้6ม(ต้�วต้�*ง) n = เลข้จันวนเต้6มซื้3 งแสั่ดง

จันวนที่ศัน�ยมที่� ต้�องกร หล�ง จักป็1ดเศัษข้3*น / ลง ถ�ไม"กหนด

n ให�พ�จัรณ n = 0

คำ"ข้อง m ที่� ป็1ดเศัษข้3*น / ลง ให� ม�จันวนที่ศัน�ยม n ต้แหน"ง

โดยต้แหน"งที่� n+1 ม�คำ" มกกว"หร�อเที่"ก�บ 5 จัะป็1ดข้3*น

แต้"ถ�น�อยกว" 5 จัะป็1ดเศัษลง เชุ"น ROUND(4.25,1) = 4.3

ROUND (4.24,1) = 4.2

TRUNC(m,n)

m= เลข้จันวนจัร�งn = เลข้จันวนเต้6มซื้3 งแสั่ดง

จันวนที่ศัน�ยมที่� ต้�องกร หล�ง จักป็1ดเศัษที่�*ง ถ�ไม"กหนด n ให�

พ�จัรณ n = 0

คำ"ข้อง m ที่� ป็1ดเศัษที่�*ง ให�ม� จันวนที่ศัน�ยม n ต้แหน"ง

Page 36: SQL (Structured Query Language)

36

SQL1 >>

ต้�องกรที่รบยอดเง�นคำงเหล�อข้องล�กคำ�แต้"ละคำน ว"ม�คำ"ต้"งจักวงเง�นเที่"ไหร"

โจที่ย& >>

SELECT C_name, ABS(C_currbal – C_creditlim)

AS “difference” FROM customer ;

ฟั0งก&ช��น ABS(m)

C_name difference

------------ ------------Sopha 200000Somchai 200000Somsak 100000Amorn 47950

ผู้ลล�พัธิ& >>

Page 37: SQL (Structured Query Language)

37

SQL1 >>

เพ� อที่� จัะบรรจั�ห�บห"อข้องสั่�นคำ� กล"องละ 10 ชุ�*น ให�แสั่ดงรยกรสั่�นคำ�และ

เศัษที่� เหล�อจักกรบรรจั�สั่�นคำ�

โจที่ย& >>

SELECT p_name, MOD(p_onhand,10)

FROM Product ;

ฟั0งก&ช��น MOD(m,n)

p_name MOD(onhand,10)

------------ ------------Television 0Radio 5Table 2Chair 0

ผู้ลล�พัธิ& >>

Page 38: SQL (Structured Query Language)

38

SQL1 >>

ต้�องกรที่รบว"ถ�ข้3*นเง�นเด�อนให�พน�กงนที่�กคำนม�คำ"เที่"ก�บเง�นเด�อนป็1จัจั�บ�นยกกล�งสั่องแล�ว พน�กงนแต้"ละคำนจัะม�เง�นเด�อนเที่"ไหร"

โจที่ย& >>

SELECT e_name, POWER(e_salary,2)

FROM employee;

e_name POWER(e_salary,2)

------------ ------------Piya 12250000Pinyo 24850225Wilai 6708100

… …

ผู้ลล�พัธิ& >>

ฟั0งก&ช��น POWER(m,n)

Page 39: SQL (Structured Query Language)

39

SQL1 >>

ต้�องกรที่รบรคำต้"อหน"วยสั่�นคำ�ที่�*งหมด โดยแสั่ดงเป็�นที่ศัน�ยม1 ต้แหน"ง

โจที่ย& >>

SELECT p_name, ROUND(P_unitprice,1), TRUNC(P_unitprice,1)

FROM product ;

ผู้ลล�พัธิ& >>

ฟั0งก&ช��น ROUND(m,n) และTRUNC(m,n)

p_name ROUND(P_unitprice,10) TRUNC(p_unitprice,1)

------------ ---------------- ----------------Television 10500 10500Radio 1595 1595Table 650 650Chair 232.5 232.5

Ruler 1.8 1.7 Paper 62.3

62.2

Page 40: SQL (Structured Query Language)

40

ฟั0งก&ช��นส+าหร�บหาค-าข้องกล1-มูข้�อมู ล

ฟั0งก&ช��น หน�าที่��AVG ผลล�พธิ์-เป็�นคำ"เฉล� ยข้องข้�อม�ลที่�*ง

กล�"มSUM ผลล�พธิ์-เป็�นผลบวกข้องข้�อม�ลที่�*ง

กล�"ม MIN ผลล�พธิ์-เป็�นคำ"น�อยที่� สั่�ดข้องข้�อม�ล

ที่�*งกล�"มMAX ผลล�พธิ์-เป็�นคำ"มกที่� สั่�ดข้องข้�อม�ล

ที่�*งกล�"มCOUNT ผลล�พธิ์-เป็�นจันวนรยกรข้อง

ข้�อม�ลที่�*งกล�"ม

SELECT Function (column_name or *)FROM table_name ;

ร ปแบบ >>

Page 41: SQL (Structured Query Language)

41

SQL1 >>

ต้�องกรที่รบคำ"เฉล� ยเง�นเด�อนพน�กงนที่�กคำนโจที่ย& >>

SELECT AVG(salary)

FROM employee ;

ผู้ลล�พัธิ& >>

หาค-าเฉล��ยด้�วิย AVG() , MAX()

AVG(salary)

------------

4971

SQL1 >>

ต้�องกรที่รบวงเง�นสั่�งสั่�ดที่� ให�แก"ล�กคำ�ม�คำ"เที่"ไหร"โจที่ย& >>

SELECT MAX(C_creditlim)

FROM Customer ;

ผู้ลล�พัธิ& >> MAX(C_creditlim)

------------ 900000

Page 42: SQL (Structured Query Language)

42

SQL1 >>

แสั่ดงจันวนรยกรสั่� งซื้�*อสั่�นคำ�ที่�*งหมด พร�อมระบ�จันวนรยกรสั่�นคำ�ที่�*งหมดที่� ม�กรสั่� งซื้�*อ

โจที่ย& >>

SELECT COUNT(*) AS “TOTAL” , COUNT(DISTINCT IDorder) AS “ORDER” FROM Order;

การน�บจ+านวิน COUNT, DISTINCT

ผู้ลล�พัธิ& >> TOTAL ORDER

------------ ------------ 6 5

SQL1 >>

ต้�องกรที่รบจันวนล�กคำ�ข้องบร�ษ�ที่โจที่ย& >>

SELECT COUNT(*) FROM customer ;

ผู้ลล�พัธิ& >>count(*)

------------ 9

Page 43: SQL (Structured Query Language)

43

การเช6�อมูติาราง (JOIN)

=

Employee

IDemployee

E_name

E_salary

E_address

E_telephone

Order

IDorder

IDproduct*

Qty

Discount

IDcustomer *

IDemployee *

ต้�องกรที่รบว"ใบสั่� งซื้�*อแต้"ละใบม�พน�กงนชุ� ออะไรเป็�นผ��ข้ย

โจที่ย& >>

SQL >>

SELECT DISTINCT IDorder, order.IDemployee, e_name

FROM order,employee WHERE order.IDemployee= employee.IDemployee;

ผู้ลล�พัธิ& >>IDorder IDemployee e_name

A-001 10100 Piya

A-059 1855 Sukchai

… … …

……. …… ……..

Page 44: SQL (Structured Query Language)

44

การใช�น�พันธิ&คณ�ติศาสติร&ในการเช6�อมู ติาราง

=

Order

IDorder

IDproduct*

Qty

Discount

IDcustomer *

IDemployee *

ต้�องกรที่รบชุ� อสั่�นคำ�และยอดเง�นที่� ย�งไม"ได�ห�กลดในใบสั่� งซื้�*อรห�สั่ A-001

โจที่ย& >>

SQL >>

SELECT p_name, qty * unitprice AS “total_amount”

FROM product , order WHERE IDorder= ‘A-001’ AND product.IDproduct =order. IDproduct ;

ผู้ลล�พัธิ& >> p_name total_amount

television 3150000

…… ……..

product

IDproduct

p_name

unitprice

onhand

reorder_pt

reorder_qty

total_amount= qty* uniprice

Page 45: SQL (Structured Query Language)

45

การเช6�อมูติารางแบบ Equi join

=

Order

IDorder

IDproduct*

Qty

Discount

IDcustomer *

IDemployee *

ต้�องกรที่รบชุ� อสั่�นคำ�และยอดเง�นข้องสั่�นคำ�ในใบสั่� งซื้�*อ ‘D-593’ โดยเร�ยงลด�บต้มป็ร�มณจักมกไป็หน�อย

โจที่ย& >>

SQL >>

SELECT p_name, qty FROM product , order

WHERE product.IDproduct=order.Idproduct AND IDorder=‘D-593’ ORDER BY qty DESC ;

ผู้ลล�พัธิ& >>p_name qty

Paper 150 Pencil 50

…… ……..

product

IDproduct

p_name

unitprice

onhand

reorder_pt

reorder_qty

total_amount= qty* uniprice

Page 46: SQL (Structured Query Language)

46

การเช6�อมูติารางแบบ Self join

=

พน�กงนแต้"ละคำนต้�องกรที่รบว"ม�พน�กงนคำนใดบ�งที่� เง�นเด�อนมกกว"ต้น

โจที่ย& >>

SQL >>

SELECT E1.e_name AS “lowerpaid”, E1.salary AS “lowersalary”,

E2.e_name AS “higherpaid”, E2.salary AS “highersalary”

FROM employee E1, employee E2

WHERE E1.salary < E2.salary ORDER BY 1;

employee E2

IDemployee

lowerpaid

lowersalary

address

telephone

employee E2

IDemployee

higherpaid

highersalary

address

telephone

<

Page 47: SQL (Structured Query Language)

47

การเช6�อมูติารางแบบ Self join

ผู้ลล�พัธิ& >>

lowerpaid lowersalaryhigherpaid highersalary

Pinyo 4985Sompat 9800

Pinya 3500 Pinyo 4985

Pinya 3500Sukchai 3980

Pinya 3980 Sombat 9800

Sukchai 3980 Pinyo 4985

Sukchai 3980 Sombat 9800

Wilai 2590 Piya 3500

Wilai 2590 Pinyo 4985

Wilai 2590 Sombat 9800

Wilai 2590Sukchai 3980

…… …….. …… ……..

Page 48: SQL (Structured Query Language)

48

การเช6�อมูติารางแบบ Outer join

=

Order

IDorder

IDproduct*

Qty

Discount

IDcustomer *

IDemployee *

แสั่ดงรห�สั่และชุ� อสั่�นคำ�ที่� ไม"ม�กรสั่� งซื้�*อจักล�กคำ�โจที่ย& >>

SQL >>

SELECT p_name, P.Idproduct , IDorder FROM product P, order O WHERE P.IDproduct = O.IDproduct(+);

product

IDproduct

p_name

unitprice

onhand

reorder_pt

reorder_qty

Page 49: SQL (Structured Query Language)

49

การเช6�อมูติารางแบบ Self join

ผู้ลล�พัธิ& >>IDproduct p_name IDorder

10515 Television A-001 10515 Television C-523

20001 Radio B-191 20002 Table A-059 21011 Chair

35155 Pencil D-593 36710 Ruler 39001 Paper D-593

…… …….. ……..

แถวที่� ไม"ม�ข้�อม�ลในorder