Telechargé par Dt F

tp-sql

publicité
Langage SQL
Langage SQL
Pour communiquer avec une base de données, on a besoin de lui envoyer des commandes ou
instructions appelées requêtes. Que ce soit pour la création, la suppression d'une table, la
modification, l'insertion ou la sélection de données, le langage standard de requêtes est SQL.
Qu'appelle-t-on SQL ?
SQL ou Standard Query Language est un langage permettant d'interroger les bases de données
de manière simple. Il est doté d'une syntaxe particulière que l'on doit respecter pour que la
communication avec la base se passe au mieux. Pour cela, on utilisera des mots clés spéciaux.
Néanmoins, la syntaxe ne doit pas nous faire peur puisque SQL est conçu de façon à être
le plus intuitif possible, facile d'accès et standardisé.
A part le fait d'envoyer directement les requêtes SQL telles quelles au SGBD, le but ultime de
l'utilisation de SQL sera aussi d'inclure ces requêtes SQL dans un programme écrit dans un autre
langage. Ceci permet de coupler le SGBD à un langage informatique, donc à un programme. Tel
est le cas de MySQL avec PHP par exemple.
Les sous langages d'SQL
Afin de faciliter l'apprentissage de ce langage qui fait l'objet même de notre tutoriel, on abordera
4 aspects (sous langages) du langage SQL:
LMD : Langage de Manipulation des Données
Ajouter, modifier des données, supprimer, des enregistrements le LMD est composé de plusieurs
instructions :
Le LDD ou langage de définition des données
LDD ou Langage de Définitions des Données qui est une partie de SQL dans laquelle on
abordera les actions inhabituelles.
Il s'agit de la création, modification, suppression des bases de données et des tables, ainsi que
de leur structure. Ce sont des actions que l'on effectue généralement au départ, mais pas très
souvent. Pour vous donner une idée, les mots clés utilisés seront : CREATE, ALTER, DROP, etc.
Le LID ou langage d'interrogation des données
Dans cette partie, on regroupe tout ce qui est interrogation de la base en vue d'avoir une liste de
résultats. Il s'agit particulièrement de l'instruction SELECT et de plusieurs clauses comme
ORDER, GROUP BY, etc, permettant le tri et le regroupement des résultats.
Le LMD ou langage de manipulation des données
SQL est aussi un langage de manipulation de données (LMD).Autrement dit, il permet de
sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de données.
Pour cela, les mots clés en question seront : UPDATE, INSERT, etc.
Le LCD ou langage de contrôle des données
A part la définition, l'interrogation et la manipulation des données, on peut aussi protéger l'accès
aux données grâce à SQL.
Dans ce cas on parle de LCD ou langage de contrôle des données. Cela consiste à définir des
permissions au niveau des utilisateurs d'une base de données. Dans cette partie, on verra les
mots clés tels que : GRANT, REVOKE, etc.
Les outils MySQL no-install et phpMyAdmin
Plusieurs outils sont à la disposition des utilisateurs pour faire du SQL. Dans ce tutoriel, nous
vous proposons deux outils :
o
o
MySQL no-install : nous offre un console pour qu'on puisse taper des
commandes SQL comme de vrais pros. Pour son installation voir
http://dev.MySQL.com/downloads/MySQL/5.0.html.
phpMyAdmin : nous offre une interface plus agréable et aussi la possibilité de coupler avec
PHP. Pour cela on a besoin d'un serveur apache tels que easyphp, wamp, etc.
----------------------------------------------------------------------------------------------------------------------------------------------On considère la base de données AIRBASE suivante :
- PILOT (NUMPIL, NOMPIL, ADR, SAL)
- AirPlane (NUMAV, NOMAV, CAP, LOC)
- Flight (NUMVOL, #NUMPIL, #NUMAV, VILLE_DEP, VILL
E_ARR, H_DEP, H_ARR)
1.
Créez un schéma nommé « AIRBASE ».
2.
Ajoutez les trois tables de la base de données AIRB
ASE.
3.
Ajouter le pilote : 1, 'Loubna', 'Rabat', 325000.
4.
Créez une contrainte check vérifiant que le salaire
est supérieur à 255000.
5.
Ajouter le pilote : 10, 'Kamal', 'Salé', 25000 !!
6.
Créez un index sur la colonne «
NOMPIL
» de la table Pilot, quel est intérêt de
cette opération ?
7.
Ajoutez les deux contraintes d’intégrité référentie
lle dans la table «
Flight ».
8.
Ajoutez le vole : 1011, 11 , 111 , '8:00 AM', 'Nice
', '9:00 AM', 'Paris' . commentez le
résultat et proposez une solution.
9.
Utilisez le script dump avions.sql pour alimenter l
a base de données.
Exercice 2
:
SQL les vues
1.
Pour éviter que certains utilisateurs aient accès a
ux salaires et prime des pilotes,
Définir une vue sur la table PILOT sans l’attribut
salaire.
2.
Créer une vue qui définie la charge horaire des pil
otes.
3.
Donner une requête pour consulter cette vue.
4.
Donner la requête qui doit être formulée par un uti
lisateur ne s’intéressant qu’aux
pilotes parisiens dont la charge excède un seuil de
40 heures.
5.
Définir une vue permettant de consulter les vols de
s pilotes habitant paris et de
les mettre à jour.
6.
Définir une vue sur PILOT, permettant la vérificati
on de la contrainte de domaine
suivante : le salaire d'un pilote est compris entre
300000 et 500000.
7.
Définir une vue sur vol permettant de vérifier les
contraintes d'intégrité
référentielle en insertion et en modification.
Exercice 3
:
SQL LCD
1.
Créer un nouvel utilisateur ut1 avec le mot de pass
e ut1p avec juste le droit de
connexion.
2.
Changer le mot de passe de ut1. Le nouveau mot de p
asse est utp.
3.
Attribuer à l'utilisateur ut1 le droit d'interrogat
ion et modification de la relation
Flight
.
4.
Retirer à l'utilisateur ut1 le droit d'interrogatio
n et modification de la relation
Flight
.
5.
Interdire toute opération à tous les utilisateurs s
ur la table avion.
Téléchargement