เตรียมสอน sql อาทิตย์12 กพ

Views:
 
Category: Education
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

PowerPoint Presentation: 

Infromation Technology :UBRU 1 Structure Query Languge Page

1. SQL: 

Infromation Technology :UBRU 2 SQL (ออกเสียงว่า " ess - que - el " หรือ "ซี-เคลว") ย่อมาจาก Structured Query Language เป็นภาษามาตรฐานที่ใช้ในการติดต่อกับฐานข้อมูล คิดค้นโดยนักวิทยาศาสตร์ของ IBM ในทศวรรษ 1970 ในปัจจุบัน ANSI ( American National Standard Institute ) ได้ประกาศให้ SQL เป็นภาษามาตรฐานสำหรับระบบจัดการฐานข้อมูลเชิงสัมพันธ์ ( Relational Database Management System ย่อเป็น RDBMS ) คำสั่งของ SQL ทำงานต่างของฐานข้อมูล เช่น การปรับปรุงข้อมูล การดึงข้อมูลเพื่อแสดงผลที่ต้องการ 1. SQL

1. SQL: 

Infromation Technology :UBRU 3 ระบบฐานข้อมูลในปัจจุบัน เกือบทั้งหมดเป็นแบบระบบจัดการฐานข้อมูลเชิงสัมพันธ์ ( RDBMS ) เช่น Oracle, Sybase, Microsoft SQL Server, Microsoft Access, DB2 ของ IBM เป็นต้น ถึงแม้ว่า ฐานข้อมูลแบบ RDBMS ทุกระบบ จะสามารถใช้คำสั่งพื้นฐานของ SQL เหมือนกัน แต่ทุกระบบอาจจะมีคำสั่งพิเศษของตัวเองที่ ระบบอื่นอาจจะใช้ไม่ได้ 1. SQL

2. Relational Database: 

Infromation Technology :UBRU 4 ฐานข้อมูลเชิงสัมพันธ์ ( Relational Database ) เป็นโครงสร้างฐานข้อมูลที่สามารถกำหนดความสัมพันธ์ขึ้นเมื่อใดก็ได้โดยไม่จำเป็นต้องกำหนดไว้ตั้งแต่เริ่มต้นออกแบบฐานข้อมูล และเปลี่ยนโครงสร้างได้ง่าย ฐานข้อมูลเก็บข้อมูลและสารสนเทศในอ๊อบเจค ( Object) เรียกว่า Table Table ประกอบด้วย คอลัมน์ ( Column ) และแถวข้อมูล ( Row ) โดยคอลัมน์ประกอบด้วย ชื่อคอลัมน์ ประเภทข้อมูล และคุณสมบัติอื่นๆ (เช่น การกำหนดเป็น primary key, ค่าเริ่มต้น) แถวเก็บข้อมูลของคอลัมน์ 2. Relational Database

2. Relational Database: 

Infromation Technology :UBRU 5 2. Relational Database

SQL BASIC: 

Infromation Technology :UBRU 6 SQL BASIC การสร้าง Table การเลือกข้อมูล การปรับเปลี่ยนโครงสร้างตาราง การป้อนข้อมูลลง Table การปรับปรุงข้อมูล การลบข้อมูล การลบ Table

3. การสร้าง Table: 

Infromation Technology :UBRU 7 การสร้าง Table ใหม่ให้พิมพ์คำสั่ง CREATE TABLE ตามด้วยชื่อ Table แล้วพิมพ์เครื่องหมายวงเล็บเปิด ตามด้วยชื่อคอลัมน์ แล้วกำหนด ประเภทข้อมูล ถ้าต้องการกำหนด constraint แล้วพิมพ์เครื่องหมายจุลภาค ( , ) จากนั้นให้พิมพ์คอลัมน์อื่นต่อไป โดยแบ่งแต่ละคอลัมน์ด้วยจุลภาค จนถึงคอลัมน์สุดท้าย ให้พิมพ์ตามเครื่องหมายวงเล็บปิด ตามด้วยเครื่องหมาย semicolon ( ; ) 3. การสร้าง Table

3. การสร้าง Table: 

Infromation Technology :UBRU 8 3. การสร้าง Table CREATE TABLE <Table_name> ( ชื่อคอลัมน์ 1 ประเภทข้อมูล [ เงื่อนไข ] ชื่อคอลัมน์ 2 ประเภทข้อมูล [ เงื่อนไข ] … … … [ PRIMARY KEY ( ชื่อคอลัมน์ ,)] [ FOREIGN KEY ( ชื่อคอลัมน์ ) REFERENCES ชื่อตารางที่อ้างอิง ( ชื่ออลัมน์ )]); มีคีย์นอกกี่ตัว ให้เขียน บรรทัดนี้ เท่าจำนวนคีย์นอก

3. การสร้าง Table : ตัวอย่าง: 

Infromation Technology :UBRU 9 CREATE TABLE employee ( em_id char (6) NOT NULL UNIQUE , em_name varchar (20) NOT NULL , em_salary number , em_address varchar (100), PRIMARY KEY (em_id) ); 3. การสร้าง Table : ตัวอย่าง

4. การเลือกข้อมูล: 

Infromation Technology :UBRU 10 SELECTION statement ใช้ในการสร้างคิวรี่ หรือการสอบถามกับฐานข้อมูล และเลือกดึงข้อมูลที่ตรงกับเกณฑ์ที่กำหนด ไวยากรณ์ SELECT column1 [ , column2… ] FROM tablename [ WHERE condition ] ; 4. การเลือกข้อมูล

4. การเลือกข้อมูล: 

Infromation Technology :UBRU 11 4. การเลือกข้อมูล

4. การเลือกข้อมูล: 

Infromation Technology :UBRU 12 หมายเหตุ 1 . LIKE เป็นแบบแผนของ operator การจับคู่ สามารถใช้ใน condition ของ WJERE clause ซึ่ง LIKE เป็น operator ที่มีความสามารถสูงในการในการเลือกข้อมูล เครื่องหมายเปอร์เซ็นต์ "%" สามารถเป็น wild card ในการเลือก โดยการจับคู่ตัวอักษรไม่จำกัดที่อยู่หน้าหรือหลังตัวอักษรที่กำหนด เช่น 'R % ' ให้มีอักษร R อยู่ซ้ายสุด หรือหน้า ' % R' ให้มีอักษร R อยู่ขวาสุดหรือท้าย ' % R % ' ให้มีอักษร R อยู่ตรงกลาง 2 . SQL statement ต้องลงท้าย ประโยคคำสั่งด้วยเครื่องหมาย semi colon ( ; ) เพื่อแสดงการสิ้นสุดคำสั่ง 4. การเลือกข้อมูล

ตัวอย่าง: 

Infromation Technology :UBRU 13 ตัวอย่าง SELECT first, last, city FROM empinfo WHERE first LIKE 'Er % '; SQL statement จะจับคู่เฉพาะ first ที่ขึ้นต้นด้วย 'ER' จาก Table ชื่อ " empinfo " ข้อความหรือตัวอักษร ใน WHERE clause ต้องอยู่ในเครื่องหมาย single quote ( ' )

5. การปรับเปลี่ยนโครงสร้างตาราง: 

Infromation Technology :UBRU 14 5. การปรับเปลี่ยนโครงสร้างตาราง เพิ่มคอลัมน์ให้กับตาราง ใช้คำสั่ง ADD ALTER TABLE < ชื่อตารางที่จะเปลี่ยนแปรง > ADD < ชื่อคอลัมน์ > < ประเภทข้อมูล > ; โจทย์ >> เปลี่ยนขนาดของข้อมูลในคอลัมน์ dep_id ในตาราง employee จากขนาด 6 ตัวอักษร เป็นขนาด 5 ตัวอักษร SQL >> ALTER TABLE employee ADD dep_id char(6) ;

5. การปรับเปลี่ยนโครงสร้างตาราง: 

Infromation Technology :UBRU 15 5. การปรับเปลี่ยนโครงสร้างตาราง การลบคอลัมน์โดยใช้คำสั่ง Drop ALTER TABLE < ชื่อตารางที่ต้องการลบ > DROP < ชื่อคอลัมน์ที่ต้องการลบ > ; โจทย์ >> ลบ คอลัมน์ที่เป็นรหัสแผนก (dep_id) ในตาราง employee SQL >> ALTER TABLE employee DROP dep_id ;

5. การปรับเปลี่ยนโครงสร้างตาราง: 

Infromation Technology :UBRU 16 5. การปรับเปลี่ยนโครงสร้างตาราง การแก้ไขคอลัมน์ในตาราง (MODIFY) ALTER TABLE < ชื่อตารางที่ต้องการแก้ไข > MODIFY < ชื่อคอลัมน์ > < ประเภทของข้อมูล > ; โจทย์ >> เปลี่ยนขนาดของข้อมูลในคอลัมน์ dep_id ในตาราง employee จากขนาด 6 ตัวอักษร เป็นขนาด 5 ตัวอักษร SQL >> ALTER TABLE employee MODIFY (dep_id char(5)) ;

6. การป้อนข้อมูลลง Table: 

Infromation Technology :UBRU 17 6. การป้อนข้อมูลลง Table INSERT INTO tablename ( column1,column2 , ...) VALUES ( value1,value2 , ...) ;

6. การป้อนข้อมูลลง Table: 

Infromation Technology :UBRU 18 6. การป้อนข้อมูลลง Table การป้อนข้อมูลจาก table อื่น ตัวอย่าง ตามตัวอย่างเป็นการป้อนข้อมูลเข้าสู่ table " employee " ด้วยข้อมูลจาก table " temp_emp " INSERT INTO employee ( empid, first, last, age, dept ) SELECT empno, firstname, lastname, age, department FROM temp_emp WHERE departmant IN ( 'Sales','Account','IT' ) ;

6. การป้อนข้อมูลลง Table: 

Infromation Technology :UBRU 19 6. การป้อนข้อมูลลง Table การป้อนข้อมูลที่เป็น Date ตัวอย่าง การป้อนค่าคอลัมน์ hiredate ด้วย '25-AUG-99' INSERT INTO empid, fisrtname, lastname, hiredate, dept ) VALUE ( 1150, 'Luke', 'Duke', '25-AUG-99', 'Sales' )

