0% ont trouvé ce document utile (0 vote)
52 vues67 pages

Le Langage SQL

SQL, ou Langage d'interrogation structuré, est un langage de gestion de bases de données relationnelles développé par IBM dans les années 70. Il comprend trois dimensions : le DDL pour la définition des données, le DML pour la manipulation des données, et le DCL pour le contrôle des données. SQL permet d'assurer l'intégrité des données à travers des contraintes et offre des fonctionnalités pour l'insertion, la suppression et la modification des enregistrements.

Transféré par

kaoutarbahan
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
52 vues67 pages

Le Langage SQL

SQL, ou Langage d'interrogation structuré, est un langage de gestion de bases de données relationnelles développé par IBM dans les années 70. Il comprend trois dimensions : le DDL pour la définition des données, le DML pour la manipulation des données, et le DCL pour le contrôle des données. SQL permet d'assurer l'intégrité des données à travers des contraintes et offre des fonctionnalités pour l'insertion, la suppression et la modification des enregistrements.

Transféré par

kaoutarbahan
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

I)Présentation de SQL

SQL signifie (Structured Query Language) c'est-


à-dire (Langage d'interrogation structuré).
En fait SQL est un langage complet de gestion de
bases de données relationnelles. Il a été conçu
par IBM dans les années 70. Il est devenu le
langage standard des systèmes de gestion de
bases de données (SGBD) relationnelles
(SGBDR).
1) Caractéristiques
 SQL assure l'indépendance des données
 Mode interactif ou programmé
 interactif : instruction SQL tapée directement, instantanément
traitée
 à l'intérieur d'un pgm : appel de SQL dans un pgm en C, ...
 instruction SQL = requête
 résultat d'une requête = table
Caractéristiques
 SQL est un langage à dimension triple :
 le DDL (Data Definition Language) : commandes de
SQL permettant de créer, modifier ou effacer la
définition (schéma) d'une BD ou d'une table.
 le DML (Data Manipulation Language) : interrogation
et modification de l'information contenue dans les
tables
 le DCL (Data Control Language) : sécurité et
confidentialité de la BD.
Caractéristiques
 LANGAGE DE DEFINITIONS DE DONNEES
 CREATE TABLE
 CREATE VIEW
 LANGAGE DE MANIPULATION DE DONNEES
 SELECT OPEN
 INSERT FETCH
 UPDATE CLOSE
 DELETE
 LANGAGE DE CONTROLE DE DONNEES
 GRANT et REVOKE
 BEGIN et END TRANSACTION
 COMMIT et ROLLBACK
2)Le vocabulaire:
 Les TABLES correspondent aux entités et relations

 Les CHAMPS correspondent aux attributs (=


colonne)

 Les ENREGISTREMENTS correspondent aux


données saisies (= ligne)
Les tables
numcli nomcli prenomcli adrcli cpcli villecli
10003 ANDRE Thomas 10 rue courtalon 75014 PARIS
102778 BULI Patrice 20 cours Vuitton 69006 LYON
124682 VERIN Didier 10 rue Schuman 75002 PARIS
125941 GADRON Dominique 10 allée des Tilleuls 69300 CALUIRE
140621 BALOIR Claude 10 place des cordeliers 75008 PARIS
143025 BLANC Cécile 12 rue Cortier 89000 AUXERRE
147963 DOLMEN Christian 145 cous Lafayette 75015 PARIS
148254 JORET Geneviève 10 rue des provinces 69005 LYON
150763 MALOT Berthe 39 rue denfert rochereau 75014 PARIS
157269 OLIVE Virginie 20 rue Berliet 21000 DIJON
164025 PALO Nicole 10 rue de la Préfecture 75001 PARIS
172436 MARIE Olivier 43 rue de l'église 06000 NICE
172596 BELO Vincent 15 rue des chèvrefeuilles 75002 PARIS
175298 GIDOT Sylvie 20 rue de Melun 75013 PARIS
175496 FAVRE Caroline 61 rue du calvaire 10000 TROYES Table CLIENT
240573 VIAR Stéphane 68 rue Anatole France 75016 PARIS
279246 MAIRE René 28 rue de l'Orme 69003 LYON
Les champs
Champs de la table CLIENT

numcli nomcli prenomcli adrcli cpcli villecli


10003 ANDRE Thomas 10 rue courtalon 75014 PARIS
102778 BULI Patrice 20 cours Vuitton 69006 LYON
124682 VERIN Didier 10 rue Schuman 75002 PARIS
125941 GADRON Dominique 10 allée des Tilleuls 69300 CALUIRE
Les enregistrements
numcli nomcli prenomcli adrcli cpcli villecli
10003 ANDRE Thomas 10 rue courtalon 75014 PARIS
102778 BULI Patrice 20 cours Vuitton 69006 LYON
124682 VERIN Didier 10 rue Schuman 75002 PARIS
125941 GADRON Dominique 10 allée des Tilleuls 69300 CALUIRE
140621 BALOIR Claude 10 place des cordeliers 75008 PARIS
143025 BLANC Cécile 12 rue Cortier 89000 AUXERRE
147963 DOLMEN Christian 145 cous Lafayette 75015 PARIS
148254 JORET Geneviève 10 rue des provinces 69005 LYON
150763 MALOT Berthe 39 rue denfert rochereau 75014 PARIS
157269 OLIVE Virginie 20 rue Berliet 21000 DIJON Un enregistrement
164025
172436
PALO
MARIE
Nicole
Olivier
10 rue de la Préfecture
43 rue de l'église
75001
06000
PARIS
NICE
de la table CLIENT
172596 BELO Vincent 15 rue des chèvrefeuilles 75002 PARIS
175298 GIDOT Sylvie 20 rue de Melun 75013 PARIS
175496 FAVRE Caroline 61 rue du calvaire 10000 TROYES
240573 VIAR Stéphane 68 rue Anatole France 75016 PARIS
279246 MAIRE René 28 rue de l'Orme 69003 LYON
2) Types de données
a) Types numériques
SMALLINT (sur 2 octets)
INTEGER (sur 4 octets)
DECIMAL(p, d) correspond à des nombres décimaux
qui ont p chiffres significatifs et d chiffres après la virgule.
REAL (simple précision, avec au moins 7 chiffres
significatifs)
Exemple: SALAIRE DECIMAL(8,2)
définit une colonne numérique SALAIRE. Les valeurs
auront au maximum 2 décimales et 8 chiffres au plus au
total (donc 6 chiffres avant le point décimal).
b) Types chaînes de caractères
Les constantes chaînes de caractères sont entourées par
des apostrophes (').
le type CHAR pour les colonnes qui contiennent des
chaînes de longueur constante.
CHAR(longueur)
VARCHAR(longueur) pour les colonnes qui contiennent
des chaînes de longueurs variables.
c) Types temporels
DATE réserve 2 chiffres pour le mois et le jour et 4 pour
l'année;
TIME pour les heures, minutes et secondes
(les secondes peuvent comporter un certain nombre de
décimales);
d) Types binaires
SQL fournit les types BIT et BIT VARYING
(longueur constante ou non).

e) Valeur NULL
Une colonne qui n'est pas renseignée, et donc vide,
est dite contenir la valeur NULL. Cette valeur n'est pas
zéro, c'est une absence de valeur.
Définition des données

Domaines de base
 Numériques :
 Entier : INTEGER, SMALLINT
 Décimal : DECIMAL (m,n), NUMBER(m,n)
 Réel flottant : FLOAT, REAL
 Chaîne de caractères : CHAR (n), VARCHAR(n)
 Temporel : DATE (dans la norme SQL2 !)
 chaque SGBD possède d'autres domaines qui lui sont
propres

 Valeur NULL : absence de valeur

13
4) Les contraintes d’intégrité
a)Contrainte de domaine
Les contraintes de domaine sont des contraintes qui restreignent les valeurs
qu'une donnée peut prendre. Pour mieux en mesurer le sens, il nous faut
comprendre ce qu'est un domaine au sens SQL. Par exemple, un domaine
POURCENT se verra doté d'une contrainte qui ne lui permet que des valeurs
comprises entre 0 et 100.
b)Contrainte de relation
Pour respecter la contrainte de relation, il faut éviter les doublons dans les
clés primaires.
c)Contrainte de référence
les tables dans un SGBD sont liées par la contrainte d’intégrité référentielle, selon
laquelle la colonne qui fait l’objet de la clé étrangère telle que les valeurs de cette
colonne soient obligatoirement des valeurs de
la colonne clé primaire de la table de référence. refprod desiprod marqueprod prixprod
CG2054 CONGELATEUR MOULINEX 245,00 €
CG4210 CONGELATEUR BRANDT 229,00 €
CG4921 CONGELATEUR MOULINEX 200,00 €
CG5327 CONGELATEUR MIELE 215,00 €
CS1572 CUISINIERE MOULINEX 790,00 €
CS547 CUISINIERE ARTHUR MARTIN 950,00 €
CS7814 CUISINIERE ROSIERES 900,00 €

??? LL1043
LL1050
LAVE LINGE
LAVE LINGE
BRANDT
MOULINEX
610,00 €
520,00 €
LL450 LAVE LINGE ARTHUR MARTIN 250,00 €
LV2050 LAVE VAISSELLE BRANDT 1 035,00 €
LV5790 LAVE VAISSELLE MIELE 1 050,00 €
RF147 REFRIGERATEUR MIELE 750,00 €
RF2047 REFRIGERATEUR BRANDT 1 020,00 €
RF243 REFRIGERATEUR WHIRLPOOL 990,00 €
Prise en compte des contraintes d’intégrité
 Saisir en premier les données des tables qui ne
contiennent pas de clé étrangère
 Bien définir les types de données lors de la création de
la structure
 Cocher l’application de l’intégrité référentielle lors de
la mise en place des liaisons
Mises à jour

Mise à jour
 Insertion
 Suppression
 Modification

18
Insertion Mises à jour

 Insertion d’un seul tuple


INSERT INTO Jus VALUES (100, ‘Oran', 1979, 12)
INSERT INTO Jus (num, cru) VALUES (200, 'Gam')

 Insertion d’un ensemble de tuples


CREATE TABLE BORDEAUX(num Integer, annee Integer, degre
number(4,2))

INSERT INTO BORDEAUX


SELECT num, annee, degre
FROM Jus
WHERE cru = 'Bordeaux'

CREATE TABLE BORDEAUX AS


SELECT num, annee, degre
FROM Jus
WHERE cru = 'Bordeaux'
19
Mises à jour
Suppression
 "Supprimer tous les tuples de Jus"
DELETE FROM Jus ou TRUNCATE TABLE Jus
 "Supprimer le jus de numéro 150"
DELETE FROM Jus
WHERE num = 150
 "Supprimer les jus de degré <9 ou >12"
DELETE FROM Jus
WHERE degre < 9 OR degre > 12
 "Supprimer les commandes passées par Belaïd"
DELETE FROM Commandes
WHERE nb IN (
SELECT num
FROM Clients
WHERE nom= ‘Belaïd')
20
Modification Mises à jour

 « Le producteur 150 habite dans le sud ouest »


UPDATE Producteurs
SET region = ‘Sud Ouest'
WHERE num = 150
 « Les degrés des Gam augmentent de 10 % »
UPDATE Jus
SET degre = degre * 1.1
WHERE cru = 'Gam'
 « Le client ‘Bac’ augmente ses commandes de 10 unités »
UPDATE Commandes
SET qte = qte + 10
WHERE nb IN (
SELECT num
FROM Clients
WHERE nom='Bac')

21
II)DDL: LANGAGE DE
DEFINITIONS DE DONNEES
DDL: DATABASE
DDL: TABLE
DDL: TABLE
DDL: TABLE, contraintes
DDL: TABLE, contraintes
DDL: TABLE, contraintes
DDL: TABLE, contraintes
DDL: TABLE, contraintes
DDL: TABLE, contraintes
L'option permettant de définir le comportement en cas de modification est
donc ON UPDATE {RESTRICT | NO ACTION | SET NULL | CASCADE}. Les
quatre comportements possibles sont exactement les mêmes que pour la
suppression.

RESTRICT et NO ACTION : empêche la modification si elle casse la contrainte
(comportement par défaut).


SET NULL : met NULL partout où la valeur modifiée était référencée.


CASCADE : modifie également la valeur là où elle est référencée.
DDL: TABLE, contraintes
DDL: TABLE, contraintes
DDL: TABLE, ALTER
III)DML: LANGAGE DE
MANIPULATION DE DONNEES
DML:
DML: INSERT
DML: INSERT
DML: INSERT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: SELECT
DML: DELETE
DML: UPDATE
DML: UPDATE
DML: Requêtes Corrélées
DML: Requêtes Corrélées

Vous aimerez peut-être aussi