sql - wordpress.com · 2017-05-21 · ประวัติของ sql...

28
SQL (Structured Query Language)

Upload: others

Post on 12-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

SQL (Structured Query Language)

Page 2: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

วตถประสงค ประวตของ SQL เรยนรค าสง SQL พนฐานส าหรบการสรางโครงสรางของฐานขอมล เรยนรค าสงส าหรบการ update ขอมล (เพม, ลบ, แกไข)

เรยนรค าสงส าหรบการเรยกดขอมลเบองตน SQL โดยใชฐานขอมล MySQL

Page 3: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

เบองตน SQL ภาษา SQL

ระบบฐานขอมลทนยมใชกนทวโลกมดวยกนหลายระบบ แตทไดรบความนยมใชกน ในปจจบนสวนใหญพฒนาขนมาจากพนฐานของภาษา SQL (Structure Query Language) พฒนาโดยบรษท IBM

Page 4: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

เบองตน SQL ค าวา SQL สามารถอานออกเสยงได 2 แบบ คอ S Q L และ Sequel เรมพฒนาครงแรกในตนทศวรรษท 1970 ท San Jose Research Laboratory (ปจจบนเปลยนชอเปน Almaden Research Center) โดยมชอแรกวา Sequel ตอมาไดเปลยนชอเปน SQL และเปนตนแบบภาษา SQL ของผลตภณฑดานฐานขอมล เชน Oracle, DB2, MS-SQL Server, Progress, SyBase, Informic, dBASE, FoxPro, Access, Paradox, SQLite รวมทง MySQL

Page 5: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

วตถประสงคของ SQL 1. สรางฐานขอมลและรเลชน 2. สนบสนนดานการฐานขอมล

• เพม • ลบ • แกไข ปรบปรง • การลบขอมลออกจากการ รเลชน

3. สนบสนนการควรขอมล (Query)

Page 6: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

กลมค าสงของภาษา SQL

1. กลมค าสง Data Definition Language (DDL) เปนกลมค าสงทใชส าหรบสรางฐานขอมล และก าหนด

โครงสรางใหกบตาราง

2. กลมค าสง Data Manipulation Language (DML) เปนกลมค าสงทใชส าหรบเพม ลบ หรอเปลยนแปลงขอมล

3. กลมค าสง Data Query Language (DQL) เปนกลมค าสงทใชส าหรบสรางฐานขอมล และก าหนด

โครงสรางใหกบตาราง

Page 7: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

การใชงาน SQL การใชงานค าสง SQL สามารถใชได 2 ลกษณะ 1. แบบโตตอบ Interactive SQL

2. แบบฝงในโปรแกรม Embedded SQL

Page 8: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

การใชงาน SQL 1. แบบโตตอบ Interactive SQL

แบบโตตอบเปนการปฏบตการทผใชสามารถเขยนค าสงภาษา SQL โตตอบกนบนจอภาพ เพอเรยกขอมลในขณะท างานไดทนท

ตวอยางเชน ตองการทราบวาพนกงานอย สาขา 003 กใชค าสง SELECT * FROM Employee WHERE branchNo = ‘003’;

Page 9: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

การใชงาน SQL 1. แบบฝงในโปรแกรม Embedded SQL แบบฝงโปรแกรมเปนการน าค าสง SQL ไปใช

โปรแกรมภาษาระดบสง ซงปจจบนมสนบสนนหลายภาษาทสนบสนน เชน ภาษาซ ภาษาโคบอล

1. Embedded SQL

2. Application Programming Interface (API)

Page 10: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

1. การสบคนขอมลดวยค าสง SQL

ฐานขอมล ขอมลผลลพธ

Name Subject Grade แสนด VB A สดสวย VB C สมบต Database B สมศกด Database B สมบรณ Database A สมหวง VB A

SQL สบคนขอมล

Page 11: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

แสดงขอมลทเปนชวง

Books

SELECT Title , Price FROM Books WHERE Price BETWEEN 500 AND 1000

Title Price Windows98 500 C Algorithm 1000

BookID Title PID Price

1001 Windows98 12 500

1002 Office97 12 150

1003 Java Vs C++ 5 250

1004 Database 4 155

1005 Netcape 4 490

1006 C Algorithm 12 1000

1007 Networking 4 1950

1008 Digitalimage

Page 12: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

User Program PHP

DBMS

Relational Calculus - What Relational Algebra - How

Where is SQL?

mySQL

•SQL มพนฐานมาจากพชคณตเชงสมพนธ และมพนฐานมาจากแคลลลสเชงสมพนธ

(น.อ.ดร. ธนพนธ หรายเจรญ ระบบฐานขอมล)

Page 13: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

ความหมายของ SQL SQL ไมใชภาษาคอมพวเตอรแตใชเพอในการจดการขอมล

SQL มหนาทหลายประการดงน

Data Definition- ก าหนดโครงสรางการสรางฐานขอมล Data Manipulation/Updates- ปรบปรงฐานขอมล

Data Retrieval (Queries)- แบบสอบถาม And others (not covered in this chapter)

Data control

Transaction control

Page 14: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

โหมดการท างานของ SQL Interactive mode

สามารถรนค าสง SQL ไดโดยตรง

เชนการควรผานโปรแกรม MS Access หรอ SQL plus ของ Oracle

จะไดผลลพธทนท

Embedded mode ใชค าสง SQL รวมกบโปรแกรมทเขยนขนดวยภาษาอน

ค าสง SQL จะท างานเมอโปรแกรมท างาน

ขอดคอสามารถน าขอมลมาประมวลผลตอได

เชน การท ารายงานทตองแสดงเปนกราฟ, การน าขอมลไปแสดงบนเวบ

Page 15: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

ลกษณะการท างานของภาษา SQL

EmployeeNumber FirstName LastName 100 Mary Abermany 700 Jerry Caldera 300 Jasan Copley 40 Murugan Jacksoni

เลอกคาคอลมน FirstName

ทคอลมน EmployeeNumber=300

SQL FirstName

Jasan

Page 16: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

ประเภทของค าสง SQL Data Definition Language (DDL)

- ใชส าหรบก าหนดโครงสรางของขอมล อนไดแก สราง ลบ หรอเปลยนแปลงโครงสรางของตาราง

- คอค าสง CREATE(สรางdatabase), ALTER(เปลยนแปลง), DROP(ลบdatabase)

StudentID Name Birthday Class

Page 17: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

Data Manipulation Language (DML) ใชงานมากทสด

ใชเรยกดขอมล (Retrieval operation)

SELECT

ใชอพเดตขอมล (Update operation)

INSERT ใชเกบขอมลลงในตาราง UPDATE ใชแกไขคาของขอมลทเกบอย DELETE ใชลบแถวในตาราง

ประเภทของค าสง SQL (Continued)

Page 18: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

Data Control Language (DCL) ใชในการก าหนดสทธในกรณทมผใชงานหลายคน

ค าสง GRANT ใชก าหนดสทธใหกบผใช

ค าสง REVOKE ใชยกเลกหรอเรยกสทธคน

ใชควบคม Transaction

ค าสง COMMIT ใชยนยนการท างานหลงจากเสรจ Transaction

ค าสง ROLLBACK ใชยกเลกการกระท าทเกดขนกบ Transaction

ประเภทของค าสง SQL (Continued)

Page 19: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

การก าหนดเงอนไข Criteria: WHERE

The WHERE clause stipulates the matching criteria for the record that are to be displayed

SELECT EmpName FROM

Emp

WHERE DeptID =32 ;

John

EmpID EmpName DeptID

27 Mike

31

28 John

32

29 Jack

39

30 Krone 44

Page 20: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

