View
57
Download
0
Category
Preview:
DESCRIPTION
Chapter 10 : ภาษาทางด้านฐานข้อมูลคำสั่ง SQL ( SQL Command). 4122205Z ระบบฐานข้อมูลและการออกแบบ อ.คเชนทร์ ซ่อนกลิ่น. แนะนำภาษา SQL. Query Language หรือเอสคิวแอล ( SQL) หรือซีควอล ( SE-QUEL) เป็นภาษาที่พัฒนาขึ้นมาโดยบริษัท IBM - PowerPoint PPT Presentation
Citation preview
Chapter 10 : Chapter 10 : ภาษาทางด้�านฐานภาษาทางด้�านฐานข้�อมู�ลคำ�าสั่��ง ข้�อมู�ลคำ�าสั่��ง SQL SQL
(SQL Command) (SQL Command)
4122205Z ระบบฐานข้�อมู�ลและการออกแบบ
อ.คำเชนทร� ซ่�อนกล��น
1
•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
3
SQL (Structure Query Language)
พัจนาน3กัรืมขึ้%อม&ล (Data Dictionary)
โป็รืแกัรืมอ5านวยคิวามสะดวกั (General Utilities)
โป็รืแกัรืมชิ/วยสรื%างโป็รืแกัรืมป็รืะย3กัต*
(Application Generators)โป็รืแกัรืมชิ/วยสรื%างรืายงาน (Report Generators)
DBMS
สั่�วนประกอบข้องระบบจั�ด้การฐานข้�อมู�ล
1. สั่ร�างฐานข้�อมู�ลและตาราง 2. สั่น�บสั่น$นการจั�ด้การฐานข้�อมู�ล ซ่%�งประกอบด้�วย
การเพิ่��มู การปร�บปร$งและการลบข้�อมู�ล 3. สั่น�บสั่น$นการเร(ยกใช�หร+อสั่+บคำ�นข้�อมู�ล
4
ว�ตถุ$ประสั่งคำ�ข้อง SQL
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มกัารืใชิ%ฐานขึ้%อม&ลจากัผ&%ใชิ%หลายๆคินพัรื%อมกั�น
6
ร�ปแสั่ด้งประเภทข้องคำ�าสั่��งในภาษา SQL
ภาษา SQL(Standard Query
Language)
ภาษา SQL(Standard Query
Language)
7
1.ภาษาน�ยามูข้�อมู�ล (Data Definition Language)
▫CREATE ใชิ%สรื%างตารืาง▫ALTER ใชิ%แกั%ไขึ้/เป็ล��ยนแป็ลงตารืาง▫DROP ใชิ%ส5าหรื�บลบตารืาง
เป-นกล$�มูคำ�าสั่��งท(�ใช�กระท�าก�บโคำรงสั่ร�างข้องฐานข้�อมู�ล
8
ร�ปแบบ >>
CREATE TABLE ชิ��อตารืาง( ชิ��อคิอล�มน* 1 ป็รืะเภที่ขึ้%อม&ล Constraint, ชิ��อคิอล�มน* 2 ป็รืะเภที่ขึ้%อม&ล Constraint, PRIMARY KEY (ชิ��อคิอล�มน* ) , FOREIGN KEY (ชิ��อคิอล�มน* )REFERENCES ชิ��อตารืาง,);
CREATE TABLE การสั่ร�างตาราง
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 การสั่ร�างตาราง
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
11
ร�ปแบบ >>
ALTER TABLE ชิ��อตารืางคิ5าส��งเป็ล��ยนแป็ลงตารืาง ชิ��อคิอล�มน* ป็รืะเภที่ขึ้%อม&ล ;
คิ5าส��งกัารืเป็ล��ยนแป็ลง ได%แกั/1. ADD เพั��มคิอล�มน*2. MODIFY แกั%ไขึ้คิอล�มน*ในตารืาง3. DROP ลบคิอล�มน*
ALTER TABLE การแก�ไข้/เปล(�ยนแปลงตาราง
12
ต�วอย�าง ADD เพิ่��มูคำอล�มูน�
โจัทย� >> เพั��มคิอล�มน*ที่��เป็�นรืห�สแผนกั(IDdepartment) ในตารืาง employee เพั��อบอกัว/าพัน�กังานส�งกั�ดอย&/แผนกัใด
SQL >> ALTER TABLE employee ADD IDdepartment char(6) ;
ALTER TABLE การแก�ไข้/เปล(�ยนแปลงตาราง
13
ต�วอย�าง MODIFY แก�ไข้คำอล�มูน�ในตาราง
โจัทย� >> เป็ล��ยนขึ้นาดขึ้องขึ้%อม&ลในคิอล�มน* IDdeparment ในตารืาง employee จากัขึ้นาด 6 ต�วอ�กัษรื เป็�นขึ้นาด 5
ต�วอ�กัษรื
SQL >> ALTER TABLE employee MODIFY (IDdepartment char(5)) ;
ALTER TABLE การแก�ไข้/เปล(�ยนแปลงตาราง
ALTER TABLE การแก�ไข้/เปล(�ยนแปลงตาราง
14
ต�วอย�าง DROP ลบคำอล�มูน�
โจัทย� >> ลบคิอล�มน*ที่��เป็�นรืห�สแผนกั(IDdepartment)
ในตารืาง employee
SQL >> ALTER TABLE employee DROP IDdepartment ;
DROP TABLE การลบตาราง
15
ร�ปแบบ >>
DROP TABLE ชิ��อตารืาง ;
ต�วอย�าง
DROP TABLE ORDER;SQL >>
ต%องกัารืลบตารืาง(Table) ORDER ออกัจากัฐานขึ้%อม&ลโจัทย� >>
16
2. ภาษาจั�ด้การข้�อมู�ล (Data Manipulation Language)
▫SELECT ใชิ%เรื�ยกัขึ้%อม&ลในตารืางมาแสดงผล▫INSERT ใชิ%เพั��มขึ้%อม&ลเขึ้%าไป็ในตารืาง▫UPDATE ใชิ%แกั%ไขึ้ขึ้%อม&ลในตารืาง▫DELETE ใชิ%ลบขึ้%อม&ลในตารืาง
เป-นกล$�มูคำ�าสั่��งท(�กระท�าก�บข้�อมู�ลในฐานข้�อมู�ล
SELECT <การเร(ยกด้�ข้�อมู�ล>
17
ร�ปแบบ >>
SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืาง ;
การเร(ยกด้�ข้�อมู�ลในคำอล�มูน�ท(�ต�องการ
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
สมชิาย ชิาตรื�สมหญิ�ง งามแที่%
ผลล�พิ่ธ์� >>
SELECT <การเร(ยกด้�ข้�อมู�ล>
19
ร�ปแบบ >>
SELECT *FROM ชิ��อตารืาง ;
การเร(ยกด้�ข้�อมู�ลในท$ก ๆ คำอล�มูน�
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ตรืด�ตถ*
SELECT <การเร(ยกด้�ข้�อมู�ล>
21
ร�ปแบบ >>
SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE เง��อนไขึ้ ;
การเร(ยกด้�ข้�อมู�ลเฉพิ่าะบางแถุวท(�ตรงตามูเง+�อนไข้
โด้ยภายในเง+�อนไข้ประกอบด้�วยเง��อนไขึ้ => คิอล�มน*ที่��เป็�นเง��อนไขึ้
Operator Value
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
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 เง+�อนไข้
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where•ต�วเปร(ยบเท(ยบ (Comparison operators)
24
ต�วเปร(ยบเท(ยบ
คำวามูหมูาย
= เที่/ากั�บ< น%อยกัว/า
<= น%อยกัว/าหรื�อเที่/ากั�บ
> มากักัว/า>= มากักัว/าหรื�อ
เที่/ากั�บ <> หรื�อ
!=ไม/เที่/ากั�บ
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where•ต�ว Logical operators
25
Logical operators
คำวามูหมูาย
AND และOR หรื�อ
NOT ตรืงกั�นขึ้%าม , ไม/เที่/ากั�บ
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�ากั�น
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
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 >>
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
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เป-นจัร�งแล�ว
31
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% BETWEEN…AND…
ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* Between Value1 AND value2 ;
กั5าหนดเง��อนไขึ้ให%กั�บ where โดยเล�อกัชิ/วงขึ้%อม&ลที่��สนใจ
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
ผลล�พิ่ธ์� >>
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… เป-นการระบ$เง+�อนไข้ว�า ข้�อมู�ลต�องไมู�อย��ในช�วงท(�ก�าหนด้
34
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% LIKE
ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* Like pattern ;
เล�อกัขึ้%อม&ลที่��ตรืงกั�บคิวามต%องกัารืด%วย LIKE
คำ+อสั่��งท(�ต�องต�องการคำ�นหา โดย Pattern ม�รื&ป็แบบด�งน��
% หมายถ�ง ต�วอ�กัษรืใด ๆ จ5านวนไม/จ5ากั�ดต�วอ�กัษรื
_ หมายถ�ง ต�วอ�กัษรืใด ๆ จ5านวน 1 ต�วอ�กัษรื
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
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
เช�น >>
37
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IN
ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* IN (value1,value2,...);
เป็�นคิ5าส��งที่��ใชิ%ส5าหรื�บกัารืรืะบ3เง��อนไขึ้กัารืเล�อกัขึ้%อม&ลในตารืาง (Table) โดยเล�อกัเฉพัาะคิ/าที่��กั5าหนด
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 สมหว�ง
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 สมใจ
40
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IS NULL
ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* IS NULL;
เป็�นกัารืรืะบ3เง��อนไขึ้ว/าคิอล�มน*ที่��ต%องกัารืต%องม�คิ/าเป็�น NULL
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
สมใจสมหว�ง
42
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% IS NOT NULL
ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืด&ขึ้%อม&ลที่�� 1 , ชิ��อคิอล�มน*ที่�� 2,…,ชิ��อคิอล�มน*ที่�� nFROM ชิ��อตารืางWHERE ชิ��อคิอล�มน* IS NOT NULL;
เป็�นกัารืรืะบ3เง��อนไขึ้ว/าคิอล�มน*ที่��ต%องกัารืต%องไม/ม�คิ/าเป็�น NULL
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ตรืด�ตถ*
44
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% DISTINCT
ร�ปแบบ >>SELECT DISTINCT ชิ��อคิอล�มน*ที่��ต%องกัารืให%แสดงผลคิ/าซี5�าเพั�ยง 1 คิ/าFROM ชิ��อตารืาง;
- ใชิ%ส5าหรื�บกัารืแสดงผลคิ/าที่��ซี5�ากั�นเพั�ยง 1 คิ/า
45
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% DISTINCT
หากไมู�ใช� DISTINCT ผลล�พิ่ธ์�จัะได้�คำ�าท(�ซ่�8าก�น
SELECT V_CODEFROM PRODUCT;
SELECT DISTINCT V_CODEFROM PRODUCT;ผลล�พิ่ธ์� ผลล�พิ่ธ์�
46
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Where
Operator (ต�วปฏิ�บ�ต�การ )ท(�ใช�ใน Whereต�วอย/างกัารืใชิ% DISTINCT
FirstName
LastName
Amphur
มานะ พัากัเพั�ยรื เม�องอดที่น ต��งใจเรื�ยน เม�องมาน� หม��นเพั�ยรื ป็ง
Personal
ผลล�พิ่ธ์�Amph
ur
เม�องป็ง
SELECT DISTINCT AmphurFROM Personal;
INSERT < การเพิ่��มูข้�อมู�ลเข้�าไปในตาราง >
47
ร�ปแบบ >>
INSERT INTO ชิ��อตารืาง VALUES (ขึ้%อม&ลที่3กัคิอล�มน*);
การเพิ่��มูข้�อมู�ลลง หร+อ การเพิ่��มูแถุว(Row) เข้�าไปในตาราง
INSERT INTO ชิ��อตารืาง (ชิ��อที่3กัคิอล�มน*) VALUES (ขึ้%อม&ลที่3กัคิอล�มน*);
หร+อ
48
ต�วอย�าง
INSERT < การเพิ่��มูข้�อมู�ลเข้�าไปในตาราง >
INSERT INTO customerVALUES (‘101’,‘สมป็อง’, ‘เชิ�ยงใหม/’,‘073658758’, 150000 ,100000 ) ;
SQL >>
ป็>อนขึ้%อม&ลขึ้องล&กัคิ%าใหม/ ซี��งม�รืห�ส 101 ชิ��อ สมป็อง อาศั�ยอย&/ เชิ�ยงใหม/ เบอรื*โที่รืศั�พัที่* 073658758 ม�วงเง�น 150,000 บ. และยอดเง�นคิงเหล�อ100,000 บ.โจัทย� >>
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
UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>
50
ร�ปแบบ >>
UPDATE ชิ��อตารืาง SET ชิ��อคิอล�มน* = ขึ้%อม&ลใหม/ WHERE เง��อนไขึ้;
การแก�ไข้ข้�อมู�ลในตาราง
51
ต�วอย�างUPDATE PRODUCTSET P_DATE = ’18-JAN-2004’WHERE P_CODE = ‘P0000007’;
SQL >>
UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>
แกั%ไขึ้ขึ้%อม&ลว�นที่��ส�นคิ%าเขึ้%าคิล�ง (P_DATE) โดยให%แกั%ไขึ้เฉพัาะส�นคิ%าที่��ม�รืห�สส�นคิ%า (P_CODE) เป็�น P0000007 ให%เป็�นว�นที่��ส�นคิ%าเขึ้%าคิล�งเป็�น -18 JAN-2004
52
ต�วอย�างUPDATE BookSET Author = ’สมโชิคิ’WHERE Book_name = ‘รืะบบฐานขึ้%อม&ล’;
SQL >>
UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>
แกั%ไขึ้ขึ้%อม&ลผ&%แต/ง (Author) โดยให%แกั%ไขึ้เฉพัาะหน�งส�อที่��ชิ��อรืะบบฐานขึ้%อม&ล (Book_name) ให%เป็�นผ&%แต/งชิ��อสมโชิคิ
53
ต�วอย�างUPDATE BookSET Author = ’สมโชิคิ’ , publisher=‘ดอกัหญิ%า’WHERE Book_id = ‘00015’;
SQL >>
UPDATE <การแก�ไข้ข้�อมู�ลในตาราง>
แกั%ไขึ้ขึ้%อม&ลผ&%แต/ง (Author) โดยให%แกั%ไขึ้เฉพัาะหน�งส�อที่��ม�รืห�ส 0 0 0 1 5 (Book_id) ให%เป็�นผ&%แต/งชิ��อสมโชิคิ และส5าน�กัพั�มพั*ดอกัหญิ%า
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
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
DELETE < การลบข้�อมู�ลในตาราง >
56
ร�ปแบบ >>
DELETE FROM ชิ��อตารืางWHERE เง��อนไขึ้;
การลบข้�อมู�ล หร+อ การลบแถุว(Row) ออกจัากตาราง
57
ต�วอย�าง
DELETE < การลบข้�อมู�ลในตาราง >
DELETE FROM employeeWHERE E_name = ‘ว�ไล’ ;
SQL >>
ในกัรืณี�ที่��พัน�กังานชิ��อ ว�ไล‘ ’ ลาออกัจากับรื�ษ�ที่ โจัทย� >>
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 < การลบข้�อมู�ลในตาราง >
59
ต�วอย�าง DELETE แบบไมู�ระบ$แถุว
DELETE FROM Employees;SQL >>
EmpID Name
01 ANT
02 BAT
03 CAT
04 DOG
EmployeesEmployees
EmpID Name
EmployeesEmployees
DELETE < การลบข้�อมู�ลในตาราง >
60
3. ภาษาคำวบคำ$มูข้�อมู�ล (Data Control Language)
▫GRANT เป็�นคิ5าส��งให%ส�ที่ธ์�7ผ&%ใชิ% (User)▫REVOKE เป็�นคิ5าส��งยกัเล�กัส�ที่ธ์�7ผ&%ใชิ% (User)
คำวบคำ$มูสั่�ทธ์�9ข้องผ��ใช�ในการใช�ข้�อมู�ล รวมูท�8งสั่�วนท(�ใช�คำวบคำ$มูการใช�ฐานข้�อมู�ลจัากผ��ใช�หลายๆคำนพิ่ร�อมูก�น
61
สั่�วนท(� สั่�วนท(� 22
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 ชิ��อคิอล�มน* ; เรื�ยงจากัน%อยไป็มากั
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
น�อยไปหามูาก
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
มูากไปหาน�อย
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
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าด�บตามรืาคิาส�นคิ%าจากัมากัไป็น%อย
โจัทย� >>
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าด�บตามรืาคิาส�นคิ%าจากัมากัไป็หาน%อย
โจัทย� >>
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าด�บตามรืาคิาส�นคิ%าจากัมากัไป็หาน%อย
โจัทย� >>
69
การเปล(�ยนห�วคำอล�มูน�เป-นข้�อคำวามูอ+�นโด้ยการใช� ALIAS
ร�ปแบบ >>SELECT ชิ��อคิอล�มน*ที่�� 1 AS ชิ��อคิอล�มน*ใหม/ , ชิ��อคิอล�มน*ที่��2,.... FROM ชิ��อตารืาง;
ALIAS คิ�อ กัารืสรื%างชิ��อจ5าลองขึ้��นมาใหม/ให%คิอล�มน*ในขึ้ณีะที่��แสดงผล
หมูายเหต$ จะเป็ล��ยนชิ��อคิอล�มน*ในกัารืแสดงผลเที่/าน��น โดยที่��จะไม/ไป็เป็ล��ยนในโคิรืงสรื%าง ขึ้องตารืางจรื�ง
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
71
Operators ในการคำ�านวณี
Operator
คำวามูหมูาย
+ บวกั- ลบ* คิ&ณี/ หารื^ ยกักั5าล�ง
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น
มูาให�เองโด้ยอ�ตโนมู�ต�
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
ผลล�พิ่ธ์� >>
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 ว�น จะได%สมกัารืด�งน��
75
ฟั;งก�ช�นสั่�าหร�บหาคำ�าข้องกล$�มูข้�อมู�ลฟั;งก�ช�น หน�าท(�AVG ผลล�พัธ์*เป็�นคิ/าเฉล��ยขึ้องขึ้%อม&ลที่��ง
กัล3/มSUM ผลล�พัธ์*เป็�นผลบวกัขึ้องขึ้%อม&ลที่��ง
กัล3/มMIN ผลล�พัธ์*เป็�นคิ/าน%อยที่��ส3ดขึ้องขึ้%อม&ล
ที่��งกัล3/มMAX ผลล�พัธ์*เป็�นคิ/ามากัที่��ส3ดขึ้องขึ้%อม&ล
ที่��งกัล3/มCOUNT ผลล�พัธ์*เป็�นจ5านวนรืายกัารืขึ้อง
ขึ้%อม&ลที่��งกัล3/ม
SELECT ฟ2งกั*ชิ�น (ชิ��อคิอล�มน*ที่��ต%องกัารืแสดง or *)FROM ชิ��อตารืาง ;
ร�ปแบบ >>
76
SELECT AVG(salary)FROM employee ;
ต%องกัารืที่รืาบคิ/าเฉล��ยเง�นเด�อน(salary)พัน�กังาน(employee)ที่3กัคิน
โจัทย� >>
SQL >> AVG(salary)
5642
ผลล�พิ่ธ์� >>
ต�วอย�าง หาคำ�าเฉล(�ยด้�วย AVG()
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
ผลล�พิ่ธ์� >>
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
ผลล�พิ่ธ์� >>
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
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
81
ต�วอย�าง น�บจั�านวนรายการ COUNT()
SELECT COUNT(* )FROM customer ;
โจัทย� >>
SQL >> ผลล�พิ่ธ์� >>
ต%องกัารืน�บจ5านวนล&กัคิ%าขึ้องบรื�ษ�ที่
COUNT(*)
21
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
83
GROUP BY และ HAVING
GROUP BY เป็�นคิ5าส��งที่��ใชิ%ส5าหรื�บกัารืแสดงผลในล�กัษณีะจ�ดกัล3/ม อาจใชิ%รื/วมกั�บ HAVING ในกัารืกั5าหนดเง��อนไขึ้ขึ้องกัารืแสดงผล
ร�ปแบบ >> SELECT ชิ��อคิอล�มน*ที่��ต%องกัารืแสดง หรื�อ *FROM ชิ��อตารืาง WHERE เง��อนไขึ้GROUP BY ชิ��อคิอล�มน*ที่��ต%องกัารืจ�ดกัล3/มHAVING เง��อนไขึ้ORDER BY ชิ��อคิอล�มน*ที่��ต%องกัารืเรื�ยงล5าด�บ ASC หร+อ
DESC;
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
85
ต�วอย�าง การใช� GROUP BY
SELECT address, AVG(credit_lim)FROM customer GROUP BY address;
โจัทย� >>
SQL >>
ต%องกัารืที่รืาบคิ/าเฉล��ยขึ้องวงเง�น(credit_lim)ขึ้องล&กัคิ%า(customer )แต/ละกัล3/มโดยแบ/งกัล3/มตามที่��อย&/(address)
จั�ด้กล$�มูตามูท(�อย��(address)
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
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
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
ผลล�พิ่ธ์� >>
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
ผลล�พิ่ธ์� >>
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
ผลล�พิ่ธ์� >>
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ผลล�พิ่ธ์� >>
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
ผลล�พิ่ธ์� >>
93
ต�วอย�าง การใช� GROUP BY และ WHERE
SELECT V_CODE, SUM(P_PRICE * P_ONHAND) AS TOTAL_PRICEFROM 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
ผลล�พิ่ธ์� >>
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 ตารางมูาเป-นเง+�อนไข้
ช+�อตาราง.ช+�อคำอล�มูน�
ช+�อตารางท(�น�ามูาเช+�อมูก�น
95
การแสั่ด้งผลจัากหลายตารางโด้ยการ Join (เช+�อมู)
SELECT PRODUCT.P_DESCRIPT, PRODUCT.P_INDATE,
PRODUCT.P_PRICE, VENDOR.V_NAME,
VENDOR.V_AREACODE, VENDOR.V_PHONE
FROM PRODUCT, VENDOR
WHERE 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)
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
Recommended