L’instruction CREATE
C’est une instruction DDL (Data Definition Language, Langage de Définition des Données). Le mot-clef CREATE est suivi de l’indication de ce qu’on veut créer : TABLE, INDEX, ALIAS, …
Pour créer une table, on utilisera la syntaxe suivante (simplifiée) :
CREATE TABLE <table> ( <NomDeChamp> type[ ( dimension [, precision])] [IDENTITY] [PRIMARY KEY] [[NOT] NULL] [ , …] )
IDENTITY signifie que le champ est auto-incrémenté, et c’est automatiquement une clef primaire (donc on ne peut avoir qu’un seul champ de ce type par table). C’est obligatoirement un entier (INTEGER ou BIGINT).
Exemple :
CREATE TABLE « Clients » ( « ID » INTEGER IDENTITY, « Nom » VARCHAR(50), « Prenom » VARCHAR(50) )
Ceci nous créera une table avec trois champs : un champ entier auto-incrémenté clef primaire, et deux champs alphabétiques d’au maximum 50 caractères chacun.
Remarquez l’écriture « Prenom » et non pas « Prénom » pour les raisons indiquées plus haut.
L’instruction DROP
C’est aussi une instruction DDL. Elle sert à supprimer un objet (table, index, …). Syntaxe (pour suppression d’une table) :
DROP TABLE <table> [ IF EXISTS ] [ RESTRICT | CASCADE ]
Le IF EXISTS évite le message d’erreur si la table n’existe pas. RESTRICT signifie que l’instruction ne sera pas effectuée si une vue ou une table se réfère à la table à effacer ; au contraire, CASCADE provoquera l’effacement des vues sur cette table et des contraintes qui lie cette table avec d’autres, sans message d’alerte.
On pourra par exemple supprimer la table créée ci-dessus :
DROP TABLE « Clients »
Là encore, attention à ne pas effacer une table contenant le stock magasin de votre entreprise, avec 15.000 références ! Faites des sauvegardes avant de faire vos essais, ou, mieux, travaillez sur une copie.
L’instruction ALTER TABLE
C’est une instruction DDL. Elle sert à ajouter un champ ou a supprimer dans une table.
La syntaxe (simplifiée) de la première forme (celle qui permet d’ajouter un champ) ressemble à celle de CREATE TABLE :
ALTER TABLE <table> ADD [COLUMN] <NomDeChamp> type [ ( dimension [, precision])] [NOT]NULL] [IDENTITY] [PRIMARY KEY] ) [BEFORE <Champ Existant>]
….
Cours PL/SQL (264 KO) (Cours PDF)