Le LDD est le sous langage SQL qui permet de définir les données dans un SGBDR.

1-SQL : Créer une base des données :

CREATE    DataBase  nom_BD ;

Exemple:   CREATE    DataBase  GStagiaire;

Pour utiliser une base de données, on utilise la syntaxe : Use nombd ;

2- SQL : Création des tables

1-type de données :

  • Chaine de caractères :

CHAR(N) : Déclare un champ chaine de caractères de taille fixe (taille=n caractères)

VARCHAR(N) : Déclare un champ chaine de caractères de taille variable (max=n caractères)

  • ENTIER : SMALLINT INT    LONG
  • REEL : FLOAT
  • NUMBER (N, M) :nombre de N chiffre, M chiffre après la virgule
  • DATE : Date Time TimeStamp

Remarque :  pour un champ auto incrémentale, on utilise la clause IDENTITY (grain, pas)
Grain : valeur de départ
Pas : valeur d’incrémentation

2-Créer une table :

Syntaxe : Pour créer une table, on fait recours à l’instruction suivante :

create table nom_table(

nom_champ  type [liste de contraintes d’attribut],

nom_champ  type [liste de contraintes d’attribut],

nom_champ  type [liste de contraintes d’attribut],

…..

liste de contraintes de la table) ;

avec :

– le type peut être : varchar(n),date,int,time…..

– les contraintes d’attributs ou de la table  (appelées aussi contraintes d’integrités) : les règles à suivre (on va les détailler dans la suite du cours)

3- Contraintes d’intégrité :

  • Default: Permet de spécifier une valeur par défaut pour un attribut de sort qu’il ne sera jamais NULL
  • Not Null: Cette contrainte oblige le SGBD de  ne pas accepter NULL dans un attribut de la table
  • Unique: Cette contrainte  permet d’interdire la répétition des valeurs dans un attribut
  • Check : si un attribut doit satisfaire une condition spécifique
  • Primary key : crée une clé primaire pour la table.
  • Foreing key : cette contrainte permet d’ajouter une clé étrangère à la table.

Contraintes d'attribut vs Contraintes de la table

On peut ajouter une contrainte au niveau d’attribut, comme on peut l’ajouter au niveau de la table (dans des cas, on aurra pas le choix, et l’une des deux options est le plus correcte).

L’écriture d’une telle contrainte est liée au type de l’option (contrainte d’attribut ou de table) . par exemple :

La contrainte d’attribut :
Primary key

S’écrit comme contrainte de table :

[CONSTRAINT nom_contrainte ]PRIMARY KEY (attribut1, attribut2, …)

La contrainte d’attribut :

FOREIGN KEY (attribut_clé_étrangère) REFERENCES

nom_table (attribut_référence)

S’écrit comme contrainte de table :

CONSTRAINT nom_contrainte FOREIGN KEY (attribut_clé_étrangère)  REFERENCES

nom_table (attribut_référence)

La contrainte d’attribut :

unique

S’écrit comme contrainte de table : (cette écriture est obligatoire dans le cas d’un couple qui doit etre unique et non pas un seul champ)

CONSTRAINT nom_contrainte UNIQUE (colonne1, colonne2,..)

La contrainte d’attribut :

check(condition)

S’écrit comme contrainte de table : 

CONSTRAINT nom_contrainte check(condition)

Exercice : Trouver comment peut-on écrire la contrainte not null comme étant une contrainte de table.

Exemple:

CREATE TABLE TPERSONNE

(PRS_ID INTEGER,

PRS_NOM VARCHAR(32),

PRS_PRENOM VARCHAR(32), 

PRS_SEXE CHAR(1)  DEFAULT  ‘M’,

PRS_DATE_NAISSANCE DATETIME  DEFAULT  GETDATE(),

CONSTRAINT pk_personne PRIMARY KEY (PRS_ID)) ;

 

Exercice : créer les tables

Soit les  tables : Module, Evaluation et Stagiaire

Module (NumM, Intitule, Coef)

Evaluation (#NumM, #CNE , DateN ,Note)

Stagiaire (CNE,Nom,Filiere)

Contraintes d'intégrité réferentielle

SQL2 permet de spécifier les actions à entreprendre pour le maintien de l’intégrité référentielle, lors d’une suppression ou d’une modification d’un tuple référencé.

CASCADE : cascader les suppressions ou modifications

SET NULL : rendre nul les attributs référençant

RESTRICT : rejet de la mise à jour. c’est l’option par défaut

Au cours de déclaration des clés étrangères, On ajoute : on delete cascade /set null    Et  on update cascade/set null

Remarque :

ON DELETE CASCADE : indique que si une ligne est supprimée de la table maître, les lignes dépendantes de la table détail seront également supprimées.

Résumé :

CREATE TABLE table

( définition des colonnes :

colonne type [ NOT NULL [UNIQUE] ] [ DEFAULT valeur ] [ PRIMARY KEY ] [ REFERENCES table ] [ CHECK condition ]

contraintes de table :

[ PRIMARY KEY (liste de colonnes) ],

[ UNIQUE (liste de colonnes) ]

[ FOREIGN KEY (liste de colonnes) REFERENCES table

[ ON DELETE {RESTRICT | CASCADE | SET NULL} ]

[ ON UPDATE {RESTRICT | CASCADE | SET NULL} ] ,

[ CHECK condition ]

… )

Et voilà : vous pouvez maintenant faire le TP1 pour voir la partie pratique de ce cours. Puis , rendez-vous dans la partie suivante du cours : SQL : Modification/Suppression d’une table (l’ordre alter et l’ordre drop)

Vous pouvez suivre la liste des vidéos du cours base de données (Merise + Sql + Transact sql) sur notre chaine youtube : Vidéos Bases de données.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *