Учебники

DB2 — Таблицы

Таблицы представляют собой логическую структуру, поддерживаемую менеджером баз данных. В таблице каждый вертикальный блок называется столбцом (Tuple), а каждый горизонтальный блок называется строкой (Entity). Коллекция данных, хранящихся в форме столбцов и строк, называется таблицей. В таблицах каждый столбец имеет различный тип данных. Таблицы используются для хранения постоянных данных.

Тип столов

  • Базовые таблицы : они содержат постоянные данные. Существуют различные виды базовых таблиц, в том числе:
    • Обычные таблицы : таблицы общего назначения, общие таблицы с индексами — это таблицы общего назначения.
    • Таблица многомерных кластеров (MDC) . Этот тип таблиц физически сгруппирован по нескольким ключам и используется для поддержки сред больших баз данных. Таблицы такого типа не поддерживаются в DB2 pureScale.
    • Таблица кластеризации по времени вставки (ITC) . Подобно таблицам MDC, строки кластеризуются по времени, когда они вставляются в таблицы. Они могут быть секционированными таблицами. Они тоже не поддерживают среду pureScale.
    • Таблица с кластеризацией по диапазону (RCT) : таблицы этого типа обеспечивают быстрый и прямой доступ к данным. Они реализованы в виде последовательных кластеров. Каждая запись в таблице имеет идентификатор записи. Таблицы такого типа используются, когда данные плотно кластеризованы с одним или несколькими столбцами в таблице. Таблицы этого типа также не поддерживаются в DB2 pureScale.
    • Секционированные таблицы : Таблицы этого типа используются в схеме организации данных, в которой данные таблицы делятся на несколько объектов хранения. Разделы данных могут быть добавлены, присоединены и отделены от многораздельной таблицы. Вы можете хранить несколько разделов данных из таблицы в одном табличном пространстве.
    • Временные таблицы : история таблицы в базе данных хранится во временных таблицах, таких как детали ранее сделанных изменений.
  • Временные таблицы : для временной работы различных операций с базой данных вам необходимо использовать временные таблицы. Временные таблицы (DGTT) не отображаются в системном каталоге, столбцы XML нельзя использовать в созданных временных таблицах.
  • Материализованные таблицы запросов : MQT можно использовать для повышения производительности запросов. Эти типы таблиц определяются запросом, который используется для определения данных в таблицах.

Создание таблиц

Следующий синтаксис создает таблицу:

Синтаксис : [Создать новую таблицу]

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

Пример : мы создаем таблицу для хранения данных «сотрудника» в схеме «профессионал». Эта таблица имеет поля «id, name, jobrole, joindate, salary», и данные этой таблицы будут храниться в табличном пространстве «ts1».

db2 create table professional.employee(id int, name 
varchar(50),jobrole varchar(30),joindate date, 
salary double) in ts1    

Выход:

DB20000I The SQL command completed successfully.    

Детали таблицы

Следующий синтаксис используется для перечисления деталей таблицы:

Синтаксис : [Чтобы увидеть список таблиц, созданных со схемами]

db2 select tabname, tabschema, tbspace from syscat.tables    

Пример : [Чтобы увидеть список таблиц в текущей базе данных]

db2 select tabname, tabschema, tbspace from syscat.tables     

Выход:

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


 1 record(s) selected.     

Список столбцов в таблице

Следующий синтаксис перечисляет столбцы в таблице:

Синтаксис : [Чтобы увидеть столбцы и типы данных таблицы]

db2 describe table <table_name>    

Пример : [Чтобы увидеть столбцы и типы данных таблицы ’employee’]

db2 describe table professional.employee     

Выход:

             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» без списка столбцов не ожидает значений для неявно скрытых столбцов. На столбцы этого типа часто ссылаются в материализованных таблицах запросов. Столбцы такого типа не поддерживают создание временных таблиц.

Создание таблицы со скрытым столбцом

Следующий синтаксис создает таблицу со скрытыми столбцами:

Синтаксис : [Создать таблицу со скрытыми столбцами]

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

Пример : [Чтобы создать таблицу ‘customer’ со скрытыми столбцами ‘phone’]

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

Вставка значений данных в таблицу

Следующий синтаксис вставляет значения в таблицу:

Синтаксис : [Вставить значения в таблицу]

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

Пример : [Вставить значения в таблицу ‘customer’]

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')

Выход:

DB20000I  The SQL command completed successfully.

Получение значений из таблицы

Следующий синтаксис извлекает значения из таблицы:

Синтаксис : [Чтобы получить значения из таблицы]

db2 select * from <tab_name>    

Пример : [Чтобы получить значения из таблицы ‘customer’]

db2 select * from professional.customer 

Выход:

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

Получение значений из таблицы, включая скрытые столбцы

Следующий синтаксис извлекает значения из выбранных столбцов:

Синтаксис : [Извлечение значений выбранных скрытых столбцов из таблицы]

db2 select col1,col2,col3 from <tab_name>    

Пример : [Извлечение значений выбранных столбцов из таблицы]

db2 select custid,fullname,phone from professional.customer  

Выход:

CUSTID  FULLNAME    PHONE 
------- ---------   ------------ 
100     ravi        9898989
 
101     krathi      87996659 

102     gopal       768678687 

  3 record(s) selected. 

Если вы хотите увидеть данные в скрытых столбцах, вам нужно выполнить команду «DESCRIBE».

Синтаксис :

db2 describe table <table_name> show detail     

Пример:

db2 describe table professional.customer show detail     

Выход:

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» следующим образом:

Синтаксис :

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

Пример: [Чтобы изменить тип данных для столбца «id» с «int» на «bigint» для таблицы сотрудников]

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

Выход :

DB20000I The SQL command completed successfully.    

Изменение названия столбца

Вы можете изменить имя столбца, как показано ниже:

Синтаксис : [Чтобы изменить имя столбца со старого имени на новое имя таблицы]

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

Пример: [Чтобы изменить имя столбца с «полное имя» на «имя пользователя» в таблице «клиенты».]

db2 alter table professional.customer rename column fullname to custname       

Отбрасывать столы

Чтобы удалить любую таблицу, вам нужно использовать команду «DROP» следующим образом:

Синтаксис :

db2 drop table <tab_name>     

Пример: [Чтобы удалить базу данных из таблицы клиентов]

db2 drop table professional.customers       

Чтобы удалить всю иерархию таблицы (включая триггеры и отношения), вам нужно использовать команду «DROP TABLE HIERARCHY».

Синтаксис :

db2 drop table hierarchy <tab_name>

Пример: [Чтобы удалить всю иерархию таблицы ‘customer’]