Structured Query Language (SQL) (2)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
BC421 File and Database Lab
Advertisements

UPDATING DATA By SQL (SA&D-9)
บทที่ 4 PHP with Database
ครั้งที่ 9 Function(ต่อ).
ภาษา SQL (Structured Query Language)
กลุ่มคำสั่ง SQL สามารถแบ่งได้ดังนี้
เนื้อหา 1. สืบค้นข้อมูลจากหนึ่งตาราง
Chapter IV : สร้างการติดต่อ
Data Type part.II.
Security and Integrity
Visual Basic 6 By Samaporn Yendee VB6.
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
PHP LANGUAGE.
บทที่ 5 การสอบถามข้อมูลด้วยฟังก์ชั่น สำหรับการคำนวณทางคณิตศาสตร์
การเลือกข้อมูลชุด ด้วยคำสั่ง IN
MySQL.
SQL - Structured Query Language
– Web Programming and Web Database
Structured Query Language (SQL)
– Web Programming and Web Database
– Web Programming and Web Database
บทที่ 3 แบบจำลองข้อมูล Data Models Algebra
บทที่ 3 แบบจำลองข้อมูล Data Models Calculus
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
Php with Database Professional Home Page :PHP
แก้ไขข้อมูลที่ไม่สามารถกรอกเป็นภาษาไทยได้
บทที่ 11 การเขียนโปรแกรมภาษาซี
Database Programming Exceed Camp #2 24 October 2005.
ฐานข้อมูลเชิงสัมพันธ์
สร้าง Query ในมุมมอง Design
คือระบบที่รวบรวมข้อมูลไว้ในที่เดียวกัน ซึ่ง ประกอบไปด้วยแฟ้มข้อมูล (File) ระเบียน (Record) และ เขตข้อมูล (Field) และถูกจัดการด้วยระบบ เดียวกัน โปรแกรมคอมพิวเตอร์จะเข้าไปดึงข้อมูล.
ค้นหาข้อมูลที่ต้องการจากฐานข้อมูล (SA&D-10)
SQL Structured Query Language.
การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ
CHARPTER 4 การสอบถามข้อมูลแบบมีเงื่อนไข
CHARPTER 3 การสอบถามข้อมูลพื้นฐาน
การสอบถามข้อมูลแบบซ้อนกัน
CHARPTER 9 การเชื่อมเทเบิล JOIN…. TABLE.
ตัวแปรกับชนิดของข้อมูล
โดย อ. นัฐพงศ์ ส่งเนียม การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอรทึ่ม ( ) Lec04 : [ การแปลงจาก FlowChart.
PHP & MySQL ระบบจัดการสินค้า
1. การศึกษาและการวิเคราะห์ความต้องการของผู้ใช้
โปรแกรม Microsoft Access
การใช้ PHP ติดต่อฐานข้อมูลMySQL
การใช้ PHP ติดต่อฐานข้อมูลผ่าน ODBC
การใช้งานระบบจัดการฐานข้อมูล Mysql ผ่าน phpmyadmin
CHAPTER 12 SQL.
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Introduction to PHP, MySQL – Special Problem (Database)
SQL Structured Query Language.
SQL (Structure Query Language) ตอนที่ 2 Online available at
SQL - Structure Query Language (Part 2) ภาษามาตรฐานสำหรับนิยาม ข้อมูลและการใช้ข้อมูล A ระบบจัดการฐานข้อมูล 3(2-2) อ. ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ.
Relational Algebra. Traditional set Operator Union Intersection Difference Cartesian product.
การใช้ PHP ติดต่อฐานข้อมูล
Introduction to SQL - 3 (MySQL) – Special Problem (Database)
Introduction to SQL (MySQL) – Special Problem (Database)
PHP: [9] ฐานข้อมูล MYSQL
Lecture 5 SQL (Structured Query Language)
1 Introduction to SQL กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Relational Model Choopan Rattanapoka CIT, KMUTNB
ประเภทของคำสั่งของภาษา SQL
Database Design & Development
ภาษา SQL (Structured Query Language)
SQL Structured Query Language.
SQL (Structured Query Language)
SQL (Structured Query Language)
Chapter 9 : ภาษาทางด้านฐานข้อมูลคำสั่ง SQL (SQL Command)
SQL – Web Programming and Web Database
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
ใบสำเนางานนำเสนอ:

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

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

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

ตัวอย่าง 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 “_____”

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

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

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

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

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

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

ตัวอย่าง Aggregation Functions & Group BY AccountID BranchName Balance 023-8-0254 Bangsue 10000 158-7-7894 30000 568-8-7483 Bangkhen 5000 120-3-0478 40000 347-1-5640 20000 Bangsue 40000 Bangkhen 65000

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

ตัวอย่าง HAVING จงหาชื่อสาขาธนาคารที่มีเงินฝากรวมมากกว่า 60000 บาท SELECT BranchName FROM Account GROUP BY BranchName HAVING SUM(Balance) > 60000; AccountID BranchName Balance 023-8-0254 Bangsue 10000 158-7-7894 30000 568-8-7483 Bangkhen 5000 120-3-0478 40000 347-1-5640 20000 Bangsue 40000 Bangkhen 65000

สรุปรูปแบบการทำ SQL Query SELECT/FROM/WHERE SELECT <attribute list> FROM <table list> [WHERE <conditions P>] [GROUP BY <grouping attributes>] [HAVING <group condition>] [ORDER BY <attribute list>]

Rename Operation สามารถทำการ rename ได้ทั้ง attributes และ relations รูปแบบ: <old name> AS <new name> 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

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

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

SQL : Union

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

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

SQL : Natural Join CustName CustCity วิธีที่ใช้ Cartesian product : Cust_id Name 001-586-777 John 367-895-124 DJ Cust_id City 001-586-777 Bangkok 367-895-124 Nonthaburi CustName CustCity วิธีที่ใช้ Cartesian product : วิธีที่ใช้ Natural-Join :

SQL : Natural Join

Export A MySQL Database เมื่อผู้ดูแลระบบต้องการจะ 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

Import A MySQL Database เมื่อผู้ดูแลระบบต้องการนำฐานข้อมูลที่ 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