SQL หรือ Structured Query Language

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การพัฒนาระบบทะเบียน ของ โรงเรียนเมโทรเทคโนโลยี จังหวัดเชียงใหม่
Advertisements

ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
เทคนิคการเขียนข่าว การเขียนข่าวเพื่อการประชาสัมพันธ์เบื้องต้น มีโครงสร้างการเขียนข่าว ประกอบด้วย 1.พาดหัวข่าว (Headline) 2.ความนำ (Lead) 3.ส่วนเชื่อม (Neck/Bridge)
การใช้งานโปรแกรม SPSS
Entity-Relationship Model E-R Model
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
Computer in Business เรื่อง การใช้งาน Access เบื้องต้น.
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
Database & DBMS Architecture วรวิทย์ พูลสวัสดิ์. 2 2 ฐานข้อมูล (Database) - Data and its relation - Databases are designed to offer an organized mechanism.
MS-Access. SQL สามารถเรียกใช้ฐานข้อมูล ได้ทุกค่าย Access MySQL Foxpro DBF DB2Oracle MS SQL.
Intro Excel 2010 ข้อมูลจาก... ellession1.htm.
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
เทคนิคการใช้ Microsoft Excel. 1. การตีตารางในรูปแบบต่าง ๆ 2. การแทรกภาพในตาราง 3. การตกแต่งข้อมูลด้วย Format Cells 4. การคำนวณ บวก ลบ คูณ หาร 5. การย่อ.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
1. รู้ถึงความต้องการของตัวเอง ก่อนก่อนเริ่มต้นออกแบบ เมื่อคุณเริ่มคิดจะออกแบบโบรชัวร์ออกมาอย่างไร ให้เริ่มต้น สอบถามลูกค้าของคุณก่อนว่าทำไม เค้าต้องการโบร์ชัวร์
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
Microsoft Access 2007 ทำความรู้จักและใช้งาน. รู้จักกับฐานข้อมูล (Database) ฐานข้อมูล (Data base) คือ ? Bit Byte Field/Word Record Table/File.
การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ ครูชาญณรงค์ ปานเลิศ โรงเรียนพระบางวิทยา ครูชาญณรงค์
คำสั่งควบคุมการทำงาน
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
หน่วยที่ 1 ข้อมูลทางการตลาด. สาระการเรียนรู้ 1. ความหมายของข้อมูลทางการตลาด 2. ความสำคัญของข้อมูลทางการตลาด 3. ประโยชน์ของข้อมูลทางการตลาด 4. ข้อจำกัดในการหาข้อมูลทาง.
เกม คณิตคิดเร็ว.
Microsoft Access 2007 การสร้างฟอร์ม
SQL Structured Query Language.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การทำ Normalization 14/11/61.
โดย อ.อภิพงศ์ ปิงยศ รายวิชา สธ312 ระบบการจัดการฐานข้อมูลทางธุรกิจ
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
บทสรุป ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
Introduction SQLite Prawit Pimpisan Computer Science RERU.
บทที่ 11 การเขียนแผนผังข้อมูลแบบสัมพัทธ์.
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
การจัดการระบบฐานข้อมูล ภาษาที่ใช้ในระบบจัดการฐานข้อมูล
บทที่ 5 เครื่องมือสืบค้นข้อมูล (Search Engine)
BC320 Introduction to Computer Programming
แนวทางการออกแบบโปสเตอร์
โครงสร้างภาษา C Arduino
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
คำสั่ง Create , Insert, Delete, Update
บทที่ 3 แฟ้มข้อมูลและฐานข้อมูล
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
ระบบการจัดการคลินิกครบวงจร
กำหนดกรอบระยะเวลาการขึ้นทะเบียนปี2556/57 1. ข้าว
CIT2205 โปรแกรมประยุกต์ด้านการจัดการฐานข้อมูล
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
บริษัท พัฒนาวิชาการ (2535) จำกัด
SMS News Distribute Service
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
ทำความรู้จักและใช้งาน
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
หน่วยการเรียนรู้ การเขียนโปรแกรมภาษาขั้นพื้นฐาน เรื่อง โครงสร้างพื้นฐาน HTML 5 รหัส รายวิชา ง23102 การงานอาชีพและเทคโนโลยี 6 กลุ่มสาระ การงานอาชีพและเทคโนโลยี
บรรยายครั้งที่ 8 - กราฟฟิกวิศวกรรม 1
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 7 การประมวลผลอาร์เรย์
บทสรุป ความหมายของ Query ความหมายของ Query
สถาปัตยกรรมของฐานข้อมูล
Introduction to Database System
ฐานข้อมูลเชิงสัมพันธ์
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
Array: One Dimension Programming I 9.
บทที่ 4 การจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
ทายสิอะไรเอ่ย ? กลม เขียวเปรี้ยว เฉลย ทายสิอะไรเอ่ย ? ขาว มันจืด เฉลย.
Database Design & Development
กิจกรรมที่ 12 รวบรวมข้อมูลอย่างไรกันดี
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

SQL หรือ Structured Query Language

SQL หรือ Structured Query Language SQL หรือ Structured Query Language (สครัคเจอร์ คิวรี่ แลง แกวส) คือภาษาที่ใช้ในการเขียนโปรแกรม เพื่อจัดการกับฐานข้อมูล โดยเฉพาะ เป็นภาษามาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์และเป็น ระบบเปิด (open system) สามารถใช้คำสั่ง SQL กับฐานข้อมูลชนิดใดก็ได้ คำสั่งงานเดียวกันเมื่อสั่งงานผ่านระบบฐานข้อมูลที่แตกต่างกันจะได้ ผลลัพธ์เหมือนกัน ทำให้เลือกใช้ฐานข้อมูลชนิดใดก็ได้ โดยไม่ ติดยึดกับฐานข้อมูลใดฐานข้อมูลหนึ่ง SQL มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพ การทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง เหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ (RDBMS)

