Vous êtes sur la page 1sur 32

http://coursuniversite.

com/

Le langage SQL
Structured Query Language Standard tabli pour SGBD relationnel Partie LDD
o

Conceptuel : CREATE SCHEMA, TABLE,... SELECT, INSERT, DELETE, UPDATE

Partie LMD
o

11/14/2010

Laila FETJAH. Tous droits rservs.

Spcification schma relationnel avec SQL

Niveau conceptuel
o o o

Schma des tables


 CREATE TABLE.

Domaines
 CREATE DOMAIN

Contraintes d'intgrit
 PRIMARY KEY, FOREIGN KEY, UNIQUE KEY, CHECK,.

11/14/2010

Laila FETJAH. Tous droits rservs.

Cration du schma d'une table en SQL

Forme simple Transmise l interprte du LDD


o o

vrification cration de la table


 schma stock dans dictionnaire de donnes

11/14/2010

Laila FETJAH. Tous droits rservs.

Syntaxe gnrale du CREATE TABLE

Syntaxe de spcificationDeColonne

11/14/2010

Laila FETJAH. Tous droits rservs.

Types SQL
Numrique exact
INTEGER (ou INT)  Entier  Exemples : 2, 3, 459 o SMALLINT  Petit entier  Exemples : 2, 3, 459 o NUMERIC(p, c) (ou DECIMAL(p, c) ou DEC(p, c))  Nombre dcimal avec p chiffres significatifs (excluant le point) et c chiffres aprs le point  Exemples : 2.5, 456.342, 6
o

11/14/2010

Laila FETJAH. Tous droits rservs.

Types SQL
Numrique approximatif
REAL  Point flottant  Exemples : 3.27E-4, 24E5 o DOUBLE PRECISION  Point flottant double prcision  Exemples : 3.27265378426E-4, 24E12 o FLOAT(n)  Point flottant
o

 prcision minimale est de n chiffres

 Exemples : 3.27E-4, 24E5

11/14/2010

Laila FETJAH. Tous droits rservs.

Types SQL
Chane de caractres
o o

CHARACTER(n) (ou CHAR(n))


 Chane de caractre de taille fixe gale n

CHARACTER VARYING (n) (ou VARCHAR(n))


 Taille variable (max de n caractres)

11/14/2010

Laila FETJAH. Tous droits rservs.

Types SQL
Date et temps o DATE
 anne (quatre chiffres), mois (2 chiffres) et jour (2 chiffres)  Exemple : DATE 2006-08-25'
o

TIME[(p)]
 heure (2 chiffres), minutes (2 chiffres), secondes (2 +p chiffres)  Exemple : TIME '14:04:32.25'

TIMESTAMP[(p)]
 DATE + TIME  Exemple : TIMESTAMP 2006-02-15 14:04:32.25'

INTERVAL
 Reprsente un intervalle de temps.

11/14/2010

Laila FETJAH. Tous droits rservs.

Suppression dune table


RESTRICT
o

rejet si lment dpendant existe


 ex: FOREIGN KEY

CASCADE
o

supprime lment dpendant

11/14/2010

Laila FETJAH. Tous droits rservs.

Modification du schma de table

Syntaxe

11/14/2010

Laila FETJAH. Tous droits rservs.

Requtes SQL (SELECT)


Syntaxe de requteSQL Syntaxe du selectSQL

...

11/14/2010

Laila FETJAH. Tous droits rservs.

Projection d'une table et la clause DISTINCT


Produire les noClient et dateCommande de toutes les Commandes

Multi-ensemble !

11/14/2010

Laila FETJAH. Tous droits rservs.

Clause DISTINCT
Produire les noClient et dateCommande de toutes les Commandes

11/14/2010

noClient, dateCommande

Laila FETJAH. Tous droits rservs.

(Commande)

Slection sur une table


Slectionner les Articles dont le prix est infrieur 20.00 DH et le numro est suprieur 30

prixUnitaire < 20.00 ET noArticle > 30


11/14/2010

(Article)

Laila FETJAH. Tous droits rservs.

ConditionSQL - BETWEEN
Slectionner les Commandes du mois de juin de l'anne 2000

11/14/2010

Laila FETJAH. Tous droits rservs.

ConditionSQL - IN
Slectionner les Commandes du Client dont le noClient est 10 ou 40 ou 80

11/14/2010

Laila FETJAH. Tous droits rservs.

ConditionSQL - LIKE
Slectionner les Clients dont le nomClient contient le mot Le 2ime lettre du nomClient = o et dernire lettre est un k

11/14/2010

Laila FETJAH. Tous droits rservs.

ConditionSQL - IS NOT NULL Slectionner les Articles dont la description n'est pas une valeur nulle

11/14/2010

Laila FETJAH. Tous droits rservs.

Slection-projection sur une table


Produire les noClient et dateCommande des Commandes dont la date est suprieure au 05/07/2000

11/14/2010

Laila FETJAH. Tous droits rservs.

Produit cartsien avec SELECT-FROM


Produire toutes les combinaisons possibles de lignes de Client et de Commande...

Client Commande
11/14/2010 Laila FETJAH. Tous droits rservs.

Jointure avec SELECT-FROM-WHERE


Produire les informations au sujet des Clients et de leurs Commandes

Client.noClient, nomClient, noTlphone, noCommande, dateCommande


11/14/2010

( Client.noCliente = Commande.noClient (Client Laila FETJAH. Tous droits rservs. Commande))

Jointure de plusieurs tables


Slectionner les nomClient des Clients qui ont command au moins une pole

Pole

nomClient

(Client

( description = pole Commande LigneCommande

Article))

11/14/2010

Laila FETJAH. Tous droits rservs.

Dfinition d'un alias

11/14/2010

Laila FETJAH. Tous droits rservs.

Oprateurs

Conversions automatiques entre types compatibles

11/14/2010

Laila FETJAH. Tous droits rservs.

Pseudo-colonnes
Les Commandes de la journe

11/14/2010

Laila FETJAH. Tous droits rservs.

Tri du rsultat (ORDER BY)


Les Clients en ordre alphabtique du nom

11/14/2010

Laila FETJAH. Tous droits rservs.

Oprations de mise jour des tables en SQL

Insert Delete Update


11/14/2010 Laila FETJAH. Tous droits rservs.

Insertion dans une table (INSERT)


Insrer une nouvelle ligne dans la table Client Changer l ordre de dfaut
INSERT INTO Client VALUES (100,Ahmed Jabrane,022 22 22 22)

INSERT INTO Client(Nomclient, Nclient, Ntel) VALUES (Ahmed Jabrane,100,022 22 22 22)

11/14/2010

Laila FETJAH. Tous droits rservs.

Insertion d une partie des colonnes

11/14/2010

Laila FETJAH. Tous droits rservs.

Insertion partir d un SELECT


Produire les lignes de DtailLivraison pour la Livraison #106 partir des LigneCommandes de la Commande #7

11/14/2010

Laila FETJAH. Tous droits rservs.

Suppression de lignes (DELETE)


Supprimer toutes les lignes de la table Client Supprimer le Client #70 de la table Client

11/14/2010

Laila FETJAH. Tous droits rservs.

Modification de lignes (UPDATE)


Changer le noTlphone du Client #10 pour (022)22 22 22
UPDATE Client SET noTlphone = (022)22 22 22 Where noclient = 10 Augmenter tous les prixUnitaires des Articles de 10% UPDATE de plusieurs colonnes la fois Modification Article SET prixUnitaire = prixUnitaire*1.1

UPDATE Article SET prixUnitaire = 15, quantitenstock = 10 WHERE noArticle = 10


11/14/2010 Laila FETJAH. Tous droits rservs.