SQL - Structure Query Language (Part 2) ภาษามาตรฐานสำหรับนิยาม ข้อมูลและการใช้ข้อมูล 4122206A ระบบจัดการฐานข้อมูล 3(2-2) อ. ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 4 PHP with Database
Advertisements

สื่อการเรียนรู้ โดย นางสุมิตรา ดีมี
ทบทวน & ลุยโจทย์ (Midterm)
เนื้อหา 1. สืบค้นข้อมูลจากหนึ่งตาราง
บทที่ 5 Visual C#.NET กับ ฐานข้อมูล
Online Public Access Catalog
Chapter IV : สร้างการติดต่อ
Tips : หลักการในการออกแบบฐานข้อมูล
ระบบสารสนเทศประมวณผลรายการธุรกรรม
Microsoft Access.
Microsoft Access.
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
บทที่ 5 การสอบถามข้อมูลด้วยฟังก์ชั่น สำหรับการคำนวณทางคณิตศาสตร์
เอกสารประกอบการบรรยาย เรื่อง Basic SQL
ฐานข้อมูลและการออกแบบฐานข้อมูล
MySQL.
SQL - Structured Query Language
Structured Query Language (SQL) (2)
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
Php with Database Professional Home Page :PHP
แก้ไขข้อมูลที่ไม่สามารถกรอกเป็นภาษาไทยได้
Database Programming Exceed Camp #2 24 October 2005.
ฐานข้อมูลเชิงสัมพันธ์
สร้าง Query ในมุมมอง Design
คือระบบที่รวบรวมข้อมูลไว้ในที่เดียวกัน ซึ่ง ประกอบไปด้วยแฟ้มข้อมูล (File) ระเบียน (Record) และ เขตข้อมูล (Field) และถูกจัดการด้วยระบบ เดียวกัน โปรแกรมคอมพิวเตอร์จะเข้าไปดึงข้อมูล.
Data Structure and Algorithm
ตัวอย่างการวิเคราะห์งาน และ การเขียนผังงานและซูโดโค้ด
ค้นหาข้อมูลที่ต้องการจากฐานข้อมูล (SA&D-10)
Software Engineering Project Presentation
SQL Structured Query Language.
Flow Chart INT1103 Computer Programming
การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ
CHARPTER 4 การสอบถามข้อมูลแบบมีเงื่อนไข
CHARPTER 3 การสอบถามข้อมูลพื้นฐาน
การสอบถามข้อมูลแบบซ้อนกัน
CHARPTER 9 การเชื่อมเทเบิล JOIN…. TABLE.
การใช้ Word เพื่อการคำนวณ
ตัวแปรกับชนิดของข้อมูล
PHP & MySQL ระบบจัดการสินค้า
(Transaction Processing Systems)
โจทย์วิเคราะห์ปัญหาที่ 1
การใช้ PHP ติดต่อฐานข้อมูลMySQL
การใช้ PHP ติดต่อฐานข้อมูลผ่าน ODBC
ตัวอย่าง ระบบคลังหนังสือ (Book Stock System)
SML Report Designer การออกแบบรายงาน.
คำสั่งทำซ้ำ for คำสั่ง for เป็นคำสั่งทำซ้ำในลักษณะ Definite loop คือทราบจำนวนรอบที่แน่นอนในการทำงาน ซึ่งจะใช้ตัวแปร 1 ตัวในการนับจำนวนรอบว่าครบตามกำหนดหรือไม่
CHAPTER 12 SQL.
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Introduction to PHP, MySQL – Special Problem (Database)
ADO.NET (การบริหารและจัดการข้อมูล)
SQL Structured Query Language.
ระบบการเรียกเก็บหนี้
SQL (Structure Query Language) ตอนที่ 2 Online available at
Self Certification Systems
การใช้ PHP ติดต่อฐานข้อมูล
Introduction to SQL - 3 (MySQL) – Special Problem (Database)
Introduction to SQL (MySQL) – Special Problem (Database)
Lecture 5 SQL (Structured Query Language)
1 Introduction to SQL กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
ประเภทของคำสั่งของภาษา 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
การจัดการข้อมูลขั้นสูง
การสรุปผลข้อมูล และ Action Query
ใบสำเนางานนำเสนอ:

SQL - Structure Query Language (Part 2) ภาษามาตรฐานสำหรับนิยาม ข้อมูลและการใช้ข้อมูล A ระบบจัดการฐานข้อมูล 3(2-2) อ. ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ

การใช้ ORDER BY ORDER BY : ใช้สำหรับการจัด เรียงลำดับในการแสดงผล – รูปแบบการใช้คำสั่ง SELECT columnlist FROM tablelist [WHERE conditionlist] [ORDER BY Columnlist [ ASC | DESC ]]; – โดย ASC คือ การเรียงจากน้อยไปมาก DESC คือ การเรียงจากมากไปน้อย

ตัวอย่าง : ORDER BY SELECT * FROM Address ORDER BY ZipCode DESC SELECT * FROM Address ORDER BY ZipCode DESC ตัวอย่าง AmphurZipCode เมือง พะเยา จุน ปง Address ผลลัพธ์ AmphurZipCode จุน ปง เมือง พะเยา 56000

แสดงรหัส, ชื่อ, ที่อยู่ และเงินค้าชำระ ของลูกค้าโดยเรียงตามเงินค้าชำระ จากมากไปน้อย Select Id, Name, Addr, Curr_Bal From customer order by Curr_Bal desc ; Id Name Addr Curr_Bal วรชาติ สีคล้ำอยุธยา ศิรี สุขพานิชกรุงเทพฯ อนันต์ บุญญานุพงศ์กรุงเทพฯ สุภาวดี เพชรสุขระยอง โสภา สีคล้ำกรุงเทพฯ

การใช้ ORDER BY ตัวอย่าง – ต้องการดูรหัสสินค้า ชื่อสินค้า วันที่ สินค้าเข้ามา และราคาสินค้า โดยให้ เรียงลำดับตามราคาสินค้าจากน้อยไป มาก –SELECT P_CODE, P_DESCRIPT, P_INDATE, P_PRICE FROM PRODUCT ORDER BY P_PRICE; การเรียงจากน้อยไปมากไม่จำเป็นต้อง ใส่ ASC

การใช้ ORDER BY ตัวอย่าง – ต้องการดูรหัสสินค้า ชื่อสินค้า วันที่ สินค้าเข้ามา และราคาสินค้า โดยให้ เรียงลำดับตามราคาสินค้าจากมากไป น้อย –SELECT P_CODE, P_DESCRIPT, P_INDATE, P_PRICE FROM PRODUCT ORDER BY P_PRICE DESC;

การใช้ ORDER BY ตัวอย่าง – ต้องการดูชื่อสินค้า รหัสผู้ค้าส่ง วันที่ สินค้าเข้ามา และราคาสินค้า โดยให้ เรียงลำดับตามรหัสผู้ค้าส่งมากน้อยไปหา มาก ถ้าหากผู้ค้าส่งเป็นรายเดียวกันให้ แสดงผลเรียงลำดับตามราคาสินค้า (P_PRICE) จากมากไปหาน้อย –SELECT P_DESCRIPT, V_CODE, P_INDATE, P_PRICE FROM PRODUCT ORDER BY V_CODE ASC, P_PRICE DESC;

การใช้ ORDER BY ตัวอย่าง – ต้องการดูชื่อสินค้า รหัสผู้ค้าส่ง และราคา สินค้า โดยให้เรียงลำดับตามรหัสผู้ค้าส่ง มากน้อยไปหามาก ถ้าหากผู้ค้าส่งเป็นราย เดียวกันให้แสดงผลเรียงลำดับตามราคา สินค้า (P_PRICE) จากมากไปหาน้อย –SELECT P_DESCRIPT, V_CODE, P_PRICE FROM PRODUCT WHERE P_PRICE <= 500 ORDER BY V_CODE ASC, P_PRICE DESC;

การใช้ DISTINCT DISTINCT : ใช้สำหรับการ แสดงผลค่าที่ซ้ำกันเพียง 1 ค่า – รูปแบบการใช้คำสั่ง ให้ใส่ DISTINCT ไว้หน้า ATTRIBUTE ที่ต้องการให้แสดงผล ค่าซ้ำเพียง 1 ค่า

การใช้ DISTINCT ตัวอย่าง –SELECT DISTINCT V_CODE FROM PRODUCT; ผลลั พธ์

การใช้ DISTINCT หากไม่ใช้ DISTINCT ผลลัพธ์จะได้ค่าที่ซ้ำกัน –SELECT V_CODE FROM PRODUCT; ผลลั พธ์

ตัวอย่าง : SELECT DISTINCT SELECT DISTINCT Amphur FROM Personal SELECT DISTINCT Amphur FROM Personal ตัวอย่าง FirstNameLastNameAmphur มานะพากเพียรเมือง อดทนตั้งใจเรียนเมือง มานีหมั่นเพียรปง Personal ผลลัพธ์ Amphu r เมือง ปง