ภาษา SQL ถูกแบ่งออกมาเป็นส่วนประกอบต่างๆ เราเรียกส่วนเหล่านี้ ตามรูปแบบเช่น Clauses คือองค์ประกอบหนึ่งของ statement และ query  (่ส่วนนี้ เป็น Optional) Expressions คือการสร้างผลลัพธ์ออกมาในรูป table ที่ประกอบด้วย column และ row จากข้อมูล Predicates คือรูปแบบเงื่อนไขที่มีผลลัพธ์เป็น true/false/unknown หรือก็คือ Boolean นั่นเอง Queries คือการดึงข้อมูลตามเงื่อนไข (where clause) เป็นส่วนสำคัญ ใน SQL Statements คือสามารถมีผลต่อโครงสร้างข้อมูล, จัดการข้อมูล transactions, program flow, session หรือแม้กระทั่ง วิเคราะห์ปัญหา โดยจำเป็นต้องจบด้วย semicolon (;) ซึ่งเป็นสิ่งจำเป็นที่ต้องมีทุกครั้ง สำหรับ SQL Insignificant whitespace หรือช่องว่าง สำหรับใน SQL statement และ query จะไม่สนใจ ทำให้ SQL สามารถเขียนใน รูปแบบที่หลากหลายสวยงาม

ประเภทของข้อมูล (Data Types) ใน SQL SQL data types เป็นการกำหนดชนิดของข้อมูลในตารางว่าเป็นข้อมูล แบบใด เช่น ตัวเลข ตัวอักษร วันเวลา แบบไม่มีโครงสร้าง ซึ่งสิ่งเหล่านี้จำเป็นตั้งแต่เราเริ่มสร้าง database table เพื่อให้ ข้อมูลที่เราจะใส่ลงสู่ table มีความถูกต้องตามที่วางเอาไว้ อีกทั้ง ยังช่วยให้ฐานข้อมูลหรือ database ของเราทำงานได้ง่ายขึ้นใน การจัดเก็บ และการทำดรรชนี (index) ได้เหมาะสมกับข้อมูลที่เรา จะใช้งาน โดย data types บน database มีด้วยกันหลายชนิด ขึ้นอยู่กับชนิดของฐานข้อมูล หรือ database ที่เราใช้งาน

RDBMS (Relational Database Management System)    คือ ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่ทำให้ผู้ใช้สามารถจัดการ ข้อมูลได้ง่ายขึ้น RDBMS สามารถใช้คำสั่ง SQL พื้นฐานได้แต่จะมี บางคำสั่งที่เฉพาะกับ RDBMS รุ่นนั้นๆ ในปัจจุบันมีหลายค่ายได้แก่ MS Access SQL Server MySQL   SQLite PostGresSQL

SQLite ในบทเรียนนี้จะใช้ SQLite ซึ่งเป็นโปรแกรมฐานข้อมูลที่มีขนาดเล็ก มาก (ไม่ถึง 1MB)  เก็บฐานข้อมูลเป็นไฟล์โดยไม่จำเป็นต้องมี เซิร์ฟเวอร์ ทำให้ถูกใช้ในหลายๆ โปรแกรมหรือถูกติดตั้งลงไปใน อุปกรณ์พกพาหลายชนิดๆ เช่น iPhone, Android เพื่อใช้ในการเก็บ ข้อมูล แต่การเรียกใช้ต้องคีย์คำสั่งผ่าน Command Line นั่นคือสั่ง ประมวลผลทีละหนึ่งคำสั่ง ต่อมามีผู้พัฒนาเป็น SQLite Studio เพื่อให้ เรียกใช้งานได้ง่ายและสะดวกมากขึ้นในรูปแบบ GUI (Graphic User Interface)

คำศัพท์ที่เกี่ยวข้องกับฐานข้อมูล ฐานข้อมูล (Database) ก่อนที่จะเรียกใช้ข้อมูลจากฐานข้อมูลด้วยคำสั่ง SQL จะต้องทำความ เข้าใจกับคำศัพท์ที่ใช้เกี่ยวกับฐานข้อมูลก่อนเพื่อจะได้สื่อสารได้ตรงกัน โดยคำศัพท์ที่ใช้สื่อสารว่าอะไรคือส่วนไหนของฐานข้อมูลมีดังนี้ คำศัพท์ที่เกี่ยวข้องกับฐานข้อมูล ฟิลด์ (Field) หรือ Attribute names หรือคอลัมน์ คือข้อมูลที่ ประกอบด้วยอักขระต่าง ๆ ตั้งแต่ 1 ตัวขึ้นไป เรคอร์ด (Record) หรือ Tuples หรือ rows คือการนำฟิลด์หลาย ๆ ฟิลด์มารวมกัน ตาราง (Table) หรือ Table name คือการนำเรคอร์ดหลาย ๆ เร คอร์ดมารวมกัน

Tables in SQL PName Price Category Manufacturer Table name Attribute names or ฟิลด์ (Field) Tables in SQL Product PName Price Category Manufacturer Gizmo $19.99 Gadgets GizmoWorks Powergizmo $29.99 SingleTouch $149.99 Photography Canon MultiTouch $203.99 Household Hitachi Tuples or rows or records

ความสัมพันธ์ (Relationships) หรือ RDBMS

ส่วนประกอบของตารางเอนทิตี้ (Entity) คือการอ้างอิงถึง สถานที่, บุคคล, สิ่งของ เช่น เอนทิตี้ของนักเรียน เอนทิตี้ของอาจารย์ เอนทิตี้ของสินค้า แอตทริบิวต์ (Attribute) คือข้อมูลที่แสดงลักษณะของเอนทริตี้ ชนิดความสัมพันธ์ของตาราง (Relationship) ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (one to one Relationships) เป็น ความสัมพันธ์ของตารางหนึ่งกับอีกตารางหนึ่งเท่านั้นเช่น อธิบายความสัมพันธ์ คือ นักเรียน 1 คน มีสมุดพกได้ 1 เล่ม  ถ้าอ่านสลับกันก็คือ สมุดพก 1 เล่ม สามารถมีนักเรียนได้ 1 คน

1. ความสัมพันธ์แบบ One-to-One เมื่ออยู่ในตาราง (เมื่อหนึ่งแถวในหนึ่งตารางมีความสัมพันธ์กับหนึ่งแถวใน อีกหนึ่งตาราง)

2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (one to many Relationships) เป็นความสัมพันธ์ของตารางหนึ่ง ที่มีข้อมูลอยู่ได้หลายตาราง แต่อีก ตารางหนึ่งสามารถมีข้อมูลได้แค่ตารางเดียว ความสัมพันธ์แบบนี้เกิดขึ้น มากที่สุดในการสร้างฐานข้อมูล เป็นความสัมพันธ์ระหว่างหนึ่งสิ่งต่อ หลาย ๆ สิ่ง เช่น อธิบาย สาขาหนึ่งสาขา สังกัดคณะได้เพียงหนึ่งคณะ อ่านกลับกันจะได้ คณะหนึ่งคณะจะมีสาขาสังกัดได้หลายสาขา

ความสัมพันธ์แบบ One-to-Many เมื่ออยู่ในตาราง (เมื่อหนึ่งเเถวใน ตารางสามารถสัมพันธ์กับหนึ่งหรือหลายเเถวในอีกตารางหนึ่ง)

3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many)    เป็นความสัมพันธ์ของตารางหนึ่งที่มีข้อมูลได้หลายตาราง และอีก ตารางหนึ่งมีข้อมูลได้หลายตารางเช่นเดียวกันเช่น อธิบาย สินค้าหนึ่งชิ้น สามารถถูกซื้อได้โดยคนหลายคน อ่านกลับกันจะได้ คนหนึ่งคนสามารถซื้อสินค้าได้หลายชิ้น อธิบาย สินค้าหนึ่งชิ้น สามารถถูกซื้อได้โดยคนหลายคน อ่านกลับกันจะได้ คนหนึ่งคนสามารถซื้อสินค้าได้หลายชิ้น

ตัวอย่าง ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many)

ประเภทของคีย์ในระบบฐานข้อมูล การกำหนดคีย์ในระบบฐานข้อมูลนั้นเป็นการช่วยเพิ่มประสิทธิภาพใน การทำงานของฐานข้อมูล เพราะเป็นการกำหนดการอ้างอิงของข้อมูล การค้นหา จึงทำให้การประมวลของระบบมีความรวดเร็วยิ่ง ซึ่งคีย์ใน ระบบฐานข้อมูลสามารถแบ่งออกได้ 5 ชนิดดังนี้ 1. Primary Key (คีย์หลัก) 2. Secondary Key (คีย์รอง) 3. Compound Key (คีย์รวม) 4. Candidate Key (คีย์คู่เเข่ง) 5. Foreign Key (คีย์นอก)

1. Primary Key (คีย์หลัก) ข้อมูลคอลัมน์หนึ่งในตารางที่ไม่มีค่าซ้ำกับข้อมูลคอลัมน์อื่น เเละต้องไม่เป็น ค่าว่าง (Null) จากรูปจะเห็นว่าคอลัมน์ที่เป็น Primary Key คือ รหัสประจำตัวนักศึกษา เพราะไม่มีค่าซ้ำกับคอลัมน์อื่น เเละไม่เป็นค่าว่าง  #อาจมีข้อสงสัยว่าทำไมเราไม่ใช้ ชื่อ หรือ นามสกุล ในการกำหนด Primary Key เพราะชื่อและนามสกุลของคนเราอาจมีเหมือนกันได้  ดังนั้นหาก นักศึกษามีชื่อซ้ำขึ้นมาก็จะไม่สามารถระบุการอ้างอิงได้

2. Secondary Key (คีย์รอง) ในบางครั้งเรียกคีย์ชนิดนี้ว่า อินเด็กซ์ (Index) คีย์ชนิดนี้ เปรียบเสมือนเป็นคีย์รองจากคีย์หลัก กล่าวคือเมื่อเรากำหนดคีย์ หลักเเล้ว DBMS ก็จะสามารถค้นหาข้อมูล เเต่เมื่อไหร่ที่มีข้อมูลเป็น จำนวนมาก DBMS ก็จะต้องทำการค้นหาตั้งเเต่ต้นจนกว่าจะเจอ ซึ่ง ทำให้เกิดการล่าช้า  เเต่หากมีคีย์รองเป็นชื่อและนามสกุลก็จะสามารถ ช่วยให้ DBMS ทำการค้นหาได้สะดวกรวดเร็วยิ่งขึ้น #คีย์รองยอมให้ข้อมูลซ้ำกันได้ เเต่หากข้อมูลซ้ำกันมากก็ไม่เป็นผลดี

3. Compound Key (คีย์รวม) ในบางครั้งเรียกคีย์ชนิดนี้ว่า Composite Key เป็นคีย์ที่ใช้คอลัมน์ หลายคอลัมน์มาร่วมกันเป็นคีย์หลัก #เนื่องจากในบางครั้งการกำหนด Primary Key เพียงคอลัมน์เดียวอาจ เกิดการซ้ำของข้อมูลได้

4. Candidate Key (คีย์คู่เเข่ง) เมื่อมีคอลัมน์ที่มีคุณสมบัติครบถ้วนในการเป็น Primary Key คือ ไม่มีค่าซ้ำ ไม่เป็นค่าว่าง จะเห็นว่ามี Candidate Key อยู่ 2 ตัวคือ รหัสประจำตัวนักศึกษาและชื่อ (ถ้ามั่นใจเเล้วว่าชื่อนักศึกษาจะไม่มีค่าซ้ำกันเลย) #ในกรณีนี้หากผู้ออกแบบฐานข้อมูลกำหนดให้คอลัมน์รหัสประจำตัวนักศึกษา เป็น Primary Key ดังนั้นคอลัมน์ชื่อก็จะกลายเป็น Secondary Key อัตโนมัติ

เพื่อให้เข้าใจยิ่งขึ้นให้ดูอีกตัวอย่างหนึ่งดังรูป จะเห็นได้อย่างชัดเจนว่า รหัสประจำตัวนักศึกษาเเละรหัสบัตร ประชาชน จะไม่เป็นค่าซ้ำและค่าว่างอย่างเเน่นอน ดังนั้นรหัส ประจำตัวนักศึกษาเเละรหัสบัตรประชาชน คือ Candidate Key

5. Foreign Key (คีย์นอก) เป็นคีย์ที่ใช้เชื่อมความสัมพันธ์กับตารางอื่นๆ ตารางนักศึกษามีคอลัมน์รหัสประจำตัว นักศึกษาเป็น Primary Key ในตารางการลงทะเบียนมีคอลัมน์รัหัสวิชาเป็น Primary Key เเต่เมื่อ 2 ตารางมีความสัมพันธ์ กัน คอลัมน์รหัสประจำตัวนักศึกษาจะเป็น Foreign Key ของตารางการลงทะเบียน ซึ่ง ความสัมพันธ์เป็นแบบ One-to-Many

คำศัพท์ที่เกี่ยวข้องกับ SQL Data Definition Language (DDL) การสร้างหรือปรับปรุง โครงสร้างของตารางในฐานข้อมูล Create/alter/delete tables and their attributes Data Manipulation Language (DML) การสืบค้น การแทรก การปรับปรุง การลบข้อมูลในตาราง Query one or more tables Insert/delete/modify tuples in tables

