DB2 - Tabele
Tabele są logiczną strukturą obsługiwaną przez Menedżera bazy danych. W tabeli każdy pionowy blok nazywany kolumną (krotka) i każdy poziomy blok nazywany wierszem (Entity). Zbiór danych przechowywanych w postaci kolumn i wierszy nazywany jest tabelą. W tabelach każda kolumna ma inny typ danych. Tabele służą do przechowywania trwałych danych.
Typ stołów
- Base Tables: Przechowują trwałe dane. Istnieją różne rodzaje tabel podstawowych, w tym:
- Regular Tables: Tabele ogólnego przeznaczenia, Typowe tabele z indeksami to tabele ogólnego przeznaczenia.
- Multidimensional Clustering Table (MDC): Ten typ tabeli fizycznie skupiony na więcej niż jednym kluczu i używany do utrzymywania dużych środowisk baz danych. Tabele tego typu nie są obsługiwane w programie DB2 pureScale.
- Insert time clustering Table (ITC): Podobnie jak w przypadku tabel MDC, wiersze są grupowane według czasu ich wstawienia do tabel. Mogą to być tabele podzielone na partycje. One również nie obsługują środowiska pureScale.
- Range-Clustered tables Table (RCT): Tabele tego typu zapewniają szybki i bezpośredni dostęp do danych. Są one implementowane jako klastry sekwencyjne. Każdy rekord w tabeli ma identyfikator rekordu. Tabele tego typu są używane, gdy dane są ściśle zgrupowane z co najmniej jedną kolumną tabeli. Tabele tego typu również nie są obsługiwane w programie DB2 pureScale.
- Partitioned Tables: Tabele tego typu są używane w schemacie organizacji danych, w którym dane tabeli są podzielone na wiele obiektów pamięci masowej. Partycje danych można dodawać, dołączać i odłączać od tabeli podzielonej na partycje. W jednym obszarze tabel można przechowywać wiele partycji danych z tabeli.
- Temporal Tables: Historia tabeli w bazie danych jest przechowywana w tabelach czasowych, takich jak szczegóły wcześniej wykonanych modyfikacji.
- Temporary Tables: Do tymczasowej pracy różnych operacji na bazie danych należy używać tabel tymczasowych. Tabele tymczasowe (DGTT) nie pojawiają się w katalogu systemowym, kolumn XML nie można używać w tworzonych tabelach tymczasowych.
- Materialized Query Tables: MQT może służyć do poprawiania wydajności zapytań. Te typy tabel są definiowane przez zapytanie, które służy do określania danych w tabelach.
Tworzenie tabel
Poniższa składnia tworzy tabelę:
Syntax: [Aby utworzyć nową tabelę]
db2 create table <schema_name>.<table_name>
(column_name column_type....) in <tablespace_name>
Example: Tworzymy tabelę do przechowywania danych „pracownika” w schemacie „profesjonalista”. Ta tabela zawiera pola „id, name, jobrole, joindate, salary”, a dane tej tabeli będą przechowywane w obszarze tabel „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.
Szczegóły tabeli aukcji
Poniższa składnia służy do wyświetlania szczegółów tabeli:
Syntax: [Aby zobaczyć listę tabel utworzonych za pomocą schematów]
db2 select tabname, tabschema, tbspace from syscat.tables
Example: [Aby zobaczyć listę tabel w bieżącej bazie danych]
db2 select tabname, tabschema, tbspace from syscat.tables
Output:
TABNAME TABSCHEMA TBSPACE
------------ ------------- --------
EMPLOYEE PROFESSIONAL TS1
1 record(s) selected.
Wyświetlanie kolumn w tabeli
Poniższa składnia wyświetla kolumny w tabeli:
Syntax: [Aby zobaczyć kolumny i typy danych tabeli]
db2 describe table <table_name>
Example: [Aby zobaczyć kolumny i typy danych w tabeli „pracownik”]
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.
Ukryte kolumny
Możesz ukryć całą kolumnę tabeli. Jeśli wywołasz zapytanie „wybierz * z”, ukryte kolumny nie zostaną zwrócone w wynikowej tabeli. Podczas wstawiania danych do tabeli instrukcja „INSERT” bez listy kolumn nie oczekuje wartości dla żadnych niejawnie ukrytych kolumn. Te typy kolumn są bardzo przywoływane w zmaterializowanych tabelach zapytań. Ten typ kolumn nie obsługuje tworzenia tabel tymczasowych.
Tworzenie tabeli z ukrytą kolumną
Poniższa składnia tworzy tabelę z ukrytymi kolumnami:
Syntax: [Aby utworzyć tabelę z ukrytymi kolumnami]
db2 create table <tab_name> (col1 datatype,col2 datatype
implicitly hidden)
Example: [Aby utworzyć tabelę „klientów” z ukrytymi kolumnami „telefon”]
db2 create table professional.customer(custid integer not
null, fullname varchar(100), phone char(10)
implicitly hidden)
Wstawianie wartości danych do tabeli
Następująca składnia wstawia wartości do tabeli:
Syntax: [Aby wstawić wartości do tabeli]
db2 insert into <tab_name>(col1,col2,...)
values(val1,val2,..)
Example: [Aby wstawić wartości w tabeli „klient”]
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.
Pobieranie wartości z tabeli
Następująca składnia pobiera wartości z tabeli:
Syntax: [Aby pobrać wartości z tabeli]
db2 select * from <tab_name>
Example: [Aby pobrać wartości z tabeli „customer”]
db2 select * from professional.customer
Output:
CUSTID FULLNAME
----------- ------------------------
100 ravi
101 krathi
102 gopal
3 record(s) selected.
Pobieranie wartości z tabeli, w tym ukrytych kolumn
Poniższa składnia pobiera wartości z wybranych kolumn:
Syntax: [Aby pobrać wybrane ukryte wartości kolumn z tabeli]
db2 select col1,col2,col3 from <tab_name>
Example: [Aby pobrać wybrane wartości kolumn z tabeli]
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.
Jeśli chcesz zobaczyć dane w ukrytych kolumnach, musisz wykonać polecenie „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.
Zmiana typu kolumn tabeli
Możesz zmodyfikować strukturę naszej tabeli za pomocą tego polecenia „alter” w następujący sposób:
Syntax:
db2 alter table <tab_name> alter column <col_name> set data type <data_type>
Example: [Aby zmodyfikować typ danych w kolumnie „id” z „int” na „bigint” dla tabeli pracowników]
db2 alter table professional.employee alter column id set data type bigint
Output::
DB20000I The SQL command completed successfully.
Zmieniam nazwę kolumny
Możesz zmienić nazwę kolumny, jak pokazano poniżej:
Syntax: [Aby zmienić nazwę kolumny ze starej nazwy na nową nazwę tabeli]
db2 alter table <tab_name> rename column <old_name> to <new_name>
Example: [Aby zmienić nazwę kolumny z „pełna nazwa” na „nazwa klienta” w tabeli „klienci”.]
db2 alter table professional.customer rename column fullname to custname
Upuszczanie stołów
Aby usunąć dowolną tabelę, musisz użyć polecenia „DROP” w następujący sposób:
Syntax:
db2 drop table <tab_name>
Example: [Aby usunąć bazę danych tabeli klientów]
db2 drop table professional.customers
Aby usunąć całą hierarchię tabeli (w tym wyzwalacze i relację), musisz użyć polecenia „DROP TABLE HIERARCHY”.
Syntax:
db2 drop table hierarchy <tab_name>
Example: [Aby usunąć całą hierarchię tabeli „klient”]
db2 drop table hierarchy professional.customers