DB2 - Tabellen

Tabellen sind logische Strukturen, die vom Datenbankmanager verwaltet werden. In einer Tabelle wird jeder vertikale Block als Spalte (Tupel) und jeder horizontale Block als Zeile (Entität) bezeichnet. Die Sammlung von Daten, die in Form von Spalten und Zeilen gespeichert sind, wird als Tabelle bezeichnet. In Tabellen hat jede Spalte einen anderen Datentyp. Tabellen werden zum Speichern persistenter Daten verwendet.

Art der Tabellen

  • Base Tables: Sie enthalten persistente Daten. Es gibt verschiedene Arten von Basistabellen, darunter:
    • Regular Tables: Allzwecktabellen, Allgemeine Tabellen mit Indizes sind Allzwecktabellen.
    • Multidimensional Clustering Table (MDC): Diese Art von Tabelle, die physisch auf mehr als einem Schlüssel gruppiert ist und zur Verwaltung großer Datenbankumgebungen verwendet wird. Diese Art von Tabellen wird in DB2 pureScale nicht unterstützt.
    • Insert time clustering Table (ITC): Ähnlich wie bei MDC-Tabellen werden Zeilen zum Zeitpunkt des Einfügens in die Tabellen gruppiert. Sie können partitionierte Tabellen sein. Auch sie unterstützen keine pureScale-Umgebung.
    • Range-Clustered tables Table (RCT): Diese Art von Tabellen ermöglicht einen schnellen und direkten Zugriff auf Daten. Diese werden als sequentielle Cluster implementiert. Jeder Datensatz in der Tabelle hat eine Datensatz-ID. Diese Art von Tabellen wird verwendet, wenn die Daten eng mit einer oder mehreren Spalten in der Tabelle gruppiert sind. Diese Art von Tabellen wird auch in DB2 pureScale nicht unterstützt.
    • Partitioned Tables: Diese Art von Tabellen wird im Datenorganisationsschema verwendet, in dem Tabellendaten in mehrere Speicherobjekte unterteilt sind. Datenpartitionen können zu einer partitionierten Tabelle hinzugefügt, an diese angehängt und von dieser getrennt werden. Sie können mehrere Datenpartitionen aus einer Tabelle in einem Tabellenbereich speichern.
    • Temporal Tables: Der Verlauf einer Tabelle in einer Datenbank wird in temporären Tabellen gespeichert, z. B. Details zu den zuvor vorgenommenen Änderungen.
  • Temporary Tables: Für temporäre Arbeiten verschiedener Datenbankoperationen müssen Sie temporäre Tabellen verwenden. Die temporären Tabellen (DGTTs) werden nicht im Systemkatalog angezeigt. XML-Spalten können nicht in erstellten temporären Tabellen verwendet werden.
  • Materialized Query Tables: MQT kann verwendet werden, um die Leistung von Abfragen zu verbessern. Diese Tabellentypen werden durch eine Abfrage definiert, mit der die Daten in den Tabellen ermittelt werden.

Tabellen erstellen

Die folgende Syntax erstellt eine Tabelle:

Syntax: [So erstellen Sie eine neue Tabelle]

db2 create table <schema_name>.<table_name>
(column_name column_type....) in <tablespace_name>

Example: Wir erstellen eine Tabelle, um "Mitarbeiter" -Details im Schema "professionell" zu speichern. Diese Tabelle enthält die Felder "ID, Name, Jobrolle, Verbindung, Gehalt". Diese Tabellendaten werden im Tabellenbereich "ts1" gespeichert.

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.

Auflistung der Tabellendetails

Die folgende Syntax wird verwendet, um Tabellendetails aufzulisten:

Syntax: [Um die Liste der mit Schemas erstellten Tabellen anzuzeigen]

db2 select tabname, tabschema, tbspace from syscat.tables

Example: [Um die Liste der Tabellen in der aktuellen Datenbank anzuzeigen]

db2 select tabname, tabschema, tbspace from syscat.tables

Output:

TABNAME      TABSCHEMA     TBSPACE 
------------ ------------- -------- 
EMPLOYEE     PROFESSIONAL    TS1  


 1 record(s) selected.

Spalten in einer Tabelle auflisten

Die folgende Syntax listet Spalten in einer Tabelle auf:

Syntax: [Spalten und Datentypen einer Tabelle anzeigen]

db2 describe table <table_name>

Example: [Um die Spalten und Datentypen der Tabelle 'Mitarbeiter' anzuzeigen]

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.

Versteckte Spalten

Sie können eine ganze Spalte einer Tabelle ausblenden. Wenn Sie die Abfrage "select * from" aufrufen, werden die ausgeblendeten Spalten in der resultierenden Tabelle nicht zurückgegeben. Wenn Sie Daten in eine Tabelle einfügen, erwartet eine Anweisung „INSERT“ ohne Spaltenliste keine Werte für implizit ausgeblendete Spalten. Diese Art von Spalten wird in materialisierten Abfragetabellen häufig referenziert. Diese Art von Spalten unterstützt das Erstellen temporärer Tabellen nicht.

Tabelle mit versteckter Spalte erstellen

Die folgende Syntax erstellt eine Tabelle mit ausgeblendeten Spalten:

Syntax: [So erstellen Sie eine Tabelle mit ausgeblendeten Spalten]

db2 create table <tab_name> (col1 datatype,col2 datatype 
implicitly hidden)

Example: [So erstellen Sie eine 'Kunden'-Tabelle mit versteckten Spalten' Telefon ']

db2 create table professional.customer(custid integer not 
null, fullname varchar(100), phone char(10) 
implicitly hidden)

Einfügen von Datenwerten in die Tabelle

Die folgende Syntax fügt Werte in die Tabelle ein:

Syntax: [Um Werte in eine Tabelle einzufügen]

db2 insert into <tab_name>(col1,col2,...)
 values(val1,val2,..)

Example: [Um Werte in die 'Kunden'-Tabelle einzufügen]

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.

Werte aus Tabelle abrufen

Die folgende Syntax ruft Werte aus der Tabelle ab:

Syntax: [Um Werte aus einer Tabelle abzurufen]

db2 select * from &lttab_name>

Example: [Um Werte aus der 'Kunden'-Tabelle abzurufen]

db2 select * from professional.customer

Output:

CUSTID      FULLNAME 
----------- ------------------------ 
        100 ravi
		
        101 krathi
		
        102 gopal  
		
  3 record(s) selected.

Abrufen von Werten aus einer Tabelle mit ausgeblendeten Spalten

Die folgende Syntax ruft Werte aus ausgewählten Spalten ab:

Syntax: [Um ausgewählte Werte für versteckte Spalten aus einer Tabelle abzurufen]

db2 select col1,col2,col3 from <tab_name>

Example: [Um ausgewählte Spaltenwerte aus einer Tabelle abzurufen]

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.

Wenn Sie die Daten in den ausgeblendeten Spalten anzeigen möchten, müssen Sie den Befehl "DESCRIBE" ausführen.

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.

Ändern des Typs der Tabellenspalten

Sie können unsere Tabellenstruktur mit diesem Befehl "ändern" wie folgt ändern:

Syntax::

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

Example: [So ändern Sie den Datentyp für die Spalte "id" von "int" in "bigint" für die Mitarbeitertabelle]

db2 alter table professional.employee alter column id set data type bigint

Output:::

DB20000I The SQL command completed successfully.

Spaltennamen ändern

Sie können den Spaltennamen wie folgt ändern:

Syntax: [So ändern Sie den Spaltennamen vom alten zum neuen Namen einer Tabelle]

db2 alter table <tab_name> rename column <old_name> to <new_name>

Example: [So ändern Sie den Spaltennamen in der Tabelle "Kunden" von "vollständiger Name" in "Kundenname".]

db2 alter table professional.customer rename column fullname to custname

Die Tische fallen lassen

Um eine Tabelle zu löschen, müssen Sie den Befehl "DROP" wie folgt verwenden:

Syntax::

db2 drop table <tab_name>

Example: [Löschen der Kundentabellendatenbank]

db2 drop table professional.customers

Um die gesamte Hierarchie der Tabelle (einschließlich Trigger und Relation) zu löschen, müssen Sie den Befehl "DROP TABLE HIERARCHY" verwenden.

Syntax::

db2 drop table hierarchy <tab_name>

Example: [Um die gesamte Hierarchie einer Tabelle 'Kunde' zu löschen]

db2 drop table hierarchy professional.customers