คำสั่งพื้นฐานของ SQL CREATE DATABASE CREATE TABLE CREATE VIEW * ไม่สอนในบทเรียนนี้ INSERT SELECT UPDATE DELETE DROP

คำสั่งสร้างฐานข้อมูล CREATE DATABASE โดยชื่อ database ในระบบจะต้องไม่ซ้ำกันภายใน RDBMS ที่ใช้งาน

คำสั่งสร้างตาราง CREATE TABLE การสร้างตารางเพื่อเอาไว้เก็บข้อมูลที่ต้องการ เรียกคำสั่งนี้ว่า SQL Create table statement ข้อมูลแบบตารางต้องกำหนดค่าของ column รวมถึง data type ของ แต่ละ column ว่าจะใช้เก็บข้อมูลชนิดใด

ตัวอย่าง data types บน database ส่วนใหญ่

จัดกลุ่มของ SQL Data Types ที่มีลักษณะเดียวกันได้ 6 กลุ่มคือ ตัวเลข ตัวเลขค่าประมาณ วันและเวลา ตัวอักษร (Non Unicode) ตัวอักษร (Unicode) ตัวอักษร (Binary)

กลุ่มของ SQL Data Types : ตัวเลข

กลุ่มของ SQL Data Types : ตัวเลขค่าประมาณ

กลุ่มของ SQL Data Types : วันและเวลา

กลุ่มของ SQL Data Types : ตัวอักษร (Non Unicode)

กลุ่มของ SQL Data Types : ตัวอักษร (Unicode)

กลุ่มของ SQL Data Types : ตัวอักษร (Binary)

Workshop 1 ดาวน์โหลดและติดตั้ง SQLite Workshop 3 นำเข้าข้อมูล (import) จากไฟล์ csv เข้าสู่ตาราง

คำสั่ง SELECT เป็นคำสั่งที่ใช้บ่อยที่สุด รูปแบบ SELECT <attributes> FROM <one or more relations> WHERE <conditions>

คำสั่ง SELECT เป็นคำสั่งที่ใช้บ่อยที่สุด 1 การ SELECT ข้อมูลทั้งหมด 2 การ SELECT ข้อมูลบางคอลัมน์ 3 การ SELECT ข้อมูลโดยการจัดลำดับการเเสดงผล  4 การ SELECT ข้อมูลด้วย SELECT... AS (เปลี่ยนชื่อคอลัมน์ในการเเสดงผล) 5 การ SELECT ข้อมูลด้วย Distinct (เเสดงข้อมูลไม่ซ้ำ) 6 การ SELECT ข้อมูลด้วย Order By (จัดเรียงข้อมูล)  7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข)  8 การ SELECT ข้อมูลโดยการคำนวณทางคณิตศาสตร์  9 การ SELECT ข้อมูลด้วย Aggregate Functions (ฟังก์ชันการรวม)  10 การ SELECT ข้อมูลด้วย Scalar functions (ฟังก์ชันการคำนวณ)  11 การ SELECT ข้อมูลด้วย String functions (ฟังก์ชันตัวอักษร)  12 การ SELECT ข้อมูลด้วย Date and time functions (ฟังก์ชันวันที่เเละเวลา)  13 การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT 14 การ SELECT ข้อมูลด้วย SELECT ... GROUP BY (แบบจัดกลุ่ม) 15 การ SELECT ข้อมูลด้วย HAVING และ WHERE

ตัวอย่างข้อมูลนักศึกษา

1 การ SELECT ข้อมูลทั้งหมด เลือกทั้งหมด โดยระบุชื่อตัวแปรทั้งหมด ถ้ามีหลายตัวแปรให้คั่นด้วย เครื่องหมายจุลภาค หรือ comma หรือระบุสัญลักษณ์ * แทนชื่อตัว แปรทั้งหมดจะได้ผลลัพธ์แบบเดียวกัน

1 การ SELECT ข้อมูลทั้งหมด การแสดงผล

2 การ SELECT ข้อมูลบางคอลัมน์ ในกรณีที่ต้องการให้เเสดงผลเพียงไม่กี่คอลัมน์ หรือ เฉพาะคอลัมน์ที่ ต้องการเท่านั้น

2 การ SELECT ข้อมูลบางคอลัมน์ การแสดงผล

3 การ SELECT ข้อมูลโดยการจัดลำดับการเเสดงผล >>ต้องการข้อมูลรหัสนักศึกษา เเละชื่อนามสกุลของนักศึกษา เเต่ อยากให้ชื่อเเละนามสกุลของนักศึกษาขึ้นก่อนรหัสนักศึกษา

3 การ SELECT ข้อมูลโดยการจัดลำดับการเเสดงผล การแสดงผล

4 การ SELECT ข้อมูลด้วย SELECT... AS (เปลี่ยนชื่อคอลัมน์ในการเเสดงผล) การแสดงผลไม่จำเป็นต้องให้ชื่อหัวข้อเป็นชื่อเดียวกับชื่อคอลัมน์ทุกๆ ครั้ง เพราะตั้งชื่อคอลัมน์อาจมีการสื่อความหมายที่ไม่ชัดเจนต่อการเเส ดงผล

4 การ SELECT ข้อมูลด้วย SELECT... AS (เปลี่ยนชื่อคอลัมน์ในการเเสดงผล) >>ต้องการเเสดงข้อมูลของนักศึกษาทั้งหมด โดยให้หัวข้อเเต่ละ หัวข้อชื่อ  "Student ID", "First Name", "Last Name", "Gender", "Age"

4 การ SELECT ข้อมูลด้วย SELECT... AS (เปลี่ยนชื่อคอลัมน์ในการเเสดงผล) การแสดงผล

5 การ SELECT ข้อมูลด้วย Distinct (เเสดงข้อมูลไม่ซ้ำ) เมื่อข้อมูลมีค่าที่เหมือนกันอยู่ในตารางข้อมูล เมื่อเวลาเเสดงผลออกมา ก็จะเห็นข้อมูลซ้ำๆ หลายบรรทัด ซึ่งทำให้ดูยาก

5 การ SELECT ข้อมูลด้วย Distinct (เเสดงข้อมูลไม่ซ้ำ) >>ต้องการทราบว่านักศึกษามีอายุเท่าไรบ้าง การแสดงผล

