Système d'information de Gestion Le langage SQL
Table des matières
ACCÈS À UNE BASE DE DONNÉES.............................................................................................2
LE LANGAGE SQL................................................................................................................................... 2
INTERROGATION DES DONNÉES....................................................................................................................2
Le modèle relationnel utilisé......................................................................................................................................................3
Requêtes de base.....................................................................................................................................................................4
Sélection (Restriction)...............................................................................................................................................................4
La jointure..................................................................................................................................................................................8
Requêtes emboîtées.................................................................................................................................................................9
DESCRIPTION DES DONNÉES.....................................................................................................................10
DELETE..................................................................................................................................................................................10
INSERT...................................................................................................................................................................................10
UPDATE..................................................................................................................................................................................10
MÉMENTO SQL STANDARD......................................................................................................................11
COMMENT RÉALISER UNE REQUÊTE ?......................................................................................................12
© Jacques Chambon 1/12 09-COURS_SI_SQL
Système d'information de Gestion Le langage SQL
Accès à une Base de Données
Le gestionnaire est souvent amené dans son travail à confronter des données de sources différentes.
Les outils qu'il utilise au quotidien ne lui mettent pas toujours à disposition les informations dont il a
besoin. Il lui est parfois nécessaire d'interroger une vue de base de données par l'intermédiaire d'un
requêteur.
Le schéma ci-dessus montre que l'utilisateur peut accéder aux Données de la Base soit directement
en utilisant un applicatif métier ( un logiciel de comptabili par exemple), soit en utilisant les logiciels
bureautiques.
Dans ce deuxième cas, il devra réaliser lui même les requêtes, par l'intermédiaire d'un langage au
travers d'une interface graphique ( QBE : Query By Example) ou en frappant des requêtes SQL.
Le Middleware qui apparaît sur le schéma est un traducteur entre le SQL du SGBD et celui du
requêteur. Bien que le langage SQL soit normalisé, des particularismes locaux imposent cette
traduction.
Le langage SQL
Structured Query Language a été conçu dans les années 1970 pour manipuler les bases de Données
relationnelles.
SQL est un langage NON PROCEDURAL : L'utilisateur se contente de spécifier ce qu'il recherche
sans se préoccuper comment y parvenir. Avec un tel langage, c'est au SGBD qu'incombe le choix du
chemin d'accès aux données.
L'utilisateur indique LE "QUOI" et pas le "COMMENT".
Interrogation des Données
Ce sont les ordres les plus utilisés de SQL, ils permettent :
la sélection d'attributs répondant éventuellement à certains critères précisés et
appartenant à une ou plusieurs tables;
le tri de données sur la valeur d'un ou plusieurs attributs, selon un ordre croissant ou
décroissant;
l'utilisation des fonctions arithmétiques standard telles que +,-, *, /, (, ) et d'un certain
nombre de fonctions normalisées (COUNT, AVG, SUM, MIN, MAX).
La partie interrogation des données de SQL se résume à une seule instruction, ce qui en fait toute sa
puissance mais aussi sa complexité.
SELECT liste d'attributs
FROM liste des Tables
WHERE condition de recherche
GROUP BY liste d'attributs spécifiés au niveau du SELECT
HAVING condition de regroupement
ORDER BY attribut du tri
Toute commande SELECT est une REQUETE qui génère un résultat sous forme de
table.
© Jacques Chambon 2/12 09-COURS_SI_SQL
Système d'information de Gestion Le langage SQL
Le modèle relationnel utilisé
Vision littéraire
BATEAU ( BAT_NO, BAT_NOM, TYP_BAT_CODE, BAT_VOILE )
Clé primaire : BAT_NO
Clé étrangère : TYP_BAT_CODE référence TYPE BATEA.TYP_BAT_CODE
TYPE BATEAU ( TYP_BAT_CODE, TYP_BAT_LIBELLE, CAT_BAT_NO )
Clé primaire : TYP_BAT_CODE
Clé étrangère : CAT_BAT référence CATEGORIE BATEAU.CAT_BAT_NO
CATEGORIE BATEAU ( CAT_BAT_NO, CAT_BAT_LIBELLE)
ETRE_PROPRIETAIRE (BAT_NUMERO, ADH_CODE)
Clé primaire : ADH_CODE , BAT_NUMERO
Clé étrangère : ADH_CODE référence ADHERENT
Clé étrangère : BAT_NUMERO référence BATEAU
Louer (BAT_NO, LOC_DATE_DEBUT, LOC_DATE_FIN, LOC_HEURE_DEBUT, LOC_HEURE_FIN,
LOC_PRIX)
Clé primaire : BAT_NO, LOC_DATE_DEBUT, LOC_DATE_FIN, LOC_HEURE_DEBUT, LOC_HEURE_FIN
Clé étrangère : BAT_NO référence BATEAU. BAT_NO
ADHERENT (ADH_CODE, ADH_NOM, ADH_DATENAIS, ADH_COPOST, ADH_DECEDE,
ADH_DER_INSCRIPTION, ADH_PARRAIN)
Clé primaire : ADH_CODE
Clé étrangère : ADH_PARRAIN référence ADHERENT.ADH_CODE.
TITRE (TIT_CODE, TIT_LIBELLE, TIT_IMPORTANCE)
Clé primaire : TIT_CODE
ASSUMER_RESPONSABILITE (ADH_CODE, TIT_CODE, ASS_DATE_DEB_RESP,
ASS_DATE_FIN_RESP,ASS_RESPONSABILITE)
Clé primaire : ADH_CODE référence ADHERENT.ADH_CODE
Clé étrangère : TIT_CODE référence TITRE.TIT_CODE
EMPLOYE (EMP_MATRICULE, EMP_NOSS, EMP_NOM, EMP_PRENOM, EMP_SEXE,
EMP_DATENAISS, EMP_ADRESSE ; COM_CODE, CEN_NO, EMP_DATE_EMBAUCHE)
Clé primaire : EMP_MATRICULE
Clé étrangère : COM_CODE référence COMMUNE.COM_CODE
Clé étrangère : CEN_NO référence CENTRE;CEN_NO
Occuper (EMP_matricule, QUA_code, OCC_date_debut, OCC_date_fin,CEN_NO)
Clé primaire : EMP_MATRICULE, OCC_date_debut
Clé étrangère : EMP_MATRICULE référence EMPLOYE.EMP_MATRICULE
Clé étrangère : OCC_date_debut référence DATE.date
QUALIFICATION (QUA_CODE, QUA_LIBELLE, QUA_NIVEAU, QUA_COEF)
Clé primaire : QUA_CODE
TARIF (TAR_NB_PERS,TAR_VALEUR)
Clé primaire : TAR_NBRE
Cotiser (COT_SAISON, ADH_CODE_PAYEUR, COT_DATE_REGLEMENT, COT_MONTANT)
Clé primaire : COT_ANNEE, ADH_CODE
© Jacques Chambon 3/12 09-COURS_SI_SQL
Système d'information de Gestion Le langage SQL
Vision graphique
Cette vision est un peu plus étendue que la vision littéraire. Elle correspond aux relations que vous
trouverez dans la Base de Données exemple.
Requêtes de base
Une requête est toujours composée d'une clause SELECT et d'une clause FROM et
se termine toujours par un point virgule.
Syntaxe
SELECT [DISTINCT] expr1 [AS nom1], expr2 [AS nom2],…
FROM table1 [alias1], table2 [alias2],…
Exemple
SELECT CATEGORIE_BATEAU.CAT_BAT_LIBELLE AS Libellé
FROM CATEGORIE_BATEAU;
Affiche la colonne contenant le libellé de la catégorie bateau. Cette colonne s 'intitulera sur
la table résultante « Libellé ».
L'étoile signifie toutes les colonnes.
SELECT ADHERENT.*
FROM ADHERENT; Équivalent à SELECT *
FROM ADHERENT;
Affiche le contenu intégral de la table ADHERENT.
Une requête sans clause « WHERE » affiche l'intégralité des lignes de la table
d'origine pour les colonnes dont le nom a été précisé.
Sélection (Restriction)
Pour ne faire apparaître qu'un certain nombre de lignes d'une table, il faut indiquer un critère derrière
une clause WHERE.
SELECT ADHERENT.ADH_NOM,ADHERENT. ADH_VILLE
FROM ADHERENT
WHERE ADH_VILLE like 'BORDEAUX';
R1 : Affiche le nom et la ville des adhérents qui habitent la ville de Bordeaux.
L’opérateur permettant de tester le contenu d’une chaîne de caractères est LIKE
© Jacques Chambon 4/12 09-COURS_SI_SQL
Système d'information de Gestion Le langage SQL
Le symbole = est réservé aux valeurs numériques !
Sélection avec élimination des doublons.
SELECT DISTINCT ADHERENT.ADH_NOM, ADHERENT.ADH_VILLE
FROM ADHERENT
WHERE ADHERENT.ADH_VILLE like 'BORDEAUX';
R2 : Plusieurs Adhérents habitant Bordeaux ont le même nom. Il s'agit des familles inscrites
à l'association., ainsi on aura sur plusieurs lignes le couple CHANFORT, BORDEAUX. Ces
« doublons » n'apportent aucune information supplémentaire. On décide donc de les
éliminer en utilisant la clause DISTINCT.
Lorsque les noms d'attribut ne génèrent aucune ambiguïté, il n'est pas nécessaire de
préciser le nom de la table.
Dans les requêtes suivantes, nous n'utiliserons le nom « complet d'attribut » (nom table . nom attribut)
que lorsque se sera nécessaire, sinon nous n'utiliserons que le nom simplifié
Sélection avec opérateur OU
SELECT ADH_VILLE, ADH_NOM, ADH_PRENOM, ADH_DATENAIS
FROM ADHERENT
WHERE ADH_VILLE like 'BORDEAUX' OR ADH_VILLE like 'DAX';
Le nom de l'attribut doit être répété dans l'expression de la condition.
R3 : Affiche la ville, le nom, le prénom et la date de naissance des adhérents qui habitent la
ville de Bordeaux ou la ville de Dax.
Sélection avec opérateur ET
SELECT ADH_NOM, ADH_PRENOM, ADH_VILLE, ADH_COMPET
FROM ADHERENT
WHERE ADH_VILLE like 'BORDEAUX' AND ADH_COMPET= TRUE;
R4 : Affiche le nom , le prénom, la ville et l'état de compétition des adhérent habitant
Bordeaux et ayant déclarés participer à des compétitions.
Les mots TRUE et FALSE sont des mots réservés et compris par SQL.
Expression Null
SELECT ADH_NOM, ADH_SEXE
FROM ADHERENT
WHERE ADH_SEXE Is Null;
R5 : Une donnée non renseignée dans une Base de Données Relationnelle est considérée
comme NULL. La requête précédente affiche le nom et le sexe des adhérents pour lesquels
le code du sexe n'a pas été renseigné.
Négation
SELECT ADH_NOM, ADH_PRENOM, ADH_SEXE
FROM ADHERENT
WHERE not(ADH_SEXE=1);
R6 : Affiche les nom, prénom et sexe des Adhérents dont le sexe est différent de 1. Si la
codification est celle de l'INSEE, on affiche les informations des ADHERENTES.
Appartenance à un intervalle.
SELECT ADH_NOM, ADH_PRENOM, ADH_COPOST
FROM ADHERENT
WHERE ADH_COPOST Between '40000' And '40999';
R7 : Affiche le nom, le prénom et le Code Postal des Adhérents habitant le département des
Landes (Code Postal compris entre 40000 et 40999).
Sélection d'occurrences appartenant à un ensemble de valeurs. (R8)
SELECT ADH_VILLE, ADH_NOM, ADH_PRENOM
FROM ADHERENT
WHERE UPPER(ADH_VILLE) in ('BORDEAUX','DAX','ARCACHON');
Dans sa forme élémentaire, IN peut être remplacé par une condition utilisant l'opérateur
OR. (R9)
© Jacques Chambon 5/12 09-COURS_SI_SQL
1 / 12 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 !