7. การปรับปรุงข้อมูล: 

Infromation Technology :UBRU 20 7. การปรับปรุงข้อมูล UPDATE statement ใช้ในการปรับค่าหรือเปลี่ยนข้อมูลตามเกณฑ์ที่กำหนด ไวยากรณ์ UPDATE tablename SET columnname1 = newvalue1 [," columnname2" = "newvalue2"...] WHERE column1 OPERATOR value [ AND|OR column2 OPERATOR value ] ;

ตัวอย่าง: 

Infromation Technology :UBRU 21 ตัวอย่าง UPDATE employee SET age = age+1 WHERE first_name = 'Mary' AND last_name = 'Williams'; UPDATE phone_book SET last_name = 'Smith', prefix = 555, suffix = 9292 WHERE last_name = 'Jones';

8. การลบข้อมูล: 

Infromation Technology :UBRU 22 8. การลบข้อมูล DELETE statement เป็นคำสั่งที่ใช้การลบข้อมูล ไวยากรณ์ DELETE FROM tablename WHERE column OPERATOR value [ AND|OR column OPERATOR value ];

ตัวอย่าง: 

Infromation Technology :UBRU 23 ตัวอย่าง DELETE FROM employee; NOTE : ถ้าใช้คำสั่ง DELETE statement โดยไม่มี WHERE clause จะเป็นการลบข้อมูลทั้งหมดใน Table DELETE FROM employee WHERE lastname = 'May'; DELETE FROM employee WHERE firstname = 'Mike' or firstname = 'Eric'; การลบเป็นการลบแถวข้อมูลออกจาก Table ให้ป้อนคำสั่ง DELETE FROM ตามด้วย ชื่อ Table ตามด้วย WHERE และเงื่อนไขในการลบไข ถ้ามีหลายเงื่อนไขให้เชื่อมด้วย AND หรือ OR แล้วปิดท้ายคำสั่งด้วยเครื่องหมาย semicolon ( ; )

9. การลบ Table: 

Infromation Technology :UBRU 24 9. การลบ Table การลบ Table DROP statement ที่ใช้ในการลบ Table หรือยกเลิก ไวยากรณ์ DROP TABLE tablename ; ตัวอย่าง DROP TABLE employee; การลบ Table ให้พิมพ์คำสั่ง DROP TABLE ตามชื่อ Table ที่ต้องการลบแล้วปิดท้ายคำสั่งด้วยเครื่องหมาย semicolon ( ; )

SQL QUERY : SELECT Statement : 

Infromation Technology :UBRU 25 SQL QUERY : SELECT Statement ประโยคคำสั่ง SELECT ได้รับการนำไปใช้ในการค้นหาข้อมูลในฐานข้อมูล และดึงข้อมูลที่เลือกตรงตามเกณฑ์ที่กำหนด ประโยคคำสั่ง SELECT มี 5 clause ให้เลือกใช้ แต่มีเฉพาะ FROM เป็น clause บังคับ แต่ละ clause มีตัวเลือก พารามิเตอร์ เป็นต้น ให้เลือก

SQL QUERY : SELECT Statement: 

Infromation Technology :UBRU 26 SQL QUERY : SELECT Statement ไวยากรณ์ ประโยคคำสั่ง SELECT SELECT [ ALL | DISTINCT ] column1 [ ,column2 ] FROM table1[,table2] [ WHERE conditions ] [ GROUP BY column - list ] [ HAVING conditions ] [ ORDER BY column - list [ ASC | DESC ] ] ;

SQL QUERY : SELECT Statement: 

Infromation Technology :UBRU 27 SQL QUERY : SELECT Statement ตัวอย่าง SELECT name, age, salary FROM employee WHERE age > 50; ประโยคคำสั่งนี้จะเลือกค่าทั้งหมดในคอลัมน์ name, age และ salary จาก table “employee ที่ age มีค่ามากกว่า 50 NOTE : ต้องมีเครื่องหมาย semicolon ( ; ) ปิดท้ายประโยค เพื่อชี้ว่าประโยคคำสั่ง SQL จบสมบูรณ์และพร้อมที่จะแปล

SQL QUERY : SELECT Statement: 

Infromation Technology :UBRU 28 SQL QUERY : SELECT Statement

SQL QUERY : SELECT Statement: 