6 การ SELECT ข้อมูลด้วย Order By (จัดเรียงข้อมูล) เป็นคำสั่งที่ใช้เรียงข้อมูลที่ไม่เป็นระเบียบในตาราง โดยจะเรียงลำดับ จากมากไปหาน้อย หรือ น้อยไปหามากก็ได้ คำอธิบาย ตัว DESC คือตัวกำหนดว่าจะให้มีการเรียงลำดับจากมากไปหาน้อย หรือ จากน้อยไปหามาก ดังนั้นหากมีการกำหนด DESC ไว้เเสดงว่า ต้องการให้ข้อมูลเรียงจากมากไปหาน้อย

6 การ SELECT ข้อมูลด้วย Order By (จัดเรียงข้อมูล) ตัวอย่างที่ 1 >>ต้องการทราบรายชื่อนักศึกษา โดยให้เเสดงรายชื่อ นักศึกษาตามลำดับชื่อจากน้อยไปมาก

6 การ SELECT ข้อมูลด้วย Order By (จัดเรียงข้อมูล) ตัวอย่างที่ 2 >>ต้องการทราบรหัสนักศึกษา เเละรายชื่อของ นักศึกษา โดยให้เเสดงรหัสนักศึกษาจากมากไปน้อย

6 การ SELECT ข้อมูลด้วย Order By (จัดเรียงข้อมูล) ตัวอย่างที่ 3 >>ต้องการทราบอายุ รายชื่อของนักศึกษา โดยให้เเส ดงจากกลุ่มอายุเรียงลำดับจากน้อยไปมาก และในเเต่ละกลุ่มอายุก็ ให้เรียงตามรายชื่อนักศึกษาจากน้อยไปมาก

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) คำอธิบาย SELECT คือการเลือกคอลัมน์ที่เรากำหนดเอาไว้ FROM คือการเลือกตารางข้อมูล  WHERE คือการกำหนดเงื่อนไข ซึ่งจะอธิบายรายละเอียดเป็นหัวข้อ ย่อย ๆ ไว้ ดังต่อไปนี้

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) เงื่อนไขในการ SELECT ข้อมูล มีประเภทของเงื่อนไขหลายเงื่อนไข ได้แก่ 1) การใช้เครื่องหมาย Operators (=, !=, >, <, >=, <=, AND, OR, NOT)  2) การเลือกข้อมูลทึ่ต้องตามชุดข้อมูลด้วย IN  3) การเลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND  4) การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_) 

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.1 เงื่อนไขในการ SELECT ด้วยการการใช้เครื่องหมาย Operators (=, !=, >, <, >=, <=, AND, OR, NOT)

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.1 เงื่อนไขในการ SELECT ด้วยการการใช้เครื่องหมาย Operators (=, !=, >, <, >=, <=, AND, OR, NOT) ตัวอย่างที่ 1 >>ต้องการทราบรายชื่อนักศึกษาที่มีอายุน้อยกว่า 20 ปี

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.1 เงื่อนไขในการ SELECT ด้วยการใช้เครื่องหมาย Operators (=, !=, >, <, >=, <=, AND, OR, NOT) ตัวอย่างที่ 2 >>ต้องการทราบรายชื่อนักศึกษาที่เป็นเพศหญิง และมี อายุมากกว่าหรือเท่ากับ 20 ปี

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.1 เงื่อนไขในการ SELECT ด้วยการการใช้เครื่องหมาย Operators (=, !=, >, <, >=, <=, AND, OR, NOT) ตัวอย่างที่ 3 >>ต้องการทราบว่านักศึกษาที่ไม่ใช่เพศหญิงมีใครบ้าง

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.2 การเลือกข้อมูลทึ่ต้องตามชุดข้อมูลด้วย IN เป็นการเลือกการเเสดงผลตามชุดข้อมูลที่เลือกซึ่งหากไม่ใช่ IN ก็ยัง สามารถใช้งานได้ โดยใช้เครื่องหมายทาง Operator เเต่หากมีใช้ IN เข้ามาช่วยจะทำให้สามารถใช้งานได้สะดวก เเละเข้าใจ ง่ายมากขึ้น โดยมีรูปแบบการเรียกใช้งานดังนี้

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.2 การเลือกข้อมูลทึ่ต้องตามชุดข้อมูลด้วย IN ตารางข้อมูลนักศึกษา

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.2 การเลือกข้อมูลทึ่ต้องตามชุดข้อมูลด้วย IN ตัวอย่างที่ 1 >>ต้องการทราบข้อมูลของนักศึกษาที่อยู่ใน กรุงเทพมหานคร และเชียงใหม่

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.2 การเลือกข้อมูลทึ่ต้องตามชุดข้อมูลด้วย IN ตัวอย่างที่ 2 >>ต้องการทราบข้อมูลของนักศึกษาเฉพาะที่ไม่ได้อยู่ ในกรุงเทพมหานคร

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.3 การเลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND การเลือกข้อมูลที่อยู่ในช่วงระหว่างจะมีรูปแบบดังนี้

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.3 การเลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND ตัวอย่างที่ 1 >> แบบ BETWEEN

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.3 การเลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND ตัวอย่างที่ 1 >> แบบ BETWEEN >> ต้องการทราบสินค้าที่มีราคาสินค้าตั้งแต่ 10,000 และ 15,000

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.3 การเลือกข้อมูลที่อยู่ในช่วงที่ต้องการด้วย BETWEEN...AND ตัวอย่างที่ 2 >> แบบ NOT BETWEEN >> ต้องการทราบสินค้าและจำนวนบีทียูที่มีราคาสินค้าไม่ถึง 20,000 และ 30,000

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.4 การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_) การ SELECT ข้อมูลยังสามารถเลือกข้อมูลที่ตรงกับคำที่เราต้องได้ การ SELECT ข้อมูลแบบนี้ใช้รูปแบบ LIKE ซึ่งตัวอย่างที่เราเห็นกันได้ชัดเจน คือ การค้นหาคำใน Google ที่เราพิมพ์เเค่บางคำ เเต่สามารถค้นหาเจอได้ มากมาย วิธีการ SELECT ด้วย LIKE มีอยู่ 2 รูปแบบดังนี้ 7.4.1 การ SELECT ข้อมูล ด้วย LIKE และ % คำอธิบาย % คือสัญลักษณ์ที่เเทนตัวอักษรอะไรก็ได้ กี่ตัวก็ได้ เช่น เรา ต้องการหาคนที่คนที่มีชื่อขึ้นต้นด้วย 'สม' เวลาที่เราเขียนคำสั่งจะได้เป็น 'สม%' เป็นต้น นอกจากนั้น % ยังสามารถอยู่ส่วนท้าย หรือกลางก็ได้   7.4.2 การ SELECT ข้อมูล ด้วย LIKE และ _ คำอธิบาย _ คือสัญลักษณ์ที่เเทนตัวอักษรอะไรก็ได้ 1 ตัว ต่างกับ % ที่เเทน ตัวอักษรกี่ตัวก็ได้

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.4 การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_) ตัวอย่างที่ 1 >> ต้องการทราบชื่อนักศึกษาที่ขึ้นต้นด้วย ตัวอักษร 'S'

