LANGAGE SQL
LANGAGE SQL
(STRUCTURED QUERY LANGUAGE)
Langage relationnel commercial mettant enjeu, pour la consultation, une combinaison de
l’algèbre relationnelle et du calcul relationnel
La norme SQL
1970 : article de E. F. CODD
‘’A Relational model for large Data Banks’’,
ACM vol 13, No 6, october 1970
présentant la théorie des bases de données relationnelle
IBM System R, SEQUEL
Barkley INGRESS, QUEL
1980 : SEQUEL enrichi et amélioré, a donné lieu à SQL : Langage utilisé par les SGBD
SQL/DS, DB2
1986 : norme SQL86 préparée par le comité (X3H2) de l’ANSI, adoptée également par
ISO et par X/open en 87
1989 : ANSI publie une extension de la norme sous le nom SQL89
LANGAGE SQL
(STRUCTURED QUERY LANGUAGE)
UTILISATEUR
SGBD
ORACLE SQL
S ORACLE
DEVELOPPER Q DATABASE
MYSQLWORKBENCH
PHPMYADMIN
L MYSQL
CLIENT ARCHITECTURE CLIENT-SERVEUR SERVEUR
LANGAGE SQL
(STRUCTURED QUERY LANGUAGE)
LDD: LANGAGE DE DEFINITION DES
DONNEES
LMD: LANGAGE DE MANIPULATION DES
DONNEES
LCD:LANGAGE DE CONTRÔLE DES
DONNEES
LANGAGE SQL
LDD
LDD: LANGAGE DE
DEFINITION DES DONNEES
❑ CREATE • LDD PERMET DE CRÉER, MODIFIER, SUPPRIMER LA STRUCTURE
❑ ALTER GENERALE DE NOS DONNEES.
❑ DROP
• PERMET AUSSI LA DEFINITION DU DOMAINE
❑ RENAME
LANGAGE SQL
LDD:TYPE DE DONNEES
SMALLINT DATE
ENTIER INTEGER CHAR(N)
CHAINE DE TEMPORELS TIME
NUMERIQUES
BIGINT CARACTERES
VARCHAR(N)
NUMERIC
DATE TIME
REEL
FLOAT
LANGAGE SQL
LDD:CONTRAINTE
• S’ASSURER Q’UNE VALEUR EST INSERER ET
NOT NULL STOCKER DANS LA TABLE
• DEFINIR UNE VALEUR PAR DEFAULT POUR UNE
DEFAULT COLONNE VIDE
• S’ASSURER QUE TOUTES LES VALEURS DANS UNE
UNIQUE COLONNE SONT DIFFERENTES
• CLE PRIMAIRE
PRIMARY KEY
• CLE ETRANGERE
FOREIGN KEY
• S’ASSURER QUE LA VALEUR DANS UNE COLONNE
CHECK SATISFAIT UNE CONDITION SPECIFIQUE
LANGAGE SQL
LDD:INSTRUCTION
Syntaxe de la commande CREATE TABLE
CREATE TABLE nom Table
(
colonne type [contrainte de la colonne]
[, colonne type [contrainte de la colonne]]
…
[, contrainte de la table] …) ;
8
LANGAGE SQL
LDD:INSTRUCTION
Contrainte sur une colonne Contrainte sur une table
CONSTRAINT <nom de la contrainte> CONSTRAINT <nom de la contrainte>
UNIQUE (liste de colonnes) |
NOT NULL |
PRIMARY KEY (liste de colonnes) |
UNIQUE |
CHECK (condition) |
PRIMARY KEY |
FOREIGN KEY (liste de colonnes)
CHECK (condition) |
REFERENCES <nom de la table> (liste colonnes) [<mode>
REFERENCES <nom de la table> (colonne)
46
LANGAGE SQL
LDD:INSTRUCTION
EXEMPLE
46
LANGAGE SQL
LDD:INSTRUCTION
Create Table DOC(
NumDOC integer PRIMARY KEY,
NomDOC VARCHAR2(20),
VilleDOC VARCHAR2(20)
);
Create Table DOC(
NumDOC integer,
NomDOC VARCHAR2(20),
VilleDOC VARCHAR2(20),
Constraint PK_DOC Primary Key (NumDOC)
); 11
LANGAGE SQL
LDD:INSTRUCTION
Create Table DOC(
NumDOC integer Constraint PK_DOC PRIMARY KEY,
NomDOC VARCHAR2(20),
VilleDOC VARCHAR2(20)
);
LANGAGE SQL
LDD:INSTRUCTION
Create Table DET
( NumORD integer,
NumLigne integer,
NumMED integer,
QTE integer Not Null,
Constraint PK_DET Primary Key (NumORD,NumLigne),
Constraint NbMaxMed Check (NumLigne < 5),
Constraint Ref_ORD Foreign Key (NumORD) References
ORD(NumORD) on delete cascade,
Constraint Ref_MED Foreign Key( NumMED ) References
MED(NumMED) on update cascade
);
LANGAGE SQL
LDD:INSTRUCTION
Syntaxe de la commande ALTER TABLE
ALTER TABLE <nom de la Table>
ADD COLUMN <def Colonne> |
DROP COLUMN <nom Colonne> [RESTRICT|CASCADE] |
ADD CONSTRAINT <def Contrainte> |
DROP CONSTRAINT <nom Contrainte> [RESTRICT|CASCADE] |
RESTRICT : pas de destruction si l’objet est référencé ou utilisé ailleurs
CASCADE : propage la destruction
14
LANGAGE SQL
LDD:INSTRUCTION
Exemples :
ALTER TABLE DOC ADD COLUMN TEL NUMBER NOT NULL;
ALTER TABLE DOC DROP COLUMN TEL;
ALTER TABLE DOC ADD CONSTRAINT NN_NOM NomDoc NOT NULL;
ALTER TABLE DOC ADD CONSTRAINT Ville_valide
CHECK(Ville = ‘Rabat’OR ville=‘Casa’);
ALTER TABLE DOC DROP CONSTRAINT NN_NOM;
15
SYNTAXE DROP TABLE
DROPTABLE <Nom de la table>
16