Infromation Technology :UBRU 29 SQL QUERY : SELECT Statement ตัวอย่าง SELECT name, title, dept FROM employee WHERE title LIKE 'Pro % '; ประโยคคำสั่งข้างบนจะเลือก แถว/ค่า ในคอลัมน์ name, title และ dept จาก table “employee” ที่มี title เริ่มต้นด้วย ‘Pro’ ซึ่งจะส่งตำแหน่งงานของ Programmer หรือตำแหน่งอื่นที่ขึ้นต้นด้วย Pro ออกมา

SQL QUERY : SELECT Statement: 

Infromation Technology :UBRU 30 SQL QUERY : SELECT Statement ตัวอย่าง SELECT name, title, dept FROM employee WHERE title = NULL; ประโยคคำสั่งข้างบนจะเลือก แถว/ค่า ในคอลัมน์ name, title และ dept จาก table “employee” ที่มี title ไม่ใช่ค่าว่าง

SQL QUERY : SELECT Statement: 

Infromation Technology :UBRU 31 SQL QUERY : SELECT Statement ALL และ DISTINCT เป็นคีย์เวิร์ดที่ใช้ในการควบคุมเลือกข้อมูลให้แสดง ทั้งหมด ( ALL ) หรือเฉพาะเรคคอร์ดแบบไม่ซ้ำ ( DISTINCT ) ในคิวรี่ ถ้าต้องการดึงเฉพาะเรคคอร์ดในคอลัมน์ที่ระบุแบบไม่ซ้ำให้ใช้คีย์เวิร์ด DISTINCT โดย DISTINCT จะคัดเรคคอร์ดซ้ำออกไปสำหรับคอลัมน์ที่ระบุ หลังจากประโยคคำสั่ง ตัวอย่าง SELECT DISTINCT age FROM employee; ประโยคคำสั่งนี้ส่งออกค่า age ที่ไม่ซ้ำกันจาก table “employee” ]

SQL QUERY :Group By: 

Infromation Technology :UBRU 32 SQL QUERY :Group By ไวยากรณ์ GROUP BY clause SELECT column1 , SUM( column2 ) FROM list - of - tables GROUP BY column-list ; GROUP BY clause ใช้หาผลรวมของคอลัมน์จากแถวในคอลัมน์ที่ระบุ และทำงานร่วมกับ aggregate function ที่ทำงานกับคอลัมน์ 1 คอลัมน์หรือมากกว่า เพื่อหาผลรวมของกลุ่มของแถวข้อมูล SELECT max ( salary ) , dept FROM employee GROUP BY dept; ประโยคคำสั่งนี้จะเลือกค่า salary มากที่สุด ในแต่ละฝ่าย

SQL QUERY :Group By: 

Infromation Technology :UBRU 33 SQL QUERY :Group By ตัวอย่าง การจัดกลุ่มภายในคอลัมน์ เช่น table ‘item_order’ มีคอลัมน์ quantity ที่เก็บค่า 1, 2, 3 และอื่นๆ โดยต้องการหาค่าราคาสูงสุดของละค่าใน quantity สามารถเขียนคำสั่งได้ดังนี้ SELECT quantity, max ( price ) FROM items_ordered GROUP BY quantity;

SQL QUERY : Having: 

Infromation Technology :UBRU 34 SQL QUERY : Having ไวยากรณ์ HAVING clause SELECT column1 , SUM( column2 ) FROM list - of - tables GROUP BY column-list HAVING condition ; HAVING clause ยินยอมให้ระบุเงื่อนไขบนแถวของแต่ละกลุ่ม หรือสามารถเลือกแถวตามเงื่อนไขที่ระบุ HAVING clause ควรตามหลัง GROUP BY clause

SQL QUERY : Having: 

Infromation Technology :UBRU 35 SQL QUERY : Having ตัวอย่าง สมมติให้ table “employee” มีคอลัมน์เก็บข้อมูล ชื่อ ( name ) , ฝ่าย ( dept ) , เงินเดือน ( salary ) และ อายุ ( age ) ถ้าต้องการเลือกค่าเฉลี่ยเงินเดือนของพนักงานในแต่ละฝ่าย สามารถใช้คำสั่งนี้ SELECT dept, avg ( salary ) FROM employee GROUP BY dept;

SQL QUERY : Having: 

Infromation Technology :UBRU 36 SQL QUERY : Having ตัวอย่าง ถ้าต้องการคำนวณและแสดงข้อมูลเฉพาะค่าเฉลี่ยของพนักงาน ที่มีเงินเดือนมากกว่า 20,000 SELECT dept, avg ( salary ) FROM employee GROUP BY dept HAVING avg ( salary ) > 20000;

SQL QUERY : Order By: 