7 การ SELECT ข้อมูลด้วย SELECT... WHERE (แบบมีเงื่อนไข) 7.4 การเลือกข้อมูลที่ตรงกับรูปแบบด้วย LIKE (%,_) ตัวอย่างที่ 2 >> ต้องการทราบชื่อนักศึกษาที่ขึ้นต้นด้วยตัวอักษร 'S‘ และตามด้วยตัวอักษรอะไรก็ได้ 4 ตัว

8 การ SELECT ข้อมูลโดยการคำนวณทางคณิตศาสตร์

8 การ SELECT ข้อมูลโดยการคำนวณทางคณิตศาสตร์ >> ต้องการทราบส่วนลด 5% ของราคาสินค้าทั้งหมด โดยให้มีการ แสดงผลชื่อสินค้าเเละราคาที่ลดราคา

การ SELECT ข้อมูลด้วย Functions (ฟังก์ชัน) 1. Aggregate Functions (ฟังก์ชันการรวม) 2. Scalar functions (ฟังก์ชันการคำนวณ)

9 การ SELECT ข้อมูลด้วย Aggregate Functions (ฟังก์ชันการรวม)

9 การ SELECT ข้อมูลด้วย Aggregate Functions (ฟังก์ชันการรวม) ตัวอย่าง >> ต้องการทราบราคาสินค้าโดยเฉลี่ย ราคาที่สูงที่สุด เเละราคาที่ต่ำที่สุด

10 การ SELECT ข้อมูลด้วย Scalar functions (ฟังก์ชันการคำนวณ) ตัวอย่าง >> ต้องการเเสดงรายชื่อสินค้า เเละราคาสินค้าโดยที่ไม่มี จุดทศนิยม เเละให้เรียงราคาสินค้าจากราคาสูงที่สุดไปหาราคา น้อยที่สุด

11 การ SELECT ข้อมูลด้วย String functions (ฟังก์ชันตัวอักษร) ใช้เพื่อเลือกข้อความ หรือตัวอักษร

11 การ SELECT ข้อมูลด้วย String functions (ฟังก์ชันตัวอักษร) ตัวอย่าง >> ต้องการทราบรหัสนักศึกษา เเต่เเสดงเพียง 2 ตัวท้าย ของรหัสนักศึกษา รายชื่อนักศึกษา เเละแสดงเฉพาะที่อยู่ให้เป็นตัวพิมพ์ใหญ่ทั้งหมด

12 การ SELECT ข้อมูลด้วย Date and time functions (ฟังก์ชันวันที่เเละเวลา)

12 การ SELECT ข้อมูลด้วย Date and time functions (ฟังก์ชันวันที่เเละเวลา) ตารางโซนเวลา

12 การ SELECT ข้อมูลด้วย Date and time functions (ฟังก์ชันวันที่เเละเวลา) รูปแบบของวันและเวลา

12 การ SELECT ข้อมูลด้วย Date and time functions (ฟังก์ชันวันที่เเละเวลา)

13 การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT เป็นการ SELECT ข้อมูลแบบซับซ้อนมากขึ้น หรือ ที่เรียกว่า SELECT ซ้อน SELECT  โดยจะมี Main Query เป็นตัว SELECT หลัก เเล้วมี Subquery อยู่ ภายใต้ Main Query *** การทำงานของ SELECT ซ้อน SELECT จะทำการประมวลจาก SELECT ย่อยก่อน

13 การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT

13 การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT - ต้องทราบอายุของเยาวภาก่อน - เมื่อทราบผลเเล้ว ว่าเยาวภามีอายุ 21

13 การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT

14 การ SELECT ข้อมูลด้วย SELECT ... GROUP BY (แบบจัดกลุ่ม) คือการจัดกลุ่มคำที่ซ้ำกันให้แสดงแค่คำเดียว หรือการจัดกลุ่มของคำ ซ้ำกันให้รวมกลุ่มกัน โดยจะมีการเรียงลำดับตามตัวอักษร เพื่อใช้ใน การวิเคราะห์ หรือทำรายงานสรุปข้อมูล อธิบายโค้ด GROUP BY - table_name คือ ชื่อตารางข้อมูล - column_name คือ ชื่อคอลัมน์

14 การ SELECT ข้อมูลด้วย SELECT ... GROUP BY (แบบจัดกลุ่ม) ตัวอย่างข้อมูลในตาราง CUSTOMERS

14 การ SELECT ข้อมูลด้วย SELECT ... GROUP BY (แบบจัดกลุ่ม) ตัวอย่าง >> การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดงคอลัมน์ NAME รวมถึง SALARY ด้วย GROUP BY จากผลลัพธ์จะเห็นได้ว่า การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดง คอลัมน์ NAME จะมีการจัดกลุ่ม คำซ้ำให้รวมอยู่เป็นกลุ่มเดียวกันและมีการเรียงลำดับตัว อักษรนำหน้าภาษาอังกฤษตัวที่มาก่อน ซึ่งหลังเรียงตามลำดับ รวมทั้ง ผลรวมของ SALARY ตามลำดับของคอลัมน์ NAME ด้วย

15 การ SELECT ข้อมูลด้วย HAVING (เงื่อนไขของการจัดกลุ่ม) และ WHERE SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);

15 ตัวอย่าง การ SELECT ข้อมูลด้วย HAVING และ WHERE ตัวอย่าง ตารางข้อมูล customers

15 ตัวอย่าง การ SELECT ข้อมูลด้วย HAVING และ WHERE SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 1; ORDER BY COUNT(CustomerID) DESC;

15 ตัวอย่าง การ SELECT ข้อมูลด้วย HAVING และ WHERE SELECT Employees.LastName,  COUNT(Orders.OrderID) AS NumberOfOrders FROM (Orders INNER JOIN Employees  ON Orders.EmployeeID = Employees.EmployeeID) GROUP BY LastName HAVING COUNT(Orders.OrderID) > 10;

