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.