Таблицы представляют собой логическую структуру, поддерживаемую менеджером баз данных. В таблице каждый вертикальный блок называется столбцом (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’]