ฟังก์ชันสรุป (Aggregate function) คำสั่งที่ใช้ –COUNT ใช้สำหรับนับค่า –MIN หาค่าต่ำสุด –MAX หาค่าสูงสุด –SUM หาผลรวม –AVG หาค่าเฉลี่ย

Aggregate function COUNT : ใช้สำหรับการนับค่า ตัวอย่าง – ต้องการนับจำนวนผู้ค้าส่งทั้งหมด –SELECT COUNT(*) FROM VENDOR;

Aggregate function ตัวอย่าง – ต้องการนับจำนวนผู้ค่าส่งทั้งหมดที่ทำ การส่งสินค้าให้เรา –SELECT COUNT(*) FROM (SELECT DISTINCT V_CODE FROM PRODUCT WHERE V_CODE IS NOT NULL);

Aggregate function ตัวอย่าง – ต้องการนับจำนวนผู้ค่าส่งที่ส่งสินค้าให้กับ เรา และราคาสินค้าที่ส่งน้อยกว่า 100 –SELECT COUNT(*) FROM (SELECT DISTINCT V_CODE FROM PRODUCT WHERE V_CODE IS NOT NULL AND P_PRICE < 100);

Aggregate function MAX : หาค่าสูงสุด ตัวอย่าง – ต้องการหาราคาสินค้าที่แพงที่สุดในร้าน –SELECT MAX(P_PRICE) FROM PRODUCT;

Aggregate function ตัวอย่าง – ต้องการดูรายละเอียดของสินค้าที่แพง ที่สุดในร้าน –SELECT P_CODE, P_DESCRIPT, P_PRICE FROM PRODUCT WHERE P_PRICE = (SELECT MAX(P_PRICE) FROM PRODUCT);

Aggregate function MIN : หาค่าต่ำสุด ตัวอย่าง – ต้องการหาราคาสินค้าที่ถูกที่สุดในร้าน –SELECT MIN(P_PRICE) FROM PRODUCT;

Aggregate function ตัวอย่าง – ต้องการดูรายละเอียดของสินค้าที่ถูกที่สุด ในร้าน –SELECT P_CODE, P_DESCRIPT, P_PRICE FROM PRODUCT WHERE P_PRICE = (SELECT MIN(P_PRICE) FROM PRODUCT);

Aggregate function SUM : หาผลรวม ตัวอย่าง – ต้องการหามูลค่าสินค้าที่มีอยู่ในร้าน ทั้งหมด –SELECT SUM(P_ONHAND * P_PRICE) AS TOTAL_VALUE FROM PRODUCT;

ตัวอย่าง : SUM SELECT Name, SUM(Amount) FROM Income SELECT Name, SUM(Amount) FROM Income ตัวอย่าง NameAmount ANT5500 BAT4500 ANT7100 Income ผลลัพธ์ NameSUM(Amount ) ANT17100 BAT17100 ANT17100

Aggregate function AVG : หาค่าเฉลี่ย ตัวอย่าง – ต้องการหามูลค่าสินค้าเฉลี่ยที่อยู่ในร้าน –SELECT AVG(P_PRICE) FROM PRODUCT;

Aggregate function ตัวอย่าง – ต้องการดูสินค้าที่มีราคาสูงกว่าราคา สินค้าเฉลี่ย –SELECT P_DESCRIPT, P_ONHAND, P_PRICE FROM PRODUCT WHERE P_PRICE > (SELECT AVG(P_PRICE) FROM PRODUCT) ORDER BY P_PRICE DESC;

GROUP BY และ HAVING GROUP BY เป็นคำสั่งที่ใช้สำหรับการ แสดงผลในลักษณะจัดกลุ่ม อาจใช้ ร่วมกับ HAVING ในการกำหนดเงื่อนไข ของการแสดงผล รูปแบบการใช้คำสั่ง SELECT columnlist FROM tablelist [WHERE conditionlist] [GROUP BY columnlist] [HAVING conditionlist] [ORDER BY columnlist [ASC | DESC]];

ตัวอย่าง : ใช้ GROUP BY SELECT Name, SUM(Amount) FROM Income GROUP BY Name SELECT Name, SUM(Amount) FROM Income GROUP BY Name ตัวอย่าง NameAmount ANT5500 BAT4500 ANT7100 Income ผลลัพธ์ NameSUM(Amount) ANT12600 BAT4500

