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

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

Structured Query Language (SQL) (2) 357337 – Web Programming and Web Database 1.

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


งานนำเสนอเรื่อง: "Structured Query Language (SQL) (2) 357337 – Web Programming and Web Database 1."— ใบสำเนางานนำเสนอ:

1 Structured Query Language (SQL) (2) – Web Programming and Web Database 1

2 SQL : String Operations LIKE operator – Percent ( % ): ตรงกับทุก substring “Bang%” ตรงกับคำทุกคำที่ขึ้นต้นด้วย Bang (e.g., BangSue, Bangkok) %ko% คือ คำที่มี ko อยู่ข้างใน เช่น Bangkok, kingkong – Underscore ( _ ): ตรงกับทุกอักขระ “Bang _ _” ตรงกับคำทุกคำที่ขึ้นต้นด้วย Bang และตามด้วย อีก 2 ตัวอักษร (e.g., Bangna) _ _ _ คือ คำที่มี 3 ตัวอักษร เช่น kok, abc, xxx _ _ _ % คือ คำที่มีอย่างน้อย 3 ตัวอักษร เช่น kok, bangk 2

3 SQL : String Operations escape (\) ใช้ในกรณีที่ต้องการรวม special character (I.e., %, \) ไว้ใน string เอง เช่น like “ab\%cd%” ตรง กับทุก string ที่ขึ้นต้นด้วย ab%cd || concatenation – การต่อ strings เช่น “(662)” || “ ” == “(662) ” extract substrings หาความยาวของคำ แปลงให้เป็นอักษรตัวพิมพ์ใหญ่, เล็ก หรือ Title soundex (การหาคำเสียงคล้าย) 3

4 ตัวอย่าง Relational Schema – Student ( ID, Firstname, Lastname) จงเขียนคำสั่ง SQL เพื่อแสดง ชื่อของนักเรียนที่ขึ้นต้นด้วย Wat SELECT Firstname FROM Student WHERE Firstname LIKE “Wat%” ชื่อและนามสกุลของนักเรียนที่มีชื่อยาว 5 ตัวอักษร SELECT Firstname, Lastname FROM Student WHERE Firstname LIKE “_____” AND Lastname LIKE “_____”

5 LIMIT คำสั่ง LIMIT ใน mySQL ใช้ต่อท้ายคำสั่ง SELECT เพื่อจำกัด ผลลัพธ์ที่แสดงออก วิธีใช้แบบที่ 1 LIMIT

6 วิธีใช้แบบที่ 2 LIMIT, ระวัง!! แถวเริ่มต้นจะเริ่มนับที่แถวที่ 0 LIMIT

7 Order การเรียงลำดับผลลัพธ์ SELECT a 1, a 2, …, a n FROM r ORDER BY a j1, …, a jn [ASC, DESC] การเรียงลำดับโดย default เรียงจากน้อยไปมาก (ASC) เรียงจากมากไปน้อย (DESC) หากต้องการเรียงลำดับมากกว่า 1 attributes หรือที่แตกต่างไปจาก default ต้องระบุปะท้าย ASC หรือ DESC ของแต่ละ attribute นั้น เป็น operation ที่ใช้เวลาในการทำงานมาก จึงควรทำเฉพาะที่จำเป็น

8

9 ตัวอย่าง order by หาชื่อพนักงาน ชื่อแผนก และเงินเดือนของพนักงานคนนั้น ๆ เรียง ตามชื่อแผนก และ ตามเงินเดือนจากมากไปน้อย SELECT fname, lname, dName, salary FROM employee, department WHERE employee.dNo = department.dNumber ORDER BY dName ASC, salary DESC

10 Aggregation Functions Built-in aggregate functions – ค่าเฉลี่ย : avg – ค่าต่ำสุด: min – ค่าสูงสุด: max – ค่ารวม: sum – นับจำนวน tuples: count มักใช้ร่วมกับ group by

11 ตัวอย่าง Aggregation Functions นับจำนวนพนักงานในบริษัท SELECT COUNT(*) FROM employee หาเงินเดือนเฉลี่ยของพนักงาน SELECT AVG(salary) FROM employee หาเงินเดือนรวม, เงินเดือนต่ำสุด และสูงสุดของพนักงาน SELECT SUM(salary), MIN(salary), MAX(salary) FROM employee นับจำนวนพนักงานในแต่ละแผนก SELECT dNo, COUNT(*) FROM employee GROUP BY dNo; หาเงินเดือนเฉลี่ยของแผนกที่มี ค่าเฉลี่ยสูงกว่า SELECT dNo,AVG(salary) FROM employee GROUP BY dNo HAVING AVG(salary)> 50000

