Académique Documents
Professionnel Documents
Culture Documents
Chap 6 SQL
Chap 6 SQL
Université de Sousse
Institut Supérieur de Gestion (ISG)
Séance de Cours
LFIG2
Chapitre6
SQL : Notions de base
2
II. Notions de base
1) Tables
Les relations sont stockées sous forme de tables composées de lignes et de colonnes
Exemple : Produits(PName, Price, Category, Manfacturer)
2) Colonnes
Les données contenues dans une colonne doivent être toutes d'un même type.
Ce type est indiqué au moment de la création de la table qui contient la colonne.
Chaque colonne est repérée par un identificateur unique à l'intérieur de chaque
table. Deux colonnes de deux tables différentes peuvent porter le même nom.
Une colonne peut porter le même nom que sa table. 3
III. Types de données
1) Types numériques SQL2
Il existe deux types pour les colonnes qui contiennent des chaînes de caractères :
CHAR (longueur) : pour les colonnes qui contiennent des chaînes de longueur
constante. Par défaut, longueur est égale à 1.
VARCHAR (longueur ) : pour les colonnes qui contiennent des chaînes de longueurs
variables.
Remarque : Les types Oracle sont les types SQL-2 mais le type VARCHAR est appelé
VARCHAR2 dans Oracle (la taille maximum est de 2000 caractères).
5
III. Types de données
3) Types temporels
Remarque : Une colonne qui n'est pas renseignée, et donc vide, est dite "content la
valeur NULL". Cette valeur n'est pas égale à zéro, c'est une absence de valeur.
6
IV. Le langage de définition des données (LDD)
Le langage de définition des données permet de définir et de manipuler les concepts
du modèle relationnel liés au schéma : relation, attribut, clé, contraintes d’intégrité, vues
ainsi que certains éléments liés à l’administration de la base de données : index, droits
des utilisateurs.
1) Création d'une table :
Syntaxe : CREATE TABLE <nom_de_relation> ( <nom_d’attribut> <type_de_données>
[NOT NULL], [, ...]
[, PRIMARY KEY (<nom_d’attribut> [, ...] ) ]
[, FOREIGN KEY (<nom_d’attribut>) REFERENCES <nom_de_relation> [, ...] ]
[CHECK (<condition>)]);
7
IV. Le langage de définition des données (LDD)
Exemple
CREATE TABLE article (
code VARCHAR(10) primary key,
nom VARCHAR(30) NOT NULL,
prix Number(9,2),
datemaj DATE DEFAULT CURRENT_DATE);
On peut donner une valeur par défaut pour une colonne si la colonne n'est pas
renseignée.
2) Contrainte d'intégrité
Dans la définition d'une table, on peut indiquer des contraintes d'intégrité portant sur
une ou plusieurs colonnes. Les contraintes possibles sont :
PRIMARY KEY, UNIQUE, FOREIGN KEY...REFERENCES, CHECK
8
IV. Le langage de définition des données (LDD)
2) Contrainte d'intégrité
a) Contrainte de clé primaire :
définit la clé primaire de la table. Aucune des colonnes qui forment cette clé ne
doit avoir une valeur NULL.
Si la clé primaire est composé d'un seul attribut, on place la contrainte de clé
primaire devant l'attribut lors de la création de la table.
Si la clé est composé de plus qu'un attribut, on place cette contrainte vers la fin.
create table livraison ( n_dep number (6) references depot(n_dep),
code_j number(4) references journal(code_j),
date_l date,
qte_l number(10),
primary key (code_j, n_dep, date_l));
9
IV. Le langage de définition des données (LDD)
2) Contrainte d'intégrité
b) Contrainte d'unicité
UNIQUE : interdit qu'une colonne (ou la concaténation de plusieurs colonnes)
contienne deux valeurs identiques.
c) Contrainte de clé étrangère
Syntaxe 1: pour une contrainte sur une colonne :
FOREIGN KEY REFERENCES tableref [(col1 )]
[ON DELETE CASCADE ]
Exemple
create table livraison (
n_dep number (6) FOREIGN KEY references depot(n_dep),
code_j number(4) references journal(code_j),
date_l date,
qte_l number(10),
primary key (code_j, n_dep, date_l));
10
IV. Le langage de définition des données (LDD)
2) Contrainte d'intégrité
c) Contrainte de clé étrangère
indique que la concaténation de An_entr et num_entr est une clé étrangère qui
fait référence à la concaténation des colonnes An_entr et num_entr de la table
Entree . 11
IV. Le langage de définition des données (LDD)
2) Contrainte d'intégrité
c) Contrainte de clé étrangère
ON DELETE CASCADE:
12
IV. Le langage de définition des données (LDD)
2) Contrainte d'intégrité
d) Contrainte CHECK
Syntaxe : CHECK(condition )
impose que les colonnes de chaque ligne à insérer doivent vérifier la condition
indiquée
Exemple
create table depot (n_dep number(6) primary key,
nom_dep varchar2(20) not null,
adr varchar2(20) not null,
check(nom_dep = upper(nom_dep)),
check(adr = upper(adr)));
Les deux contraintes check imposent que les valeurs de adr et de nom_dep à insérer
dans la table depot soit en majuscule.
13
IV. Le langage de définition des données (LDD)
3) Contraintes nommées
Une contrainte peut être nommée afin de pouvoir la gérer (supprimer, modifier, renomer).
Syntaxe : Constraint nom_contrainte contrainte
Exemple :
create table journal(code_j number(4),
titre varchar2(20),
prix number(2,3),
constraint pk_journal primary key(code));
4) Ajouter, supprimer ou renommer une contrainte
Après avoir créer une table, on peut modifier sa structure en y ajoutant, supprimant
ou renommant une contrainte. On doit dans ce cas en premier lieu, utiliser la
commande ALTER TABLE.
14
IV. Le langage de définition des données (LDD)
4) Ajouter, supprimer ou renommer une contrainte
a) Ajout d'une contrainte
Syntaxe : ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte contrainte;
Exemple :
ALTER TABLE journal
ADD CONSTRAINT cktitre check (titre = upper(titre) and titre is not null)
ADD CONSTRAINT cktype check (type in ('INFO', 'SCIENCE', 'TELE', 'FEMININ') );
Exemple :
ALTER TABLE journal
DROP CONSTRAINT cktitre ;
15
IV. Le langage de définition des données (LDD)
5) Suppressions d'une table
16
V. Langage de manipulation des Données
Le langage de manipulation de données (LMD) est le langage permettant de modifier
les informations contenues dans la base.
Il existe trois commandes SQL permettant d'effectuer les trois types de modification
des données :
17
V. Langage de manipulation des Données
1) Insertion
Syntaxe : INSERT INTO nom_table (col1,..., coln ) VALUES (val1,...,valn )
Exemples
Insert into journal values (110,'LE MONDE', 4.5, 'INFO', 'QUOTIDIEN', 'PARIS')
Insert into journal (code_j, titre , prix , type, periode, adresse)values (110,'LE
MONDE', 4.5, 'INFO', 'QUOTIDIEN', 'PARIS‘)
2) Modification
Exemples
Syntaxe : UPDATE table UPDATE journal
SET col1 = exp1, col2 = exp2, ... SET prix= 5
WHERE prédicat WHERE prix = 4.5;
18
V. Langage de manipulation des Données
3) Suppression
La clause WHERE indique quelles lignes doivent être supprimées. Cette clause
est facultative ; si elle n'est pas précisée, toutes les lignes de la table sont
supprimées.
Exemple :
DELETE FROM journal
WHERE type = 'INFO ‘;
19
Merci pour votre
Attention
https://livesql.oracle.com/