SQL partie 3. SQL est un langage de définition de données SQL est un langage de définition de...

Post on 04-Apr-2015

103 views 3 download

Transcript of SQL partie 3. SQL est un langage de définition de données SQL est un langage de définition de...

SQLSQLpartie 3partie 3

SQL est un langage de définition SQL est un langage de définition de donnéesde données

SQL est un langage de définition de SQL est un langage de définition de données (données (LDDLDD), c'est-à-dire qu'il ), c'est-à-dire qu'il permet de créer des tables dans une permet de créer des tables dans une base de données relationnelle, ainsi base de données relationnelle, ainsi que d'en modifier ou en supprimer.que d'en modifier ou en supprimer.

Create table / view / constraintCreate table / view / constraint

Alter table / view / constraintAlter table / view / constraint

Drop table / view / constraintDrop table / view / constraint

Un langage de définition de Un langage de définition de donnéesdonnées

La création de table : La création de table :

CREATE TABLE Nom_de_la_table (CREATE TABLE Nom_de_la_table (

champ1 Type_de_donnée,champ1 Type_de_donnée,

champ2 Type_de_donnée, ...champ2 Type_de_donnée, ...

););

Exemple : Exemple :

CREATE TABLE service (CREATE TABLE service (

NumService smallint NumService smallint not nullnot null,,

NomService varchar(25),NomService varchar(25),

Lieu varchar(20)Lieu varchar(20)

););

Les autres caractéristiques des Les autres caractéristiques des champschamps

Null (facultatif, par défaut) ou Not null si le Null (facultatif, par défaut) ou Not null si le champ ne peut être indéfinichamp ne peut être indéfini

Unique impose que tous les Unique impose que tous les enregistrements aient une valeur enregistrements aient une valeur différentedifférente

Default indique la valeur prise par défautDefault indique la valeur prise par défaut

Check précise une condition Check précise une condition

Autoinc permet d’auto incrémenter un Autoinc permet d’auto incrémenter un champ numérique entierchamp numérique entier

La création d’une clé primaireLa création d’une clé primaireCREATE TABLE Nom_de_la_table (CREATE TABLE Nom_de_la_table (

champ1 Type_de_donnée,champ1 Type_de_donnée,

champ2 Type_de_donnée, ...champ2 Type_de_donnée, ...

PRIMARY KEY (champ1, champ2 …)PRIMARY KEY (champ1, champ2 …)

););

Exemple : Exemple :

CREATE TABLE service (CREATE TABLE service (

NumService smallint not null,NumService smallint not null,

NomService varchar(25),NomService varchar(25),

Lieu varchar(20)Lieu varchar(20)

PRIMARY KEY (PRIMARY KEY (NumService)NumService)

););

La création d’une clé étrangèreLa création d’une clé étrangèreCREATE TABLE Nom_table (CREATE TABLE Nom_table ( champ1 Type_de_donnée,champ1 Type_de_donnée, champ2 Type_de_donnée, ...champ2 Type_de_donnée, ...FOREIGN KEY (champ1) REFERENCES Nom_table (champ1)FOREIGN KEY (champ1) REFERENCES Nom_table (champ1) ););Exemple : Exemple : CREATE TABLE employe (CREATE TABLE employe (NumEmploye smallint not null,NumEmploye smallint not null,NomEmploye varchar(25),NomEmploye varchar(25),……..NumServiceEmploye smallint ,NumServiceEmploye smallint ,PRIMARY KEY (PRIMARY KEY (NumEmploye),NumEmploye),FOREIGN KEY (FOREIGN KEY (NumServiceEmployeNumServiceEmploye) REFERENCES ) REFERENCES serviceservice

((NumServiceNumService))););

Les contraintesLes contraintesCertaines des caractéristiques (PRIMARY Certaines des caractéristiques (PRIMARY KEY, FOREIGN KEY, UNIQUE et CHECK) KEY, FOREIGN KEY, UNIQUE et CHECK) nommées peuvent être des contraintes nommées peuvent être des contraintes nommées afin de faciliter leur gestion.nommées afin de faciliter leur gestion.

Exemple : Exemple : PRIMARY KEY (PRIMARY KEY (NumEmploye),NumEmploye), CONSTRAINT CleEtrangereService CONSTRAINT CleEtrangereService

FOREIGN KEY (NumServEmploye) FOREIGN KEY (NumServEmploye) REFERENCES REFERENCES serviceservice ( (NumServiceNumService))

););

L’intégrité référentielleL’intégrité référentielle

La modification d’une table st La modification d’une table st soumise à l’intégrité référentielle qui soumise à l’intégrité référentielle qui définit les relations entre les tables à définit les relations entre les tables à travers les références des clés travers les références des clés étrangères aux clés primaires.étrangères aux clés primaires.

Les vuesLes vues

Une vue est une table virtuelle qui Une vue est une table virtuelle qui stocke les enregistrements résultats stocke les enregistrements résultats d’une requête d’interrogation afin d’une requête d’interrogation afin qu’ils soient en permanence qu’ils soient en permanence disponibles.disponibles.

CREATE VIEW nom_vue AS SELECT * CREATE VIEW nom_vue AS SELECT * FROM EMPLOYE WHERE nom_service FROM EMPLOYE WHERE nom_service = « laboratoire »= « laboratoire »

Suppression de tables ou de vuesSuppression de tables ou de vues

DROP TABLE nom_table DROP TABLE nom_table

DROP VIEW nom_vueDROP VIEW nom_vue

TRUNCATE TABLE nom_table TRUNCATE TABLE nom_table supprime uniquement les données et supprime uniquement les données et conserve sa structure.conserve sa structure.

Modification de tablesModification de tables

Renommer une table : Renommer une table : – Rename ancien_nom_table TO Rename ancien_nom_table TO

nouveau_nom_tablenouveau_nom_table

Renommer un champ :Renommer un champ :– ALTER TABLE nom_tableALTER TABLE nom_table

RENAME ancien_nom_champ TO RENAME ancien_nom_champ TO nouveau_nom_champnouveau_nom_champ

Ajout de champ ou de contrainte à Ajout de champ ou de contrainte à une tableune table

ALTER TABLE nom_tableALTER TABLE nom_table

ADD COLUMN nom_champ ADD COLUMN nom_champ Type_donnée;Type_donnée;

ALTER TABLE nom_tableALTER TABLE nom_table

ADD CONSTRAINT nom_champ ADD CONSTRAINT nom_champ Type_donnée;Type_donnée;

Suppression de champ ou de Suppression de champ ou de contraintecontrainte

ALTER TABLE nom_tableALTER TABLE nom_table

DROP COLUMN nom_champ;DROP COLUMN nom_champ;

ALTER TABLE nom_tableALTER TABLE nom_table

DROP CONSTRAINT nom_contrainte;DROP CONSTRAINT nom_contrainte;

La suppression d’un champ n’est possible La suppression d’un champ n’est possible que si le champ ne fait pas l’objet d’une que si le champ ne fait pas l’objet d’une contrainte d’intégritécontrainte d’intégrité