Key and SQL วรวิทย์ พูลสวัสดิ์.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
อสมการเชิงเส้นตัวแปรเดียว
Advertisements

การแก้ปัญหาการใช้งาน ADO กับ Database อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
CHAPTER 14 Database Management
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
การใช้งานโปรแกรม SPSS
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
Database & DBMS Architecture วรวิทย์ พูลสวัสดิ์. 2 2 ฐานข้อมูล (Database) - Data and its relation - Databases are designed to offer an organized mechanism.
ซอฟต์แวร์และการเลือกใช้
การใช้งาน Microsoft Excel
MS-Access. SQL สามารถเรียกใช้ฐานข้อมูล ได้ทุกค่าย Access MySQL Foxpro DBF DB2Oracle MS SQL.
แบบทดสอบ MICROSOFT EXCEL มีข้อมูลในแผ่นงานตั้งแต่แถวที่ 1 ถึงแถว 500 และคอลัมน์ A จนถึงคอลัมน์ M วิธีการเลือกช่วง ข้อมูลวิธีใด อย่างไร ที่อำนวยความสะดวกได้ดีและให้ผลรวดเร็ว.
เทคนิคการใช้ Microsoft Excel. 1. การตีตารางในรูปแบบต่าง ๆ 2. การแทรกภาพในตาราง 3. การตกแต่งข้อมูลด้วย Format Cells 4. การคำนวณ บวก ลบ คูณ หาร 5. การย่อ.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
บทที่ 3 นักวิเคราะห์ระบบและการ วิเคราะห์ระบบ. 1. นักวิเคราะห์ระบบ (System Analysis) 1.1 ความหมายของนักวิเคราะห์ระบบ นักวิเคราะห์ระบบ (System Analysis:
ซอร์ฟแวร์ ( Software ). Microsoft excel Microsoft excel Microsoft power point.. Link Link.
คำสั่งควบคุมการทำงาน
ประเภทของคำสั่งของภาษา SQL
ภาษา SQL (Structured Query Language)
Microsoft Access 2007 การสร้างฟอร์ม
SQL Structured Query Language.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การทำ Normalization 14/11/61.
โดย อ.อภิพงศ์ ปิงยศ รายวิชา สธ312 ระบบการจัดการฐานข้อมูลทางธุรกิจ
SQL (Structured Query Language)
สถาปัตยกรรมของระบบฐานข้อมูล
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
บทสรุป ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
Lecture 5 SQL (Structured Query Language)
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
SQL [ Standard Query Language ]
SQL (Structured Query Language)
การจัดการระบบฐานข้อมูล ภาษาที่ใช้ในระบบจัดการฐานข้อมูล
BC320 Introduction to Computer Programming
โครงสร้างภาษา C Arduino
Work Shop 1.
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
Basic Input Output System
บทที่ 1 ระบบสารสนเทศ (Information System)
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
คำสั่ง Create , Insert, Delete, Update
บทที่ 4 ความรู้เกี่ยวกับระบบฐานข้อมูล
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
กำหนดกรอบระยะเวลาการขึ้นทะเบียนปี2556/57 1. ข้าว
CIT2205 โปรแกรมประยุกต์ด้านการจัดการฐานข้อมูล
การจัดการข้อมูลขั้นสูง
Data storage II Introduction to Computer Science ( )
หน่วยที่ 3 การประมวลผลข้อมูลให้เป็นสารสนเทศ
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
BASIC STATISTICS MEAN / MODE / MEDIAN / SD / CV.
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 7 การประมวลผลอาร์เรย์
การออกแบบแบบสอบถาม การออกแบบแบบสอบถาม
บทสรุป ความหมายของ Query ความหมายของ Query
สถาปัตยกรรมของฐานข้อมูล
OPERATOR ภาษาปาสคาล (Pascal)
Introduction to Database System
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
ฐานข้อมูลเชิงสัมพันธ์
2 โครงสร้างข้อมูลแบบสแตก (STACK).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
ฐานข้อมูลเชิงสัมพันธ์ Relational Database
ตัวแบบข้อมูล (Data Modeling)
Chapter 7 : ขั้นตอนการแปลงแผนภาพ ER มาเป็นรีเลชั่น ( ER-to-Relational Mapping Algorithm ) อ.คเชนทร์ ซ่อนกลิ่น.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Database Design & Development
Decision: Single and Double Selection (if and if-else statement)
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

Key and SQL วรวิทย์ พูลสวัสดิ์

ฐานข้อมูล (Database) Data and its relation Databases are designed to offer an organized mechanism for storing, managing and retrieving information. They do so through the use of tables ข้อมูลที่มีความสัมพันธ์กันนำมาเก็บรวมรวมไว้ด้วยกัน เพื่อการใช้ข้อมูลเหล่านั้นร่วมกันอย่างมีประสิทธิภาพ โดยมากมักทำเพื่อตอบสนองการทำงานด้านสารสนเทศ มักเก็บไว้รูปแบบของตารางที่มีความสัมพันธ์กัน Data : Raw Fact 2 2

ระบบจัดการฐานข้อมูล (Database Management System) System Software ที่ ใช้ในการจัดการข้อมูล จุดประสงค์เพื่อสร้างสภาพแวดล้อมที่สะดวกและมีประสิทธิภาพในการจัดเก็บและเข้าถึงข้อมูล ของฐานข้อมูล การเข้าถึง/ใช้ข้อมูล จะใช้ภาษาเชิงโครงสร้าง (Sql) ที่ทำหน้าที่เป็นตัวกลางระหว่างฐานข้อมูลกับผู้ใช้งาน ประกอบไปด้วยฟังก์ชันต่างๆช่วยให้ระบบฐานข้อมูลมีความถูกต้อง (Integrity) และมีความสอดคล้องกัน (Consistency) 3 3

Key ในระบบฐานข้อมูล

Key หัวใจหลักในการทำงานแบบ relational database Primary Key (PK) Candidate Key Compound/Composite Key Foreign Key (FK) 5 5

Key Definition: A database key is a attribute utilized to sort and/or identify data in some manner. Each table has a primary key which uniquely identifies records. Foriegn keys are utilized to cross-reference data between relational tables. 6

Primary Key The primary key of a relational table uniquely identifies each record in the table. It can either be a normal attribute that is guaranteed to be unique (such as Social Security Number in a table with no more than one record per person) or It can be generated by the DBMS. Primary keys may consist of a single attribute or multiple attributes in combination 7

Candidate Key A candidate key is a combination of attributes that can be uniquely used to identify a database record without any extraneous data. Each table may have one or more candidate keys. One of these candidate keys is selected as the table primary key. 8

Foreign key A foreign key is a field in a relational table that matches the primary key column of another table. The foreign key can be used to cross-reference tables. 9

composite key composite key whereby even though this is also a key that consists of 2 or more attributes that uniquely identify an entity occurrence 10

12

การใช้งานภาษา SQL Structure Query Language

ภาษา SQL เป็นภาษาที่ใช้ในการเข้าถึงข้อมูล ในระบบจัดการฐานข้อมูล เป็นภาษาในแบบ Non Procedural การทำงานพื้นฐาน อยู่บน Set และ Relation แบ่งการทำงานเป็น 3 กลุ่มใหญ่ๆได้แก่ DDL / DML และ DCL

เทคนิคการใช้งานภาษา SQL เพื่อใช้ในการแสดงผลข้อมูล วิเคราะห์ output ดูว่าจะต้องแสดงผลลัพธ์อย่างไรตามความต้องการของโจทย์ วิเคราะห์ input ต้องใช้ข้อมูล (column) จากตาราง (Table) อะไร วิเคราะห์ process จำ syntax หรือ รูปแบบของคำสั่งให้ถูกต้อง วิเคราะห์ว่า ต้องเขียนเงื่อนไขอย่างไร จึงจะได้ผลตามต้องการ 15

Syntax : รูปแบบคำสั่ง

1 - คำสั่งพื้นฐาน Select <filed_1 , filed_2 , … , filed_n | * > From <Table_name> ; หากเลือกทุก column สามารถใช้เครื่องหมาย * ได้ ตัวอย่าง select * from employee ; select emp_id , emp_name , emp_lname from employee ; 17

2 – คำสั่งแบบมีเงื่อนไข (condition) Select <filed_1 , filed_2 , … , filed_n / * > From <Table_name> Where < condition > ; 18

Condition Condition หรือ เงื่อนไข หมายถึงการระบุความต้องการ มีรูปแบบการเขียนดังนี้คือ <field> <operator> < value > Filed คือ Filed ใดๆที่อยู่ในรายชื่อ Table อยู่ในคำสั่ง From Operator คือคำสั่งในการปฏิบัติการ เช่น = , > , < , != , is null Value ค่าที่ใช้เป็นเงื่อนไข หากเป็นตัวเลขสามารถระบุได้เลย หากเป็นตัวอักษรต้องมีการใส่ " ก่อนและหลังค่าที่เป็นเงื่อนไข

ตัวอย่าง - คำสั่งแบบมีเงื่อนไข Select * from working Where proj_id = 15 ; (เลือกข้อมูลการทำงานโครงการ 15) Where hours > 3 ; (เลือกข้อมูลการทำงานที่มากกว่า 3 ชั่วโมง) Select * from employee where job = "Programmer" ; (เลือกพนักงานที่เป็น Programmer)

3 – คำสั่งแบบหลายเงื่อนไข Select <filed_1 , filed_2 , … , filed_n / * > From <Table_name> Where < condition-1 > <And / Or > <condition-2> ; And ให้ผลเหมือนการ Intersection Or ให้ผลเหมือนการ Union 21

ตัวอย่าง – คำสั่งแบบหลายเงื่อนไข select * from working where proj_id = 15 and work_hours > 3 ; (เลือกพนักงานที่ทำงานโครงการ 15 และทำงานมากกว่า 3 ชั่วโมง : ต้องอยู่โครงการ 15) where proj_id = 15 or work_hours > 3 ; (เลือกพนักงานที่ทำงานโครงการ 15 หรือทำงานมากกว่า 3 ชั่วโมง : อาจทำงานอยู่โครงการอื่น)

4 – คำสั่งที่มีการใช้งานหลายตาราง (join) Select <filed_1 , filed_2 , … , filed_n / * > From <table_1 , table_2 , …, table_n> Where < condition-1 > ; ต้องมีการเชื่อม PK และ FK ของทั้งสองตารางเข้าด้วยกัน (Join) หากมี field ใดที่ชื่อซ้ำกันทั้งสองตาราง เมื่ออ้างถึง ต้อง ระบุชื่อตาราง ตามด้วยชื่อฟิลด์ เช่น working.emp_num หรือ employee.emp_num 23

ตัวอย่าง - คำสั่งที่มีการใช้งานหลายตาราง (join) Select employee.emp_id , emp_name , hours From employee , working Where employee.emp_id = working.emp_id ; ( แสดงข้อมูลรหัสพนักงาน ชื่อพนักงาน และชั่วโมงทำงาน เนื่องจาก ชื่อพนักงาน อยู่คนละตารางกับ ข้อมูลชั่วโมงทำงาน จึงต้องมีการ join ตารางที่มีข้อมูลเข้าด้วยกัน)

5 - คำสั่งที่มีการเรียงลำดับ Select <filed_1 , filed_2 , … , filed_n / * > From <table_1 , table_2 , …, table_n> Where < condition-1 > Order by < [asc/desc] field_2 , [asc/desc] filed_n > ; อธิบายเพิ่มเติม Filed ที่จะใช้คำสั่ง order ต้องเลือกมาก่อนแล้วจากการ select การเรียงปกติจะเรียงจากน้อยไปมาก (asc) หากต้องการเรียงตากมาไปน้อยให้ใช้ (desc) 25

ตัวอย่าง - คำสั่งที่มีการเรียงลำดับ Select employee.emp_id , emp_name , proj_num,hours From employee , working Where employee.emp_id = working.emp_id Order by employee.emp_id ; (แสดงข้อมูลรหัสพนักงาน ชื่อพนักงาน และชั่วโมงทำงาน เรียงลำดับข้อมูล ตามรหัสพนักงาน)

6 – การใช้ Operator : like Select <filed_1 , filed_2 , … , filed_n / * > From <table_1 , table_2 , …, table_n> Where <filed_1 like “%” > ; คำสั่ง like หมายถึงค่าที่คล้ายกัน โดยมีสัญญลักษ์ % เป็น wild-card ที่ใช้หมายถึงค่าใดๆก็ได้ 27

ตัวอย่าง - การใช้ Operator : like Select * from employee where emp_name like “A%” ; (แสดงข้อมูล พนักงานที่ชื่อขึ้นต้นด้วยอักษร A ) where emp_name like “%A%” ; (แสดงข้อมูล พนักงานที่ชื่อมีอักษร A )

7 – การใช้ Operator : in หรือ การทำงานแบบเซต select <filed1 , filed2 , … , filedn / * > from <Table_name> where field_i in ( value_lits) ; ในวงเล็บทางขวาของ in หมายถึง การมีค่าได้หลายค่า แต่ละค่าคั่นด้วย เครื่องหมาย , (comma) เปรียบเสมือน value_list คือ เซตหรือกลุ่มของค่าที่เราต้องการใช้เป็น เงื่อนไข หากเราใช้ Operator = ค่าทางขวาจะมีได้ค่าเดียวเท่านั้น 29

ตัวอย่าง – การใช้ Operator : in select * from employee where job in ( “Programmer” , “System Analyst”) ; (แสดงข้อมูลพนักงานที่เป็นโปรแกรมเมอร์หรือ นักวิเคราะห์ระบบ) select * from working where proj_id in ( 15 , 22 ) ; (แสดงข้อมูลการทำงานโครงการ 15 หรือ โครงการ 22 )

8 – การใช้ค่า Null ในการเก็บข้อมูล ค่า Null ไม่เท่ากับ ค่าว่าง ค่า Null คือไม่มีการเก็บค่าใดๆใน Filed นั้น การทำงานกับค่า null ต้องใช้ Operator “is” ตัวอย่างเช่น select * from employee where job is null ; (แสดงข้อมูลพนักงานที่ไม่มีหน้าที่)

9 - รูปแบบคำสั่ง : การทำงานเชิงนิเสธ 9 - รูปแบบคำสั่ง : การทำงานเชิงนิเสธ select <filed1 , … , filedn / * > from <table_name> where field_i not in ( value_lits) ; where field_i != value ; 32

ตัวอย่าง : การทำงานเชิงนิเสธ select * from working where proj_id not in ( 15 , 22) ; (แสดงข้อมูลการทำงาที่ไม่ใช่ โปรเจ็ค 15 และ 22) select * from employee where job != “Programmer” ; (แสดงข้อมูลการทำงานของพนักงานที่ไม่ใช่ Programmer)

10 - รูปแบบคำสั่ง : การทำงานแบบ sub query select <filed1 , filed2 , … , filedn / * > from <Table_name> where field_i = ( select field from table1) ; where field_i in ( select field from table1) ; 34

Sub-query การ Select ในการทำ Sub-query สามารถเลือกได้ Filed เดียวเท่านั้น สามารถเลือกใช้ Operator เชิงเซต (in) เมื่อ Sub-query ให้ผลมากกว่า 1 ค่า จะสามารถใช้ Operator เชิงเปรียบเทียบ ( = , > , < ) ได้ เมื่อ การทำ sub-query ให้ผลค่าเดียวเท่านั้น

ตัวอย่าง : การทำงานแบบ sub query select * from working where emp_id in ( select emp_id from employee where job = “Programmer”) ; (แสดงข้อมูลการทำงานของผู้ที่ทำงานหน้าที่ Programmer – ที่อาจมีหลายคน) where proj_id = ( select proj_id from project where proj_name = “โรงงานแกลงการยาง” ); (แสดงข้อมูลการทำงานของผู้ที่งานในโครงการ โรงงานแกลงการยาง – มีโครงการเดียวแน่นอน) 36

11 -รูปแบบคำสั่ง : การทำงานแบบรวม (Aggregate function) Select field-0 , [sum(field1 , count(*), min(field2) , max(field3), avg(filed4) ] From <table_name> Group by filed-0 < Having ( condition of aggregate function) > 37 37

การใช้งาน Aggregate function หากใช้ aggregate function มักต้องใช้กับ function การจัดกลุ่ม ( group by ) ทุก filed ที่ select มักจะต้องอยู่ใน group by ด้วย function count มักใช้ parameter * แทนชื่อ field เนื่องจากอาจมีค่า null อยู่ในบางรายการ aggregate function ไม่ใช่ Field ดังนั้นจึงไม่สามารถนำมาเป็นเงื่อนไขในช่วงคำสั่ง where ได้ แต่สามารถใช้เป็นเงื่อนไขในช่วงคำสั่ง Having

ตัวอย่าง การทำงานแบบรวม (Aggregate function) select job , count(*) from employee group by job ; (นับจำนวนพนักงานจัดกลุ่มตามอาชีพ) select emp_num , sum(work_hours) from working group by emp_num ; (รวมชั่วโมงทำงาน จัดกลุ่มตามรหัสพนักงาน)

ตัวอย่าง การทำงานแบบรวม (Aggregate function) (2) select proj_num , min(work_hours) , max(work_hours) from working group by proj_num ; (แสดงชั่วโมงทำงานน้อยที่สุด และมากที่สุด ชองแต่ละโครงการ)

ตัวอย่าง การทำงานแบบรวม (Aggregate function) (3) select job, count(*) from employee group by job having count(*) > 2 ; (นับจำนวนพนักงาน จัดกลุ่มตามอาชีพ เฉพาะที่มีพนักงานมากกว่า 3 คน) select emp_num , sum(work_hours) from working group by emp_num having sum(work_hours) > 20; (รวมชั่วโมงทำงาน จัดกลุ่มตามรหัสพนักงาน เฉพาะที่มีชั่วโมงการทำงานรวมมากกว่า 20 ชั่วโมง)

12 รูปแบบคำสั่งที่มีการคำนวณ Select employee.emp_num , proj_num, chg_hours , work_hours , chg_hours * work_hours From employee , working Where employee.emp_num = working.emp_num ; (แสดงข้อมูลการทำงานของพนักงานแต่ละคนในแต่ละโครงการ และค่าตอบแทนที่ได้)

13 รูปแบบคำสั่งที่มีการเปลี่ยนชื่อการแสดงผล (alias) Select employee.emp_num , proj_num, chg_hours , work_hours , chg_hours * work_hours pay From employee , working Where employee.emp_num = working.emp_num ; (แสดงข้อมูลการทำงานของพนักงานแต่ละคนในแต่ละโครงการ และค่าตอบแทนที่ได้ แสดงคอลัมน์ค่าตอบแทนคือ pay )

14 รูปแบบคำสั่งที่มีการตั้งชื่อแฝง(alias) ให้ชื่อตาราง Select e.emp_num , proj_num, chg_hours , work_hours , chg_hours * work_hours From employee e, working w Where e.emp_num = w.emp_num ; (แสดงข้อมูลการทำงานของพนักงานแต่ละคนในแต่ละโครงการ และค่าตอบแทนที่ได้)

สรุปรูปแบบคำสั่ง Select ….. From ….. Where ….. and (or) ….. Group by …. ( Having ….) Order by ….

QUESTIONS