Cours SQL ORACLE – 01 : Les Tables (CREATE ALTER TABLE).
- Les Tables sont les objets qui comportent les données. Comme expliquer dans l’introduction, une table est composée d’au moins une colonne. Pour créer une table, nous utilisons la requête « CREATE TABLE »
Syntaxe :
CREATE TABLE nom_table (
col_1 type_donnee [NULL|NOT NULL],
col_2 type_donnee [NULL|NOT NULL],
...
col_n type_donnee [NULL|NOT NULL]
);
nom_table : est le nom de la table à créer. Le nom doit être unique dans le schéma. Le nom est alphanumérique mais ne peut pas commencer par un numéro.
col_n : le nom de la nième colonne. Aussi alphanumérique et ne peut pas commencer par un numéro.
type_donnee : Le type de la donnée de la colonne (VARCHAR2, DATE, NUMBER etc…).
[NULL|NOT NULL]: cette option n’est obligatoire que si vous voulez que la colonne soit non vide.
Après la création de la table, nous pouvons modifier sa structure en ajoutant, modifiant ou supprimant des colonnes
La syntaxe est :
/*Pour ajouter une nouvelle colonne*/
ALTER TABLE nom_table ADD col_1 type_donnee;
/*Les nouvelles colonnes sont toujours ajoutées en dernier*/
/*Pour modifier le type de donnée d’une colonne*/
ALTER TABLE nom_table MODIFY col_1 type_donnee;
/*Pour renommer une colonne*/
ALTER TABLE nom_table RENAME COLUMN col_1 TO col_2;
/*Pour supprimer une colonne*/
ALTER TABLE nom_table DROP COLUMN col_1;
On peut aussi, avec la requête ALTER TABLE, ajouter des contraintes et définir les clés primaires et étrangères.
/*Pour définir une clé primaire */
ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte PRIMARY KEY (col_1, col_2, ... col_n);
/*Pour définir une clé étrangère */
ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte FOREIGN KEY (col_1, col_2, ... col_n) REFERENCES table_parent (col_1, col_2, ... col_n);
Passons maintenant aux exemples :
Nous voulons créer une table ou on stockerait les employés :
CREATE TABLE employe (
id VARCHAR2(5) NOT NULL,
nom VARCHAR2(20),
prenom VARCHAR2(20),
date_embauche DATE,
solde_conge NUMBER(4,2)
);
Cette commande crée la table employe avec 5 colonnes :
- id : attribut non nul, de type alphanumérique. Ce champ ne peut dépasser 5 caractères.
- nom, prenom : attributs alphanumériques de 20 caractères maximum. Ces deux champs peuvent être vides.
- date_embauche : attribut de type date. Peut être nul.
- solde_conge : attribut du type numérique. Le chiffre à droite (2) correspond au nombre de chiffres après la virgule. Quant au chiffre à gauche correspond au nombre total de digite qui peut composer ce nombre en incluant les chiffres après la virgule (exp : 0,01 ou 99,99).
Nous voulons définir la colonne id comme clé primaire :
ALTER TABLE employe ADD CONSTRAINT PK_employe PRIMARY KEY (id);
Nous allons ajouter une nouvelle colonne :
ALTER TABLE employe ADD col_test DATE;
Modifions le type de cette nouvelle colonne :
ALTER TABLE employe MODIFY col_test VARCHAR2(25);
ATTENTION : Pour modifier le type d’une colonne, il faut s’assurer que les données de cette colonne sont nuls ou bien ils sont compatibles avec le nouveau type (exp : on peut modifier un NUMBER en VARCHAR mais on ne peut pas faire le contraire si les données ne sont pas vides)
On va renommer la colonne col_test :
ALTER TABLE employe RENAME COLUMN col_test TO col_test_2;
Et enfin on va supprimer cette colonne :
ALTER TABLE employe DROP COLUMN col_test_2;
C’est tout pour cette partie. Le prochain cours portera sur le requêtes DML (Requêtes de manipulation des enregistrements).