NULLS in SQL เมื่อใดก็ตามที่ข้อมูลไม่มีค่าใดๆ สามารถระบุเป็นค่าให้เป็น NULL ได้ หมายถึง : ไม่มีค่า มีค่า แต่เราไม่ทราบ ค่านั้นไม่สามารถนำมาใช้ได้ อื่น ๆ โครงสร้างจะกำหนดไว้สำหรับแต่ละ attribute ให้เป็น null หรือไม่ SQL จัดการกับตารางที่มีค่า NULL อย่างไร ?

Null Values ทดสอบค่า null : x IS NULL x IS NOT NULL SELECT * SELECT * จะเห็นว่าผลที่ได้ คือ Persons ทั้งหมด ค่าที่ได้คือค่า NULL SELECT * FROM Person WHERE (age < 25 or age >= 25) IS NULL SELECT * FROM Person WHERE (age < 25 and age >= 25) IS NULL

ประเภทการเชื่อมโยงข้อมูลด้วยการ Join Tables การใช้คำสั่ง SELECT ทั่วๆ ไปเป็นในการดึงข้อมูลข้อมูลจาก ตารางเดียว เเต่ในการปฏิบัติงานจริงเเล้ว อาจต้องมีการดึงข้อมูล จากหลายตาราง โดยอาศัยคอลัมน์ที่ตรงกันของ 2 ตารางเป็น ตัวเชื่อม (Foreign Key) วิธีการนี้เรียกว่า "Join Table" ซึ่งการ Join Table แบ่งออกได้เป็น 2 ประเภท ได้แก่  1. Inner Join ได้แก่ Equi join และ Self join 2. Outer Join ได้แก่ Left Outer Join และ Right Outer Join 

ประเภทการเชื่อมโยงข้อมูลด้วยการ Join Tables

ประเภทการเชื่อมโยงข้อมูลด้วยการ Join Tables ตัวอย่าง >> ต้องการทราบรหัสลูกค้าที่ทำการสั่งซื้อสินค้าในรหัส การสั่งซื้อ 05 >> จากการแสดงผลข้างต้นต้องการหาชื่อลูกค้าที่มีรหัสดังกล่าว *** จะเห็นว่าตัวอย่างข้างต้นเป็นการ SELECT ทีละตาราง เเละต้องทำ การ SELECT ถึง 2 ครั้งกว่าจะได้ข้อมูลที่ต้องการ

ประเภทการเชื่อมโยงข้อมูลด้วยการ Join Tables ตัวอย่างการใช้งาน (แบบ Join Table) >> ดังนั้นการ Join Table สามารถลดขั้นตอนได้ดังนี้

JOIN TABLE แบบ Inner Join เป็นการ Join Table ตั้งเเต่ 2 ตารางขึ้นไปที่มี Key หรือ คอลัมน์ตรงกันมาเเสดง  เเบ่ง Inner Join ได้เป็น 2 ประเภทคือ Equi Join และ Self Join

JOIN TABLE แบบ Inner Join

JOIN TABLE แบบ Inner Join

JOIN TABLE แบบ Inner Join >> ต้องการทราบรหัสการสั่งซื้อสินค้า รายชื่อลูกค้า เเละเบอร์โทร ติดต่อ

JOIN TABLE แบบ Inner Join (แบบ Equi Join) เป็นการ Join Table ตั้งเเต่ 2 ตารางขึ้นไปโดยมีเงื่อนไขว่าข้อมูลของ ทั้ง 2 ตารางจะต้องตรงกัน มีค่าเท่ากัน หรือ ใช้เครื่องหมาย "=" ในการ Join ตาราง รูปแบบคำสั่ง

JOIN TABLE แบบ Inner Join (แบบ Equi Join) ตัวอย่าง >>

JOIN TABLE แบบ Inner Join (แบบ Equi Join) ตัวอย่าง >> ต้องการทราบชื่อลูกค้า และราคาสินค้าที่ทำการ สั่งซื้อสินค้า

JOIN TABLE แบบ Inner Join (แบบ Self Join) เป็นการ Join กันเองภายในตารางเดียว เมื่อต้องการเปรียบเทียบ ข้อมูลจากคอลัมน์เดียวกันในตารางเดียวกัน เเต่เนื่องจากต้องการข้อมูลในตารางเดียวกัน จึงต้องใช้นามแฝง (Aliases Name) เพื่อความถูกต้องในการดึงข้อมูล รูปแบบการใช้งาน

JOIN TABLE แบบ Inner Join (แบบ Self Join)

JOIN TABLE แบบ Inner Join (แบบ Self Join) ตัวอย่าง >> ต้องการทราบ รหัสการสั่งสินค้า วันที่สั่งสินค้า เเละ รายชื่อลูกค้า ที่มีที่อยู่ในกรุงเทพมหานคร

JOIN TABLE แบบ Left Outer Join

JOIN TABLE แบบ Left Outer Join

JOIN TABLE แบบ Left Outer Join >> ต้องการทราบชื่อลูกค้า และ รหัสการสั่งซื้อสินค้า

JOIN TABLE แบบ Right Outer Join

JOIN TABLE แบบ Right Outer Join ตัวอย่าง

JOIN TABLE แบบ Right Outer Join ตัวอย่าง >> ต้องการทราบชื่อลูกค้า เละ รหัสการสั่งซื้อสินค้า

การปรับปรุงฐานข้อมูล การปรับปรุงฐานข้อมูลมีอยู่ 3 ลักษณะ Insertions การแทรกข้อมูลเข้าสู่ตาราง Deletions การลบข้อมูลในตาราง Updates การปรับปรุงข้อมูลในตาราง บางครั้งทั้งหมดนี้ถูกเรียกว่า “update”

Insertions การแทรกข้อมูลเข้าสู่ตาราง รูปแบบ INSERT INTO table(A1,…., An) VALUES (v1,…., vn) ตัวอย่าง: การแทรกการซื้อครั้งใหม่ไปยังฐานข้อมูล: INSERT INTO Purchase(buyer, seller, product, store) VALUES (‘Joe’, ‘Fred’, ‘wakeup-clock-espresso-machine’, ‘The Sharper Image’)