Infromation Technology :UBRU 37 SQL QUERY : Order By ORDER BY ไวยากรณ์ ORDER BY clause SELECT column1 , SUM( column2 ) FROM list - of - tables ORDER BY olumn - list [ ASC | DESC ] ; [ ] ตัวเลือก ORDER BY clause เป็น clause ตัวเลือกซึ่งยินยอมให้แสดงผลลัพธ์ของคิวรี่ที่เรียงลำดับ (ทั้งเรียงลำดับจากน้อยไปมาก หรือ จากมากไปน้อย) ตามคอลัมน์ที่ระบุให้เรียงลำดับ ASC = Ascending order (เรียงลำดับจากน้อยไปมาก) - เป็นค่าเริ่มต้น DESC = Descending order (เรียงลำดับจากมากไปน้อย)

SQL QUERY : Order By: 

Infromation Technology :UBRU 38 SQL QUERY : Order By ตัวอย่าง SELECT employee_id, dept, name, age, salary FROM employee WHERE dept = 'Sales' ORDER BY salary; ประโยคคำสั่งนี้จะเลือก employee_id, dept, name, age และ salary จาก table “employee” ที่ค่า dept เท่ากับ ‘Sales’ และแสดงผลลัพธ์ในลำดับจากน้อยไปมากตาม salary

SQL QUERY : Order By: 

Infromation Technology :UBRU 39 SQL QUERY : Order By ถ้าต้องการเรียงลำดับแบบหลายคอลัมน์ ต้องแยกคอลัมน์ด้วยเครื่องหมายจุลภาค SELECT employee_id, dept, name, age, salary FROM employee WHERE dept = 'Sales' ORDER BY salary, age DESC;

SQL QUERY : การรวมเงื่อนไข และ Boolean Operator: 

Infromation Technology :UBRU 40 SQL QUERY : การรวมเงื่อนไข และ Boolean Operator การรวมเงื่อนไข และ Boolean Operator AND operator AND operator ใช้เชื่อม 2 เงื่อนไข หรือมากกว่าและแสดงผลลัพธ์เฉพาะที่สอดคล้องกับเงื่อนไขที่กำหนดทั้งหมด ไวยากรณ์ AND operator SELECT column1 , SUM( column2 ) FROM list - of - tables WHERE condition1 AND condition2 ; AND สามารถใช้เชื่อมเงื่อนไขใน WHERE clause ตั้งแต่ 2 เงื่อนไขขึ้นไป โดยการแสดงแถวข้อมูลตามเงื่อนไขต้องเป็นจริงทุกค่า

SQL QUERY : การรวมเงื่อนไข และ Boolean Operator: 

Infromation Technology :UBRU 41 SQL QUERY : การรวมเงื่อนไข และ Boolean Operator ตัวอย่าง SELECT employee_id, name, title, salary FROM employee WHERE salary > = 50000.00 AND title = 'Programmer'; ประโยคคำสั่งนี้แสดงข้อมูล employee_id, name, title และ salary จาก table “employee” ที่เงินเดือน ( salary ) มากกว่าหรือเท่ากับ 50,000 และ ตำแหน่ง ( title ) เท่ากับ Programmer’ ซึ่งข้อมูลสามารถแสดงออกมา เมื่อเงื่อนไขทั้งสองเป็นจริง ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริงจะไม่แสดงออกมา

SQL QUERY : OR operator: 

Infromation Technology :UBRU 42 SQL QUERY : OR operator OR operator OR operator ใช้เชื่อม 2 เงื่อนไข หรือมากกว่าและแสดงผลลัพธ์เมื่อข้อมูลสอดคล้องกับเงื่อนไขใดเงื่อนไขจากเงื่อนไขที่กำหนดทั้งหมด ไวยากรณ์ OR operator SELECT column1 , SUM( column2 ) FROM list - of - tables WHERE condition1 OR condition2 ; OR สามารถใช้เชื่อมเงื่อนไขใน WHERE clause ตั้งแต่ 2 เงื่อนไขขึ้นไป โดยสามารถแสดงแถวข้อมูล เมื่อข้อมูลมีเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง หรือทุกเงื่อนไขเป็นจริง

SQL QUERY : OR operator: 

Infromation Technology :UBRU 43 SQL QUERY : OR operator ตัวอย่าง SELECT employee_id, name, title, salary FROM employee WHERE ( title = 'Sales' ) OR ( title = 'Programmer' ) ; ประโยคคำสั่งนี้จะเลือก employee_id, name, title และ salary จาก table “employee” โดยตำแหน่ง ( title ) เท่ากับ ‘Sales’ หรือตำแหน่ง เท่ากับ ‘Programmer’ หมายเหตุ การเขียนเงื่อนไขในวงเล็บช่วยให้การอ่านคำสั่งง่ายขึ้น

SQL QUERY : IN และ BETWEEN: 

