Menu |
   Next |
Index/help |
La table est la structure de base contenant les données des utilisateurs. Quand on crée une table, on peut spécifier les informations suivantes :
La commande de création de table la plus simple ne comportera que le nom et le type de chaque colonne de la table. L'on peut créer une table par la commande CREATE TABLE en spécifiant le nom et le type de chaque colonne. A la création, la table sera vide mais un certain espace lui sera alloué. La syntaxe est la suivante :
CREATE TABLE nom_table (nom_col1 TYPE1, nom_col2 TYPE2, ...)
L'option NOT NULL assure qu'ORACLE interdit lors d'un INSERT ou d'un UPDATE que cette colonne contienne la valeur NULL, par défaut elle est autorisée.
On peut insérer des données dans une table lors de sa création par la commande suivante :
CREATE TABLE nom_table [(nom_col1, nom_col2, ...)] AS SELECT...
On peut ainsi, en un seul ordre SQL créer une table et la remplir avec des
données provenant du résultat d'un SELECT.
On n'a pas besoin alors de spécifier de type pour les colonnes : les types des
données sont ceux provenant du SELECT.
Si des conversions de type sont à faire, on peut dans le SELECT
utiliser les fonctions TO_CHAR, TO_DATE,
TO_NUMBER. Par défaut les noms des colonnes
de la nouvelle table sont les noms des colonnes du SELECT.
Si des expressions apparaissent dans le SELECT,
les colonnes correspondantes doivent impérativement être renommées.
Le SELECT
peut contenir des fonctions de groupes mais pas d'ORDER
BY car les lignes d'une table ne peuvent pas être classées. On peut,
et même on doit, quand on crée une table définir les contraintes d'intégrité
que devront respecter les données que l'on mettra dans la table (voir un peu
plus bas).
Les types de données peuvent être :
Ce type de données permet de stocker des données numériques à la fois entières et réelles dont la valeur est comprise entre et avec une précision de 38 chiffres.
précise le nombre maximum de chiffres significatifs stockés (par défaut 38),
donne le nombre maximum de chiffres après la virgule (par défaut 38), sa valeur peut être comprise entre -84 et 127. Une valeur négative signifie que le nombre est arrondi à gauche de la virgule.
Ce type de données permet de stocker des chaînes de caractères de longueur fixe. Longueur doit être inférieur à 255, sa valeur par défaut est 1.
Ce type de données permet de stocker des chaînes de caractères de longueur variable. Longueur doit être inférieur à 2000, il n'y a pas de valeur par défaut.
Ce type de données permet de stocker des données constituées d'une date et d'une heure.
Ce type de données permet de stocker des caractères non imprimables.
Ce type de données permet des stocker des chaînes de caractères de longueur variable et inférieure à 2^31 -1
A la création d'une table, les contraintes d'intégrité se déclarent de la façon suivante :
CREATE TABLE nom_table ( nom_col_1 type_1, nom_col_2 type_2, ... nom_col_n type_n CONSTRAINT [nom_contrainte_1] contrainte_1, CONSTRAINT [nom_contrainte_2] contrainte_2, ... CONSTRAINT [nom_contrainte_m] contrainte_m );
Ou bien de la façon suivante :
CREATE TABLE nom_table ( nom_col_1 type_1 CONSTRAINT [nom_contrainte_1_1] contrainte_1_1 CONSTRAINT [nom_contrainte_1_2] contrainte_1_2 ... CONSTRAINT [nom_contrainte_1_m] contrainte_1_m, nom_col_2 type_2 CONSTRAINT [nom_contrainte_2_1] contrainte_2_1 CONSTRAINT [nom_contrainte_2_2] contrainte_2_2 ... CONSTRAINT [nom_contrainte_2_p] contrainte_2_p, ... nom_col_n type_n CONSTRAINT [nom_contrainte_n_1] contrainte_n_1 CONSTRAINT [nom_contrainte_n_2] contrainte_n_2 ... CONSTRAINT [nom_contrainte_n_q] contrainte_n_q );
Les contraintes différentes que l'on peut déclarer sont les suivantes :
La colonne ne peut pas contenir de valeurs NULL.
Chaque ligne de la table doit avoir une valeur différente ou NULL pour cette (ou ces) colonne.
Chaque ligne de la table doit avoir une valeur différente pour cette (ou ces) colonne. les valeurs NULL sont rejetées.
Cette colonne fait référence à une colonne clé d'une autre table.
Permet de spécifier les valeurs acceptables pour une colonne.
On peut modifier dynamiquement la définition d'une table grace a la commande ALTER TABLE. Deux types de modifications sont possibles : ajout d'une colonne et modification d'une colonne existante. Il n'est pas possible de supprimer une colonne. Par contre une colonne qui n'est plus utilisée peut être mise à la valeur NULL, auquel cas elle n'occupe plus d'espace disque. Si on désire vraiment supprimer une colonne, il faut :
La commande suivante permet d'ajouter une ou plusieurs colonnes à une table existante :
ALTER TABLE nom_table ADD (nom_col1 TYPE1, nom_col2 TYPE2, ...)
Les types possibles sont les mêmes que ceux décrits avec la commande CREATE TABLE. Si la table contient déjà des lignes, la nouvelle colonne aura des valeurs NULL pour les lignes existantes.
Il est possible de modifier la définition d'une colonne, à condition que la nouvelle définition soit compatible avec le contenu de la colonne et en respectant les contraintes suivantes :
La commande DROP TABLE permet de supprimer une table, sa syntaxe est la suivante :
DROP TABLE nom_table ;
La table nom_table est alors supprimée. La définition de la table ainsi que son contenu sont détruits, et l'espace occupé par la table est libéré.
On a la possibilité de changer le nom d'une table par la commande RENAME, la syntaxe est la suivante :
RENAME ancien_nom TO nouveau_nom ;
Menu |
   Next |
Index/help |