Insertions การแทรกข้อมูลจากตาราง 1 ทุกคอลัมน์เข้าสู่ตาราง 2 โดยใช้ร่วมกับคำสั่ง select INSERT INTO table2 SELECT * FROM table1 WHERE condition; ตัวอย่าง INSERT INTO Customers (CustomerName, City, Country) SELECT SupplierName, City, Country  FROM  Suppliers;

Insertions การแทรกข้อมูลจากตารางบางคอลัมน์เข้าสู่ตาราง 2 โดยใช้ร่วมกับคำสั่ง select แบบมีเงื่อนไข INSERT INTO table2 (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM table1 WHERE condition; ตัวอย่าง INSERT INTO Customers (CustomerName, City, Country) SELECT  SupplierName, City, Country  FROM Suppliers WHERE Country='Germany';

Insertions การแทรกข้อมูลจากตารางบางคอลัมน์เข้าสู่ตาราง 2 โดยใช้ร่วมกับคำสั่ง select แบบมีเงื่อนไข ตัวอย่าง INSERT INTO Customers (CustomerName, City, Country) SELECT  SupplierName, City, Country  FROM Suppliers WHERE Country='Germany';

Deletions การลบ ตัวอย่าง : DELETE FROM PURCHASE WHERE seller = ‘Joe’ AND product = ‘Brooklyn Bridge’ จะเห็นว่า ไม่สามารถลบโดยใช้เงื่อนไขเดียวได้ เนื่องจากมีความสัมพันธ์กันระหว่าง 2 เงื่อนไข

Updates การปรับปรุงแก้ไขข้อมูล ตัวอย่าง : UPDATE PRODUCT SET price = price/2 WHERE Product.name IN (SELECT product FROM Purchase WHERE Date =‘Oct, 25, 1999’);

คำสั่งประยุกต์ Advanced SQLizing UNION , UNION ALL INTERSECT EXCEPT หรือ SUBTRACT Quantifiers Aggregation v.s. subqueries

คำสั่งประยุกต์ UNION รวมข้อมูลตั้งแต่ 2 table ขึ้นไป ในบางครั้งฐานข้อมูล หรือ database ของเรา อาจจะมี table ที่เก็บข้อมูลคล้ายๆกัน ผู้ใช้งานอาจต้องการรวมข้อมูลทั้ง 2 table ในรูปแบบ SQL JOIN statement หรือ การสร้างความสัมพันธ์ระหว่าง column แต่สำหรับข้อมูลที่มี column เหมือนกันรวมถึง data type แบบเดียวกัน เราสามารถนำข้อมูลมารวมกันในเชิงบรรทัด ด้วยคำสั่ง SQL UNION statement โดยข้อมูลที่เลือกมาจำเป็นต้องมีคุณสมบัติดังนี้ * จำนวน column ที่เลือกมาเท่ากัน * มี data type ทั้งหมดชนิดเดียวกัน * จัดเรียง column ในรูปแบบเดียวกัน  

คำสั่งประยุกต์ UNION รวมข้อมูลตั้งแต่ 2 table ขึ้นไป   รูปแบบ (Syntax)

ตัวอย่าง คำสั่งประยุกต์ UNION รวมข้อมูลตั้งแต่ 2 table ขึ้นไป  

คำสั่งประยุกต์ UNION ALL รวมข้อมูลตั้งแต่ 2 table ขึ้นไป รูปแบบ (Syntax)

ตัวอย่าง คำสั่งประยุกต์ UNION ALL รวมข้อมูลตั้งแต่ 2 table ขึ้นไป  

INTERSECT and EXCEPT : not in SQL Server 1. INTERSECT เลือกเอาเฉพาะข้อมูลบรรทัดที่มีเหมือนกันเท่านั้นใน 2 table รูปแบบ (Syntax)

1. INTERSECT and EXCEPT: INTERSECT and EXCEPT : not in SQL Server If R, S have no duplicates, then can write without subqueries (HOW ?) (SELECT R.A, R.B FROM R) INTERSECT (SELECT S.A, S.B FROM S) SELECT R.A, R.B FROM R WHERE EXISTS(SELECT * FROM S WHERE R.A=S.A and R.B=S.B) (SELECT R.A, R.B FROM R) EXCEPT (SELECT S.A, S.B FROM S) SELECT R.A, R.B FROM R WHERE NOT EXISTS(SELECT * FROM S WHERE R.A=S.A and R.B=S.B)

2. Quantifiers Product ( pname, price, company) Company( cname, city) ค้นหาบริษัททั้งหมดที่ผลิตสินค้าที่มีราคา < 100 SELECT DISTINCT Company.cname FROM Company, Product WHERE Company.cname = Product.company and Product.price < 100

2. Quantifiers Product ( pname, price, company) Company( cname, city) ค้นหาบริษัททั้งหมดที่ผลิตเฉพาะสินค้าที่มีราคา < 100 เช่นเดียวกับ ค้นหาบริษัททั้งหมดที่สินค้าทั้งหมดมีราคา < 100

3. Group-by v.s. Nested Query Author(login,name) Wrote(login,url) ค้นหาผู้เขียนที่เขียน 10 เอกสาร : จะเห็นว่า มีการค้นหาที่ซ้อนกันอยู่ This is SQL by a novice SELECT DISTINCT Author.name FROM Author WHERE count(SELECT Wrote.url FROM Wrote WHERE Author.login=Wrote.login) > 10

3. Group-by v.s. Nested Query ค้นหาผู้เขียนที่เขียนอย่างน้อย 10 เอกสาร : รูปแบบ SQL โดยใช้ GROUP BY SELECT Author.name FROM Author, Wrote WHERE Author.login=Wrote.login GROUP BY Author.name HAVING count(wrote.url) > 10 This is SQL by an expert ไม่ต้องใช้ DISTINCT : จัดการอัตโนมัติด้วย GROUP BY

3. Group-by v.s. Nested Query Author(login,name) Wrote(login,url) Mentions(url,word) ค้นหาผู้เขียนด้วยคำศัพท์ 10,000 คำ: SELECT Author.name FROM Author, Wrote, Mentions WHERE Author.login=Wrote.login AND Wrote.url=Mentions.url GROUP BY Author.name HAVING count(distinct Mentions.word) > 10000

อ้างอิงจากลิงค์ https://mindphp. com/forums/viewtopic. php อ้างอิงจากลิงค์ https://mindphp.com/forums/viewtopic.php?f=74&t=18341&sid=875c58559f215f474cb77c2f07f5aae7 https://saixiii.com/database-sql-data-types/

คำถาม ? ขอบคุณค่ะ