SQL de base "EP 2"


Définition des données

Ce chapitre décrit les instructions SQL qui constituent l’aspect LDD (langage de définition des
données) de SQL. À cet effet, nous verrons notamment comment déclarer une table, ses éventuels
contraintes et index.

Tables relationnelles
Une table est créée en SQL par l’instruction CREATE TABLE, modifiée au niveau de sa structure
par l’instruction ALTER TABLE et supprimée par la commande DROP TABLE.
Création d’une table (CREATE TABLE)
Pour pouvoir créer une table dans votre schéma, il faut que vous ayez reçu le privilège
CREATE TABLE. Si vous avez le privilège CREATE ANY TABLE, vous pouvez créer des tables
dans tout schéma. Le mécanisme des privilèges est décrit au chapitre « Contrôle des données ».
La syntaxe SQL simplifiée est la suivante :

CREATE TABLE [schéma.]nomTable
( colonne1 type1 [DEFAULT valeur1] [NOT NULL]
[, colonne2 type2 [DEFAULT valeur2] [NOT NULL] ]
[CONSTRAINT nomContrainte1 typeContrainte1]…) ;

● schéma : s’il est omis, il sera assimilé au nom de l’utilisateur connecté. S’il est précisé, il
désigne soit l’utilisateur courant soit un autre utilisateur de la base (dans ce cas, il faut que
l’utilisateur courant ait le droit de créer une table dans un autre schéma). Nous aborderons
ces points dans le chapitre 5 et nous considérerons jusque-là que nous travaillons dans le
schéma de l’utilisateur couramment connecté (ce sera votre configuration la plupart du
temps).

● nomTable : peut comporter des lettres majuscules ou minuscules (accentuées ou pas),
des chiffres et les symboles, par exemple : _, $ et #. Oracle est insensible à la casse et
convertira au niveau du dictionnaire de données les noms de tables et de colonnes en
majuscules
● colonnei typei : nom d’une colonne (mêmes caractéristiques que pour les noms des
tables) et son type (NUMBER, CHAR, DATE…). Nous verrons quels types Oracle propose.
La directive DEFAULT fixe une valeur par défaut. La directive NOT NULL interdit que la
valeur de la colonne soit nulle.
NULL représente une valeur qu’on peut considérer comme non disponible, non affectée, inconnue
ou inapplicable. Elle est différente d’un espace pour un caractère ou d’un zéro pour un
nombre.
● nomContraintei typeContraintei : noms de la contrainte et son type (clé
primaire, clé étrangère, etc.). Nous allons détailler dans le paragraphe suivant les différentes
contraintes possibles.
● ; : symbole qui termine une instruction SQL d’Oracle. Le slash (/) peut également terminer
une instruction à condition de le placer à la première colonne de la dernière ligne.
Casse et commentaires
Dans toute instruction SQL (déclaration, manipulation, interrogation et contrôle des données),
il est possible d’inclure des retours chariots, des tabulations, espaces et commentaires (sur une
ligne précédée de deux tirets --, sur plusieurs lignes entre /* et */). De même, la casse n’a
pas d’importance au niveau des mots-clés de SQL, des noms de tables, colonnes, index, etc.
Les scripts suivants décrivent la déclaration d’une même table en utilisant différentes
conventions :
Tableau 1-1 Différentes écritures SQL
Sans commentaire Avec commentaires

CREATE TABLE MêmesévénementsàNoël
(colonne CHAR);
CREATE TABLE Test
(colonne NUMBER(38,8));
CREATE table test (Colonne
NUMBER(38,8));
CREATE TABLE
-- nom de la table
TEST(
-- description
COLONNE NUMBER(38,8)
)
-- fin, ne pas oublier le point-virgule.
;
CREATE TABLE Test (
/* une plus grande descrip

Share this

Related Posts

Previous
Next Post »