DB2 - ตาราง
ตารางเป็นโครงสร้างเชิงตรรกะที่ดูแลโดยผู้จัดการฐานข้อมูล ในตารางแต่ละบล็อกแนวตั้งเรียกว่าคอลัมน์ (Tuple) และแต่ละบล็อกแนวนอนเรียกว่าเป็นแถว (เอนทิตี) การรวบรวมข้อมูลที่จัดเก็บในรูปแบบของคอลัมน์และแถวเรียกว่าตาราง ในตารางแต่ละคอลัมน์มีชนิดข้อมูลที่แตกต่างกัน ตารางใช้เพื่อเก็บข้อมูลถาวร
ประเภทของตาราง
- Base Tables: พวกเขาเก็บข้อมูลถาวร โต๊ะฐานมีหลายประเภท ได้แก่ : 
      
- Regular Tables: ตารางเอนกประสงค์ตารางทั่วไปที่มีดัชนีคือตารางเอนกประสงค์
 - Multidimensional Clustering Table (MDC): ตารางประเภทนี้คลัสเตอร์ทางกายภาพบนคีย์มากกว่าหนึ่งคีย์และใช้เพื่อรักษาสภาพแวดล้อมฐานข้อมูลขนาดใหญ่ ตารางประเภทนี้ไม่สนับสนุนใน DB2 pureScale
 - Insert time clustering Table (ITC): คล้ายกับตาราง MDC แถวจะถูกจัดกลุ่มตามเวลาที่แทรกลงในตาราง พวกเขาสามารถแบ่งตาราง พวกเขาก็เช่นกันไม่สนับสนุนสภาพแวดล้อม pureScale
 - Range-Clustered tables Table (RCT): ตารางประเภทนี้ให้การเข้าถึงข้อมูลที่รวดเร็วและตรงไปตรงมา สิ่งเหล่านี้ถูกนำไปใช้เป็นคลัสเตอร์ตามลำดับ แต่ละระเบียนในตารางมี ID เร็กคอร์ด ตารางประเภทนี้ใช้ในกรณีที่ข้อมูลถูกรวมกลุ่มอย่างแน่นหนาโดยมีคอลัมน์อย่างน้อยหนึ่งคอลัมน์ในตาราง ตารางประเภทนี้ยังไม่รองรับใน DB2 pureScale
 - Partitioned Tables: ตารางประเภทนี้ใช้ในสคีมาการจัดระเบียบข้อมูลซึ่งข้อมูลตารางจะถูกแบ่งออกเป็นออบเจ็กต์หน่วยเก็บข้อมูลหลายรายการ พาร์ติชันข้อมูลสามารถเพิ่มแนบและแยกออกจากตารางที่แบ่งพาร์ติชันได้ คุณสามารถจัดเก็บข้อมูลหลายพาร์ติชันจากตารางในหนึ่งตาราง
 - Temporal Tables: ประวัติของตารางในฐานข้อมูลจะถูกเก็บไว้ในตารางชั่วคราวเช่นรายละเอียดของการแก้ไขที่ทำก่อนหน้านี้
 
 - Temporary Tables: สำหรับการทำงานชั่วคราวของการดำเนินการฐานข้อมูลที่แตกต่างกันคุณจำเป็นต้องใช้ตารางชั่วคราว ตารางชั่วคราว (DGTTs) ไม่ปรากฏในแค็ตตาล็อกระบบไม่สามารถใช้คอลัมน์ XML ในตารางชั่วคราวที่สร้างขึ้น
 - Materialized Query Tables: MQT สามารถใช้เพื่อปรับปรุงประสิทธิภาพของแบบสอบถาม ตารางประเภทนี้กำหนดโดยคิวรีซึ่งใช้เพื่อกำหนดข้อมูลในตาราง
 
การสร้างตาราง
ไวยากรณ์ต่อไปนี้สร้างตาราง:
Syntax: [เพื่อสร้างตารางใหม่]
db2 create table <schema_name>.<table_name>
(column_name column_type....) in <tablespace_name> 
    Example: เราสร้างตารางเพื่อจัดเก็บรายละเอียด "พนักงาน" ในสคีมาของ "มืออาชีพ" ตารางนี้มีฟิลด์ "id, name, jobrole, joindate, เงินเดือน" และข้อมูลตารางนี้จะถูกเก็บไว้ในพื้นที่ตาราง "ts1"
