introduction to sql/400 · อาจเป ุนบคคลที่ปฏิบัติ...

41
บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน) INTRODUCTION to SQL/400 หลักสูตร Introduction to SQL/400 เปนหลักสูตรสําหรับบุคคลที่มีความสนใจในการทีจะไดรับความรูความเขาใจพื้นฐานของ Interactive Structure Query Language (Interactive SQL) บนเครื่อง AS/400 ศึกษาวิธีการสราง และการจัดการของขอมูลตาง โดยการใช SQL/400 บุคคลหรือผูเขารับการอบรม อาจเปนบุคคลที่ปฏิบัติงานในหนวยงานคอมพิวเตอร เชน โปรแกรมเมอร , ผูวางระบบคอมพิวเตอร (System Programmer), ผูควบคุมระบบ (System Administrators), ผูจัดการฝายปฏิบัติการ (Operations Managers), ผูจัด การฝายสารสนเทศ (MIS Manager) หรือบุคคลที่มีความสนใจในหลักสูตรนีสิ่งที่ควรตองทราบมากอนที่จะ ศึกษาหลักสูตรนีคือ ผูที่มีความรูพื้นฐานของการใช หรือคําสั่ง (Command) ตาง บนเครื่อง AS/400 และ ความเขาใจพื้นฐานในเรื่องของฐานขอมูลมาบางพอสมควร เนื้อหาของหลักสูตรประกอบดวยเนื้อหาตาง 6 สวนดวยกันคือ 1. An Overview of SQL (เนื้อหาความรู ทั่ว ไปเกี่ยวกับ SQL) - Introduction to SQL/400 เนื้อหาเปนความรูทั่ว ไปเกี่ยวกับ SQL/400 เชน ความหมายของ SQL รูปแบบการใชคําสั่งSQL และสวนประกอบหลักของ SQL/400 - The Sample Relational Database กลาวถึง ระบบฐานขอมูลเชิงสัมพันธฐานขอมูล คําศัพทที่ใช เปรียบเทียบระหวาง System Term และ SQL Term - Interactive SQL กลาวถึง การทํางานของ SQL แบบ Interactive SQL โดยใชคําสั่ง STRSQL ฟงกชันการใชงานบน SQL Statement 2. Database Structure (โครงสรางของฐานขอมูล) - SQL Language กลาวถึง ภาษาของ SQL เชน ภาษาของการนิยามขอมูล ภาษาการใชขอมูล ภาษา การควบคุมขอมูล - Create Collection กลาวถึง การสราง Collection ในระบบหรือการสราง Library - Create Table กลาวถึง การสราง Table ในระบบ 3. Retrieving Data (การนําฐานขอมูลมาใชงาน) - Select Statement กลาวถึง การเรียกดูขอมูลโดยใชคําสั่ง SELECT โดยใชโอเปอเรเตอรตาง การ เรียกดูขอมูลโดยใช Function การรวม การเรียกดูขอมูลโดยใช Group By, Having 4. Updating Data (การเปลี่ยนแปลงฐานขอมูล) - Modify Data From Database การแกไขขอมูลโดยการเพิ่มขอมูลลงในตาราง (INSERT) การแกไขขอมูล (UDATE) การลบขอมูล (DELETE) 5. Other SQL Function (ฟงกชันการทํางานอื่น ) - View, Index, Catalog การสราง View, การสราง INDEX, การเรียกดูขอมูลโดยใช Catalog

Upload: others

Post on 25-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

INTRODUCTION to SQL/400

หลักสูตร Introduction to SQL/400 เปนหลักสูตรสําหรับบุคคลที่มีความสนใจในการที่ จะไดรับความรูความเขาใจพืน้ฐานของ Interactive Structure Query Language (Interactive SQL) บนเครื่อง AS/400 ศึกษาวิธีการสราง และการจัดการของขอมูลตาง ๆ โดยการใช SQL/400 บุคคลหรือผูเขารับการอบรมอาจเปนบุคคลที่ปฏิบัติงานในหนวยงานคอมพิวเตอร เชน โปรแกรมเมอร , ผูวางระบบคอมพิวเตอร (System Programmer), ผูควบคุมระบบ (System Administrators), ผูจัดการฝายปฏิบัติการ (Operations Managers), ผูจัดการฝายสารสนเทศ (MIS Manager) หรือบคุคลที่มีความสนใจในหลักสูตรนี้ ส่ิงที่ควรตองทราบมากอนที่จะศึกษาหลักสูตรนี้ คือ ผูที่มีความรูพื้นฐานของการใช หรือคําส่ัง (Command) ตาง ๆ บนเครื่อง AS/400 และความเขาใจพืน้ฐานในเรื่องของฐานขอมูลมาบางพอสมควร เนื้อหาของหลักสูตรประกอบดวยเนือ้หาตาง ๆ 6 สวนดวยกันคอื 1. An Overview of SQL (เนื้อหาความรูท่ัว ๆ ไปเกี่ยวกับ SQL)

- Introduction to SQL/400 เนื้อหาเปนความรูทั่ว ๆ ไปเกี่ยวกับ SQL/400 เชน ความหมายของ SQL รูปแบบการใชคําส่ังSQL และสวนประกอบหลักของ SQL/400

- The Sample Relational Database กลาวถึง ระบบฐานขอมูลเชิงสัมพันธฐานขอมูล คําศัพทที่ใชเปรียบเทียบระหวาง System Term และ SQL Term

- Interactive SQL กลาวถึง การทํางานของ SQL แบบ Interactive SQL โดยใชคําส่ัง STRSQL ฟงกชันการใชงานบน SQL Statement 2. Database Structure (โครงสรางของฐานขอมูล)

- SQL Language กลาวถึง ภาษาของ SQL เชน ภาษาของการนิยามขอมูล ภาษาการใชขอมูล ภาษาการควบคุมขอมูล

- Create Collection กลาวถึง การสราง Collection ในระบบหรือการสราง Library - Create Table กลาวถึง การสราง Table ในระบบ

3. Retrieving Data (การนําฐานขอมูลมาใชงาน) - Select Statement กลาวถึง การเรียกดูขอมูลโดยใชคําส่ัง SELECT โดยใชโอเปอเรเตอรตาง ๆ การ

เรียกดูขอมูลโดยใช Function การรวม การเรียกดูขอมูลโดยใช Group By, Having 4. Updating Data (การเปล่ียนแปลงฐานขอมูล)

- Modify Data From Database การแกไขขอมูลโดยการเพิ่มขอมูลลงในตาราง (INSERT) การแกไขขอมูล (UDATE) การลบขอมูล (DELETE) 5. Other SQL Function (ฟงกชันการทํางานอื่น ๆ)

- View, Index, Catalog การสราง View, การสราง INDEX, การเรียกดขูอมูลโดยใช Catalog

Page 2: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

6. Summary Questions (แบบสอบถาม) - Questions แบบสอบถามรวมทั้ง 5 Section

SQL คืออะไร?

SQL ยอมาจากคําวา Structure Query Language เปนภาษาที่ใชในการจัดการขอมูลของฐานขอมูลเชิงสัมพันธ (Relational Database) ผูคิดคนSQL เปนรายแรกคือ บริษัท IBM หลังจากนัน้มามีบริษัทผูผลิต ซอฟแวรมากขึ้นจนเปนที่นยิมใชกันแพรหลายในปจจบุัน ซ่ึงรูปแบบของคําส่ังที่ใชจะแตกตางกัน ไปใน แตละภาษา เชน ORACLE, ACCESSS, SQLBASE, SQL SERVER ของ Microsoft เปนตน ฐานขอมูลเชิงสัมพันธ ( Relational Database)

เปนฐานขอมูลที่นิยมใชกันในปจจุบัน เนื่องจากเปนฐานขอมูลที่เขาใจงาย ไมซับซอน ขอมูลถูกจัดเก็บในลักษณะตารางสองมิติ คือเปนแถว (Row) และ คอลัมน(Column) ดวยเหตุนี ้ระบบการจัดการ ฐานขอมูล จึงเปนที่นิยมใชกันในปจจุบัน เชน DB2,ORACLE, ACCESS เปนตน ประโยชนของ SQL

SQL เปนภาษาเกี่ยวกับการจดัการฐานขอมูล ซ่ึงระบบการจัดการฐานขอมูลเรียกวา DBMS (Database Management System) การที่จะมีการจดัการระบบฐานขอมูลที่ดีจะตองประกอบดวยภาษา 3 สวนดงัตอไปนี ้1. ภาษาสาํหรับการนิยามขอมูล (Data Definition Language: DDL) ประกอบดวยคําส่ังที่ใชในการกาํหนดโครงสรางของขอมูลวามีคอลัมนอะไร แตละคอลัมนมีขอมูลประเภทใด 2. ภาษาสาํหรับการจัดการขอมูล (Data Manipulation Language: DML) ประกอบดวยคําส่ังที่ใชสําหรับการเรียกใชขอมูล การเปลี่ยนแปลงขอมูล การเพิ่มขอมูล และการลบขอมูลเปนตน 3. ภาษาที่ใชในการควบคุมขอมูล (Data Control Language: DCL) ประกอบดวยคําสั่งที่ใชในการควบคุม ความปลอดภัยของขอมูล ดวยการใหสิทธผูใชแตกตางกัน รูปแบบการใชคําสั่ง SQL การทํางานบนเครื่อง AS/400 สามารถใชคําส่ัง SQL ได 2 รูปแบบ 1. Interactive SQL เปนการนําคําส่ังมาใชงานในลักษณะที่มีการโตตอบกันบนจอภาพไดโดยตรงขณะที่ทํางาน 2. Embedded SQL เปนการนําคําส่ังใน SQL ไปใชรวมกับคําส่ังในภาษาโปรแกรมอืน่เชน RPG, COBOL, PASCAL, PL/I เปนตน

สวนประกอบหลักของ SQL/400 SQL Concept)

Page 3: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

1. SQL Run-time support SQL/400 จะเปนสวนหนึ่งของระบบปฏิบัติการ(Operating System) สามารถใชในโปรแกรมได ผูใชไมตองซื้อ SQL/400 มาลงบนเครื่อง 2. Interactive Interface เปนลักษณะการติดตอกับผูใชแบบโตตอบกนัซึ่งสามารถเรียกดูขอมูลและทํางานจากฐานขอมูลไดโดยตรงในขณะทํางาน 3. Precompilers SQL สามารถใช คําส่ังรวมกับภาษาอืน่ ๆ ได ซ่ึงในสวนของคําส่ัง SQLจะถูก Compile ทําใหเกิดเปน Object กอนโปรแกรมภาษาอื่น ๆ ระบบฐานขอมูลเชิงสัมพันธ

ระบบฐานขอมูลเชิงสัมพันธ (Relational Database) เปนฐานขอมูลที่นิยมใชกันในปจจุบัน เนื่องจากเปนฐานขอมูลที่เขาใจงาย ไมซับซอน ขอมูลถูกจัดเก็บในลกัษณะตารางสองมิติ คือเปนแถว (Row) และ คอลัมน (Column) ฐานขอมูล

ระบบฐานขอมูลบริษัทแหงหนึ่งประกอบดวย ตารางประวัตพินักงาน (EMP) และ ตารางแผนก (DEP) รายละเอียดคอลัมน โครงสราง และตัวอยางขอมูลเปนดังนี้ 1. ตารางประวตัิพนักงาน (EMP) ประกอบดวย รายละเอียดของขอมูลพนักงาน ตอไปน้ี 1.1 โครงสรางของขอมูล Column Name Data Type Width (ชื่อคอลัมน) (ประเภทขอมูล) (ความกวาง) NBR (รหัสพนักงาน) CHARACTER (ตัวอักษร) 2 NAM (ช่ือพนักงาน) CHARACTER (ตัวอักษร) 8 CLS (รหัสระดับพนักงาน) CHARACTER (ตัวอักษร) 1 SEX (เพศพนกังาน) CHARACTER (ตัวอักษร) 1 DPT (รหัสแผนกพนกังาน) CHARACTER (ตัวอักษร) 3 SAL (เงินเดือนพนักงาน) NUMERIC (ตัวเลข) 8,0

Page 4: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

1.2 ตัวอยางขอมูล NBR NAM CLS SEX DPT SAL 20 Heikki 2 M 901 600 10 Ed 5 M 911 700 50 Marcela 3 F 911 750 40 Mike 4 M 977 650 30 John 5 M 977 320 60 Frank 2 M 990 650 ตาราง EMP ประกอบดวยขอมูล 6 แถว (Row) 6 คอลัมน (Column) 2. ตาราง แผนก (DEP) ประกอบดวย รายละเอียดของขอมูลดังนี ้2.1 โครงสรางของขอมูล ชื่อคอลัมน ประเภทขอมูล ความกวาง DPT (รหัสแผนกพนกังาน) CHARACTER 3 NAM (ช่ือ) CHARACTER 8 2.2 ตัวอยางขอมูล

DPT DNM 901 Account 977 Warehouse 911 Sales 982 Purchase

ตาราง DEP ประกอบดวยขอมูล 4 แถว (Row) 2 คอลัมน (Column) คําศัพทท่ีใชเปรียบเทียบระหวางในระบบ (System Term) และใน SQL (SQL Term)

System Term SQL Term Library Collection File Table Record Row Field Column Logical File View

Page 5: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

Field Or Column หมายถึง การนําเอาตัวอักษร ตั้งแต 1 ตัวขึ้นไปมา รวมกันเปนคําเพื่อใหเกิดความหมาย เชน SOMPONG เปน ฟลด ๆ หนึ่งหมายถึง ช่ือบุคคลใดบุคคลหนึ่ง Record or Row หมายถึง การนําฟลดที่มีความสัมพันธกันตั้งแต 2 ฟลด ขึ้นไปมาประกอบกนัเปน 1 Record เชน Record ที่เกีย่วกับพนกังานคนหนึ่ง ๆ ประกอบดวย ฟลดเลขประจําตัว ฟลดช่ือ-นามสกุล ฟลดที่อยู ฟลดแผนกทีท่ํางาน และฟลดเงินเดือน File or Table หมายถึง การนํา Record หลาย ๆ Recordมา รวมกันเปน 1 ไฟล (File) โดยไฟลในระบบถาพูดถึง Physical File หมายถึงไฟลหรือแฟมขอมูลที่ใชเก็บขอมูลจริง ๆ แตในSQL Term จะหมายถึง ตาราง (TABLE) ประกอบดวย แถว (Row or record) และ คอลัมน(Column or Field) Library Or Collection หมายถึง เปนที่เก็บของ Object ชนิดตาง ๆ ประกอบดวย Table,View, Index, Journal, Journal Receiver, Data Dictionary, SQL Catalog เปนตน Logical File Or View หมายถึง ซับเซตของ Field และ Record จาก Physical File สวนView หมายถึง ซับเซตของ Columns และ Rows จาก TABLE หมายเหตุ รายละเอียดของ Library & Collection อยูในเรือ่งของการ Create Collection บนเครื่อง AS/400 สามารถใชคําสั่ง SQL ได 2 รูปแบบคอื 1. Interactive SQL เปนการใชคําสั่ง SQL ทํางานกับฐานขอมูลบนจอภาพในลักษณะที่มีการโตตอบกันโดยตรงขณะที่ทํางานระหวางผูใชกับ SQL 2. Embedded SQL เปนการนําคําสั่งใน SQL ไปใชรวมกับโปรแกรมภาษาอื่น เชนRPG, COBOL, PASCAL, PL/I เปนตน Interactive SQL

Page 6: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ถามีการใชคําสั่ง STRSQL ท่ีเสน Command Line จากหนาเมนู จะไดหนาเมนู Enter SQL Statements ซ่ึงจะเห็นหนาจอนี้ประกอบดวย เสน SQL Statements อยูและมีฟงกชันที่สามารถเรียกใชงานได

ฟงกชัน ความหมาย F4 Prompt F6 การเพิ่มเสน SQL Statement F9 การเรียกคําสั่งเกามาใชงาน F10 การคัดลอก (Copy) SQL Statement F13 เขาสู Mode SQL Session Services F16 การเขาไปเลือก Library ที่จะใชงาน F17 การเขาไปเลือก TABLE หรือ VIEW ที่จะใชงาน F18 การเขาไปเลือก Columns ที่จะใชงาน

Prompt Screen (F4)

จากหนาจอ SQL Statement ถากด F4 จะไดจอ Select SQL Statement จะแสดงคําสัง่ตางๆบน SQL

เชน คําสั่งที่ใชในการสราง เชน CREATE COLLECTION, CREATE TABLE, CREATE VIEW, CREATE INDEX เปนตน

Page 7: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

SQL Session Service (F13) การกดฟงกชัน F13 จากหนาจอ Enter SQL Statement จะไดหนาจอ Interactive SQL Session Services จากหนาจอประกอบดวย 4 Options Option 1 เปนการเปลี่ยนแปลงคาตาง ๆ ใน Session ที่ทํางาน Option 2 เปน Session ที่มีช่ือ Printer File ปรากฏอยู Option 3 เปนการยกเลิกจากหนาจอ SQL Statement (SQLStatement ไมถูกบันทึก) Option 4 เปนการบันทึกเก็บไวเปนไฟล

Page 8: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ถาเลือก Option 1 จะปรากฏหนาจอ Change Session Attributes (F13 + Option 1)

เราสามารถเขาไปเปลี่ยนแปลงคาที่กําหนดไวใน ระบบจากหนาจอนี้ได เชน ถาตองการเปลี่ยนใหการแสดงผลของขอมูลออกทางหนาจอ(Display) ออกทาง ปร้ินเตอร(Printer) หรือ เก็บเปนไฟล (File) โดยที่เราสามารถไปกําหนดไดที่

- Parameter SELECT Output 1 = Display (แสดงออกทางหนาจอ) 2 = Printer (สามารถพิมพออกทาง Printer ได) 3 = File (สามารถเก็บไวเปนแฟมขอมูลได)

- Parameter Naming Convention เปนการกําหนดวาจะใหมีการใช SQL Statement รูปแบบอยางไร *SYS ใชรูปแบบโดยม ี( / ) ค่ันระหวาง Library และ Files เชน SQLLIB/EMP *SQL ใชรูปแบบโดยม ี( . ) คั่นระหวาง Library และ Files เชน SQLLIB.EMP Default จะใชแบบ *SYS

Page 9: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ถาเลือก Option 2จะปรากฏหนาจอ Change Printer File (F13 Option2) คา Default ของ System คือ QSYSPRT เราไมตองเปลี่ยนแปลงคาที่ระบบ(System) กําหนดไวให ถาเลือก Option 3 จะปรากฏหนาจอ Confirm Remove Entire Request (F13 Option 3) เปนการยนืยนัการยกเลิกจากหนาจอ SQL Statement ระบบจะไมมีการบันทึกSQL Statement ที่เราคียลงไป

Page 10: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ถาเลือก Option 4 จะปรากฏหนาจอ Change Source File (F13 Option 4)

เปนการบันทกึเก็บไวเปนไฟลโดยตองระบุช่ือ File, Library, Member ที่จะทําการบนัทึกและบอก ดวยวาจะบันทกึเปน ไฟลใหมหรือจะบันทกึทับไฟลเดิมโดยสรางเปน Member ใหมหรือทับ Member เดิม การสราง Member ศึกษารายละเอียดจาก คลาส DATABASE Select and Sequence Library (F16) การกดฟงกชัน F16 จากหนาจอ Enter SQL Statement จะไดหนาจอ Selectand Sequence Library เปนการ เขาไปเลือก Library ที่จะใชงานถาเกิดไมมี Library ที่เราใชงานอยูเราสามารถเพิ่ม Library ที่เราจะใชงาน เขาไปในระบบไดโดยใชคําสั่ง ADDLIBLE ตามดวยช่ือ Library ที่เราใชงาน เชน ADDLIBLE BSQL04 Library ที่เราเพิ่มเขาไปจะปรากฏที่หนาจอให เวลากด F16

Page 11: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

Select and Sequence Files (F17)

การกดฟงกชัน F17 จากหนาจอ Enter SQL Statement จะไดหนาจอ Selectand Sequence Files (TABLE) เปนการเขาไปกําหนดการเลือก Files ที่จะใชงาน

Page 12: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

Select and Sequence Fields (F18) การกดฟงกชัน F18 จากหนาจอ Enter SQL Statement จะไดหนาจอ Select and Sequence Fields

(Columns) เปนการเขาไปกําหนดการเลือก Fields ที่จะใชงาน

วิธีการใชคําสั่ง

การใชคําสั่งบน SQL Statement สามารถคียคําสั่ง แลวกด F4 ไดทุกคาํสั่งเชนตองการเรียกดูขอมูล สามารถใชคําสั่ง SELECT กด F4 หรือ คียตามรูปแบบ Syntax ของภาษา SQL ซ่ึงจะแตกตางกันตามแตละคําสั่งที่ใชงานโดยตองระบุ Library ที่จะใชงานดวยเสมอ 1. คียคําสั่ง กด F4 SELECT + F4

Page 13: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

2. คียตาม Syntax รูปแบบคําสั่ง

หมายเหตุ วิธีการใชคําสั่งจะกลาวถึงในรายละเอียดตอไป

Page 14: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การจัดการฐานขอมูล (Data Manipulation Language)

SQL เปนภาษาเกี่ยวกับการจัดการฐานขอมูล

การที่จะมกีารจัดการระบบฐานขอมูลที่ดีจะตองประกอบดวยภาษา 3 สวนดังตอไปนี้ 1. ภาษาสาํหรับการนิยามขอมูล (Data Definition Language: DDL)

ประกอบดวยคําส่ังที่ใชในการกําหนดโครงสรางของขอมูลวามีคอลัมนอะไรแตละคอลัมนมีขอมูล ประเภทใด คําส่ังที่ใชงานสําหรับการนิยามขอมูล เชน คําส่ัง CREATE, DROP, LABEL เปนตน CREATE statements

เปนคําส่ังที่ใชสราง SQL Object ตางๆ - CREATE COLLECTION เปนคําส่ังที่ใชสราง Collection หรือ Library เปนที่เก็บของ Object ตางๆ - CREATE TABLE เปนคําส่ังที่ใชสรางตาราง (TABLE) - CREATE VIEW เปนคําส่ังที่ใชสรางววิ (VIEW) - CREATE INDEX เปนคําส่ังที่ใชสรางดัชนีของตาราง (INDEX) DROP statements (use to delete objects)

เปนคําส่ังที่ใชลบ SQL Object ตางๆ - DROP COLLECTION เปนคําส่ังที่ใชลบ Library (Collection) - DROP TABLE เปนคําส่ังที่ใชลบตาราง (TABLE) - DROP VIEW เปนคําส่ังที่ใชลบวิว (VIEW) - DROP INDEX เปนคําส่ังที่ใชลบดัชนีของตาราง (INDEX) LABEL ON Statements

เปนคําส่ังที่ใชสรางรายละเอยีดของตารางและคอลัมนโดยการกําหนด Column Heading or Text - LABEL ON TABLE เปนคาํส่ังที่ใชสราง Column Heading or Text ของตาราง (File or TABLE) - LABEL ON COLUMN เปนคําส่ังที่ใชสราง Column Heading or Text ของคอลัมน (Fields or Column) 2. ภาษาสาํหรับการจัดการขอมูล (Data Manipulation Language: DML)

ประกอบดวยคําส่ังที่ใชสําหรับการเรียกใชขอมูล การเปลีย่นแปลงขอมูล การเพิ่มและลบขอมูล เชน คําส่ัง SELECT, INSERT, UPDATE, DELETE เปนตน SELECT statement เปนการเลือกขอมูลจาก ตารางหรือ วิว โดยเลือกจาก 1 ตาราง หรือมากกวา INSERT statement เปนการเพิ่มขอมูล 1 แถว หรือมากกวา 1แถว ลงในตาราง หรือววิ UPDATE statement เปนการแกไขขอมูลใน 1 แถว หรือมากวา 1 แถว ลงในตาราง หรือ วิว DELETE statement เปนการลบขอมูล 1 แถว หรือมากกวา 1 แถว จากตาราง หรือ วิว

Page 15: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

3. ภาษาที่ใชในการควบคุมขอมูล (Data Control Language: DCL) ประกอบดวยคําส่ังที่ใชในการควบคุม ความปลอดภัยของขอมูล ดวยการใหสิทธผูใชแตกตางกัน

เชนคําส่ัง GRANT, REVOKE GRANT คือการใหสิทธิซ่ึงเราสามารถระบุไดวาจะใหสิทธิในการใชตารางใด หรือ วิวใด และสิทธทิี่ใหจะ เปนเฉพาะสิทธิในการเรียกดขูอมูล (SELECT) หรือสามารถแกไขขอมูลได (UPDATE, INSERT และ DELETE) ไดดวย REVOKE คือการยกเลิกสิทธิของผูใชคนที่เรามีการใหสิทธิ์ (GRANT) ใหโดยการระบุสิทธิที่ตองการยกเลิก หมายเหตุ การศึกษาในแตละภาษา ( DDL, DML, Data Control) จะไดศึกษาในรายละเอียดแตละบทตอไป

Page 16: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ภาษาสําหรับการนิยามขอมูล (Data Definition Language)

ภาษาสําหรับการนิยามขอมูล (Data Definition Language: DDL) ประกอบดวยคําส่ังทีใ่ชในการ

กําหนดโครงสรางของขอมูลวามีคอลัมนอะไร แตละคอลัมนมีขอมูลประเภทใด คําส่ังที่ใชเชน CREATE, DROP, LABEL การใชคําสั่งตางๆ บน SQL สามารถใชได 2 วิธี 1. คียคําส่ังตามรูปแบบที่กําหนดให (Syntax) 2. ใชคําส่ัง + F4 ก็ได การสราง COLLECTION (Create Collection)

เปนคําส่ังที่ใชสราง Collection หรือ Library ไวสําหรับเปนที่เก็บของ Objectตาง ๆ การที่เราจะทํางานตาง ๆ บนเครื่อง AS/400ไดเราจะตองสรางที่เก็บสําหรับ Object ตางๆ หรือที่เราเรียกวา เปนการสราง Library ซ่ึงในภาษา SQL เรียกวา เปนการสราง Collection วิธีท่ี1 การใชรูปแบบคาํสั่ง CREATE COLLECTION <collection name> CREATE เปนคําส่ังที่ใชสราง object ตาง ๆ บน SQL เชน การสราง Collection, Table, View, Index เปนตน Collection Name เปนชื่อ Collection ที่สรางขึ้นจะตองไมมีมากอนใน SQL Collection หรือใน Library

Page 17: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

วิธีท่ี 2 CREATE COLLECTION +F4 ตัวอยาง

CREATE COLLECTION PAYLIB ใสช่ือ Collection ที่ parameter ของ Library Create Collection เปนคําสั่งที่ใชสรางเพื่อใชเก็บ SQL object ตาง ๆ ไวภายใน

หลังจากสรางแลวส่ิงที่ระบบจะทําการสรางสิ่งตาง ๆ ดังตอไปนี ้1. Library หรือ Collection เปนที่เก็บ Object ตาง ๆ 2. Journal (QSQJRN) & Journal receiver (QSQJRN0001) จะทําการบันทึก recordตาง ๆ ที่ถูกเปลี่ยนแปลง (ศึกษารายละเอียดเพิ่มเติมทีห่นังสือ (Backup & Recovery Guide) 3. Catalog จะประกอบดวยรายละเอียดของ Collection ไดแก รายละเอียดของตาราง(Table), วิว (View) และ ดัชน ี(Index) เปนตน 4. Data Dictionary เปนรายละเอียดของ Object ตาง ๆ ใน Collection ระบบจะทําการสรางใหถา parameter WITH DATA DICTIONARY ใสเปน Y

Page 18: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การสรางตาราง (Table Creation) การกําหนดโครงสรางของตาราง

คําส่ังที่ใชในการกําหนดโครงสรางของตาราง คือคําส่ัง CREATE TABLE ซ่ึงเปนคําส่ังที่ใชในการ

กําหนดโครงสรางของตารางที่มีขอมูลบรรจุอยู (Base Table) วิธีท่ี1 การใชรูปแบบคาํสั่ง CREATE TABLE <table name> ( <column name> <data type> <NOT NULL or NOT NULL WITH DEFAULT>, <column name> <data type> <NOT NULL or NOT NULL WITH DEFAULT>, <column name> <data type> <NOT NULL or NOT NULL WITH DEFAULT> ) CREATE TABLE หมายถึง คําส่ัง SQL ที่ใชเมื่อตองการสรางตารางหลักจะตองตามดวยช่ือของตารางที่เรา ตองการสราง Table Name หมายถึง ช่ือของตารางหลักที่ตองการสรางจะตองระบุ Collection (Library) ให ดวยกรณีทีย่ังไมเคยม ีLibrary นี้ในระบบ เชน CREATE TABLE SQLLIB/EMP จะหมายถึงการสรางตารางช่ือ EMP เก็บไวใน Collection ที่ช่ือวา SQLLIB Column name หมายถึง ช่ือของคอลัมนที่เปนรายละเอยีดของตารางโดยชื่อคอลัมนตางๆจะมีเครือ่งหมายคอมมา ( ,) คั่น เมื่อจบทายประโยคของแตละคอลัมน หรือ ฟลดที่เราสราง สวนคอลัมนสุดทายไมตองมีเครื่องหมายคอมมา ( ,) Data type หมายถึง ประเภทของขอมูลที่แตละคอลัมนบรรจุขอมูลไว

ประเภทขอมูล ความหมาย CHARACTER (n) Or CHAR (n) เก็บขอมูลประเภทตวัอักษร โดยมีความกวาง ตามที่ระบุไวเทากับ (n) DECIMAL (w, d) Or DEC (w, d) Or NUMERIC (w, d) เก็บขอมูลประเภทตวัเลขที่มีความกวางเทากับ w หลักและทศนิยม d ตําแหนง INTEGER เก็บขอมูลประเภทตวัเลข จํานวนเต็ม SMALLINT เก็บขอมูลประเภทตวัเลข จํานวนเต็ม เหมือน INTEGER แตจะเก็บตัวเลขจํานวนเต็มทีน่อยกวา DATE เก็บขอมูลประเภทวนัที ่

Page 19: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การกําหนดไมใหคอลัมนใดคอลัมนหนึ่งมีคาวาง (NOT NULL) NOT NULL เปนการกําหนดขอมูลของคอลัมนจะมีคาวางไมได เชนคอลัมนที่เปนคียหลัก (Primary

Key) จะถูกระบุใหเปน NOT NULL เสมอ NOT NULL WITH DEFAULT เปนการกําหนดขอมูลของคอลัมนจะมีคาวางไมได และจะตองมี

การกําหนดคา (default คาให) ประเภทขอมูลที่เปน DATE, TIME ใชไดเฉพาะ NOT NULL WITH DEFAULT เทานั้น

Data Type Default CHAR CHAR Numeric 0 DATE Current date TIME Current date

ลักษณะของขอมูลท่ีจัดเก็บในตาราง การเรียงลําดับของคอลัมนจะเรียงลําดับกอนหลังอยางไรก็ได วิธีท่ี 2 วิธีการสราง Table (Table Creation) โดยการคยีคําสั่ง CREATE TABLE + F4 1. ที่เสน Command Line คีย STRSQL จะไดจอภาพ SQL Statements 2. คียคําส่ัง CREATE TABLE + F4 หรือคียคําสั่งท่ีเสน Command Line ตามรูปแบบที่กําหนดให 3. ไดจอภาพดงันี้ ใหใส ช่ือไฟล ( File), ที่เก็บ (Library), ช่ือฟลด (Field), ประเภทขอมูล (Data Type), ความยาว (Length), ทศนิยม (Scale), การกําหนดคาวาง (1 =NULL, 2 = NOT NULL, 3 = NOT NULL WITH DEFAULT)

Page 20: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ตัวอยาง CREATE TABLE +F4

ตัวอยางการสราง TABLE โดยการคียคําสั่งที่เสน Command Lineตามรูปแบบคําสั่ง (Syntax) CREATE TABLE EMP ( NBR DEC (3,0) NOT NULL WITH DEFAULT, NAM CHAR (8) NOT NULL WITH DEFAULT, CLS DEC (1,0) NOT NULL, SEX CHAR (1) NOT NULL WITH DEFAULT, DPT DEC (3,0) NOT NULL WITH DEFAULT, SAL DEC (3,0) NOT NULL WITH DEFAULT)

ตาราง (TABLE) ที่ถูกสรางจะเปนเสมือน Physical File ตัวหนึ่ง (เปนฐานขอมูลที่ใชเก็บขอมูลไวภายใน) มีช่ือวา EMP ประกอบดวยคอลัมน 6 คอลัมน (NBR,NAM, CLS, SEX, DPT, SAL) ตามตัวอยาง

Page 21: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การแกไขโครงสรางของขอมูล โดยใชคําสัง่ ALTER TABLE + F4 ระบุช่ือ File, Library, Action Action = 1, 2 ใชในกรณีมีความสัมพันธของไฟล (ศึกษารายละเอียดในRI Trigger) Action = 3 การเพิ่มฟลดใหม Column) ลงในตารางที่สรางแลว

Action = 4 การแกไขคา Attribute ตางๆของฟลด เชน ความยาว, ทศนิยม, ประเภทของขอมูล เปนตน Action = 5 การลบฟลด (Column) ที่มีการสรางไวในตาราง การกําหนดรายละเอียดใหกับตารางและคอลัมน คําสั่ง LABEL ON เปนคําสัง่ท่ีแสดงรายละเอียดของไฟลและคอลัมนท่ีเราสราง วิธีท่ี1 การใชรูปแบบคาํสั่ง LABEL ON TABLE <table name> or view name IS string constant LABEL ON TABLE <table name> or view name (<column name> IS string constant) Table name หมายถึง ช่ือของตารางหลักที่ตองการสราง View name หมายถึง ช่ือวิวที่สรางขึ้น String constant หมายถึง กลุมของตัวอักษรที่ตองอยูภายใน ‘ ’

Page 22: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ตัวอยาง LABEL ON TABLE EMP IS 'Employee File'

ตารางที่สรางชื่อ EMP มีรายละเอียดของตารางที่สรางเปน Employee File LABEL ON EMP (nbr IS ' Employee Number'nam IS 'Employee Name')

ตารางที่สรางชื่อ EMP มีรายละเอียดของคอลัมนที่ 1 เปน 'Employee Number' คอลัมนที่ 2 เปน 'Employee Name'

Page 23: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ภาษาสําหรับการจัดการขอมูล (Data Manipulation Language: DML)

ประกอบดวยคําส่ังที่ใชสําหรับการเรียกใชขอมูล การเปลีย่นแปลงขอมูล การ เพิ่มและลบขอมูล เชน

คําส่ัง SELECT, INSERT, UPDATE, DELETE เปนตน คําสั่งสําหรับการเรียกดูขอมูล (SELECT STATEMENT) SELECT STATEMENT and CLAUSES วิธีท่ี 1 รูปแบบคําสั่ง SELECT SELECT. . . . (columns, *, or expression) FROM. . . . (tables or views) WHERE. . (row selection criteria) GROUP BY. (columns) HAVING. . (GROUP BY selection criteria) ORDER BY. (columns) ผูใชสามารถระบุสวนตางๆในคําสัง่ได ดังนี้ 1. สวนหลัง SELECT ใชระบุ คอลัมนหรือกลุมของคอลัมนที่เราตองการดูขอมูล หรืออาจใชเปน * ก็ได หมายถึงการเรยีกดูขอมูลทุกคอลัมน 2. สวนหลัง FROM ใชระบ ุช่ือของตารางที่เราตองการดขูอมูลกรณีที่ยงัไมมี Library ใหระบุ Library ดวย (DSPLIBL) ตรวจสอบดูวามี Library อยูแลวในระบบหรอืยัง ถายังไมมีใหใชคําส่ัง ADDLIBLE ตามดวยช่ือ Libraryที่เราตองการเพิ่มขาไปในระบบ เชน ADDLIBLE SQLLIB เปนตน กรณีที่มLีibraryในระบบอยู แลวเราสามารถที่จะไมระบุ Library ได ตัวอยางการคียคําส่ังทั้ง 2 กรณี กรณีที ่1 ไมมี Library ในระบบตองระบุ Library ดวยเวลาคียคําส่ัง

SELECT nbr FROM BSQL04/EMP กรณีที ่2 มี Library ในระบบแลวไมตองระบ ุLibrary อีกเวลาคียคําส่ัง

SELECT nbr From EMP 3. สวนหลัง WHERE ใชระบ ุเงื่อนไขของขอมูลที่เราตองการซึ่งอาจมี หรือไมมีก็ไดเปนการเลือกเรคคอรด ( select record )

Page 24: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

4. สวนหลัง GROUP BY ใชระบุ เงื่อนไขการหาผลรวมเฉพาะกลุมเปนการจัดกลุมตามคอลัมนเขาดวยกันตามที่เราตองการ 5. สวนหลัง HAVING ใชระบุ เงื่อนไขหลงัจากที่เรามีการจัดกลุมแลว 6. สวนหลัง ORDER BY ใชระบุ คอลัมนที่เราตองการเรียงลําดับการแสดงผลของขอมูลถาไมระบุวาเปน Ascending (เรียงจากนอยไปมาก) หรือ Descending (เรียงจากมากไปนอย) คา default จะถือวาเปน Ascending

การเรียกดูขอมูล ประโยคคําสั่งสําหรับการเรียกดูขอมูลไดแก คําสั่ง SELECT สวนที่เราตองระบุคือในสวนของ SELECT FROM ในสวนอื่นอาจมีหรือไมมีก็ไดและในการเลือกคอลัมนสามารถเลือกคอลัมนใดกอนก็ได วิธีท่ี2 ใชคําสั่ง SELECT + F4 จะไดรูปภาพดงันี ้

เราสามารถระบุคาของ - FROM Files, SELECT Fields, Where Conditions, GROUP BY fields, HAVING Conditions, ORDER BY Fields, FOR UPDATE OF fields ความหมายในสวนการระบุคา เหมือนที่กลาวมาแลว

Page 25: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ตารางขอมูลของพนักงานและแผนกที่ใชสามารถนํามาเรียกดูและเลือกใชขอมูลไดดงันี ้ตัวอยางขอมูล NBR NAM CLS SEX DPT SAL 20 Heikki 2 M 901 600 10 Ed 5 M 911 700 50 Marcela 3 F 911 750 40 Mike 4 M 977 650 30 John 5 M 977 320 60 Frank 2 M 990 650

ตาราง EMP ประกอบดวยขอมูล 6 แถว (Row) 6 คอลัมน (Column) ตัวอยางขอมูล

DPT DNM 901 Account 977 Warehouse 911 Sales 982 Purchase

ตาราง DEP ประกอบดวยขอมูล 4 แถว (Row) 2 คอลัมน (Column) ตัวอยางการเลือกขอมูล จากตาราง Table EMP, DEP สามารถนํามาใชเลือกขอมูลไดดังนี ้ ตัวอยางที่ 1 การเลือกขอมูลโดยไมมีการกําหนดเงื่อนไข เลือกขอมูลฟลด เพศ , ช่ือพนักงาน, คลาส จากตาราง EMP รูปแบบคําสัง่ท่ีใช SELECT SEX, NAM,CLS FROM EMP

SEX NAM CLS M Heikki 2 M Ed 5 F Marcela 3 M Mike 4 M John 5 M Frank 2

Page 26: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ตัวอยางที่ 2 การเลือกขอมูลโดยมีการกําหนดเงื่อนไข (WHERE) เลือกขอมูลฟลด รหัสพนักงาน , ช่ือพนักงาน, เพศ จากตาราง EMP โดยเลือกเฉพาะเพศหญิง รูปแบบคําสัง่ท่ีใช SELECT NBR, NAM, SEX FROM EMP WHERE SEX = ‘F’

NBR NAM SEX 50 Marcela F

ตัวอยางที่ 3 การเลือกขอมูลทุกคอลัมน โดยมีการกําหนดใหมีการเรียงลําดับของขอมูล (ORDER BY) เลือกขอมูลทุกคอลัมน (ฟลด) จากตาราง EMP โดยเรียงตามรหัสพนักงาน SELECT * FROM EMP ORDER BY NBR

NBR NAM CLS SEX DPT SAL 10 Ed 5 M 911 700 20 Heikki 2 M 901 600 30 John 5 M 977 320 40 Mike 4 M 977 650 50 Marcela 3 F 911 750 60 Frank 2 M 990 650

ตัวอยางที่ 4 การเลือกขอมูลโดยไมใหแสดงขอมูลซํ้ากัน (DISTINCT)

เลือกขอมูลฟลด คลาส จากตาราง EMP โดยไมมีแถวที่ซํ้ากันของขอมูล SELECT DISTINCT CLS FROM EMP ผลลัพธคือ CLS

2 3 4 5

Page 27: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การกําหนดเงื่อนไขการเลือกขอมูลใน WHERE CLAUSE (Select condition within a WHERE clause)

การเรียกดูขอมูลแบบมีเงื่อนไข เปนการระบุคาเฉพาะของขอมูลที่ตองการเรียกด ูอาจตองการด ูขอมูลเพียงบางเเถว จากตาราง เชน ตอง การดูขอมูลของพนักงานที่มเีงนิเดือนมากกวา 30,000 บาท เปนตน ดังนั้นการเรียกดูขอมูลแบบมีเงื่อนไข ตองมี โอเปอเรเตอรตาง ๆ เขามาเกี่ยวของ การเรียกดูขอมูลแบบมีเงื่อนไขโดยใช โอเปอเรเตอรในการเปรียบเทียบคา 2 คา

โอเปอเรเตอร ความหมาย = เทากับ > มากกวา >= มากกวาเทากับ < นอยกวา <= นอยกวาเทากับ <> ไมเทากับ

การเรียกดูขอมูลแบบมีเงื่อนไขโดยใช โอเปอเรเตอรบูลีน การเรียกดูขอมูลที่มีเงื่อนไขมากกวา 1 เงื่อนไขสามารถใชโอเปอเรเตอรบูลีนเชื่อมโยงได

OR ใชเชื่อมเงือ่นไข 2 เงื่อนไข โดยขอมูลที่จะแสดงออกมาตองเปนจริงตามเงื่อนไขใดเงื่อนไขหนึ่ง AND ใชเชื่อมเงื่อนไข 2 เงื่อนไข โดยขอมูลที่จะแสดงออกมาตองเปนจริงตามเงื่อนไขทั้ง2 เงื่อนไข

การเรียกดูขอมูลแบบมีเงื่อนไขโดยใช โอเปอเรเตอรของ SQL BETWEEN AND เปนการกําหนดเงื่อนไขของขอมูลเปนคา ระหวางคา 2 คา IN เปนการกําหนดเงื่อนไขของขอมูลโดยระบุเปนกลุมของขอมูล โดยกลุมของขอมูลตองอยูภายใน

วงเล็บ ( ) แตละคาตองคั่นดวยเครื่องหมาย , ถา เปนตัวอักษรตองอยูภายใน ‘ ’ LIKE เปนการคนหาขอมูลของคอลัมนที่เก็บเปนตัวอักษรเทานั้นโดยจะใชสัญญลักษณที่ชวยในการ

คนหาขอมูลคือ Wild Card (%) และตอง อยูภายในเครื่องหมาย ‘ ’ เสมอ สัญลักษณ % ใชแทนความหมาย จํานวนตัวอักษรไดหลายตัวเชน พนักงานที่มีชื่อขึ้นตนดวย T จะเขียนเงื่อนไขวา WHERE EMPNAME LIKE ' T%'

IS NULL เปนโอเปอเรเตอรที่ใชในการแสดงคาของคอลัมนเปนคาวาง หรือไมมีคา โอเปอเรเตอร ความหมาย NOT BETWEEN AND ไมมีคาระหวาง 2 คาที่ระบุ NOT IN ไมมีคาที่เปนกลุมของขอมูลที่ระบุ NOT LIKE ไมมีคาตามตัวอักษรและสัญลักษณ % ที่ใชในการคนหา IS NOT NULL ไมมีคาที่เปนคาวาง

Page 28: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ตารางขอมูลของพนักงานและแผนกที่ใชสามารถนํามาเรียกดูและเลือกใชขอมูลไดดงันี ้ตัวอยางขอมูล

NBR NAM CLS SEX DPT SAL 20 Heikki 2 M 901 600 10 Ed 5 M 911 700 50 Marcela 3 F 911 750 40 Mike 4 M 977 650 30 John 5 M 977 320 60 Frank 2 M 990 650

ตาราง EMP ประกอบดวยขอมูล 6 แถว (Row) 6 คอลัมน (Column) ตัวอยางขอมูล

DPT DNM 901 Account 977 Warehouse 911 Sales 982 Purchase

ตาราง DEP ประกอบดวยขอมูล 4 แถว (Row) 2 คอลัมน (Column) ตัวอยางการเลือกขอมูล จากตาราง Table EMP, DEP สามารถนํามาใชเลือกขอมูลไดดังนี ้ตัวอยางของขอมูลท่ีใช โอเปอเรเตอร IN, BETWEEN AND

เลือกขอมูลฟลด ช่ือ , รหัสพนักงาน, แผนก จากตาราง EMP โดยเลือกเฉพาะแผนก 911 และ 977 เงินเดือนอยูระหวาง 650 และ 750 โดยเรยีงตามชื่อพนักงานจากนอยไปมาก

SELECT NAM, NBR, DPT FROM EMP WHERE DPT IN (911, 977) AND SAL BETWEEN 650 AND 750

ORDER BY NAM

Page 29: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ผลลัพธคือ NAM CLS DPT Ed 5 911 Marcela 3 911 Mike 4 977

จากตาราง EMP จะเห็นไดวาพนักงานที่อยูในแผนก 911, 977 จะมีทั้งหมด 4 Record แตเนื่องจาก John มีเงินเดือนเพียง 320 Record จึงไมถูกเลือก ฉะนั้นผลลัพธที่ไดจะมีเพยีง 3 Record ตัวอยางของขอมูลท่ีใช โอเปอเรเตอร Like SELECT NAM, (sal*12) FROM EMP WHERE NAM LIKE ‘%ik%’ ORDER BY 2 ผลลัพธคือ NAM SAL* 12

Heikki 7200 Mike 7800

