Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Introduction to SQL

Introduction to SQL

Published by Siripan Saetim, 2022-09-26 04:21:38

Description: Introduction to SQL

Keywords: basic sql,sql

Search

Read the Text Version

https://online.pubhtml5.com/borh/ieqk/ Introduction to SQL SQL : Structure query language A S ST.PROF. S IR IPA N SA E T IM

การเรียกชื่อคอลมั น์ในตารางต่าง ๆ => ช่ือตาราง.ช่อื คอลมั น์ ตาราง customers - customers.cust_id ประกอบด้วยคอลมั น์ - customers.company_name ดงั น้ี => - customers.contact_name - customers.country - customers.telno 2

คาถาม ให้เรยี กชอ่ื คอลัมน์ในตารางต่อไปน้ี ตาราง products 1. 5. ประกอบดว้ ยคอลัมน์ 2. 6. 3. 7. อะไรบา้ ง?? 4. 8. 3

คาถาม ให้เรียกชอื่ คอลมั นใ์ นตารางต่อไปน้ี ตาราง orders 1. ประกอบดว้ ยคอลมั น์ 2. 3. อะไรบา้ ง?? 4. 4

การ Query ขอ้ มูลด้วยคาส่ัง SQL : จากตารางเดยี ว 5

การ Query ข้อมลู ดว้ ยคาสง่ั SQL : จากตารางเดยี ว - เรยี กข้อมลู ทุกคอลัมน์ มีโครงสรา้ งคาสั่งดงั น้ี select * from ชอื่ ตาราง ; 6

การ Query ข้อมลู ดว้ ยคาสั่ง SQL : จากตารางเดยี ว คาถาม ใหเ้ รยี กดูข้อมูลทง้ั หมดของตารางตอ่ ไปน้ี 1. customers 2. employees 3. products 7

การ Query ขอ้ มูลดว้ ยคาสัง่ SQL : จากตารางเดียว - เรียกขอ้ มูลบางคอลมั น์ มีโครงสร้างคาส่ังดงั นี้ select ชอื่ คอลัมน์ท่ี 1, ชือ่ คอลัมนท์ ี่ 2, ช่ือคอลมั น์ที่ n from ชอ่ื ตาราง ; 8

การ Query ข้อมลู ด้วยคาส่ัง SQL : จากตารางเดยี ว คาถาม 1. ให้เรียกดูข้อมลู รหัสสินค้า และชื่อสินค้าในตาราง product 2. ใหเ้ รียกดูช่ือ เงินเดือน วันทเี่ ข้าทางาน ของพนกั งาน 9

การ Query ข้อมลู ดว้ ยคาสง่ั SQL : จากตารางเดยี ว - เรยี กขอ้ มลู บางคอลัมน์ พรอ้ มระบุเงอ่ื นไข มีโครงสรา้ งคาส่งั ดงั น้ี select ชื่อคอลัมน์ที่ 1, ชอื่ คอลมั น์ท่ี 2, ช่อื คอลัมนท์ ี่ n from ชอื่ ตาราง where เง่ือนไข ; 10

การ Query ขอ้ มลู ดว้ ยคาส่งั SQL : จากตารางเดียว คาถาม 1. ให้เรียกดูข้อมูลรหสั สนิ ค้า และช่ือสนิ ค้า เฉพาะสินคา้ ทีร่ าคา ตา่ กวา่ 50 บ. 2. ให้เรยี กดชู ื่อ นามสกุล วนั ทีเ่ ข้าทางาน ของพนกั งานเพศหญงิ 11

การ Query ขอ้ มูลดว้ ยคาสัง่ SQL : จากตารางเดียว - เรยี กข้อมูลบางคอลัมน์ (กาหนดช่อื ของหัวตารางเอง) มีโครงสร้างคาส่งั ดังน้ี select ชือ่ คอลัมน์ที่ 1 as ช่อื ใหม่, ช่อื คอลมั น์ท่ี 2 as ช่อื ใหม่, ช่อื คอลมั น์ท่ี n as ช่ือใหม่ from ชือ่ ตาราง ; 12

การ Query ข้อมลู ด้วยคาสง่ั SQL : จากตารางเดยี ว คาถาม 1. ให้เรียกดขู อ้ มูลรหสั สินคา้ (ต้งั ชือ่ Product number) และชื่อสนิ คา้ (ตั้งช่ือ Product name) เฉพาะสินคา้ ทมี่ ีใน สตอ็ กมากกว่า 200 ชนิ้ 2. ให้เรยี กดชู ่ือ (ตงั้ ชอื่ employee name) นามสกุล (ตั้งชือ่ employee surname) ของพนักงานฝ่ายขาย 13

การ Query ข้อมูลดว้ ยคาสง่ั SQL : จากตารางเดยี ว - เรียงลาดับขอ้ มลู (มากไปน้อย desc , น้อยไปมาก asc) มีโครงสร้างคาสั่งดงั น้ี select ชื่อคอลมั นท์ ี่ 1, ชื่อคอลมั น์ที่ 2, .., ช่อื คอลัมนท์ ่ี n from ช่อื ตาราง order by ชอ่ื คอลมั น์ desc/asc ; 14

การ Query ขอ้ มลู ดว้ ยคาสงั่ SQL : จากตารางเดยี ว คาถาม 1. ให้เรยี กดขู ้อมูลรหัสสนิ คา้ และช่ือสนิ คา้ เรยี งลาดบั ตาม จานวนสนิ ค้าในสตอ็ ก จากนอ้ ยไปมาก 2. ใหเ้ รยี กดูช่อื นามสกุล ของพนักงานโดยเรยี งจากคนทอี่ ายมุ าก ไปนอ้ ย 15

การ Query ขอ้ มูลดว้ ยคาสั่ง SQL : จากตารางเดียว - การสรุปขอ้ มูล เช่น นบั จานวน หาผลรวม หาค่าเฉล่ยี ฯ - เป็นการใช้ aggregate function มโี ครงสร้างคาสั่งดงั น้ี select ชือ่ คอลมั น์ที่ 1, aggregate function(ชื่อคอลัมน์) from ช่อื ตาราง group by ชือ่ คอลัมน์ ; 16

การ Query ขอ้ มลู ดว้ ยคาส่งั SQL : จากตารางเดยี ว คาถาม ให้นบั จำนวนครั้ง (times) กำรซื้อสนิ ค้ำของลกู คำ้ แตล่ ะคน คาตอบ 17

การ Query ข้อมลู ด้วยคาสั่ง SQL : จากตารางเดยี ว - การสรปุ ข้อมลู (ใช้ aggregate function) แต่แสดงบางข้อมลู select ช่ือคอลัมนท์ ี่ 1, aggregate function(ชอื่ คอลัมน์) from ช่อื ตาราง group by ชื่อคอลมั น์ having เง่ือนไข ; 18

การ Query ข้อมลู ดว้ ยคาสั่ง SQL : จากตารางเดียว คาถาม ใหน้ บั จำนวนครัง้ (times) กำรซ้อื สินค้ำของลกู ค้ำ และแสดงเฉพำะทมี่ กี ำรซื้อ 3 ครั้งขน้ึ ไป คาตอบ 19

การ Query ขอ้ มลู ดว้ ยคาส่ัง SQL : จากตารางเดยี ว - การสรปุ ข้อมูล + เรียงลาดบั ข้อมูล มโี ครงสรา้ งคาสง่ั ดังนี้ select ชื่อคอลัมน์ท่ี 1, aggregate function(ช่ือคอลมั น์) from ชอ่ื ตาราง group by ช่ือคอลัมน์ having เงอ่ื นไข order by ชอ่ื คอลัมน์ desc/asc ; 20

การ Query ขอ้ มลู ดว้ ยคาสั่ง SQL : จากตารางเดียว คาถาม ให้นับจำนวนคร้ัง (times) กำรซอื้ สนิ ค้ำของลูกคำ้ และแสดงเฉพำะท่ีมีกำรซ้อื เกิน 2 ครัง้ เรยี งลำดบั จำกลกู ค้ำทมี่ รี หสั มำกไปนอ้ ย คาตอบ 21

