งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


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

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

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

3 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 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 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, `EmpEMail` VARCHAR(50) NULL, `EmpSalary` FLOAT NULL, `SupEmpNo` VARCHAR(8) NULL, PRIMARY KEY (`EmpNo`))

6 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 7 ตาราง OrderDetail CREATE TABLE IF NOT EXISTS `OrderDetail` ( `ProdNo` VARCHAR(8) NOT NULL, `OrdNo` VARCHAR(8) NOT NULL, PRIMARY KEY (`ProdNo`, `OrdNo`))

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

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

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

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

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

13 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 25392014- 07-01 P0002Money Clips 45492014- 07-01 P0003Condition ers 421992014- 07-01 P0004Creams2301592014- 07-01 P0005Creams1451392014- 07-01 P0006Lotions3021702014- 07-01 P0007Palettes3202302014- 07-01 P0008Eyebrow2031252014- 07-01 P0009Drawing281392014- 07-01 P0010Electric392102014- 07-02 Product ผลลัพธ์ ProdNoProdNam e P0005Creams P0008Eyebrow P0004Creams P0006Lotions P0007Palettes

14 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 25392014- 07-01 P0002Money Clips 45492014- 07-01 P0003Condition ers 421992014- 07-01 P0004Creams2301592014- 07-01 P0005Creams1451392014- 07-01 P0006Lotions3021702014- 07-01 P0007Palettes3202302014- 07-01 P0008Eyebrow2031252014- 07-01 P0009Drawing281392014- 07-01 P0010Electric392102014- 07-02 Product ผลลัพธ์ ProdNoProdNam e P0007Palettes

15 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 25392014- 07-01 P0002Money Clips 45492014- 07-01 P0003Condition ers 421992014- 07-01 P0004Creams2301592014- 07-01 P0005Creams1451392014- 07-01 P0006Lotions3021702014- 07-01 P0007Palettes3202302014- 07-01 P0008Eyebrow2031252014- 07-01 P0009Drawing281392014- 07-01 P0010Electric392102014- 07-02 Product ผลลัพธ์ ProdNoProdNam e P0010Electric P0005Creams P0008Eyebrow P0004Creams P0006Lotions P0007Palettes

16 16 ตัวอย่าง การใช้คำสั่ง SELECT เลือกข้อมูลจากหลายตาราง Emp No Emp FirstN ame Emp LastNa me Emp Sala ry Sup EmpN o E000 1 Wittaw as Chankaja ng 2850 0 E0002 Nubdao w Saensuk4250 0 - E000 3 Wande e Chalermr ad 1850 0 E0002 E000 4 WipadaThongson g 1850 0 E0002 E000 5 JandaSaeLi2250 0 E0002 E000 6 Kamon nop Rangsan1450 0 E0002 E000 7 Andam an Sakornra d 2150 0 E0002 Employee OrdN o Emp No Cust No OrdD ate ORD00 1 E0001C00012013- 08-07 ORD00 2 E0003C00052013- 11-13 ORD00 3 E0006C00042014- 07-11 ORD00 4 E0007C00052014- 05-13 ORD00 5 E0007C00062014- 07-08 Order

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

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

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

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

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

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

23 23 ตัวอย่าง การใช้คำสั่ง SELECT กับ Operator IN Emp No Emp FirstN ame Emp LastNa me Emp Sala ry Emp Provi nce E000 1 Wittaw as Chankaja ng 2850 0 Chonb uri E000 2 Nubdao w Saensuk4250 0 Chonb uri E000 3 Wande e Chalermr ad 1850 0 Chach oengsa o E000 4 WipadaThongson g 1850 0 Rayon g E000 5 JandaSaeLi2250 0 Chonb uri E000 6 Kamon nop Rangsan1450 0 Rayon g E000 7 Andam an Sakornra d 2150 0 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 24 ตัวอย่าง การใช้คำสั่ง SELECT กับ Operator IN ( นิเสธ ) Emp No Emp FirstN ame Emp LastNa me Emp Sala ry Emp Provi nce E000 1 Wittaw as Chankaja ng 2850 0 Chonb uri E000 2 Nubdao w Saensuk4250 0 Chonb uri E000 3 Wande e Chalermr ad 1850 0 Chach oengsa o E000 4 WipadaThongson g 1850 0 Rayon g E000 5 JandaSaeLi2250 0 Chonb uri E000 6 Kamon nop Rangsan1450 0 Rayon g E000 7 Andam an Sakornra d 2150 0 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 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 26 แสดงข้อมูลการสั่งซื้อโดยที่เลือก เฉพาะข้อมูลที่มี EmpNo ได้จาก การเลือก EmpNo จากตาราง Employee ที่อยู่ในจังหวัดชลบุรี SELECT OrdNo, EmpNo, CustNo FROM `Order` WHERE EmpNo IN (SELECT EmpNo FROM Employee WHERE EmpProvince='Chonburi') ; การใช้ Sub Query ตัวอย่างที่ 1

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

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

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

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

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

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

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

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


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

งานนำเสนอที่คล้ายกัน


Ads by Google