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 <tab_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