เครองหมายทางคณตศาสตร The WHERE clause match criteria may include 1. (เทากบ) Equals “=“

2. (ไมเทากบ) Not Equals “<>”

3. (มากกวา) Greater than “>”

4. (นอยกวา) Less than “<“

5. (มากกวาและเทากบ) Greater than or Equal to “>=“

6. (นอยกวาและเทากบ) Less than or Equal to “<=“

Page 21: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

Match Operators Multiple matching criteria may be specified using

• AND (และ) • สวนทมการซอนทบระหวางขอมล 2 ชด

(intersection) • OR (หรอ)

• สวนของขอมลทง2 ชดท union

Page 22: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

intersection

Page 23: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

A UNION B

Page 24: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

Operator Examples SELECT EmpName FROM

Emp

WHERE DeptID < 31 OR

DeptID > 35;

SELECT EmpName FROM Emp

WHERE DeptID <= 31 AND

DeptID <= 32;

EmpID EmpName DeptID

27 Mike

31

28 John

32

29 Jack

39

30 Krone 44

Page 25: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

ชนดของขอมล ชนดของขอมล(Data type) ไดแก

Data type ค ำอธบำย ตวอยำง

CHAR จะเอาไวเกบขอมลทเปน string(สายอกษร) โดยทขนาดของการเกบมความคงท เกบรวมชองวางดวย 1-255 อกษร

firstname CHAR(25);

VARCHAR ขอมลทเปน string(สายอกษร) โดยทขนาดของการเกบมความคงท คาวางดานทายจะตดออกไป 1-255 ตวอกษร

firstname CHAR(25);

INT(M) Unsigned INT เกบคาจ านวนเตม มคาตงแต -2147483648 ถง +2147483647 แตถาใส Unsigned จะมคาไดตงแต 0 ถง 4294967295

light_year INT; electron INT unsigned;

Page 26: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

ชนดของขอมล ชนดของขอมล(Data type) ไดแก ตอ

Data type ค ำอธบำย ตวอยำง

FLOAT ใชเกบเลขทศนยม เลข 4 และ 2 บอกวา ตวแปรนเกบคาได 4 ตว

และเปนเลขทศนยม 2 ต าแหนง Note: 42.35 เกบคาไดถกตอง 324.56 เกบคาเปน 324.5 ,2.2 เกบคาไดถกตอง , 34.524 ปดเปน 34.52

rainfall FLOAT(4,2);

DATE เกบขอมลในรป "YYYY-MM-DD" today DATE;

TEXT/BLOB เกบขอมลตงแต 255-65535 ตวอกษร ขอแตกตางระหวาง TEXT กบ BLOB คอ BLOB จะถอ cases sensitivity

comment BLOB;

SET เปนกลมของขอมลทยอมใหเลอกได 1 คาหรอหลายๆ คา

สามารถก าหนดไดถง 64 คา เราสามารถเลอกได เปน "", "BUS", "UBU" หรอ "BUS,UBU";

university SET("BUS", "UBU", "UB", "Ubon");

Page 27: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

ชนดของขอมล ชนดของขอมล(Data type) ไดแก ตอ

Data type ค ำอธบำย ตวอยำง

SET เปนกลมของขอมลทยอมใหเลอกได 1 คาหรอหลายๆ คา สามารถก าหนดไดถง 64 คา เราสามารถเลอกได เปน "", "BUS", "UBU" หรอ "BUS,UBU";

university SET("BUS", "UBU", "UB", "Ubon");

Page 28: SQL - WordPress.com · 2017-05-21 · ประวัติของ SQL เรียนรู้คาสั่ง SQL พื้นฐานสาหรับการสร้างโครงสร้างของ

แบบฝกหด ใหนกศกษาสรปค าสง SQL

ใหนกศกษาสรป กลมค าสงของภาษา SQL

ก าหนดเครองหมาย เครองหมายทางคณตศาสตร มอะไรบาง