Infromation Technology :UBRU 44 SQL QUERY : IN และ BETWEEN IN และ BETWEEN IN และ BETWEEN ใช้กับการกำหนดหลายเงื่อนไขได้ดี IN ไวยากรณ์ IN conditional operator SELECT column1 , SUM( column2 ) FROM list - of - tables WHERE column3 IN ( list - of - values ) ; IN เป็น operator ที่ใช้ทดสอบข้อมูลกับชุดของสมาชิก โดยทดสอบว่าค่าในคอลัมน์ (ที่ระบุก่อนคีย์เวิร์ด IN ) อยู่ในรายการของค่าที่กำหนดให้หลังคีย์เวิร์ด IN

SQL QUERY : IN และ BETWEEN: 

Infromation Technology :UBRU 45 SQL QUERY : IN และ BETWEEN ตัวอย่าง SELECT employee_id, name, salary FROM employee WHERE name IN ( 'Somchai', 'Sompong', 'Wanchai', 'Pornchai' ) ; ประโยคคำสั่งนี้แสดงข้อมูล employee_id, name และ salary จาก table “employee” เฉพาะชื่อ ( name ) เป็นชื่อใดชื่อหนึ่งของ 'Somchai', 'Sompong', 'Wanchai', 'Pornchai' ผลลัพธ์แสดงแถวข้อมูลจากการส่งออกค่าใดค่าหนึ่งในค่าเหล่านี้

SQL QUERY : IN และ BETWEEN: 

Infromation Technology :UBRU 46 SQL QUERY : IN และ BETWEEN IN สามารถเขียนในรูปของ OR ได้ดังนี้ SELECT employee_id, name, salary FROM employee WHERE ( name = 'Somchai' ) OR ( name = 'Sompong ' ) OR ( name = ' Wanchai' ) OR ( name = 'Pornchai' ) ; NOT IN สามารถใช้ดึงข้อมูลที่ภายนอกค่าของ IN SELECT employee_id, name, salary FROM employee WHERE name NOT IN ( 'Somchai', 'Sompong', 'Wanchai', 'Pornchai' ) ;

SQL QUERY : IN และ BETWEEN: 

Infromation Technology :UBRU 47 SQL QUERY : IN และ BETWEEN BETWEEN ไวยากรณ์ BETWEEN conditional operator SELECT column1 , SUM( column2 ) FROM list - of - tables WHERE column3 BETWEEN value1 AND value2 ; BETWEEN ใช้ทอสอบค่า (ที่ระบุก่อนคีย์เวิร์ด BETWEEN ) อยู่ภายในช่วงของค่า 2 ค่าที่ระบุหลังคีย์เวิร์ด BETWEEN

SQL QUERY : IN และ BETWEEN: 

Infromation Technology :UBRU 48 SQL QUERY : IN และ BETWEEN ตัวอย่าง SELECT employee_id, age, name, salary FROM employee WHERE age BETWEEN 30 AND 40; ประโยคคำสั่งนี้เลือก employee_id, age, name และ salary จาก table “employee” ที่ age อยู่ระหว่าง 30 ถึง 40 เขียนประโยคคำสั่งใหม่โดยไม่ใช่ BETWEEN SELECT employee_id, age, name, salary FROM employee WHERE age > = 30 AND age < = 40; NOT BETWEEN สามารถใช้ดึงข้อมูลที่ภายนอกค่าของ BETWEEN SELECT employee_id, age, name, salary FROM employee WHERE age NOT BETWEEN 30 AND 40;

Aggregate Function : 

Infromation Technology :UBRU 49 Aggregate Function aggregate function ใช้คำนวณเทียบกับการส่งออกคอลัมน์ของข้อมูลตัวเลขจากประโยคคำสั่ง SELECT ฟังก์ชันกลุ่มนี้ใช้หาผลรวมพื้นฐานของคอลัมน์ที่เจาะจงจากข้อมูลที่เลือกมา การทำงานของฟังก์ชันต้องใช้ GROUP BY clause เพื่อครอบคลุมการทำงาน แต่ฟังก์ชันสามารถใช้ได้โดยไม่มี GROUP BY clause ตัวอย่าง SELECT AVG ( salary ) FROM employee; ประโยคคำสั่งจะส่งออกผลลัพธ์ที่เก็บค่าเฉลี่ยของทุกข้อมูลที่ส่งออกมาในคอลัมน์ salary จาก table “employee”

Aggregate Function : 

Infromation Technology :UBRU 50 Aggregate Function ตัวอย่าง SELECT AVG ( salary ) FROM employee; WHERE title = 'Programmer'; ประโยคคำสั่งจะส่งออกผลลัพธ์ที่เก็บค่าเฉลี่ยเงินเดือน ( salary ) ของพนักงานที่มีตำแหน่ง ( title ) เป็น ‘Programmer’ ตัวอย่าง SELECT Count (*) FROM employee; ประโยคคำสั่งนี้แตกต่างจากฟังก์ชันอื่น เพราะไม่ต้องระบุคอลัมน์ให้ฟังก์ชัน COUNT (*) ผลลัพธ์ของคำสั่ง คือ การส่งออกจำนวนแถวใน table “employee”

JOIN: 

Infromation Technology :UBRU 51 JOIN JOIN การค้นหาและเลือกข้อมูลตามหัวข้อที่ผ่านมาเป็นการทำงานกับ table เดียว ในขณะที่การทำงานจริงต้องมีการเลือกข้อมูลจากหลาย table เพื่อแสดงสารสนเทศที่ต้องการได้ เนื่องจากหลักการพื้นฐานของ Relational Database System ให้ออกแบบการจัดเก็บข้อมูลในแต่ละ table สำหรับ entity เดียว เพื่อขจัดการเก็บข้อมูลที่ซ้ำซ้อน แล้วใช้ความสัมพันธ์ของ table แสดงผลเป็นสารสนเทศที่ต้องการ JOIN สามารถรับรู้ในประโยคคำสั่ง SQL ถ้ามี table มากกว่า 1 table หลังคีย์เวิร์ด FROM

JOIN: 

Infromation Technology :UBRU 52 JOIN ไวยากรณ์ SELECT list - of - columns FROM table1,table2 , .. WHERE search - condition1 = search - condition2 , ..

JOIN: 

Infromation Technology :UBRU 53 JOIN สมมติว่า ในการเก็บข้อมูลการซื้อสินค้า ประกอบด้วย 3 table คือ 1 . customer_info เก็บรายละเอียดของลูกค้า 2 . purchase_order เก็บรายละเอียดรายการสั่งซื้อ

Key: 

Infromation Technology :UBRU 54 Key Key ในการเชื่อม table ของ SQL มีส่วนสำคัญที่เกี่ยวข้อง คือ Key ซึ่งมีแนวคิด ดังนี้ primary key เป็นคอลัมน์หรือชุดของคอลัมน์ที่ระบุแบบไม่ซ้ำ ตัวอย่างเช่น table “customer_info” มีคอลัมน์ customer_number เป็นคอลัมน์ที่ระบุแบบไม่ซ้ำของ ซึ่งมีความหมาย 2 อย่าง คือ ประการแรก ไม่มีข้อมูล 2 แถวสามารถมี customer_number เดียวกัน ถึงแม้ว่า 2 customer_number มีชื่อแรกและชื่อหลังเหมือนกัน ประการที่ 2 คอลัมน์ customer_number ทำให้มั่นใจว่าลูกค้า 2 รายนี้ไม่มีความสับสนต่อกัน เพราะการค้นหาข้อมูลใช้คอลัมน์ customer_number แทนการใช้ชื่อ

Key: 

Infromation Technology :UBRU 55 Key foreign key เป็นคอลัมน์ใน table ที่ primary key อยู่ table อื่น ซึ่งหมายความว่า ข้อมูลในคอลัมน์ foreign key ต้องตรงกับข้อมูลของ primary key ใน table อื่น ใน RDBMS ข้อมูลที่ตรงกัน รู้จักในฐานะ Reference Integrity ตัวอย่างเช่น table “purchases” มีคอลัมน์ customer_number เป็น foreign key โดยมี primary key อยู่ใน table “customer_info”

INNER JOIN ซึ่งเป็นประเภทการเชื่อมปกติ : 

Infromation Technology :UBRU 56 INNER JOIN ซึ่งเป็นประเภทการเชื่อมปกติ ตัวอย่าง SELECT customer_info . firstname, customer_info . lastname, purchases . item FROM customer_info, purchases WHERE customer_info . customer_number = purchases . customer_number; ประโยคคำสั่งนี้ แสดงผลลัพธ์ของคอลัมน์ firstname และ lastname จาก table “customer_info” และคอลัมน์ item จาก table “purchases” โดยเชื่อมระหว่าง table ด้วยคอลัมน์ customer_number ของ 2 table Notice : แต่ละคอลัมน์นำหน้าด้วย ชื่อ table และจุด ซึ่งไม่มีความจำเป็นในทุกกรณี แต่จำเป็นถ้าคอลัมน์ที่เรียกมีอยู่ใน 2 table การเขียนด้วยรูปแบบนี้เป็นแบบแผนการเขียนที่ดีในการป้องกันความสับสนในเรื่องที่มาของคอลัมน์และ table

INNER JOIN ซึ่งเป็นประเภทการเชื่อมปกติ : 

Infromation Technology :UBRU 57 INNER JOIN ซึ่งเป็นประเภทการเชื่อมปกติ การเขียนคำสั่งตามมาตรฐานไวยากรณ์ ANSI SQL-92 SELECT customer_info . firstname, customer_info . lastname, purchases . item FROM customer_info INNER JOIN purchases ON customer_info . customer_number = purchases . customer_number; ตัวอย่าง SELECT employee . employee_id, employee . lastname, employee_sales . comission FROM employee, employee_sales WHERE employee . employeeid = employee_sales . employeeid; ประโยคคำสั่งนี้เลือก employee_id และ lastname จาก table “employee” และ comission จาก table “employee_sales” สำหรับทุกแถวที่ employee_id ใน table “employee” ตรงกับ employee_id ใน table “employee_sales”

OUTER JOIN : 

Infromation Technology :UBRU 58 OUTER JOIN OUTER JOIN เป็นการเชื่อม table ที่ต้องการแสดงข้อมูลจาก table นั้น โดยค่าที่ใช้เชื่อมไม่จำเป็นต้องมีค่าเท่ากับอีก table หนึ่ง การเขียนคำสั่งให้ใช้ (+) หน้าข้อมูลที่ต้องการแสดงรายการออกมา และจะแสดงค่าว่างสำหรับกรณีที่ไม่มีข้อมูล SELECT cloumn1, column2 ,.. FROM table1, table2 WHERE table1 . column1 (+) = table2 . column2 ; NOTE : เป็นการแสดงข้อมูลทั้งหมดของ table2 ตัวอย่าง สมมติมี 2 table คือ Employee และ Department

OUTER JOIN: 

Infromation Technology :UBRU 59 OUTER JOIN สามารถเขียนได้ดังนี้ SELECT E . Name, D . Dept FROM Employee E, Department D WHERE E . Dept (+) = D . Dept;

OUTER JOIN: 

Infromation Technology :UBRU 60 OUTER JOIN Microsoft มีมาตรฐานการเขียน OUTER JOIN ซึ่งสามารถใช้กับ Microsoft Access, Visual Basic เป็นต้น LEFT JOIN ใช้สำหรับการแสดงเรคคอร์ดของ table แรกทั้งหมดถึงแม้จะมีเรคคอร์ดของ table แรกมีค่าของฟิลด์ที่ไม่ตรงกับฟิลด์เชื่อมของ table ที่สอง

OUTER JOIN: 

Infromation Technology :UBRU 61 OUTER JOIN ไวยากรณ์ OUTER JOIN 1 สำหรับการเชื่อมตาม ด้านซ้ายของความสัมพันธ์ SELECT list - of - columns FROM table1,table2 , .. LEFT JOIN table1 ON table1 . column1 = table2 . column2 RIGHT JOIN ใช้สำหรับการแสดงเรคคอร์ดของ table ที่สองทั้งหมด ถึงแม้ว่าจะมีเรคคอร์ดของ table ที่สองมีค่าของฟิลด์ที่ไม่ตรงกับฟิลด์เชื่อมของ table แรก ไวยากรณ์ OUTER JOIN 2 สำหรับการเชื่อมตาม ด้านขวาของความสัมพันธ์ SELECT list - of - columns FROM table1,table2 , .. RIGHT JOIN table2 ON table1 . column1 = table2 . column2

OUTER JOIN: 

Infromation Technology :UBRU 62 OUTER JOIN จากตัวอย่าง ฐานข้อมูล Access สามารถเขียนได้ดังนี้ SELECT Employee . Name, Department . Dept FROM Department LEFT JOIN Employee ON Department . Dept = Employee . Dept;

Sub Query: 

Infromation Technology :UBRU 63 Sub Query Sub Query และ UNION Sub Queries คิวรี่ย่อย ( sub queries ) หมายถึง การสร้างประโยคคำสั่ง SELECT ภายในอีก ประโยคคำสั่ง SELECT หนึ่ง ซึ่งมักจะใช้ใน WHERE clause เช่น การเลือกลูกค้าที่ซื้อสินค้าแพงกว่าค่าเฉลี่ย 100 SELECT customer_number FROM purchases WHERE price > ( SELECT avg ( price ) + 100 FROM purchases ) ; คิวรี่ย่อยคำนวณค่าเฉลี่ยของ price แล้วบวก 100 และใช้เป็นค่าอ้างอิง โดยการแสดง customer_number ที่มีค่า price มากกว่าค่าคำนวณจากคิวรี่ย่อย

UNION : 

Infromation Technology :UBRU 64 UNION UNION UNION เป็นการนำหลายคิวรี่ ให้มาแสดงผลเป็นคิวรี่เดียวที่ใช้คอลัมน์ร่วมกัน SELECT list - of - column FROM table1 UNION SELECT list - of - column FROM table2 . . . UNION SELECT list - of - column FROM tablen [ ORDER BY columnname ] ;

UNION : 

Infromation Technology :UBRU 65 UNION ตัวอย่าง SELECT name, phone FROM employee UNION SELECT lastname, phone FROM customer_info; ประโยคคำสั่งนี้เลือก name, phone จาก table “employyee” และ lastname, phone จาก table “customer_info” เพื่อแสดงผลคอลัมน์ name เป็นรายชื่อของพนักงานและลูกค้า ส่วนคอลัมน์ phone แสดงหมายเลขโทรศัพท์ของพนักงานและลูกค้า

PowerPoint Presentation: 

Infromation Technology :UBRU 66 The End