MEMO – Je pars de zéro en SQL AAT's Creations et Formations – www.aat-s.com 1 SOMMAIRE Jour 1 1) SQL c’est quoi ? a) b) c) Généralités SQL et les normes Les types de données 2) Les opérations a) b) c) d) e) Insertion Sélection Suppression/modification Les prédicats (opérateurs) Jointure 3) Manipuler les données a) b) Jour 2 4) Opération avancées a) b) Opération de regroupement Opérateurs ensemblistes 5) Langage de définition des données a) b) c) Description des vues Description des index Notion de procédures stockées 6) Sécurité des données a) b) Contraintes d’intégrité Gestion des droits des utilisateurs Fonction SQL standards Les requêtes imbriquées Jour 3 TP + Evaluation AAT's Creations et Formations – www.aat-s.com 2 C’est quoi SQL - Résumé SQL (Structured Query Language, en français langage de requête structurée) est un langage informatique normalisé servant à exploiter des bases de données relationnelles. Normalisé par l'ISO en 1987 sous le nom de ISO/CEI 9075 - Technologies de l'information - Langages de base de données - SQL. Le langage SQL s'utilise principalement de trois manières : - - Par les programmeurs pour communiquer avec leur base de données Par la technique « embeded » : incorporées dans le code source d'un programme écrit dans un autre langage. Par les procédures stockées : des fonctions écrites en langage SQL sont enregistrées dans la base de données en vue d'être exécutées par le SGBD SQL définit plusieurs types de données : des numériques entiers, des numériques décimaux, des textes alphanumériques, des chaînes binaires alphanumériques et des données temporelles. Il est important de bien comprendre les usages et particularités de chaque type de données, afin de choisir le meilleur type possible lorsque vous définissez les colonnes de vos tables. 3 Les opérations - Résumé Pour insérer des lignes dans une table, on utilise la commande INSERT INTO Si l'on ne précise pas à quelles colonnes on donne une valeur, il faut donner une valeur à toutes les colonnes, et dans le bon ordre. La commande SELECT permet d'afficher des données. La clause WHERE permet de préciser des critères de sélection. Il est possible de trier les données grâce à ORDER BY, selon un ordre ascendant ASC ou descendant DESC Pour éliminer les doublons, on utilise le mot-clé DISTINCT, juste après SELECT La commande DELETE permet de supprimer des données de manière irréversible La commande UPDATE permet de modifier des données L'opérateur LIKE permet de faire des recherches approximatives, grâce aux deux caractères "joker" : ’%’ et ‘_’ L'opérateur BETWEEN permet de faire une recherche sur un intervalle L'opérateur IN permet de faire une recherche sur une liste de valeurs. INNER JOIN : jointure interne pour retourner les enregistrements quand la condition est vrai dans les 2 tables. C’est l’une des jointures les plus communes. 4 Manipulation de données- Résumé Les fonctions SQL permettent d’effectuer des requêtes plus élaborées. Les principales sont : • SUM() calculer la somme d’un set de résultat • MAX() obtenir le résultat maximum (fonctionne bien pour un entier) • MIN() obtenir le résultat minimum • COUNT() compter le nombre de lignes dans un résultat • ROUND() arrondir la valeur • UPPER() afficher une chaîne en majuscule • LOWER() afficher une chaîne en minuscule • NOW() date et heure actuelle • RAND() retourner un nombre aléatoire • CONCAT() concaténer des chaînes de caractères Dans le langage SQL une requête imbriquée consiste à exécuter une requête à l’intérieur d’une autre requête. Elle est souvent utilisée au sein d’une clause WHERE ou de HAVING pou remplacer une ou plusieurs constante. 5 Opérations avancées - Résumé La commande GROUP BY est utilisée pour grouper plusieurs résultats et utiliser une fonction de totaux sur un groupe de résultat. ATTENTION : Cette commande doit toujours s’utiliser après la commande WHERE et avant la commande HAVING. La condition HAVING est presque similaire à WHERE à la seule différence que HAVING permet de filtrer en utilisant des fonctions telles que SUM(), COUNT(), AVG(), MIN() ou MAX(). La commande UNION permet de mettre bout-à-bout les résultats de plusieurs requêtes utilisant elles-mêmes la commande SELECT. La commande INTERSECT permet d’obtenir l’intersection des résultats de 2 requêtes. La commande UNION permet de mettre bout-à-bout les résultats de plusieurs requêtes utilisant elles-mêmes la commande SELECT. La commande MINUS s’utilise entre 2 instructions pour récupérer les enregistrements de la première instruction sans inclure les résultats de la seconde requête. 6 Langage de définition- Résumé On peut définir une vue comme étant une table dite virtuelle, qui a la même utilisation qu’une table, simplement une vue ne prend pas d’espace sur le disque, puisqu’elle ne stocke pas les données comme une table. l’atout majeur des vues ? la sécurité d’accès aux données. la commande CREATE INDEX permet de créer un index. L’index est utile pour accélérer l’exécution d’une requête SQL qui lit des données et ainsi améliorer les performances d’une application utilisant une base de données. Les procédures stockées sont des ensembles d’instructions pouvant être exécutés par simple appel de leur nom ou par l’instruction EXECUTE. Pour résumer les avantages des procédures stockées, nous allons lister leurs utilisations : - Accroissement des performances. - Sécurité d’exécution. - Possibilité de manipuler les données système. - Implémente le traitement en cascade et l’enchainement d’instructions. 7 Sécurité des données - Résumé Les utilisateurs et leurs privilèges sont stockés dans la base de données mysql. On peut manipuler directement les tables de la base mysql, ou utiliser les commandes dédiées pour gérer les utilisateurs ( CREATE USER, DROP USER, …) et leurs privilèges (GRANT, REVOKE). Lorsque l'on accorde un privilège à un utilisateur, il faut également préciser à quel niveau on le lui accorde (global, base de données, table, colonne, procédure). Le privilège ALL permet d'accorder en une fois tous les privilèges, sauf GRANT OPTION Le privilège USAGE permet de modifier les options d'un utilisateur avec la commande GRANT sans modifier ses privilèges. Quant à GRANT OPTION cela permet à un utilisateur d'accorder à d'autres les privilèges qu'il possède. 8