คาถาม ใหท้ ดลอง Query ตามความต้องการตอ่ ไปน้ี - ใหแ้ สดงยอดเงนิ (ต้งั ชอ่ื total) ของใบส่ังซื้อแตล่ ะรหสั โดยเรยี งจำกยอดเงินมำกไปนอ้ ย คาตอบ 22

แนวคดิ การ Query ขอ้ มูลดว้ ย คาส่งั SQL : จากหลาย ตาราง 23

การ Query ขอ้ มลู ด้วยคาสงั่ SQL : จากหลายตาราง - การ Query ข้อมูลจากหลายตารางตอ้ งใช้การเช่อื มตาราง - การเชือ่ มตารางในภาษาองั กฤษ เรียกวา่ join table - join table เป็นคาสัง่ sql ที่กล่าวถงึ foreign key ของตารางหนง่ึ ทอี่ ้าง ไปยัง primary key ของอีกตารางหนงึ่ ทส่ี มั พันธก์ ัน - สังเกตุได้จากรปู แบบขอ้ ความ ชอ่ื ตารางท่ี1.ชือ่ คอลัมน์A = ช่ือตารางที่2.ชื่อคอลัมน์A ชือ่ ตารางท่ี2.ชื่อคอลมั น์B = ช่อื ตารางที่3.ช่อื คอลมั น์B …. 24

ข้อความท่ีแสดงให้เหน็ ว่ามกี ารเชอ่ื มตาราง (join table) หากต้องการ join table ในตาราง orders กับ customers orders.cust_id = customers.cust_id 25

ข้อความท่ีแสดงให้เหน็ วา่ มีการเชื่อมตาราง (join table) หากต้องการ join table ในตาราง orders กับ employee orders.emp_id = employees.emp_id 26

คาถาม หากตอ้ งการ join table ทุกตาราง นา่ จะมขี ้อความอะไรบ้าง?? คาตอบ 27

การ Query ข้อมลู ด้วยคาส่ัง SQL : จากหลายตาราง 28

การ Query ข้อมลู ดว้ ยคาส่งั SQL : จากหลายตาราง ประกอบด้วย - Inner join : ข้อมูลที่นามาแสดง ต้องมาจากตารางต่าง ๆ ที่ข้อมลู มี ความสมั พนั ธ์กนั เทา่ น้ัน - Outer join : ข้อมูลที่นามาแสดง ต้องมาจากตารางต่าง ๆ ที่ข้อมลู มี ความสัมพนั ธก์ ันจริง หรอื ไม่สมั พนั ธ์กนั ก็ได้ • Full outer join • Left outer join • Right outer join 29

Inner join 30

การ Query ข้อมูลด้วยคาส่งั SQL : จากหลายตาราง : Inner join - Inner join : ขอ้ มลู ทีน่ ามาแสดง ตอ้ งมาจากตารางตา่ ง ๆ ท่ขี อ้ มลู มีความสัมพันธก์ ันเทา่ น้นั 31

ตวั อย่าง inner join ในตาราง orders กบั customers orders inner join customers on orders.cust_id = customers.cust_id 32

ตวั อยา่ ง inner join ในตาราง orders กบั employee orders inner join employees on orders.emp_id = employees.emp_id 33

การทา inner join ในตาราง orders กบั customers (แสดงขอ้ มลู ) แตล่ ะใบสง่ั ซอ้ื คาตอบ select order_id, company_name เป็นของลูกค้าคนใด?? 34

ตัวอย่าง inner join ในตาราง orders กบั customers (แสดงข้อมูล) เขยี นได้ 2 แบบ select order_id, company_name from orders inner join customers on แบบท่ี 1 orders.cust_id = customers.cust_id select orders.order_id, customers.company_name from orders inner join customers on แบบท่ี 2 orders.cust_id = customers.cust_id 35

การทา inner join ในตาราง orders กบั employee (แสดงขอ้ มูล) พนักงานแตล่ ะคนออก คาตอบ ใบสง่ั ซื้ออะไรบ้าง?? 36

ตัวอยา่ ง inner join ในตาราง orders กบั employee (แสดงขอ้ มลู ) เขยี นได้ 2 แบบ select order_id, emp_name from orders inner join employees on แบบที่ 1 orders.emp_id = employees.emp_id แบบท่ี 2 37

ทดลองทา: ตอ้ งการ inner join ตาราง product กับ categories (แสดงข้อมลู ) คาตอบ แต่ละสนิ ค้าจัดอยู่ใน ประเภทอะไร ?? 38

คาถาม ให้ทดลอง Query ตามความตอ้ งการต่อไปน้ี - ใหแ้ สดงยอดเงินรำยได้ (ตั้งช่ือ income) จำกกำรขำยในแต่ละวนั โดยไม่หักคำ่ ใช้จ่ำย คาตอบ 39

Inner join จาก 3 ตารางขึ้นไป 40

ทดลอง join table จากตาราง orders, customer, partners (แสดงข้อมลู ) พนกั งานแตล่ ะคนออก SELECT CUSTOMERS.COMPANY_NAME, ใบสง่ั ซือ้ ใหล้ กู คา้ คน ORDERS.ORDER_ID, EMPLOYEES.EMP_NAME FROM EMPLOYEES INNER JOIN (CUSTOMERS INNER JOIN ไหนบา้ ง?? ORDERS ON CUSTOMERS.CUST_ID = ORDERS.CUST_ID) ON EMPLOYEES.EMP_ID = ORDERS.EMP_ID; 41

คาถาม ใหท้ ดลอง Query ตามความต้องการต่อไปนี้ - ให้แสดงขอ้ มูลชือ่ สินคำ้ ประเภทสนิ คำ้ และชือ่ ผู้ผลิต คาตอบ 42

คาถาม ให้ทดลอง Query ตามความต้องการต่อไปน้ี - ใหแ้ สดงขอ้ มูลช่อื พนกั งำน รหัสใบส่ังซื้อ ชื่อบริษัทลกู คำ้ ช่อื สนิ ค้ำ ช่ือประเภทสนิ ค้ำ คาตอบ 43

Outer join 44

การ Query ข้อมูลดว้ ยคาสงั่ SQL : จากหลายตาราง : Outer join - Outer join : ขอ้ มูลทีน่ ามาแสดง ต้องมาจากตารางต่าง ๆ ที่ ข้อมลู มีความสัมพันธก์ นั จรงิ หรอื ไมส่ ัมพนั ธ์กนั กไ็ ด้ 45

การ Query ข้อมูลดว้ ยคาสง่ั SQL : จากหลายตาราง : Outer join - Outer join : • Left outer join / Left join ข้อมูลจากตารางท่กี ล่าวอนั ดบั แรก ถูกนามาแสดงทง้ั หมด สว่ นขอ้ มลู ในตารางท่เี หลือต้องสัมพันธ์กับ ขอ้ มูลในตารางแรก • Right outer join / Right join ขอ้ มูลจากตารางท่ีกลา่ วอนั ดับ สดุ ทา้ ย ถูกนามาแสดงท้งั หมด ส่วนขอ้ มูลในตารางท่เี หลือต้อง สมั พนั ธ์กบั ขอ้ มูลในตารางสุดท้าย • Full outer join ขอ้ มลู จากทกุ ตาราง ถกู นามาแสดง 46

Left outer join 47

ตวั อยา่ ง left outer join ในตาราง customers กบั orders customers left outer join orders on ตำรำงแรก => customers orders.cust_id = customers.cust_id ตำรำงสุดทำ้ ย => orders ข้อมูลทกุ แถวในตำรำงแรก ต้องนำมำแสดงทง้ั หมด 48

ตัวอย่าง left outer join ในตาราง employee กบั orders employees left outer join orders on employees.emp_id = orders.emp_id ตำรำงแรก => employees ตำรำงสดุ ท้ำย => orders 49

ตัวอย่าง left outer join ในตาราง customers กับ orders (แสดงขอ้ มลู ) ลกู ค้าแตล่ ะคนมใี บสัง่ ซ้อื ม้ยั ?? select order_id, company_name หมายเลขอะไรบา้ ง?? from customers left outer join orders on orders.cust_id = customers.cust_id 50


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook