วันจันทร์ที่ 12 กันยายน พ.ศ. 2559

กลุ่มคำสั่ง data definition language

กลุ่มคำสั่งสำหรับนิยามข้อมูล (Data Definition Language: DDL)

กลุ่มคำสั่งทางสำหรับนิยามข้อมูล หรือที่นิยมเรียกว่า กลุ่มคำสั่ง DDL เป็นกลุ่มคำสั่งที่ใช้กระทำ กับโครงสร้างของข้อมูล เช่น
CREATE TABLE     ใช้สำหรับการสร้างรีเลชั่น
ALTER TABLE      ใช้การแก้ไขแอททริบิวต์ของรีเลชั่น เช่น เพิ่ม ลบ หรือแก้ไข
DROP TABLE     ใช้สำหรับลบรีเลชั่น
CREATE VIEW     ใช้สำหรับการสร้างวิว
DROP VIEW     ใช้สำหรับการลบ CREATE INDEX     ใช้สำหรับการสร้างดัชนีให้กับรีเลชั่น
DROP INDEX     ใช้สำหรับการลบดัชนี
1) คำสั่ง CREATE TABLE
คำสั่ง CREATE TABLE เป็นคำสั่งที่ใช้สำหรับการสร้างรีเลชั่น การระบุชื่อของรีเลชั่น , ชื่อและประเภทข้อมูลของแอททริบิวต์ รวมถึงการกำหนดค่าคีย์ในรีเลชั่น
[DEFAULT default-value] [column-constraint]
.......... .......... .......... ..........
[PRIMARY KEY (attribute-name)],
[FOREIGN KEY (attribute-name) REFERENCES table-name]); ความหมายของรูปแบบคำสั่งกำหนดไว้ดังนี้
  • ตัวอักษรพิมพ์ใหญ่ ตัวหนา คือไวยากรณ์ของคำสั่ง เช่นคำว่า CREATE TABLE ซึ่งเป็นคำสั่งที่ต้องมีทุกครั้งในการสร้างรีเลชั่น (ตัวอักษร ตัวใหญ่ ตัวเล็ก ไม่มีผลกับคำสั่ง)
  • ตัวอักษรตัวพิมพ์เล็ก ตัวเอียง หมายถึงค่าต่างๆ ที่จะกำหนดเข้าไปในคำสั่ง เช่นชื่อของ รีเลชั่นที่ต้องการกำหนด คือ relation-name
  • คำสั่งที่อยู่ในเครื่องหมาย [ ] หมายถึงคำสั่งที่มีหรือไม่มีก็ได้ เช่น DEFAULT
  • เครื่องหมาย | เป็นการให้เลือกใช้อย่างใดอย่างหนึ่ง เช่น NULL | NOT NULL หมายถึง ให้เลือกว่าจะใช้ NULL หรือใช้ NOT NULL relation-name      คือชื่อของรีเลชั่นที่ต้องการใช้
  • attribute-name      คือชื่อของแอททริบิวต์
  • data-type      คือชนิดข้อมูลของแอททริบิวต์
  • default-value      คือค่าเริ่มต้นที่จะกำหนดให้กับแอททริบิวต์
  • column-constraint      คือข้อกำหนดที่จะกำหนดให้กับแอททริบิวต์
  • primary key      คือการกำหนดคีย์หลักของรีเลชั่น
  • foreign key      คือการกำหนดคีย์นอกของรีเลชั่น
  • ตารางที่ 6.1 ตัวอย่างชนิดของข้อมูล (Data type)
    ชนิดข้อมูล (Data type)ความหมาย
    char (n) หรือ text (n)ตัวอักษรความยาวคงที่ จำนวนตามที่ระบุด้วย n
    Varchar(n)ตัวอักษรความยาวเปลี่ยนแปลงได้
    Int หรือ integer หรือ numberเลขจำนวนเต็ม
    floatเลขจำนวนจริง
    dateวันที่ เช่น 8/24/2010
    timeเวลา
    datetimeวันที่และเวลา
    ชื่อแอททริบิวต์ชนิดข้อมูลความหมายข้อกำหนด
    SIDChar(10)รหัสนักศึกษาPrimary Key
    SnameChar(60)ชื่อ-สกุล นักศึกษาNot Null
    MajorIntegerรหัสสาขา-
    SLevelChar(60)ชั้นปี-
    ClassIntegerห้อง-
    GPAChar(4)เกรดเฉลี่ยสะสม-
    คำสั่ง ALTER TABLE เป็นคำสั่งที่ใช้สำหรับการแก้ไขรีเลชั่น เช่น การเพิ่มแอททริบิวต์, ลบ, แก้ไขแอททริบิวต์ การเพิ่ม, ลบ, แก้ไข constraint
    1. เพิ่มแอททริบิวต์ โดยใช้ ADD แล้วตามด้วย ชื่อแอททริบิวต์ที่ต้องการเพิ่ม และชนิดข้อมูล
    1. ลบแอททริบิวต์ โดยใช้ DROP แล้วตามด้วยชื่อแอททริบิวต์ที่ต้องการลบ
    1. แก้ไขแอททริบิวต์โดยใช้ MODIFY ตามด้วยชื่อแอททริบิวต์ที่ต้องการแก้ไข และค่าใหม่ที่ ต้องการแก้ไข
    ตัวอย่างที่ 6.2 คำสั่งเพิ่มแอททริบิวต์ GPA ในรีเลชั่น student เพื่อเก็บค่าเกรดเฉลี่ยสะสมของนักศึกษา เขียนคำสั่งได้ดังนี้
    ALTER TABLE student ADD GPA char(4)
    ผลลัพธ์ลักษณะรีเลชั่น student ที่เพิ่มแอตทริบิวต์ GPA
    ALTER TABLE student DROP Class
    ผลลัพธ์ลักษณะรีเลชั่น student ที่ลบแอตทริบิวต์ Class ออก
    ALTER TABLE student MODIFY sname stdname char (80)
    หมายเหตุ ตัวอย่างคำสั่ง MODIFY ใช้ได้เฉพาะบางซอฟต์แวร์ฐานข้อมูล เช่น MySQL
    คำสั่ง DROP TABLE เป็นคำสั่งที่ใช้สำหรับการลบรีเลชั่นออกจากระบบ
    DROP TABLE relation-name
    ตัวอย่างที่ 6.5 ให้สร้างรีเลชั่นชื่อ Student2 โดยมีแอตทริบิวต์เหมือนกับรีเลชั่น student แล้วใช้คำสั่งลบรีเลชั่น student2
    DROP TABLE student2
    4) คำสั่งสร้างดัชนี CREATE INDEX
    การสร้างดัชนีหรือ INDEX คือการสร้างดัชนีในการเรียงลำดับข้อมูลในแอททริบิวต์ที่กำหนด โดยดัชนีที่สร้างขึ้นจะแยกเก็บต่างหาก จากตารางข้อมูล เพื่อให้ การค้นหาข้อมูลได้รวดเร็วยิ่งขึ้น โดยปกติแล้วแอททริบิวต์ที่เป็นคีย์หลัก จะมีการทำดัชนีอยู่แล้ว แต่เรา สามารถสร้างดัชนีให้กับ แอททริบิวต์อื่นได้เช่นกัน แต่การสร้างดัชนีให้กับแอททริบิวต์หลายๆ ตัว อาจทำให้การทำงาน ล่าช้าได้ เนื่องจากหากมีการเปลี่ยนแปลงข้อมูล ดัชนีก็จะต้องทำการเรียงลำดับใหม่ ดังนั้นหากทำดัชนีให้กับ แอททริบิวต์หลายๆ ตัว ก็ย่อมต้องใช้เวลาในการเรียงลำดับใหม่มากขึ้น นอกจากนี้ยังเป็นการสิ้นเปลือง หน่วยความจำอีกด้วย
               ON relation-name (attribute-name [ASC | DESC][...])
    ASC | DESC คือรูปแบบการเรียงลำดับจากน้อยไปมาก (ASC) และมากไปน้อย (DESC)
    CREATE INDEX index_GPA
               ON student (GPA)
    5) คำสั่ง DROP INDEX ใช้ลบอินเด็กซ์
    DROP INDEX index-name
    ตัวอย่างที่ 6.7 คำสั่งลบ INDEX ชื่อ index_GPA
    DROP INDEX index_GPA
    6) คำสั่ง CREATE VIEW
    วิว หรือ รีเลชั่นเสมือน คือ รีเลชั่นที่สร้างมาจากรีเลชั่นหลัก คุณสมบัติของวิวจะเหมือนกับคุณ สมบัติของรีเลชั่นหลัก คือ เป็นลักษณะของตาราง 2 มิติ มีแถว กับคอลัมน์ โดยข้อมูลที่ได้ของวิว จะมาจาก รีเลชั่นหลักทั้งหมด วัตถุประสงค์ในการสร้างวิว
    การสร้างวิวโดยส่วนใหญ่มีวัตถุประสงค์คือ
            2. เพื่อความสะดวกในการแสดงผลตามความต้องการของผู้ใช้ จากตัวอย่างในข้อที่ ผ่านมาจะ เห็นว่า ข้อมูลนักศึกษามีหลายแอททริบิวต์ แต่การทำงานบางอย่างไม่ต้องการใช้ข้อมูลทุกแอททริบิวต์ เช่น ต้องการข้อมูลสำหรับการติดต่อนักศึกษา หากแสดงข้อมูลทั้งหมดของนักศึกษา จะทำให้เสียเวลา ในการค้นหาข้อมูลที่ต้องการ ดังนั้น จึงสร้างวิว เพื่อเก็บข้อมูลเฉพาะ รหัสนักศึกษา, ชื่อ, ที่อยู่, และ หมายเลขโทรศัพท์ของนักศึกษาเท่านั้น จะทำการเรียกดูข้อมูลสะดวกขึ้น นอกจากนี้หากต้องการข้อมูล เพื่อใช้งานด้านอื่นๆ ก็สามารถสร้างวิว โดยระบุเฉพาะแอททริบิวต์ที่ต้องการได้ คู่แข่งนั้นมีบางส่วนซ้ำซ้อนกัน (คือมีแอททริบิวต์บางตัวร่วมกันอยู่)
            1. วิวสามารถสร้างจาก รีเลชั่นเดียวหรือหลายรีเลชั่นก็ได้ โดย วิวสามารถเลือก เฉพาะบาง แอททริบิวต์ที่ต้องการจากรีเลชั่นเดียวหรือหลายๆ รีเลชั่นได้
            2. เมื่อข้อมูลในรีเลชั่นหลักมีการเปลี่ยนแปลงจะทำให้ข้อมูลในวิวเปลี่ยนแปลง ด้วย นอกจาก การเปลี่ยนแปลงข้อมูลแล้ว หากมีการลบรีเลชั่นหลัก จะทำให้วิวถูกลบตามไปด้วย แต่เราสามารถ ลบวิวได้ โดยไม่มีผลกับรีเลชั่นหลัก
            3. ในวิวที่ไม่ซับซ้อน เช่นวิวที่สร้างจากรีเลชั่นเดียว สามารถแก้ไขข้อมูลในรี เลชันหลัก ผ่าน ทางวิวได้เลย
            4. การเรียกดูข้อมูลผ่านวิว ทำได้เช่นเดียวกับรีเลชั่นหลักทุกประการ ใช้ฟังก์ชั่น การขึ้นต่อกัน D1 และ D3 สร้างเป็นรีเลชั่นเกรด และรีเลชั่นวิชาที่ลงทะเบียน ตามลำดับแล้วกำหนดให้พรอพเพอตี้ทั้งคู่รวมกันเป็นไพรมารี่ย์คีย์ของตารางTake และมีแอททริบิวต์ ของความสัมพันธ์เองก็คือ Grade
    CREATE VIEW view-name
    AS ประโยคคำสั่ง select
    ประโยคคำสั่ง select คือรูปแบบคำสั่งในการเรียกดูข้อมูลมาแสดงผล ซึ่งจะกล่าวถึงใน หัวข้อถัดไป
    CREATE VIEW Student_GPA
    AS SELECT SID,GPA FROM student
    ผลลัพธ์จากการคำสั่งดังกล่าว จะทำให้ได้ รีเลชั่นที่ชื่อว่า Student_GPA ซึ่งมีแอททริบิวต์ 2 แอททริบิวต์คือ SID และ GPA ข้อมูลทุกอย่างในรีเลชั่นนี้จะมาจากรีเลชั่นหลัก student หากมีการแก้ไข ข้อมูลในรีเลชั่น Student_GPA นี้ จะทำให้ข้อมูลในรีเลชั่น student เปลี่ยนแปลงด้วย เนื่องจากเป็นวิว ที่สร้างมาจากรีเลชั่นเดียว จะสามารถแก้ไขข้อมูลในวิว ผ่านไปยังรีเลชั่นหลักได้เลย
    DROP VIEW views-name
    ตัวอย่างที่ 6.9 คำสั่งลบ VIEW ชื่อ Student_GPA
    DROP VIEW Student_GPA

    รูปแบบคำสั่ง
    CREATE TABLE relation-name (attribute-name data-type [NULL | NOT NULL]ตัวอย่างที่ 6.1 รีเลชั่น student ดังตารางที่ 6.2 จงเขียนคำสั่งในการสร้างรีเลชั่น
    ตารางที่ 6.2 รีเลชั่น student
    เขียนคำสั่งได้ดังนี้
    CREATE TABLE student (SID char (10), Sname char (60) NOT NULL, Major integer, Level char(60), Class integer, PRIMARY KEY(SID))
    ลักษณะรีเลชั่น student ที่สร้างเสร็จ

    หมายเหตุ รูปแบบของคำสั่งในแต่ละซอฟต์แวร์จัดการฐานข้อมูล จะมีความแตกต่างกันเล็กน้อย รวมถึง ชนิดของข้อมูล ก็มีความแตกต่างกัน ดังนั้นในตัวอย่างจะใช้รูปแบบที่เป็นมาตรฐานทั่วไป
    2) คำสั่ง ALTER TABLE
    รูปแบบคำสั่ง
    ALTER TABLE relation-name ADD | DROP | MODIFY (attribute-name data-type)
    จากรูปแบบคำสั่ง ALTER TABLE สามารถเลือกการเปลี่ยนแปลงรีเลชั่นได้ 3 รูปแบบคือ

    ตัวอย่างที่ 6.3 คำสั่งลบแอททริบิวต์ Class ในรีเลชั่น student

    ตัวอย่างที่ 6.4 คำสั่งแก้ไขแอททริบิวต์ Sname ในรีเลชั่น student โดยเปลี่ยนชื่อ เป็น StdName และเปลี่ยนชนิดข้อมูลเป็น char (80)
    3) คำสั่ง DROP TABLE
    รูปแบบคำสั่ง
    รูปแบบคำสั่ง
    CREATE [UNIQUE] INDEX index-name
    UNIQUE คือการกำหนดให้ข้อมูลในแอททริบิวต์มีค่าไม่ซ้ำกัน
    ตัวอย่างที่ 6.6 การสร้างอินเด็กซ์ ชื่อ index_GPA ให้กับรีเลชั่น Student ที่แอตทริบิตส์ GPA
    รูปแบบคำสั่ง
            1. เพื่อความปลอดภัยของข้อมูล ตัวอย่างเช่น ในรีเลชั่น นักศึกษา จะมีการเก็บข้อมูล รหัส นักศึกษา, ชื่อ, ตำแหน่ง, แผนก, วันเริ่มทำงาน, เงินเดือน, วุฒิการศึกษา, ที่อยู่, เบอร์โทร, บุคคลอ้างอิง ฯลฯ ซึ่งหากผู้ใช้สามารถใช้งาน รีเลชั่นนี้ได้ ก็จะทราบข้อมูลทุกอย่าง รวมถึงแก้ไขข้อมูลที่สำคัญ เช่น เงินเดือน ดังนั้น จึงอาจทำการสร้างวิว โดยให้ผู้ใช้ เห็นข้อมูลเฉพาะ รหัสนักศึกษา, ชื่อ, ที่อยู่, เบอร์โทร เท่านั้น เป็นต้น
    คุณสมบัติของวิว
    รูปแบบคำสั่ง
    ตัวอย่างที่ 6.8 คำสั่งสร้างวิวชื่อ Student_GPA โดยเลือกแอททริบิวต์ SID และ PGA จากรีเลชั่น student
    หมายเหตุ คำสั่ง Create view ใช้ได้กับ DBMS SQL server และ MySql
    7) คำสั่ง DROP VIEW เป็นคำสั่งที่ใช้ลบ VIEW ที่ได้สร้างไว้
    รูปแบบคำสั่ง



    ภาษานิยามข้อมูล (Data Definition Language : DDL)


    เป็นชุดคำสั่งที่ใช้สำหรับกำหนดโครงสร้างของตารางในฐาน ข้อมูล  คำสั่งที่จัดอยู่ในประเภท DDL นี้
    ได้แก่ CREATE, ALTER และ DROP
    iconhanar CREATE TABLE
    เป็นคำสั่งที่ใช้ในการสร้างโครงสร้างของตาราง    โดยมีรูปแบบดังนี้
    cr_table
     ตัวอย่าง คำสั่งการสร้าง customer
    CREATE TABLEcustomer
    [customer_nochar(6)NOT NULL,
     c_namechar(10)ืNOT NULL,
     c_addresschar(20),
     c_credit_limitdecimal(7,2),
     c_current_balancedecimal(7,2)];

    h0d22 ALTER TABLE
    เป็นคำสั่งที่ใช้ในการเปลี่ยนแปลงโครงสร้างตาราง   โดยมีรูปแบบดังนี้
    format
    คำสั่ง  ALTER   TABLE    สามารถใช้ในการเปลี่ยนแปลงโครงสร้างตารางได้  4  รูปแบบ คือ
         lh_g1 ใช้ในการเพิ่มคอลัมน์
               ตัวอย่าง   การเพิ่มคอลัมน์
    ต้องการเพิ่มคอลัมน์   e_telephone  ลงในตาราง  customer  สามารถกระทำได้โดยใช้คำสั่งดังนี้
    at1
         zh_p1 ใช้ในการเปลี่ยนแปลงขนาดความกว้างของคอลัมน์
               ตัวอย่าง   การเปลี่ยนแปลงขนาดความกว้างของคอลัมน์
    ต้องการเปลี่ยนแปลงขนาดความกว้างของคอลัมน์  c_address  จากเดิม 20  ไปเป็น 25  สามารถกระทำได้โดยใช้คำสั่งดังนี้
    at2
         5h_r1 ใช้ในการเปลี่ยนชื่อคอลัมน์
               ตัวอย่าง   การเปลี่ยนชื่อคอลัมน์  
    ต้องการเปลี่ยนชื่อคอลัมน์  จาก customer_no    ไปเป็น  c_no   สามารถกระทำได้โดยใช้คำสั่งดังนี้
    at3
         h_mm1 ใช้ในการลบคอลัมน์จากตาราง
               ตัวอย่าง   การลบคอลัมน์ออกจากตาราง
    ต้องการลบคอลัมน์   c_telephone    ออกจากตาราง    สามารถกระทำได้โดยใช้คำสั่งดังนี้
    at4
         iconhanar DROP TABLE
             เป็นคำสั่งที่ใช้ในการลบตารางออกจากฐานข้อมูล  โดยมีรูปแบบดังนี้
    dt1
              ตัวอย่าง   ต้องการลบตาราง  customer   ออกจากฐานข้อมูล
    dt2

    ไม่มีความคิดเห็น:

    แสดงความคิดเห็น