Université Paris 2
DU
MODELES DE L’ECONOMIE NUMERIQUE
█████████████████████████████████████████████████████████████████
Les Bases de Données
Le langage SQL
1. Introduction
2. Structure d=une commande SQL
3. SQL et les SGBD-R
4. Exemple : la base de données RelationClient
5. Exercices
6. Opérateurs et fonctions statistiques SQL
7. Jointures et sous-requêtes
Halim M'SILTI
Septembre 2002
SQL - 1
1. Introduction
Le langage SQL - Structured Query Langage
1
- est un langage évolué de manipulation de bases de données
relationnelles, qui opère sur des ensembles logiques de données appelés relations ou tables. Le terme manipuler
signifie créer, modifier, détruire, etc. Les principales caractéristiques du langage sont les suivantes :
- définition des données,
- extraction des données ,
- manipulation des données stockées (suppression, ajout, modification),
- partage des données,
- contrôle des accès utilisateur,
- contrôle de l'intégrité des données (possibilité d'élaborer des procédures de sécurisation des données),
- accès à une base de données sur gros système.
SQL permet de définir la structure d'une base de données ainsi que l'ensemble des index correspondant. Mais son
domaine de prédilection reste l'extraction des données
2
. Une base de données SQL contient les objets suivants:
Objets
Définition
Table
Ensemble de lignes et de colonnes.
Vue
Table virtuelle fournissant une " vue " des données (elle ne contient pas de données). Elle provient d'une ou
plusieurs tables. Une vue est mise à jour si les données des tables sous-jacentes sont modifiées.
Synonyme
Nom de substitution pour les tables et les vues.
Index
Complément des tables. Ils permettent un accès rapide aux données et aident à maintienir l'intégrité de la base.
Catalogue
Ensemble de tables gérées par le système permettant de décrire la structure de la base et son contenu.
De plus, le langage est spécialement conçu pour respecter les implémentations de bases de données de type
"Client/Serveur" (accès à une base de données répartie ou distribuée sur un réseau) : la base de données se trouve
sur un ou plusieurs serveurs; seule la requête et les données résultantes circulent sur le réseau.
Halim M'SILTI - Université Panthéon-Assas - Reproduction interdite - Septembre 2002
1
Langage de consultation structu
2
SQL ne définit aucune opération d'entrée-sortie (clavier, écran, imprimante); aussi est-il utilisé
avec un autre langage pour gérer les entrées-sorties. Autrement dit, SQL peut être "encapsulé"
dans un autre programme écrit en langage C, C++, Java, Delphi, Fortran, etc., pour construire des
applications fonctionnant sur micro-ordinateurs ou gros systèmes.
SQL - 2
2. Structure d=une commande SQL :
Les commandes SQL spécifient les données à extraire des tables, et non la procédure employée pour accéder à
ces données. C'est le système qui détermine la méthode optimale d'extraction. Cette approche est qualifiée de
non procédurale. Cela signifie qu'il est inutile de décrire l'organisation des données sur disque ou en mémoire et
donc de spécifier l'accès à une procédure. De plus, une seule commande SQL peut remplacer plusieurs commandes
d'un langage classique pour effectuer un même travail
3
. Il s'ensuit un gain de temps appréciable pour le traitement de
gros volumes d'informations.
Une commande SQL commence par un mot clé servant à nommer l'opération de base à exécuter. Elle comprend en
outre des clauses (facultatives ou non, selon le cas) qui permettent de spécifier un ensemble de tâches particulières.
Elle doit remplir deux exigences : préciser les données sur lesquelles elle opère, indiquer l'opération à exécuter sur
ces données.
La structure de base d'une expression SQL (ou requête) comporte trois clauses
4
:
SELECT <colonne1, colonne2,..., colonneN>
FROM <table(s)>
[WHERE <condition(s)>]...;
Le point virgule ( ; ) est le séparateur des commandes. La syntaxe complète de cette commande SQL comprend les
clauses énumérées ci-dessous, dans cet ordre (liste non exhaustive) :
SELECT [DISTINCT] <...>
[INTO <...>]
FROM <...>
[WHERE <...>]
[GROUP BY <...>]
[HAVING <...>]
[UNION sous-sélection]
[ORDER BY <...> / FOR UPDATE OF <...>]
[SAVE TO TEMP <...> [KEEP]];
Halim M'SILTI - Université Panthéon-Assas - Reproduction interdite - Septembre 2002
3
Cette particularité, est dûe au fait qu'une commande dans un langage procédural classique n'agit
que sur un enregistrement à la fois, tandis qu'une commande SQL agit sur les enregistrements
en les prenant un à un ou en groupe.
4
Il faut omettre les crochets [ ] lors de la saisie. Les informations placées à l'intérieur sont
facultatives. Les parenthèses angulaires <...> indiquent les éléments qui doivent être saisis.
SQL - 3
$ Une consultation typique, en langage SQL est :
SELECT A1, A2, ..., An
FROM r1, r2, ..., rn
[WHERE P];
$ La clause SELECT désigne les attributs Ai sur lesquels porte la recherche.
$ La clause FROM désigne la liste des relations que l'on doit passer en revue pour valoriser l'expression.
$ La clause WHERE (facultative), désigne le prédicat P relatif aux attributs de la (des) relation(s) qui
apparaît (apparaîssent) sous la clause FROM. Si la clause WHERE est omise, le prédicat P est vrai .
$ La recherche s=effectue de la façon suivante : le premier attribut de la liste, c=est-à-dire A1 , est recherché
dans la relation r1 , puis dans r2 s=il n=est pas dans r1 , etc. On peut lever toute ambiguité dans la recherche
en spécifiant la table propriétaire de la façon suivante : rk.Ai .
$ Le résultat d'une instruction SELECT est appelé table résultante. Cette dernière ne ressemble pas aux
autres tables. Elle n'est pas enregistrée et on ne peut pas la consulter une fois l'exécution de SELECT
achevée. Toutefois, il est possible d'utiliser la clause SAVE TO TEMP afin de sauvegarder la table
résultante dans une table SQL temporaire. Elle pourra alors être réutilisée pendant la session en cours. On
peut aussi la sauvegarder en tant que table d'une base de données avec l'option KEEP. Elle sera alors
réellement créée sur disque. Cette option doit être placée après la dernière clause d'une requête SELECT
comme le montre l=exemple suivant :
SELECT <A1, A2, ..., An>
FROM <table(s)>
WHERE <...>
SAVE TO TEMP <nom de la table> [KEEP];
$ La liste d'attributs A1, A2, ..., An peut être remplacée par une astérisque (*) pour retenir tous les attributs
de toutes les relations qui apparaissent sous la clause FROM.
$ Le terme " sous-sélection " dans la clause UNION se réfère aux clauses SELECT, FROM, WHERE,
GROUP BY et HAVING. Une sous-sélection peut être jointe à un autre SELECT avec UNION, ou être
utilisée comme sous-requête. Elle peut également apparaître jointe à d'autres commandes DELETE,
INSERT et UPDATE.
$ Certaines clauses, comme INTO et FOR UPDATE OF ne peuvent être employées qu'en mode SQL
intégré.
Halim M'SILTI - Université Panthéon-Assas - Reproduction interdite - Septembre 2002
1 / 25 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !