WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Gestion d'informations. Mutation vers les bases de données relationnelles et le langage SQL.


par Jacques MUDUMBI
Université de Yaoundé 1 - Master 2017
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

IV.2.2. Créer une table : CREATE TABLE

1. Généralités

Une table est un ensemble de lignes et de colonnes. La création consiste à définir (en fonction de l'analyse) le nom de ces colonnes, leur format (type), la valeur par défaut à la création de la ligne (DEFAULT) et les règles de gestion s'appliquant à la colonne (CONSTRAINT).

2. Création simple

Certes, la commande de création de table la plus simple ne comportera que le nom et le type de chaque colonne de la table. 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, ...)

La commande CREATE TABLE permet de définir une table, avec ses colonnes et ses contraintes :

CREATE TABLE nom_table {colonne|contrainte}, {colonne|contrainte_tbl}, ...

Soit, colonne définit à la fois le nom de la colonne, mais aussi son type, sa valeur par défaut et ses éventuelles contraintes de colonne (la colonne peut en effet accepter ou non les valeurs nulles, certaines valeurs de validation, les doublons, ou bien être une clé primaire ou étrangère) :

colonne:: nom_colonne {type|domaine} [DEFAULT val_default] [contrainte_col] contrainte_col:: [NOT] NULL | CHECK (prédicat) | UNIQUE | PRIMARY KEY | FOREIGN KEY [colonne] REFERENCES table(colonne) spécif_référence

et où les contraintes de table permettent de définir une clé multi-colonnes ainsi que des contraintes portant sur plusieurs colonnes (unicité globale, validation multi-attributs ou intégrité référentielle) :

contrainte_tbl:: CONSTRAINT nom_contrainte

{PRIMARY KEY (liste_cols) | UNIQUE | CHECK (prédicat_tbl) | FOREIGN KEY (liste_cols) REFERENCES table(liste_cols) spécif_référence}

70

Il sied de préciser que quand on crée une table, il faut définir les contraintes d'intégrité que devront respecter les données que l'on mettra dans la table.

Cas pratique : Si l'on souhaite imposer les contraintes suivantes à la table Employés :

- les valeurs de département doivent appartenir à l'intervalle 10..100

- les fonctions sont forcément 'Directeur', 'Analyste', 'Technicien', 'Commercial' ou 'President' - tout employé embauché après 1986 doit gagner plus de 1000€

IV.2.3. Modifier une table : ALTER TABLE

La commande ALTER TABLE permet de modifier la définition d'une table en y ajoutant ou en supprimant une colonne ou une contrainte (mais elle ne permet pas de changer le nom ou le type d'une colonne, ni d'ajouter une contrainte de ligne [NOT]NULL) :

ALTER TABLE nom_table {

ADD definition_colonne |

ADD CONSTRAINT definition_contrainte |

ALTER nom_colonne {SET DEFAULT valeur_def|DROP DEFAULT} |

DROP nom_colonne [CASCADE|RESTRICT] |

DROP CONSTRAINT nom_contrainte [CASCADE|RESTRICT] };

L'option CASCADE / RESTRICT permet de gérer l'intégrité référentielle de la colonne ou la contrainte.

Ajout ou modification de colonnes

ALTER TABLE nom_table {ADD/MODIFY} ([nom_colonne type [contrainte], ...])

Cas pratique: Modifier la définition de la table Employés pour que le salaire total dépasse forcément 1000€ :

ALTER TABLE employes ADD CONSTRAINT ChkSalTot CHECK (salaire+comm > 1000)

Ajout d'une contrainte de table

ALTER TABLE nom_table ADD [CONSTRAINT nom_contrainte] contrainte

La syntaxe de déclaration de contrainte est identique à celle vue lors de la création de table.

71

Si des données sont déjà présentes dans la table au moment où la contrainte d'intégrité est

ajoutée, toutes les lignes doivent vérifier la contrainte. Dans le cas contraire, la contrainte

n'est pas posée sur la table.

Renommer une colonne

ALTER TABLE nom_table RENAME COLUMN ancien_nom TO nouveau_nom

Renommer une table

ALTER TABLE nom_table RENAME TO nouveau_nom

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Il faut répondre au mal par la rectitude, au bien par le bien."   Confucius