ตัวอย่าง : ใช้ GROUP BY และ HAVING SELECT Name, SUM(Amount) FROM Income GROUP BY Name HAVING NAME = “ANT” SELECT Name, SUM(Amount) FROM Income GROUP BY Name HAVING NAME = “ANT” ตัวอย่าง NameAmount ANT5500 BAT4500 ANT7100 Income ผลลัพธ์ NameSUM(Amount) ANT12600

GROUP BY และ HAVING ตัวอย่าง – ต้องการดูมูลค่ารวมของสินค้าที่แต่ละผู้ค้า ส่ง ส่งสินค้าให้กับเรา –SELECT V_CODE, SUM(P_PRICE * P_ONHAND) FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE;

GROUP BY และ HAVING ตัวอย่าง – ต้องการดูมูลค่าเฉลี่ยของสินค้าที่แต่ละ ผู้ค้าส่ง ส่งสินค้าให้กับเรา –SELECT V_CODE, AVG(P_PRICE) FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE;

GROUP BY และ HAVING ตัวอย่าง – ต้องการดูมูลค่าเฉลี่ยของสินค้าที่แต่ละ ผู้ค้าส่ง ส่งสินค้าให้กับเรา โดยดูเฉพาะ ราคาเฉลี่ยที่ต่ำกว่า 100 –SELECT V_CODE, AVG(P_PRICE) FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE HAVING AVG(P_PRICE) < 100;

GROUP BY และ HAVING ตัวอย่าง – ต้องการดูมูลค่าเฉลี่ยของสินค้าที่แต่ละ ผู้ค้าส่ง ส่งสินค้าให้กับเรา และให้นับ จำนวนสินค้าที่ผู้ค่าส่งส่งให้ด้วย โดยดู เฉพาะราคาเฉลี่ยที่ต่ำกว่า 100 –SELECT V_CODE, COUNT(P_CODE), AVG(P_PRICE) FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE HAVING AVG(P_PRICE) < 100;

GROUP BY และ HAVING ตัวอย่าง – ใช้ Alias ( ชื่อแทน ) เพื่อการแสดงผลที่ดี ยิ่งขึ้น –SELECT V_CODE, COUNT(P_CODE) AS AMOUNT_OF_PRODUCT, AVG(P_PRICE) AS PRICE_AVERAGE FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE HAVING AVG(P_PRICE) < 100;

GROUP BY และ HAVING ตัวอย่าง – ต้องการดูมูลค่ารวมของสินค้าที่แต่ละผู้ค้าส่ง ส่งสินค้าให้กับเรา และให้แสดงผลเรียงตาม ราคาจากมากไปหาน้อย –SELECT V_CODE, SUM(P_ONHAND * P_PRICE) AS TOTAL_PRICE FROM PRODUCT WHERE V_CODE <> NULL GROUP BY V_CODE ORDER BY SUM(P_ONHAND * P_PRICE) DESC;

การแสดงผลจากหลายตาราง โดยการ Join ( เชื่อม ) ตัวอย่าง – ต้องการดูรายละเอียดสินค้า และต้องการ ทราบชื่อผู้ค้าส่ง พนักงานที่เราติดต่อ และที่อยู่ของผู้ค้าส่ง –SELECT PRODUCT.P_DESCRIPT, PRODUCT.P_PRICE, VENDOR.V_NAME, VENDOR.V_CONTACT, VENDOR.V_AREACODE, VENDOR.V_PHONE FROM PRODUCT, VENDOR WHERE PRODUCT.V_CODE = VENDOR.V_CODE;

การแสดงผลจากหลายตาราง โดยการ Join ( เชื่อม ) ตัวอย่าง – ต้องการดูรายละเอียดสินค้าและผู้ค้าส่ง ที่ส่ง สินค้า หลังวันที่ 15-JAN-2004 –SELECT PRODUCT.P_DESCRIPT, PRODUCT.P_INDATE, PRODUCT.P_PRICE, VENDOR.V_NAME, VENDOR.V_AREACODE, VENDOR.V_PHONE FROM PRODUCT, VENDOR WHERE PRODUCT.V_CODE = VENDOR.V_CODE AND P_INDATE > #15-JAN- 2004#;

อ้างอิง Database system : Design, Implementation & Management 6 th edition, Rob & Coronel ระบบฐานข้อมูล รศ. ดร. วิเชียร เปรมชัยสวัสดิ์ ระบบฐานข้อมูล รศ. ศิริลักษณ์ โรจนกิจอำนวย