DB2 - Tables
Les tables sont une structure logique maintenue par le gestionnaire de base de données. Dans un tableau, chaque bloc vertical appelé en tant que colonne (Tuple) et chaque bloc horizontal appelé en tant que ligne (Entité). La collection de données stockées sous forme de colonnes et de lignes est appelée table. Dans les tableaux, chaque colonne a un type de données différent. Les tables sont utilisées pour stocker des données persistantes.
Type de tables
- Base Tables: Ils contiennent des données persistantes. Il existe différents types de tables de base, notamment:
- Regular Tables: Tables à usage général, Les tables communes avec index sont des tables à usage général.
- Multidimensional Clustering Table (MDC): Ce type de table était physiquement regroupé sur plusieurs clés et utilisé pour maintenir de grands environnements de base de données. Ces types de tables ne sont pas pris en charge dans DB2 pureScale.
- Insert time clustering Table (ITC): Comme pour les tables MDC, les lignes sont regroupées au moment où elles sont insérées dans les tables. Ils peuvent être des tables partitionnées. Eux aussi, ne prennent pas en charge l'environnement pureScale.
- Range-Clustered tables Table (RCT): Ces types de tableaux permettent un accès rapide et direct aux données. Ceux-ci sont implémentés sous forme de clusters séquentiels. Chaque enregistrement de la table a un ID d'enregistrement. Ces types de tables sont utilisés lorsque les données sont regroupées étroitement avec une ou plusieurs colonnes dans la table. Ce type de tables n'est pas non plus pris en charge dans DB2 pureScale.
- Partitioned Tables: Ces types de tables sont utilisés dans le schéma d'organisation des données, dans lequel les données de table sont divisées en plusieurs objets de stockage. Les partitions de données peuvent être ajoutées, attachées et détachées d'une table partitionnée. Vous pouvez stocker plusieurs partitions de données à partir d'une table dans un espace de table.
- Temporal Tables: L'historique d'une table dans une base de données est stocké dans des tables temporelles telles que les détails des modifications effectuées précédemment.
- Temporary Tables: Pour le travail temporaire de différentes opérations de base de données, vous devez utiliser des tables temporaires. Les tables temporaires (DGTT) n'apparaissent pas dans le catalogue système, les colonnes XML ne peuvent pas être utilisées dans les tables temporaires créées.
- Materialized Query Tables: MQT peut être utilisé pour améliorer les performances des requêtes. Ces types de tables sont définis par une requête, qui est utilisée pour déterminer les données dans les tables.
Créer des tableaux
La syntaxe suivante crée une table:
Syntax: [Pour créer une nouvelle table]
db2 create table <schema_name>.<table_name>
(column_name column_type....) in <tablespace_name>
Example: Nous créons une table pour stocker les détails «employé» dans le schéma de «professionnel». Cette table a des champs «id, nom, jobrole, joindate, salaire» et ces données de table seraient stockées dans le tablespace «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.
Liste des détails du tableau
La syntaxe suivante est utilisée pour répertorier les détails de la table:
Syntax: [Pour voir la liste des tables créées avec des schémas]
db2 select tabname, tabschema, tbspace from syscat.tables
Example: [Pour voir la liste des tables de la base de données courante]
db2 select tabname, tabschema, tbspace from syscat.tables
Output:
TABNAME TABSCHEMA TBSPACE
------------ ------------- --------
EMPLOYEE PROFESSIONAL TS1
1 record(s) selected.
Liste des colonnes dans un tableau
La syntaxe suivante répertorie les colonnes d'un tableau:
Syntax: [Pour afficher les colonnes et les types de données d'un tableau]
db2 describe table <table_name>
Example: [Pour voir les colonnes et les types de données de la table 'employé']
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.
Colonnes masquées
Vous pouvez masquer une colonne entière d'un tableau. Si vous appelez la requête «select * from», les colonnes masquées ne sont pas renvoyées dans la table résultante. Lorsque vous insérez des données dans une table, une instruction «INSERT» sans liste de colonnes n'attend pas de valeurs pour les colonnes masquées implicitement. Ces types de colonnes sont fortement référencés dans les tables de requêtes matérialisées. Ces types de colonnes ne prennent pas en charge la création de tables temporaires.
Créer un tableau avec une colonne masquée
La syntaxe suivante crée une table avec des colonnes masquées:
Syntax: [Pour créer une table avec des colonnes masquées]
db2 create table <tab_name> (col1 datatype,col2 datatype
implicitly hidden)
Example: [Pour créer une table 'client' avec des colonnes masquées 'phone']
db2 create table professional.customer(custid integer not
null, fullname varchar(100), phone char(10)
implicitly hidden)
Insertion de valeurs de données dans un tableau
La syntaxe suivante insère des valeurs dans le tableau:
Syntax: [Pour insérer des valeurs dans un tableau]
db2 insert into <tab_name>(col1,col2,...)
values(val1,val2,..)
Example: [Pour insérer des valeurs dans le tableau "client"]
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.
Récupération des valeurs de la table
La syntaxe suivante récupère les valeurs de la table:
Syntax: [Pour récupérer les valeurs d'un tableau]
db2 select * from <tab_name>
Example: [Pour récupérer les valeurs de la table "client"]
db2 select * from professional.customer
Output:
CUSTID FULLNAME
----------- ------------------------
100 ravi
101 krathi
102 gopal
3 record(s) selected.
Récupération des valeurs d'une table comprenant des colonnes masquées
La syntaxe suivante récupère les valeurs des colonnes sélectionnées:
Syntax: [Pour récupérer les valeurs des colonnes masquées sélectionnées à partir d'une table]
db2 select col1,col2,col3 from <tab_name>
Example: [Pour récupérer les valeurs des colonnes sélectionnées, le résultat d'une table]
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.
Si vous voulez voir les données dans les colonnes cachées, vous devez exécuter la commande «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.
Modifier le type des colonnes de table
Vous pouvez modifier la structure de notre table en utilisant cette commande «alter» comme suit:
Syntax:
db2 alter table <tab_name> alter column <col_name> set data type <data_type>
Example: [Pour modifier le type de données de la colonne «id» de «int» à «bigint» pour la table des employés]
db2 alter table professional.employee alter column id set data type bigint
Output::
DB20000I The SQL command completed successfully.
Modification du nom de la colonne
Vous pouvez modifier le nom de la colonne comme indiqué ci-dessous:
Syntax: [Pour modifier le nom de la colonne de l'ancien nom au nouveau nom d'une table]
db2 alter table <tab_name> rename column <old_name> to <new_name>
Example: [Pour modifier le nom de la colonne de «fullname» à «custname» dans la table «customers».]
db2 alter table professional.customer rename column fullname to custname
Abandonner les tables
Pour supprimer une table, vous devez utiliser la commande «DROP» comme suit:
Syntax:
db2 drop table <tab_name>
Example: [Pour supprimer la base de données du formulaire de table client]
db2 drop table professional.customers
Pour supprimer toute la hiérarchie de la table (y compris les déclencheurs et la relation), vous devez utiliser la commande «DROP TABLE HIERARCHY».
Syntax:
db2 drop table hierarchy <tab_name>
Example: [Pour supprimer toute la hiérarchie d'une table "client"]
db2 drop table hierarchy professional.customers