Vous êtes sur la page 1sur 4

COMPRENDRE LE SQL

COMPRENDRE LE SQL

COMPRENDRE LE SQL

2.1. LES OPERATEURS UNITAIRES


Ils portent sur une seule relation. On trouve la slection, le complment et la projection

2.1.1. LA SELECTION

1.

LE SQL

On slectionne dans une relation les occurrences qui correspondent un critre dfini. Par exemple tous les tudiants ayant comme nom Dupont SELECT * FROM ETUDIANT WHERE nom=Dupont ; net 12 nom Dupont adresse Lyon

Le SQL (Structured Query Language) est un langage d'interrogation de bases de donnes. Trs rpandu, permettant la manipulation (de faon simple) des bases de donnes relationnelles. Nous allons lutiliser pour illustrer lalgbre relationnel. La syntaxe SQL est ralise ainsi SELECT [liste des attributs] FROM [nom de la relation] ; Le point virgule la fin de lexpression est trs important car il permet de dfinir la fin de la commande et dexiger la ralisation de la commande. On peut galement ajouter la clause optionnelle qui support les oprateurs AND et OR WHERE [condition(s)] ;

Tous les tudiants disposant du nom Durand mais avec tri sur la ville SELECT * FROM ETUDIANT WHERE nom=Durand ORDER BY adresse ; net 23 123 nom Durand Durand adresse Lyon Vierzon

2.

LALGEBRE RELATIONNEL ET LE SQL

2.1.2. LE COMPLEMENT
Permet de construire les occurrences qui nexistent pas dans une relation. La rsultante exprime le faux. Cette opration unitaire nest pas implmente dans SQL mais on peut procder par tapes Dans la relation nom grade (relation enseignant) note R 1. On ralise une projection sur lattribut nom note R1 2. On ralise une projection sur lattribut grade note R2 3. On raliser un produit cartsien R1 x R2 4. On ralise une diffrence (R1 x R2) R

Le but du modle relationnel est la manipulation des donnes via des requtes. On utilise pour cela des oprateurs. On prendra comme exemple les relations suivantes : ETUDIANT nom adresse Durand Lyon Hillman Durand Vierzon Dupont Lyon Simpson Vierzon Martin Grenoble ENSEIGNANT nom grade Dupont Assistant Samson Matre Simon Assistant Grey Matre Altman Matre UV nUV titre resp 20 Physique 56 30 Franais 12 40 Anglais 67 10 Math 56 DIPLOME n nUV 12 30 89 30 23 10 78 40 123 30 123 40 34 40 INSCRIPTION net nUV 12 10 12 30 12 40 123 10 123 30 123 40 89 30 78 40 78 10 34 40 23 10 ENSEIGNEMENT n nUV 12 30 45 10 45 20

net 23 78 123 12 89 34

2.1.3. LA PROJECTION
Permet de raliser une slection mais en ne slectionnant quune partie des colonnes dune relation. Par exemple on veut les noms et adresses des tudiants nom Durand Hillman Durand Dupont Simpson Martin adresse Lyon Vierzon Lyon Vierzon Grenoble

nens 12 56 45 67 90

salaire 7000 9800 10000 10200 12000

SELECT nom, adresse FROM ETUDIANT ;

Page 1 sur 8

Page 2 sur 8

COMPRENDRE LE SQL

COMPRENDRE LE SQL

2.1.4. LA PROJECTION ET LA SELECTION


Par exemple quel est le nom des tudiants qui habitent Lyon. SELECT nom FROM ETUDIANT WHERE adresse=Lyon ; nom Durand Dupont

2.2.3. LA DIVISION
Permet de dterminer les occurrences de la premire relation qui sont chacune associes toutes les occurrences de la seconde relation. Elle nest pas implmente dans SQL.

2.2.4. LUNION

2.2. LES OPERATEURS BINAIRES


Les oprateurs binaires portent sur deux relations. On trouve lunion, lintersection, la diffrence, la division et le produit.

Permet de fusionner deux relations en une seule. Ce nest ralisable que sur les relations ayant les mmes attributs. Cette opration est cumulative. Lorsque que lon demande UNION ALL on garde toutes des redondances alors que la commande UNION limine les redondances. Par exemple quelle est la liste des participants aux UV n 56 45 90 12 78 34 123 89 23

2.2.1. LINTERSECTION
Permet de slectionner dans deux relations la ou les occurrences communes ces deux relations. Ce nest ralisable que sur les relations ayant les mmes attributs. Par exemple le nom et le n des tudiants qui sont galement des enseignants SELECT net, nom FROM ETUDIANT INTERSECT SELECT nens, nom FROM ENSEIGNANT ; n 12 Nom Dupont SELECT n FROM INSCRIPTION UNION SELECT n FROM ENSEIGNANT ;

2.2.5. LE PRODUIT CARTESIEN


Permet de combiner toutes les possibilits dassociation doccurrence entre deux relations oprantes.

2.2.2. LA DIFFERENCE
Permet dobtenir les occurrences dune relation qui nappartient pas la seconde relation. Ce nest ralisable que sur les relations ayant les mmes attributs. Par exemple la liste des tudiants et les UV quils ont choues SELECT * FROM INSCRIPTION MINUS SELECT * FROM DIPLOME ; net 12 12 78 78 123 nUV 10 40 10 30 10

2.2.6. LE THETA PRODUIT


Cest un produit cartsien augment dune slection par oprateur logique thta qui prend la valeur >, <, = ou diffrent. Par exemple quels sont les tudiants responsables dune UV ? SELECT net, nom, adresse, nUV, titre FROM ETUDIANTS, UV WHERE net=resp ; net 12 nom adresse nUV titre Dupont Lyon 30 Franais

Page 3 sur 8

Page 4 sur 8

COMPRENDRE LE SQL

COMPRENDRE LE SQL

2.2.7. LA JOINTURE NATURELLE


Cas particulier de thta produit. Elle est utilise quand thta reprsente lgalit et lorsque cette galit porte sur des attributs identiques. Cest une des plus employes. Par exemple Quel est le nom des tudiants inscrits lUV de math ? SELECT nom FROM ETUDIANT WHERE net IN (SELECT n FROM INSCRIPTION WHERE nUV=10) ; nom Dupont Hillman Durand Durand

2.2.10.

LA SEMI JOINTURE

Cest une jointure extrieure mais on garde toutes les occurrences de la premire relation (mme celles sans associs) mais ne fait apparatre que celles de la seconde relation qui dispose dun associ.

2.3. LES AUTRES POSSIBILITES DE SQL


2.3.1. LA VALEUR NULLE OU NON NULLES
Par exemple quel sont les tudiants sans domicile ?

Quel sont les tudiants inscrits dans une UV dont le responsable porte le n56. SELECT nom FROM ETUDIANT WHERE net IN (SELECT n FROM INSCRIPTION WHERE nUV IN (SELECT nUV FROM UV WHERE resp=56)) ; nom Durand Hillman Durand Dupont SELECT nom FROM ETUDIANT WHERE adresse IS Null ; nom Hillman

2.3.2. LES OPERATEURS ARITHMETIQUES


On peut utiliser les oprateurs + - / *

2.2.8. LAUTO JOINTURE


Cest une jointure naturelle dans laquelle les deux relations initiales nen font quune. Il est donc ncessaire didentifier les deux entits par une variable dans la clause FROM. Par exemple quel est le nom des assistants qui gagnent plus que matre ? SELECT Y.nom FROM ENSEIGNANTY.ENSEIGNANTX WHERE Y.salaire>X.salaire AND Y.grade=assistant AND X.grade=matre ;

2.3.3. LES FONCTIONS ENSEMBLISTES


On peut utiliser les lments min, max, count, sum et avg Quel est le salaire moyen des matres ? SELECT AVG (salaire) FROM ENSEIGNANT WHERE garde=matre ; AVG(salaire) 10666,667

nom Simon

Quel est le nom des matres qui gagnent plus que le moyenne des enseignants ? SELECT nom FROM ENSEIGNANT WHERE garde=matre AND salaire>(SELECT AVG(salaire) FROM ENSEIGNANT) ; Quelle est le nombre dUV auxquelles sont inscrits ltudiant numro 56 SELECT COUNT(nUV) FROM INSCRIPTION WHERE net =78 ; Count(nUV) 3 nom Grey Altmann

2.2.9. LA JOINTURE EXTERIEURE


Cest une jointure naturelle mais on garde les occurrences qui nont pas dassocies. Les attributs non renseigns prennent la valeur nulle. Ce type de jointure nest pas implmente dans SQL.

Page 5 sur 8

Page 6 sur 8

COMPRENDRE LE SQL

COMPRENDRE LE SQL

2.4. LES FONCTIONS SPECIALES


2.4.1. DISTINCT
Elimine les valeurs dupliques Par exemple, combien on a de responsable dUV ? SELECT (COUNT(DISTINCT(resp)) FROM UV ; count(distinct(resp) 3

2.4.5. LIKE
Permet la recherche partir dune chane de caractres. Nom des tudiants commenant par D SELECT nom FROM ETUDIANT WHERE nom LIKE D% ; nom Durand Durand Dupont

2.4.2. ORDER BY
Permet dordonner les rsultats par ordre alphabtique ORDER BY nom ASC ou inverse ORDER BY nom DESC

2.4.3. GROUP BY
Permet lagrgation sur un critre donn. Quel est le salaire par grade ? SELECT grade AVG(salaire) FROM ENSEIGNANT GROUP BY grade ; grade assistant matre AVG(salaire) 8500 10666,667

Dans ce type de cas la clause WHERE est remplace par la clause HAVING. Par exemple quel sont les numros des enseignants responsables de plus dune UV ? SELECT resp FROM UV GROUP BY resp HAVING COUNT(nUV)>1 ;

resp 56

2.4.4. BETWEEN
Permet de donner un intervalle. Par exemple quel est ne nom des enseignants dont le salaire et compris entre 10100 et 11100 ? SELECT nom FROM ENSEIGNANT WHERE salaire BETWEEN 10100 AND 11100 ; nom Grey

Page 7 sur 8

Page 8 sur 8

Vous aimerez peut-être aussi