ภาษาเอสคิวแอล อ. เหมรัศมิ์ วชิรหัตถพงศ์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
Advertisements

วิธีการสมัครสมาชิก UNOVUS
วิธีการสมัครสมาชิก UNOVUS
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
การซ้อนทับกัน และคลื่นนิ่ง
ฐานข้อมูลสิทธิบัตรทั่วโลก (ไทย)
ทบทวน & ลุยโจทย์ (Midterm)
ครั้งที่ 8 Function.
แนวทางการรายงานผลการปฏิบัติราชการโดยผ่านระบบเครือข่ายอินเตอร์เน็ต
เปรียบเทียบจำนวนประชากรทั้งหมดจากฐาน DBPop Original กับจำนวนประชากรทั้งหมดที่จังหวัดถือเป็นเป้าหมาย จำนวน (คน) 98.08% % จังหวัด.
ระบบการจัดการสอบ เพื่อการบริหารจัดการทรัพยากรมนุษย์
Tips : หลักการในการออกแบบฐานข้อมูล
การสืบค้นข้อมูลจาก Web OPAC
การพัฒนาระบบฐานข้อมูล ด้วยโปรแกรม SQL
การเลือกข้อมูลชุด ด้วยคำสั่ง IN
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number)
จำนวนนับใดๆ ที่หารจำนวนนับที่กำหนดให้ได้ลงตัว เรียกว่า ตัวประกอบของจำนวนนับ จำนวนนับ สามารถเรียกอีกอย่างว่า จำนวนเต็มบวก หรือจำนวนธรรมชาติ ซึ่งเราสามารถนำจำนวนนับเหล่านี้มา.
กลุ่มสาระการเรียนรู้ คณิตศาสตร์ โรงเรียนบ้านหนองกุง อำเภอนาเชือก
SQL - Structured Query Language
บทที่ 3 แบบจำลองข้อมูล Data Models Algebra
บทที่ 3 แบบจำลองข้อมูล Data Models Calculus
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
รายงานในระบบบัญชีแยกประเภททั่วไป (GL – General Ledger)
ระบบการเบิก-จ่าย ลูกหนี้เงินยืม
ทำการตั้งเบิกเพิ่ม แบบฟอร์ม GFMIS.ขบ.02 เพื่อชดใช้ใบสำคัญ
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
PHP:Hypertext Preprocessor
Creating Database With Structure Query Language (SA&D-8)
ค้นหาข้อมูลที่ต้องการจากฐานข้อมูล (SA&D-10)
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ณัฏฐวุฒิ เอี่ยมอินทร์
SQL Structured Query Language.
บทที่ 3 การวิเคราะห์ Analysis.
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
การแจกแจงปกติ.
การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ
CHARPTER 4 การสอบถามข้อมูลแบบมีเงื่อนไข
CHARPTER 3 การสอบถามข้อมูลพื้นฐาน
การสอบถามข้อมูลแบบซ้อนกัน
CHARPTER 9 การเชื่อมเทเบิล JOIN…. TABLE.
โปรแกรม Microsoft Access
การใช้ PHP ติดต่อฐานข้อมูลMySQL
ค21201 คณิตศาสตร์เพิ่มเติม 1
E-Sarabun.
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
CHAPTER 12 SQL.
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
จุมพฏ พงศ์ศักดิ์ศรี จุมพฏ พงศ์ศักดิ์ศรี
การลงข้อมูลแผนการสอน
SQL Structured Query Language.
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
SQL (Structure Query Language) ตอนที่ 2 Online available at
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
SQL - Structure Query Language (Part 2) ภาษามาตรฐานสำหรับนิยาม ข้อมูลและการใช้ข้อมูล A ระบบจัดการฐานข้อมูล 3(2-2) อ. ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ.
จากรูป ถามถึง Foreign key ของใบจัดสินค้า หากใครเลือกตอบ ในวงกลมสีเขียว ได้คะแนน นอกนั้น หักคะแนน  ส่วนเลขที่ใบ นั้น ถือเป็น.
วิธีเรียงสับเปลี่ยนและวิธีจัดหมู่
การแบ่งแยกและเอาชนะ Divide & Conquer
PHP: [9] ฐานข้อมูล MYSQL
Lecture 5 SQL (Structured Query Language)
โครงการจัดทำฐานข้อมูลผ่านเว็บไซต์
1 Introduction to SQL กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
ประเภทของคำสั่งของภาษา SQL
SQL (Structured Query Language)
Chapter 9 : ภาษาทางด้านฐานข้อมูลคำสั่ง SQL (SQL Command)
ใบสำเนางานนำเสนอ:

ภาษาเอสคิวแอล อ. เหมรัศมิ์ วชิรหัตถพงศ์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา

2 ตัวอย่างฐานข้อมูลระบบงานขาย

3 ตาราง Customer CREATE TABLE IF NOT EXISTS `Customer` ( `CustNo` VARCHAR(8) NOT NULL, `CustFirstName` VARCHAR(30) NULL, `CustLastName` VARCHAR(50) NULL, `CustAddress` VARCHAR(50) NULL, `CustSubDistrict` VARCHAR(30) NULL, `CustDistrict` VARCHAR(30) NULL, `CustProvince` VARCHAR(30) NULL, `CustZipCode` VARCHAR(5) NULL, PRIMARY KEY (`CustNo`))

4 ตาราง Product CREATE TABLE IF NOT EXISTS Product` ( `ProdNo` VARCHAR(8) NOT NULL, `ProdName` VARCHAR(50) NULL, `ProdQuantity` INT NULL, `ProdPrice` FLOAT NULL, `ProdShipDate` DATE NULL, PRIMARY KEY (`ProdNo`))

5 ตาราง Employee CREATE TABLE IF NOT EXISTS `Employee` ( `EmpNo` VARCHAR(8) NOT NULL, `EmpFirstName` VARCHAR(20) NULL, `EmpLastName` VARCHAR(30) NULL, `EmpAddress` VARCHAR(50) NULL, `EmpSubDistrict` VARCHAR(30) NULL, `EmpDistrict` VARCHAR(30) NULL, `EmpProvince` VARCHAR(30) NULL, `EmpZipCode` VARCHAR(5) NULL, `EmpPhoneNo` VARCHAR(15) NULL, `Emp ` VARCHAR(50) NULL, `EmpSalary` FLOAT NULL, `SupEmpNo` VARCHAR(8) NULL, PRIMARY KEY (`EmpNo`))

6 ตาราง Order CREATE TABLE IF NOT EXISTS `Order` ( `OrdNo` VARCHAR(8) NOT NULL, `EmpNo` VARCHAR(8) NOT NULL, `CustNo` VARCHAR(8) NOT NULL, `OrdDate` DATE NULL, `OrdShipAddress` VARCHAR(50) NULL, `OrdShipSubDistrict` VARCHAR(50) NULL, `OrdShipDistrict` VARCHAR(30) NULL, `OrdProvince` VARCHAR(30) NULL, `OrdZipCode` VARCHAR(5) NULL, PRIMARY KEY (`OrdNo`))

7 ตาราง OrderDetail CREATE TABLE IF NOT EXISTS `OrderDetail` ( `ProdNo` VARCHAR(8) NOT NULL, `OrdNo` VARCHAR(8) NOT NULL, PRIMARY KEY (`ProdNo`, `OrdNo`))

8 ข้อมูลในตาราง Customer

9 ข้อมูลในตาราง Employee

10 ข้อมูลในตาราง Order

11 ข้อมูลในตาราง Product

12 เทคนิคการใช้งานภาษา SQL วิเคราะห์ output ดูว่าจะต้องแสดงผลลัพธ์อย่างไรตามความต้องการ ของโจทย์ วิเคราะห์ input ต้องใช้ข้อมูล (column) จากตาราง (Table) อะไร วิเคราะห์ process จำ syntax หรือ รูปแบบของคำสั่งให้ถูกต้อง วิเคราะห์ว่า ต้องเขียนเงื่อนไขอย่างไร จึงจะได้ผล ตามต้องการ

13 ตัวอย่าง การใช้คำสั่ง SELECT แบบมีเงื่อนไข SELECT ProdNo,ProdName FROM Product WHERE ProdQuantity > 100 ORDER BY ProdQuantity ASC; ProdNoProdNa me Prod Quant ity ProdPri ce Prod ShipDa te P0001Card Cases P0002Money Clips P0003Condition ers P0004Creams P0005Creams P0006Lotions P0007Palettes P0008Eyebrow P0009Drawing P0010Electric Product ผลลัพธ์ ProdNoProdNam e P0005Creams P0008Eyebrow P0004Creams P0006Lotions P0007Palettes

14 ตัวอย่าง การใช้คำสั่ง SELECT แบบมีเงื่อนไขหลายเงื่อนไข SELECT ProdNo,ProdName FROM Product WHERE ProdQuantity > 100 AND ProdPrice > 200 ORDER BY ProdQuantity ASC; ProdNoProdNa me Prod Quant ity ProdPri ce Prod ShipDa te P0001Card Cases P0002Money Clips P0003Condition ers P0004Creams P0005Creams P0006Lotions P0007Palettes P0008Eyebrow P0009Drawing P0010Electric Product ผลลัพธ์ ProdNoProdNam e P0007Palettes

15 ตัวอย่าง การใช้คำสั่ง SELECT แบบมีเงื่อนไขหลายเงื่อนไข SELECT ProdNo,ProdName FROM Product WHERE ProdQuantity > 100 OR ProdPrice > 200 ORDER BY ProdQuantity ASC; ProdNoProdNa me Prod Quant ity ProdPri ce Prod ShipDa te P0001Card Cases P0002Money Clips P0003Condition ers P0004Creams P0005Creams P0006Lotions P0007Palettes P0008Eyebrow P0009Drawing P0010Electric Product ผลลัพธ์ ProdNoProdNam e P0010Electric P0005Creams P0008Eyebrow P0004Creams P0006Lotions P0007Palettes

16 ตัวอย่าง การใช้คำสั่ง SELECT เลือกข้อมูลจากหลายตาราง Emp No Emp FirstN ame Emp LastNa me Emp Sala ry Sup EmpN o E000 1 Wittaw as Chankaja ng E0002 Nubdao w Saensuk E000 3 Wande e Chalermr ad E0002 E000 4 WipadaThongson g E0002 E000 5 JandaSaeLi E0002 E000 6 Kamon nop Rangsan E0002 E000 7 Andam an Sakornra d E0002 Employee OrdN o Emp No Cust No OrdD ate ORD00 1 E0001C ORD00 2 E0003C ORD00 3 E0006C ORD00 4 E0007C ORD00 5 E0007C Order

17 คำสั่งที่มีการใช้งานหลาย ตาราง (join) SELECT FROM WHERE ;  ต้องมีการเชื่อม PK และ FK ของทั้งสองตารางเข้า ด้วยกัน (Join)  หากมี field ใดที่ชื่อซ้ำกันทั้งสองตาราง เมื่ออ้างถึง ต้อง ระบุชื่อตาราง ตามด้วยชื่อฟิลด์ เช่น Product.ProdNo หรือ Order.OrdNo

18 แสดงข้อมูลรหัสพนักงาน ชื่อพนักงาน นามสกุล เงินเดือนพนักงาน เนื่องจาก ข้อมูลพนักงาน อยู่คนละตาราง กับ ข้อมูลการสั่งซื้อ จึงต้องมีการ join ตารางที่มีข้อมูลเข้า ด้วยกัน SELECT Employee.EmpNo, EmpFirstName,EmpLastName,EmpSal ary FROM Employee,`Order` WHERE Employee.EmpNo=`Order`.EmpNo คำสั่งที่มีการใช้งานหลาย ตาราง (join)

19 ผลลัพธ์การ join ตาราง Employee และ Order

20 แสดงข้อมูลการสั่งซื้อ โดยแสดงรหัส พนักงาน รหัสลูกค้า วันที่สั่งซื้อ โดยการ เลือกข้อมูล Joing กันของตาราง Order และ OrderDetail และเลือกข้อมูลที่มี OrdNo ที่มีอยู่ใน Order มาแสดง SELECT `Order`.EmpNo,CustNo,O rdDate FROM `Order`,OrderDetail WHERE `Order`.OrdNo=OrderDe tail.OrdNo คำสั่งที่มีการใช้งานหลาย ตาราง (join)

21 ผลลัพธ์การ join ตาราง Order และ OrderDetail

22 แสดงข้อมูลรหัสพนักงาน ชื่อพนักงาน นามสกุล พนักงานที่มี ที่อยู่อยู่ที่จังหวัด Chonburi และ Rayong SELECT EmpNo,EmpFirstName,EmpLastName FROM Employee WHERE Employee.EmpProvince IN ('Chonburi','Rayong'); การใช้ Operator IN

23 ตัวอย่าง การใช้คำสั่ง SELECT กับ Operator IN Emp No Emp FirstN ame Emp LastNa me Emp Sala ry Emp Provi nce E000 1 Wittaw as Chankaja ng Chonb uri E000 2 Nubdao w Saensuk Chonb uri E000 3 Wande e Chalermr ad Chach oengsa o E000 4 WipadaThongson g Rayon g E000 5 JandaSaeLi Chonb uri E000 6 Kamon nop Rangsan Rayon g E000 7 Andam an Sakornra d Chach oengsa o Employee EmpNoEmp FirstNa me Emp LastNa me E0001Wittawa s Chankaj ang E0002Nubdao w Saensuk E0004WipadaThongso ng E0005JandaSaeLi E0006Kamonn op Rangsan Order SELECT EmpNo,EmpFirstName,Emp LastName FROM Employee WHERE Employee.EmpProvice IN ('Chonburi','Rayong'); ผลลัพธ์

24 ตัวอย่าง การใช้คำสั่ง SELECT กับ Operator IN ( นิเสธ ) Emp No Emp FirstN ame Emp LastNa me Emp Sala ry Emp Provi nce E000 1 Wittaw as Chankaja ng Chonb uri E000 2 Nubdao w Saensuk Chonb uri E000 3 Wande e Chalermr ad Chach oengsa o E000 4 WipadaThongson g Rayon g E000 5 JandaSaeLi Chonb uri E000 6 Kamon nop Rangsan Rayon g E000 7 Andam an Sakornra d Chach oengsa o Employee EmpNoEmp FirstNa me Emp LastNa me E0001Wittawa s Chankaj ang E0007Andama n Sakornr ad Order SELECT EmpNo,EmpFirstName,Emp LastName FROM Employee WHERE Employee.EmpProvice NOT NOT IN ('Chonburi','Rayong'); ผลลัพธ์

25 การทำงานแบบ sub query SELECT FROM WHERE field_i = (SELECT field FROM table1) ; การ Select ในการทำ Sub-query สามารถ เลือกได้ Filed เดียวเท่านั้น สามารถเลือกใช้ Operator เชิงเซต (in) เมื่อ Sub-query ให้ผลมากกว่า 1 ค่า จะสามารถใช้ Operator เชิงเปรียบเทียบ ( =, >, < ) ได้ เมื่อ การทำ sub-query ให้ผลค่าเดียว เท่านั้น

26 แสดงข้อมูลการสั่งซื้อโดยที่เลือก เฉพาะข้อมูลที่มี EmpNo ได้จาก การเลือก EmpNo จากตาราง Employee ที่อยู่ในจังหวัดชลบุรี SELECT OrdNo, EmpNo, CustNo FROM `Order` WHERE EmpNo IN (SELECT EmpNo FROM Employee WHERE EmpProvince='Chonburi') ; การใช้ Sub Query ตัวอย่างที่ 1

27 ต้องการแสดงข้อมูล พนักงาน โดยเลือก รหัสพนักงาน ชื่อ พนักงาน นามสกุล ของพนักงานที่ขาย สินค้า SELECT EmpNo, EmpFirstName, EmpLastName FROM Employee WHERE EmpNo IN (SELECT DISTINCT EmpNo FROM Order); การใช้ Sub Query ตัวอย่างที่ 2

28 แสดงข้อมูล พนักงานโดย ต้องการคำนวณ รายได้ทั้งปีของ พนักงาน SELECT EmpNo, EmpFirstName, EmpLastName, EmpSalary * 12 FROM Employee การคำนวณโดยใช้คำสั่ง SQL

29 Operators ในการคำนวณ Operat or ความหมาย + บวก - ลบ * คูณ / หาร ^ ยกกำลัง

30 แสดงข้อมูล พนักงานโดย ต้องการคำนวณ รายได้ทั้งปีของ พนักงาน SELECT EmpNo, EmpFirstName, EmpLastName, EmpSalary * 12 NetSalary FROM Employee รูปแบบคำสั่งที่มีการเปลี่ยนชื่อ การแสดงผล (alias)

31 แสดงข้อมูล พนักงานโดย ต้องการคำนวณ รายได้ทั้งปีของ พนักงาน SELECT EmpNo, EmpFirstName, EmpLastName, EmpSalary * 12 AS NetSalary FROM Employee รูปแบบคำสั่งที่มีการเปลี่ยนชื่อ การแสดงผล (alias)

32 แสดงข้อมูล พนักงานโดย ต้องการคำนวณ รายได้ทั้งปีของ พนักงาน SELECT e.EmpNo, e.EmpFirstName, e.EmpLastName, o.OrdNo FROM Employee e, `Order` O รูปแบบคำสั่งที่มีการตั้งชื่อแฝง (alias) ให้ชื่อตาราง

33 แสดงข้อมูล พนักงานโดย ต้องการคำนวณ รายได้ทั้งปีของ พนักงาน SELECT e.EmpNo, e.EmpFirstName, e.EmpLastName, o.OrdNo FROM Employee AS e, `Order` AS O รูปแบบคำสั่งที่มีการตั้งชื่อแฝง (alias) ให้ชื่อตาราง

34 ตัวอย่างการใช้คำสั่ง SQL  แสดงข้อมูลพนักงาน รหัสพนักงาน ชื่อ นามสกุล ของพนักงานที่ขายสินค้าทั้งหมด  แสดงข้อมูลลูกค้า รหัสลูกค้า ชื่อ นามสกุล ของ ลูกค้าที่มาซื้อของทั้งหมด  แสดงข้อมูลสินค้า รหัสสินค้า ชื่อสินค้า จำนวน สำหรับสินค้าที่ยังไม่ได้ขาย  แสดงข้อมูลการสั่งซื้อสินค้า โดยแสดงรหัสใบสั่ง ซื้อ รหัสสินค้า ชื่อสินค้า แยกตามใบสั่งซื้อโดย แสดงรายละเอียดการสั่งซื้อสินค้าด้วย  แสดงข้อมูลพนักงาน โดยแสดงรหัสพนักงาน ชื่อพนักงาน ที่ไม่ได้ขายสินค้าให้ใครเลย