DB2 - टेबल्स

टेबल्स डेटाबेस मैनेजर द्वारा बनाए रखा तार्किक संरचना है। तालिका में प्रत्येक ऊर्ध्वाधर ब्लॉक को स्तंभ (टुपल) के रूप में और प्रत्येक क्षैतिज ब्लॉक को पंक्ति (इकाई) के रूप में कहा जाता है। स्तंभ और पंक्तियों के रूप में संग्रहीत डेटा का संग्रह एक तालिका के रूप में जाना जाता है। तालिकाओं में, प्रत्येक कॉलम में अलग-अलग डेटा प्रकार होते हैं। टेबल्स का उपयोग लगातार डेटा को स्टोर करने के लिए किया जाता है।

तालिकाओं का प्रकार

  • Base Tables: वे लगातार डेटा रखते हैं। बेस टेबल के विभिन्न प्रकार हैं, जिनमें शामिल हैं:
    • Regular Tables: सामान्य प्रयोजन तालिकाओं, अनुक्रमित के साथ सामान्य तालिकाओं सामान्य प्रयोजन तालिकाओं हैं।
    • Multidimensional Clustering Table (MDC): इस प्रकार की तालिका भौतिक रूप से एक से अधिक कुंजी पर क्लस्टर की जाती है, और इसका उपयोग बड़े डेटाबेस वातावरण को बनाए रखने के लिए किया जाता है। DB2 PureScale में इस प्रकार की तालिकाओं का समर्थन नहीं किया जाता है।
    • Insert time clustering Table (ITC): MDC तालिकाओं के समान, पंक्तियों को तब तक क्लस्टर किया जाता है जब तक वे तालिकाओं में सम्मिलित नहीं हो जाती हैं। उन्हें टेबल विभाजित किया जा सकता है। वे भी, विशुद्ध वातावरण का समर्थन नहीं करते हैं।
    • Range-Clustered tables Table (RCT): इस प्रकार के टेबल डेटा की तेज और प्रत्यक्ष पहुंच प्रदान करते हैं। इन्हें क्रमिक समूहों के रूप में कार्यान्वित किया जाता है। तालिका में प्रत्येक रिकॉर्ड में एक रिकॉर्ड आईडी है। इस प्रकार की तालिकाओं का उपयोग किया जाता है, जहां डेटा को तालिका में एक या अधिक स्तंभों के साथ कसकर जोड़ा जाता है। इस प्रकार की तालिकाएँ DB2 प्योरसेल में भी समर्थन नहीं करती हैं।
    • 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: हम "पेशेवर" स्कीमा में "कर्मचारी" विवरण संग्रहीत करने के लिए एक तालिका बनाते हैं। इस तालिका में "आईडी, नाम, जॉब्रोएल, जॉइंडेट, वेतन" फ़ील्ड हैं और यह टेबल डेटा टेबलस्पेस "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: [छिपे हुए कॉलम 'फोन' के साथ 'ग्राहक' तालिका बनाने के लिए]

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.

तालिका स्तंभों के प्रकार को बदलना

आप इस "परिवर्तन" आदेश का उपयोग करके हमारी तालिका संरचना को संशोधित कर सकते हैं:

Syntax:

db2 alter table <tab_name> alter column <col_name> set data type <data_type>

Example: [कॉलम "आईडी" के लिए डेटा प्रकार को संशोधित करने के लिए "इंट" से कर्मचारी टेबल के लिए "बिगइंट" पर जाएं।

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: ["ग्राहकों" तालिका में "पूरा नाम" से "हिरासत" के लिए कॉलम नाम को संशोधित करने के लिए।]

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