db2 create table professional.employee(id int, name 
varchar(50),jobrole varchar(30),joindate date, 
salary double) in ts1 
    Output:
DB20000I The SQL command completed successfully. 
    รายละเอียดตารางรายการ
ไวยากรณ์ต่อไปนี้ใช้เพื่อแสดงรายละเอียดตาราง:
Syntax: [หากต้องการดูรายการตารางที่สร้างด้วยสกีมา]
db2 select tabname, tabschema, tbspace from syscat.tables 
    Example: [เพื่อดูรายการตารางในฐานข้อมูลปัจจุบัน]
db2 select tabname, tabschema, tbspace from syscat.tables 
    Output:
TABNAME      TABSCHEMA     TBSPACE 
------------ ------------- -------- 
EMPLOYEE     PROFESSIONAL    TS1  
 1 record(s) selected. 
    รายการคอลัมน์ในตาราง
ไวยากรณ์ต่อไปนี้แสดงรายการคอลัมน์ในตาราง:
Syntax: [หากต้องการดูคอลัมน์และประเภทข้อมูลของตาราง]
db2 describe table <table_name> 
    Example: [หากต้องการดูคอลัมน์และประเภทข้อมูลของตาราง "พนักงาน"]
db2 describe table professional.employee 
    Output:
Data type                   Column 
Column name  schema    Data type name    Length    Scale Nulls 
------ ----- --------- ----------------- --------- ----- ------ 
ID           SYSIBM    INTEGER             4         0     Yes 
NAME         SYSIBM    VARCHAR             50        0     Yes 
JOBROLE      SYSIBM    VARCHAR             30        0     Yes 
JOINDATE     SYSIBM    DATE                4         0     Yes 
SALARY       SYSIBM    DOUBLE              8         0     Yes  
  5 record(s) selected. 
    คอลัมน์ที่ซ่อนอยู่
คุณสามารถซ่อนทั้งคอลัมน์ของตาราง หากคุณเรียกแบบสอบถาม“ เลือก * จาก” คอลัมน์ที่ซ่อนไว้จะไม่ส่งคืนในตารางผลลัพธ์ เมื่อคุณแทรกข้อมูลลงในตารางคำสั่ง“ INSERT” ที่ไม่มีรายการคอลัมน์จะไม่คาดหวังค่าสำหรับคอลัมน์ที่ซ่อนอยู่โดยปริยาย คอลัมน์ประเภทนี้มีการอ้างอิงอย่างมากในตารางแบบสอบถามที่เป็นรูปธรรม คอลัมน์ประเภทนี้ไม่รองรับการสร้างตารางชั่วคราว
การสร้างตารางด้วยคอลัมน์ที่ซ่อนอยู่
ไวยากรณ์ต่อไปนี้สร้างตารางที่มีคอลัมน์ที่ซ่อนอยู่:
Syntax: [ในการสร้างตารางที่มีคอลัมน์ที่ซ่อนอยู่]
db2 create table <tab_name> (col1 datatype,col2 datatype 
implicitly hidden) 
    Example: [ในการสร้างตาราง "ลูกค้า" ด้วยคอลัมน์ที่ซ่อนอยู่ "phone"]
db2 create table professional.customer(custid integer not 
null, fullname varchar(100), phone char(10) 
implicitly hidden) 
    การแทรกค่าข้อมูลในตาราง
ไวยากรณ์ต่อไปนี้แทรกค่าในตาราง:
Syntax: [ในการแทรกค่าลงในตาราง]
db2 insert into <tab_name>(col1,col2,...)
 values(val1,val2,..) 
    Example: [ในการแทรกค่าในตาราง "ลูกค้า"]
db2 insert into professional.customer(custid, fullname, phone) 
values(100,'ravi','9898989')
db2 insert into professional.customer(custid, fullname, phone) 
values(101,'krathi','87996659')
db2 insert into professional.customer(custid, fullname, phone) 
values(102,'gopal','768678687') 
    Output:
DB20000I  The SQL command completed successfully. 
    การดึงค่าจากตาราง
ไวยากรณ์ต่อไปนี้ดึงค่าจากตาราง:
Syntax: [ในการดึงค่าจากตาราง]
db2 select * from <tab_name> 
    Example: [เพื่อดึงค่าจากตาราง "ลูกค้า"]
db2 select * from professional.customer 
    Output:
CUSTID      FULLNAME 
----------- ------------------------ 
        100 ravi
		
        101 krathi
		
        102 gopal  
		
  3 record(s) selected. 
    การดึงค่าจากตารางรวมถึงคอลัมน์ที่ซ่อนอยู่
ไวยากรณ์ต่อไปนี้ดึงค่าจากคอลัมน์ที่เลือก:
Syntax: [เพื่อดึงค่าคอลัมน์ที่ซ่อนอยู่ที่เลือกจากตาราง]
db2 select col1,col2,col3 from <tab_name> 
    Example: [ในการดึงค่าคอลัมน์ที่เลือกเป็นผลลัพธ์จากตาราง]
db2 select custid,fullname,phone from professional.customer 
    Output:
CUSTID  FULLNAME    PHONE 
------- ---------   ------------ 
100     ravi        9898989
 
101     krathi      87996659 
102     gopal       768678687 
  3 record(s) selected. 
    หากคุณต้องการดูข้อมูลในคอลัมน์ที่ซ่อนอยู่คุณต้องดำเนินการคำสั่ง“ DESCRIBE”
Syntax:
db2 describe table <table_name> show detail 
    Example:
db2 describe table professional.customer show detail 
    Output:
Column name     Data type schema     Data type name  Column
           column    Partitionkey  code 
                                       Length   Scale    Nulls     
number     sequence      page     Hidden      Default 
--------------- -------------------- --------------- -------- ----
---- -------- ---------- ------------- -------- ----------- ------ 
---  
CUSTID          SYSIBM               INTEGER         4        0 
No       0          0         0        No 
FULLNAME        SYSIBM               VARCHAR         100      0
Yes      1          0        1208     No     
PHONE           SYSIBM               CHARACTER       10       0     
Yes      2          0             1208     Implicitly  
  
3 record(s) selected. 
    การเปลี่ยนประเภทของคอลัมน์ในตาราง
คุณสามารถแก้ไขโครงสร้างตารางของเราได้โดยใช้คำสั่ง“ alter” ดังนี้:
Syntax:
db2 alter table <tab_name> alter column <col_name> set data type <data_type> 
    Example: [ในการแก้ไขประเภทข้อมูลสำหรับคอลัมน์“ id” จาก“ int” เป็น“ bigint” สำหรับตารางพนักงาน]
db2 alter table professional.employee alter column id set data type bigint 
    Output::
DB20000I The SQL command completed successfully. 
    กำลังเปลี่ยนชื่อคอลัมน์
คุณสามารถเปลี่ยนชื่อคอลัมน์ตามที่แสดงด้านล่าง:
Syntax: [ในการแก้ไขชื่อคอลัมน์จากชื่อเก่าเป็นชื่อใหม่ของตาราง]
db2 alter table <tab_name> rename column <old_name> to <new_name> 
    Example: [ในการแก้ไขชื่อคอลัมน์จาก“ fullname” เป็น“ custname” ในตาราง“ customers”]
db2 alter table professional.customer rename column fullname to custname 
    วางตาราง
ในการลบตารางใด ๆ คุณต้องใช้คำสั่ง“ DROP” ดังนี้:
Syntax:
db2 drop table <tab_name> 
    Example: [เพื่อวางฐานข้อมูลแบบฟอร์มตารางลูกค้า]
db2 drop table professional.customers 
    ในการลบลำดับชั้นทั้งหมดของตาราง (รวมถึงทริกเกอร์และความสัมพันธ์) คุณต้องใช้คำสั่ง“ DROP TABLE HIERARCHY”
Syntax:
db2 drop table hierarchy <tab_name> 
    Example: [ในการวางลำดับชั้นทั้งหมดของตาราง "ลูกค้า"]
db2 drop table hierarchy professional.customers