12 AccountIDBranchNameBalance Bangsue Bangsue Bangkhen Bangkhen Bangkhen20000 Bangsue Bangkhen ตัวอย่าง Aggregation Functions & Group BY

13 having clause: GROUP BY … HAVING... เพิ่มเงื่อนไขโดยการใช้ Aggregate function กับคำสั่ง GROUP BY SELECT a 1, a 2, …, a n FROM r GROUP BY a j HAVING avg(a j ) > 50000

14 จงหาชื่อสาขาธนาคารที่มีเงินฝากรวมมากกว่า บาท SELECT BranchName FROM Account GROUP BY BranchName HAVING SUM(Balance) > 60000; AccountIDBranchNameBalance Bangsue Bangsue Bangkhen Bangkhen Bangkhen20000 Bangsue Bangkhen ตัวอย่าง HAVING

15 สรุปรูปแบบการทำ SQL Query SELECT/FROM/WHERE SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ]

16 Rename Operation สามารถทำการ rename ได้ทั้ง attributes และ relations รูปแบบ: AS – Rename Attribute: SELECT fname AS “Name”, dName, salary FROM employee, department WHERE employee.dNo = department.dNumber – Rename ตาราง: SELECT fname, lname, e.dNo, dName, salary FROM employee AS e, department AS d WHERE e.dNo = d.dNumber

17 SQL : Set Operations Union: union และ union all Intersect: intersect และ intersect all Except : except และ except all (ในบาง DBMS ใช้ MINUS) ถ้าต้องการให้ไม่กำจัดค่าซ้ำ ใช้ all (e.g. union all)

18 SQL : Union borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคาร หรือมีเงินฝากกับธนาคาร

19 SQL : Union

20 ใน MySQL ไม่มีคำสั่ง intersect ให้ใช้โดยตรงแต่สามารถเขียนได้ ดังนี้ SELECT cust_id FROM borrower WHERE cust_id IN (SELECT cust_id FROM depositor) SQL : Set Intersect

21 ใน MySQL ไม่มีคำสั่ง set difference โดยตรงแต่สามารถเขียนได้ ดูตัวอย่าง SELECT cust_id FROM borrower WHERE cust_id NOT IN (SELECT cust_id FROM depositor); SQL : Set Difference

22 Cust_idName John DJ Cust_idCity Bangkok Nonthaburi CustNameCustCity วิธีที่ใช้ Cartesian product : วิธีที่ใช้ Natural-Join : SQL : Natural Join

23

24 เมื่อผู้ดูแลระบบต้องการจะ backup ฐานข้อมูล หรือ นำฐานข้อมูลนี้ไปใช้ กับเครื่องอื่น ใน MySQL สามารถใช้คำสั่ง mysqldump -u login –p database_name > FILE.sql – login คือ login ของผู้มีสิทธิ์ในการทำงานกับฐานข้อมูลนั้น เช่น root – password คือรหัสผ่าน – database_name คือ ชื่อของฐานข้อมูลที่ต้องการจะ backup – FILE.sql คือ ชื่อ file ทีจะเก็บฐานข้อมูลที่ต้องการจะ backup ตัวอย่าง mysqldump –u root –p ectstudent > ect.sql Export A MySQL Database

25 เมื่อผู้ดูแลระบบต้องการนำฐานข้อมูลที่ backup ไว้แล้วมาใช้ใน ฐานข้อมูลปัจจุบัน ใน MySQL สามารถใช้คำสั่ง mysql -u login –p database_name < FILE.sql – login คือ login ของผู้มีสิทธิ์ในการทำงานกับฐานข้อมูลนั้น เช่น root – password คือรหัสผ่าน – database_name คือ ชื่อของฐานข้อมูลที่ต้องการจะ import – FILE.sql คือ ชื่อ file ทีจะเก็บฐานข้อมูลที่ต้องการจะ import ตัวอย่าง mysql –u root –p ectstudent < ect.sql Import A MySQL Database


ดาวน์โหลด ppt Structured Query Language (SQL) (2) 357337 – Web Programming and Web Database 1.

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


Ads by Google