เลือกขอมูลฟลด ช่ือพนักงาน , เงินเดือน x12 จากตาราง EMP เมื่อช่ือพนักงานมีตวัอักษร 'ik' เปนสวนประกอบของชื่อ โดยมีการเรยีงลําดับขอมูลตามคอลัมน (SAL* 12) ORDER BY จะตามดวย ช่ือคอลัมน แตอาจตามดวยตวัเลขได (ซ่ึงเปนลําดับในการเลือกขอมูลที่อยูหลัง SELECT Statement จะเหน็ไดวา (sal*12) เปนลําดับที่ 2 เพราะฉะนัน้จึงใช ORDER BY 2

Page 30: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การแสดงขอมูลโดยใชฟงกชันของการรวม (Built In Function)

การเรียกดูขอมูลโดยใชฟงกชันการรวม เปนการหาคาสรุปของ ผลการรวม การหาคาเฉลี่ย การหาคาต่ําสุด การหาคาสูงสุด การนับจํานวน แถว ( record ) ในตาราง ฟงกชัน ผลท่ีไดจากการใชฟงกชัน SUM (numeric columns) เปนฟงกชันที่ใชในการหาคาผลรวมของคอลัมนหนึ่ง ๆ ที่เก็บขอมูลประเภทตัวเลข AVG (numeric columns) เปนฟงกชันที่ใชในการหาคาเฉลี่ยของคอลัมนหนึ่ง ๆ ที่เก็บขอมูลประเภทตัวเลข MAX (numeric or character columns) เปนฟงกชันที่ใชในการหาคาสูงสุดของคอลัมนที่กําหนดใหหาคา MIN (numeric or character columns) เปนฟงกชันที่ใชในการหาคาต่ําสุดของคอลัมนที่กําหนดใหหาคา COUNT (numeric or character columns) เปนฟงกชันที่ใชในการนับจํานวนแถว ( record ) ในตาราง ตารางขอมูลของพนักงานและแผนกที่ใชสามารถนํามาเรียกดูและเลือกใชขอมูลไดดงันี ้ตัวอยางขอมูล

NBR NAM CLS SEX DPT SAL 20 Heikki 2 M 901 600 10 Ed 5 M 911 700 50 Marcela 3 F 911 750 40 Mike 4 M 977 650 30 John 5 M 977 320 60 Frank 2 M 990 650

ตาราง EMP ประกอบดวยขอมูล 6 แถว (Row) 6 คอลัมน (Column)

Page 31: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ตัวอยางขอมูล DPT DNM 901 Account 977 Warehouse 911 Sales 982 Purchase

ตาราง DEP ประกอบดวยขอมูล 4 แถว (Row) 2 คอลัมน (Column) ตัวอยางของขอมูลท่ีใชฟงกชันการรวม เลือกขอมูลโดยนับจํานวน record ทั้งหมดในไฟล จากตาราง EMP SELECT COUNT (*) FROM EMP ผลลัพธคือ 6 ตัวอยางของขอมูลท่ีใชฟงกชันการรวม MAX, MIN เลือกขอมูลฟลดเงินเดือนที่มคีามากสุดและต่ําสุดจากตาราง EMP SELECT MAX (SAL), MIN (SAL) FROM EMP ผลลัพธคือ 750 320

การใช Group By GROUP BY ใชระบุเงื่อนไขการหาผลรวมเฉพาะกลุมเปนการจัดกลุมตามคอลัมน เขาดวยกันตามที่

เราตองการ เชน ตองการเรียกดูขอมูล รหัสแผนก และคาเงินเดือนเฉลีย่ของแตละแผนก การเรียกดสูามารถทําไดเนื่องจากเราสามารถหาคาออกมาในลักษณะจัดกลุม แตถาเราตองการเรียกดูขอมูล ชื่อพนักงาน รหัสแผนก และคาเงินเดือนเฉลี่ยของแตละแผนก เราจะไมสามารถทําการ GROUP BY ได นั่นคอืรายละเอียดที่เราตองการเรียกดูควรเปนฟงกชั่นในการรวมหรอื เปนคอลัมนท่ีสามารถจัดกลุมได จํานวนคอลัมนที่อยูหลัง GROUP BY ตองเทากับจํานวนคอลัมนที่อยูหลังกลุม SELECT Clause (ยกเวนฟงกชันการรวมทีอ่ยูหลัง SELECT Clause ไมสามารถนํามาไวหลัง GROUP BY เพื่อเปนเงื่อนไขได

Page 32: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ตัวอยางของขอมูลท่ีใช Group by SELECT DPT, SUM (SAL), COUNT (*) FROM EMP GROUP BY DPT ORDER BY DPT

DPT SUM (SAL) COUNT 901 600 1 911 1450 2 977 970 2 990 650 1 จากตาราง EMP เลือกขอมูล แผนก, เงินเดอืนรวม ในแตละแผนกแลวนับจํานวนเรคคอรดที่อยูใน

แตละแผนกทีม่ีการรวมเงินเดือนแลว โดยมีการจัดกลุมตามแผนกและขอมูลที่ไดจะมีการเรียงลําดบัขอมูลตามแผนกจากนอยไปมาก (ascending) การใช HAVING

HAVING ใชรวมกับ GROUP BY เพื่อตองการแสดงขอมูลที่ไดผานการจัดกลุมโดย GROUP BY แลวเพยีงบางสวนตามเงื่อนไขที่ระบุไวหลัง HAVING ตัวอยางของขอมูลท่ีใช Having SELECT DPT, SUM (SAL) FROM EMP WHERE CLS <> 4 GROUP BY DPT HAVING COUNT (*) >1 ผลลัพธคือ

DPT SUM (SAL) 911 1450

จากตาราง EMP และขอมูลที่ไดจากตัวอยางการ GROUP BY ที่ผานมา ทําการเลือกขอมูล แผนก, เงินเดือนรวม จากตาราง EMP โดยกําหนดเงื่อนไขเมื่อมีการจัดกลุมของขอมูลแลว ซ่ึงมีคา COUNT มากกวา 1 จะได 2 record คือ แผนก 911 และ 977 แตแผนก 977 จะมี CLS = 4 จะไมถูกเลือกจะถูกเลือกเฉพาะแผนก 911 ฉะนั้น record ที่ไดจะมีเพยีง 1 record

Page 33: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ภาษาสําหรับการจัดการขอมูล (Data Manipulation Language: DML)

คําสั่งสําหรับการใชขอมูล INSERT การเพิ่มขอมูล 1 แถว หรือมากกวา 1 แถว ลงในตารางหรือววิ UPDATE การแกไขขอมูลใน 1 แถว หรือมากวา 1 แถวจากตารางหรอืวิว DELETE การลบขอมูล 1 แถว หรือมากกวา 1 แถว จากตารางหรือวิว

การเพิ่มขอมูลลงในตาราง โดยใชคําสั่ง INSERT คําสั่ง INSERT ใชในการเพิม่เติมขอมูลแถวใหมลงในตาราง โดยอาจระบุขอมูลไวใน

คําส่ังเลย หรือดึงขอมูลมาจากตารางอื่นก็ได โดยบังคับวา ขอมูลที่จะเตมิลงไปนี้ตองมีขอมูลในแตละคอลัมนตรงตามคอลัมนในตารางที่จะเพิ่มเติมลงไปดวย รูปแบบที ่1 การปอนขอมูลใหม ไดคร้ังละ 1 แถว (record) INSERT INTO Table Name or View Name (Column 1, Column 2,...) VALUES (<Value 1, Value 2>) Table Name or View Name หมายถึง ช่ือของตารางหลักหรือวิวทีต่องการสราง Column Name หมายถึง ช่ือของคอลัมนที่เปนรายละเอยีดของตารางโดยชื่อคอลัมนตางๆ

จะมีเครื่องหมายคอมมา (,) คั่น Value 1 หมายถึง คาของขอมูลที่เราจะปอนขอมูลลงไปตามคอลัมนตางๆ

(Column1, Column2 , …) เปนความสัมพนัธแบบ 1:1 (ระหวาง Column และ Value)

ตัวอยาง การปอนขอมูลใหมใหกับตาราง EMP โดยเพิ่มขอมูลใหกับคอลัมน ช่ือ, รหัส, เพศ,คลาสของพนักงาน INSERT INTO EMP (NAM, NBR, SEX, CLS) VALUES ('amy', 10, 'F', 2) ตัวอยางขอมูล ที่เกิดขึ้นในไฟล

NAM NBR SEX CLS Amy 10 F 2

Page 34: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

รูปแบบที ่2 การคัดลอกขอมูลจากตารางหนึ่งไปยงัอีกตารางหนึง่ รูปแบบของคําส่ังจะแตกตางกับรูปแบบที ่1 ช่ือตาราง (table name) คือช่ือตารางที่ถูกสรางขึ้น

เรียบรอยแลวดวยคําส่ัง CREATE TABLE สําหรับขอมูลที่นํามาจากตารางอื่น จะตองมีคาของขอมูลในคอลัมน และ ชนิดของขอมูลตรงกัน INSERT INTO Table Name or View Name (Column 1, Column 2, ...) SELECT Statement ........ ตัวอยาง

สรางตาราง TEMP ที่มีโครงสรางเหมือนกบัตาราง EMP โดยขอมูลของตาราง TEMP มีการคัดลอก ขอมูลมาเฉพาะคอลัมน NBR, NAM จากตาราง EMP CREATE TABLE TEMP (NBR DEC (3, 0) NOT NULL WITH DEFAULT,NAM CHAR (8) NOT NULL WITH DEFAULT) INSERT INTO TEMP (NBR, NAM) SELECT NBR, NAM FROM EMP ตัวอยางขอมูล ขอมูลที่เกิดขึ้นในตาราง EMP คือ

NBR NAM CLS SEX DPT SAL 20 Heikki 2 M 901 600 10 Ed 5 M 911 700 50 Marcela 3 F 911 750 40 Mike 4 M 977 650 30 John 5 M 977 320 60 Frank 2 M 990 650

ตัวอยางขอมูล ขอมูลที่เกิดขึ้นในตาราง TEMP คือ

NBR NAM 20 Heikki 10 Ed 50 Marcela 40 Mike 30 John 60 Frank

Page 35: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การแกไขขอมูลลงในตาราง โดยใชคําสั่ง UPDATE คําสั่ง UPDATE เปนคําส่ังที่ใชในการเปลี่ยนแปลงแกไขขอมูล รูปแบบคําสัง่ท่ีใช UPDATE Table Name or View Name SET Column Name = Expression or Null WHERE Search Condition Table Name or View Name หมายถึง ช่ือของตารางหลักหรือวิวทีต่องการสราง Column Name หมายถึง ช่ือของคอลัมนที่เปนรายละเอยีดของตาราง Expression หมายถึง กลุมของขอมูลที่อาจเปนคาคงที่ (Constant),คอลัมน(Column) หรือ

ฟงกชันการรวม(Built in Function) Null หมายถึง คาวาง Search Condition หมายถึง เงื่อนไขที่เราตองการเปลี่ยนแปลงแกไขขอมูล ตัวอยาง

การแกไขขอมูลคร้ังละ 1 เรคคอรด โดยที่แกไขที่ตาราง EMP ใหคาของเงินเดือนเพิ่มขึน้ 100บาท เมือ่รหัสพนักงานมีคาเทากับ 30 UPDATE EMP SET SAL = SAL + 100 WHERE NBR = 30 ผลลัพธคือ NBR NAM CLS SEX DPT SAL

30 John 5 M 977 420 ตัวอยาง

การแกไขขอมูลมากกวา 1 เรคอรด โดยที่แกไขที่ตาราง EMP ใหคาของเงินเดือนเพิ่มขึน้ 150 บาทโดยไมมีการกําหนดเงื่อนไข WHERE การแกไขโดยวิธีนี ้ควรระวัง เพราะไมมีการกําหนดเงื่อนไขจะมีการเปล่ียนแปลงทกุเรคคอรด UPDATE EMP SET SAL = SAL + 150

Page 36: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การลบขอมลูลงในตาราง โดยใชคําสั่ง DELETE คําสั่ง DELETE เปนคําส่ังที่ใชในการลบขอมูล รูปแบบคําสัง่ท่ีใช DELETE FROM Table Name or View Name WHERE Search Condition Table Name or View Name หมายถึง ช่ือของตารางหลักหรือวิวทีต่องการสราง Search Condition หมายถึง เงื่อนไขที่เราตองการลบขอมูล

ตัวอยาง การลบขอมูลคร้ังละ 1 เรคคอรด โดยที่ลบขอมูลในตาราง EMP โดยกําหนดเงื่อนไขวา รหัสพนักงานที่ตองการลบคือ 60 DELETE FROM EMP WHERE NBR = 60 ตัวอยาง การลบขอมูลมากกวา 1 เรคอรด โดยที่ลบขอมูลในตาราง EMP โดยกําหนดเงื่อนไขวา รหัสพนักงานที่ตองการลบ อยูในแผนก 977 DELETE FROM EMP WHERE DPT = 977 ตัวอยาง การลบขอมูลมากกวา 1 เรคอรด โดยที่ลบขอมูลในตาราง EMP โดยไมไดกําหนดเงื่อนไข WHERE ควรระวังเพราะจะมีการลบทุกเรคอรด

DELETE FROM EMP

Page 37: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การสรางวิว (CREATE VIEW)

วิว (VIEW) เปรียบเสมือนหนาตางของขอมูลจากตารางหนึ่ง ๆ ที่ถูกเรยีกด ูหรือเพื่อทําการ เปลี่ยนแปลงขอมูล ผูใชระบบฐานขอมูลแตละคนจะมองเห็นระบบในลักษณะแตกตางกัน วิวเปนตารางเทียม (Virtual Table) ที่มีขอมูลที่ผูใชเรียกมาจากตารางหลัก (Base Table) โดยไมมีขอมูลจัดเก็บอยูจริงเหมือน ตารางหลัก ประโยชนของวิว คือ ผูใชสามารถเรียกด ูหรือแกไข ขอมูลจากฐานขอมูลในลักษณะทีผู่ใช ตองการ สามารถเรียกดูขอมูลจากตารางเดยีวหรือหลายตารางก็ไดซ่ึงสามารถชวยควบคุมระบบฐานขอมูล ในแงของความปลอดภัยได การสรางวิว (CREATE VIEW) รูปแบบคําสัง่ท่ีใช CREATE VIEW <View Name>(<Column1, Column2,.......>) AS <SELECT Statement> View Name หมายถึง ช่ือวิวที่สรางขึ้น Column 1,2 ... หมายถึง ช่ือคอลัมนที่ตองการตั้งชื่อในววิที่สรางขึ้นมีหรือไมก็ได

ถามีจํานวนคอลัมนตองเทากับจํานวนคอลัมนท่ีอยูใน < SELECT Statement> แตชื่อไมจําเปนตองเหมือนกัน ถาชื่อในคอลัมนไมเหมือนกัน จะใชชื่อคอลัมนท่ีอยูหลังชื่อววิ มาทําการเลือกขอมูลแทน เวลาแสดงขอมูล (คอลัมนใหมที่เปลี่ยนชื่อจากคอลัมนเดิม) SELECT Statement หมายถงึ รูปแบบของคําส่ัง SELECT ที่กลาวมาแลวกอนหนานี้ (SELECT FROM WHERE .......) ในการสรางวิวสามารถสรางจาก ตารางเดียวหรือ หลายตารางก็ไดรวมถึงการเรียกดูขอมูลโดยการกําหนดเงื่อนไข WHERE หรือ GROUP BY ที่ใชในคําส่ัง SELECT วิวทีถู่กสรางขึ้นเปรียบเสมือนเปนการสราง Loggical file ในระบบ การเรียกดูขอมูลในวิว

การใชคําส่ังสามารถเรียกดูไดเหมือนขอมูลในตารางหลกั นั่นคือใชคําส่ังSELECT โดยระบุช่ือวิว ที่ตองการดูขอมูล ตัวอยางขอมูลท่ีแสดงในตารางหลัก

NBR NAM CLS SEX DPT SAL 10 Ed 5 M 911 700 20 Heikki 2 M 901 600 30 John 5 M 977 320 40 Mike 4 M 977 650 50 Marcela 3 F 911 750 60 Frank 2 M 990 650

Page 38: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

ตัวอยาง 1 สรางวิวช่ือ EMPNBR ซ่ึงมีขอมูลของ รหัสพนักงาน , ช่ือพนักงาน , เพศ , คลาสของพนักงานโดยแสดงเฉพาะแผนกที่เปน 977 CREATE VIEW EMPNBR AS SELECT NBR, NAM, SEX, CLS FROM EMP WHERE DPT = 977 ตัวอยางขอมูลท่ีแสดงใน ตารางวิว EMPNBR เรียกดูขอมูลโดย SELECT * FROM EMPNBR ผลลัพธคือ NBR NAM SEX CLS

30 John M 5 40 Mike M 4

ตัวอยาง 2 สรางวิวช่ือ depsal ซ่ึงมีขอมูลของ แผนกพนกังาน , ผลรวมของเงินเดือน ของแตละแผนก โดยตั้งช่ือคอลัมนใหมในววิ เปน DPT และ TOTAL CREATE VIEW DEPSAL(DPT,TOTAL) AS SELECT DPT, SUM (SAL) FROM EMP GROUP BY DPT ตัวอยางขอมูลท่ีแสดงในตารางวิว DEPSAL เรียกดูขอมูลโดย SELECT * FROM DEPSAL

DPT TOTAL 901 600 911 1450 977 970 990 650

Page 39: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

การเพิ่มขอมูล (INSERT) การปรับปรงุขอมูล (UPDATE) และการลบขอมลู (DELETE) ในวิว ไมสามารถทําไดถาวิวนั้นๆ มีขอมูลท่ีเกิดจากการสรางวิว ที่มีคุณสมบัติตอไปนี้ 1. ขอมูลในวิวเกิดจากการเชือ่มโยงขอมูล (Join) 2. มีการใชฟงกชันการรวม (Group Functions) 3. มีการใช GROUP BY 4. มีการใช DISTINCT

การจํากัดในการปรับปรุงแกไขขอมูลโดยใช WITH CHECK OPTION

การสรางวิวถามีการระบ ุWITH CHECK OPTION ในการเพิ่ม (INSERT) การลบ(DELETE) การแกไขขอมูล (UPDATE) จะไมสามารถทําไดและแสดงขอความไมถูกตอง หากขอมูลที่จะแกไขไมเปนตามเงื่อนไขที่ระบไุวหลัง WHERE Clause CREATE VIEW EMPNBR2 AS SELECT NBR, NAM, SAL, DPT WHERE DEPNO = 911 WITH CHECK OPTION

หากมีการเพิ่มขอมูล แกไขหรือลบขอมูลของรหัสแผนกที่ไมใช 911 ตามที่ระบุในประโยค WHERE เครื่องจะแสดงขอความไมถูกตองทันที การลบวิว(View) รูปแบบคําสัง่ท่ีใช DROP VIEW <View Name> การลบวิวจะไมมีผลกระทบถึงตารางหลักที่ววินั้นใชในการสรางวิวขึ้นมา การสรางดัชนี (CREATE INDEX)

ในการเรยีกใชขอมูล การระบุดัชนีที่เหมาะสม จะชวยใหการคนหาขอมูลไดรวดเรว็ยิ่งขึ้น ผูใชไมตองจัดการกับการใช INDEX เพราะระบบจะเปนผูจัดการใหโดยจะม ีFunction ของระบบที่เรียกวา OPTIMIZER เปนผูตรวจสอบวาจะใช INDEX ไดหรือไม ถาไมไดจะสราง Temporary Index ให นอกจากประโยชนในการเพิ่มความเรว็แลว ยังสามารถควบคุมคาของขอมูลในคอลัมนไมใหซํ้ากันมากวา 1 แถว ก็สามารถควบคุมได โดยเพิ่มคําวา UNIQUE เขาไปในคาํส่ังการสรางดัชน ี(INDEX) เปรียบเสมือนการสราง Logical File ในระบบ

Page 40: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

รูปแบบคําสัง่ท่ีใช CREATE INDEX <Index Name> ON <Table Name> (Column 1, [Column 2], ....) Index Name หมายถึง ช่ือดัชนีที่สรางขึ้น Table Name หมายถึง ช่ือตารางที่สรางขึ้น Column 1,2 ... หมายถึง ช่ือคอลัมนที่ตองการในตารางทีส่รางขึ้นเปรียบเสมือน key ที่ถูกสรางขึ้นใน

Logical File ถามี key มากกวา 1 ใชเครื่องหมายคอมมา (,) คั่น ตองระบุอยางนอย 1 key การระบ ุkey ตองอยูภายใน ( )

ตัวอยาง 1 CREATE INDEX CLSIN ON EMP(CLS) ตัวอยาง 2 CREATE UNIQUE INDEX NBRIN ON EMP(NBR) การลบ INDEX รูปแบบคําสัง่ท่ีใช DROP INDEX <Index Name> Index Name หมายถึง ช่ือดัชนีที่ตองการลบ

CATALOG

คือ SQL Object ที่เก็บรายละเอียดตาง ๆ ของ COLLECTION ไดแก TABLE, VIEW,INDEX ถูกสรางขึ้นโดย SQL/400 ในขณะทีม่ีการสราง COLLECTION ผูใชสามารถเรียกดูขอมูลภายใน Catalog ไดอยางเดียวไมสามารถแกไขขอมูลได รายละเอียดของ ตาราง (Tables) หรือ วิว (View) เรียก SYSTABLES รายละเอียดของ คอลัมน (Columns) เรียก SYSCOLUMNS รายละเอียดของ วิว (VIEW) เรียก SYSVIEWS รายละเอียดของการ Join View เรียก SYSVIEWDEP รายละเอียดของ ดัชน ี( Indexes) เรียก SYSINDEXES รายละเอียดของ คีย ( Keys) เรียก SYSIKEYS

Page 41: INTRODUCTION to SQL/400 · อาจเป ุนบคคลที่ปฏิบัติ วยงานคอมพงานในหนิวเตอร เชโปรแกรมเมอร

บริษัท เมโทรซิสเต็มสคอรปอเรชั่น จํากัด(มหาชน)

สวนประกอบของ SYSTABLES สวนประกอบของ SYSCOLUMNS Name (ช่ือSYSTABLE) Name (ช่ือ SYSCOLUMNS) Creator (ช่ือ ผูสราง) Tbcreator (ช่ือ ผูสรางตาราง) Dbname (ช่ือฐานขอมูล) Tbname(ช่ือ ตาราง) Tbname (ช่ือ ตาราง) Coltype (ชนิด COLUMN) Etc, Length (ความยาว)

Scale (ทศนิยม) Etc.

ตัวอยางที่1 การเรียกดูขอมูลดูวามีตาราง ( TABLE) อะไรบางที่ถูกสรางโดย DIAMOND ใชคําสั่ง SELECT SELECT Tbname , Tbcreator , Dbname FROM Syscolumns, Systables WHERE Syscolumns.Tbname = Systables.Name AND Tbcreator = ‘DIAMOND’

TBNAME TBCREATOR DBNAME EMP DIAMOND PAYROLL DEP DIAMOND PAYROLL

การเรียกดูขอมูลเนื่องจากเปนการเรียกดฟูลดจาก Syscolumns และ Systables เวลาที่เรากําหนด

เงื่อนไขตองระบุฟลดที่ใชเชื่อมโยงขอมูลดวย (Tbname,name ซ่ึงมี Attributeเทากัน) โดยใชจุดคั่นระหวาง Syscolumns , Systables ตัวอยางที่ 2 การเรียกดูขอมูล ช่ือ , ช่ือผูสราง จาก Systables SELECT Name, Creator FROM Systables ตัวอยางที่ 3 การเรียกดูขอมูล ช่ือคอลัมน , ชนิดของคอลัมน จาก Syscolums SELECT Column_Name, Coltype FROM Syscolumns