INTRODUCTION SQL, c'est quoi? SQL (Structured Query Language ou langage de requêtes structuré) est un langage qui permet la définition de données, la création de requêtes, la manipulation de données et la gestion des accès pour les bases de données relationnelles. Pour Internet, il y a plusieurs applications possibles, comme la gestion des utilisateurs. En fait, le SQL est divisé en différents langages : DDL (Data Definition Language ou Langage de Définition de Données) qui permet de créer, modifier et supprimer les tables de la base de données qui contiendront les données; DML (Data Manipulation Language ou Langage de Manipulation de Données) qui permet d'ajouter de nouvelles données, de les modifier ou de les mettre à jour; DQL (Data Query Language ou Langage de Requête de Données) qui permet à l'utilisateur de créer, modifier et supprimer une requête sur la base de données pour obtenir de l'information selon certains critères. Récemment, ce langage a été inclus des programmes d'aide à la création de requête qui interprètent une phrase en anglais et la transforment en SQL; DCL (Data Control Language ou Langage de Control de Données) qui permet de gérer l'accès à la bases de données. AVANT DE COMMENCER C'est IBM qui est à l'origine de ce langage informatique. SQL est un dérivé du langage SEQUEL (Structured English Query Langage) mis au point en 1974. Par la suite, il y a eu plusieurs évolution du langage pour en arriver au SQL. Le SQL a été commercialisé pour la première fois par Oracle Corporation. Plusieurs autres compagnies l'ont adopté pour proposer leur propre solution SQL, comme Informix, DB/2, Sybase et Ingres. L'ANSI (American National Standard Institute) a normalisé le SQL en 1986. L'institut l'a ensuite révisé en 1989 et plus récemment en 1992. Malgré tout, chaque système de base de données relationnelles sur le marché a ses propres particularités. Ce dont vous avez besoin Pour créer une base de données, il vous faut un logiciel de bases de données pour créer les table et enregistrer l'information. Évidemment, vous pouvez opter pour la base de données Oracle 9i® ou SQL Server de Microsoft® mais elles sont surtout dédiées pour des applications commerciales. Vous pouvez utiliser les logiciels MS Access® ou Paradox®, mais il est également possible de créer une base de données simple avec un tableur tel MS Excel® ou Lotus 12-3®. Enfin, il existe quelques systèmes de gestion de base de données (SGBD) ouverts et gratuits d'utilisation tels MySQL et PostgreSQL; Pour enregistrer et accéder à vos données, un langage script, comme JavaScript et VBScript, vous permettra d'effectuer toutes les manipulations nécessaires. 1 RESTREINDRE UNE SELECTION Le langage SQL offre différentes possibilités pour restreindre la sélection et ainsi obtenir une information plus précise. Voici les clauses restrictives : Opérateur logique NOM DESCRIPTION AND Et logique OR Ou logique NOT NON logique Opérateur de comparaison de chaînes NOM BETWEEN LIKE IS NULL DESCRIPTION Vérifie si un élément est inclus dans un intervalle. Permet d'effectuer une comparaison approximative. Cette clause utilise les opérateurs : % pour remplacer n'importe quelle chaîne de caractères _ pour remplacer un seul caractère – pour définir un intervalle de caractère. Vérifie si un champ est NULL. Opérateurs arithmétiques NOM DESCRIPTION + Effectue une addition. - Effectue une soustraction. * Effectue une multiplication. / Effectue une division. % Effectue un modulo. Opérateur binaires NOM DESCRIPTION & Opérateur ET binaire | Opérateur OU binaire ^ Opérateur Ou exclusif binaire ~ Opérateur NON binaire 2 Opérateur de comparaison NOM DESCRIPTION = Égale != N'est pas égal. > Plus grand que. >= Plus grand ou égal que. < Plus petit que. >= Plus petit ou égale que. <> N'est pas égal. Exemples Soit la table suivante, présentant des membres d’un site : PRÉNOM NOM AGE COURRIEL PAYS Joe Sakic 29 [email protected] USA Raymond Bourque 36 [email protected] USA Paul Côté 48 [email protected] France Carl Marotte 32 [email protected] Canada Bill Mortimer 53 [email protected] USA Paul Côté 25 [email protected] Canada Jean Périn 59 [email protected] Canada La sélection de tous les membres ayant un âge inférieur à 50 se fait par l'instruction: SELECT * FROM MEMBRE WHERE (Age < 50) Résultat: PRÉNOM NOM AGE Joe Sakic Raymond 29 COURRIEL PAYS [email protected] USA Bourque 36 [email protected] USA Paul Côté 48 [email protected] France Carl Marotte 32 [email protected] Canada Paul Côté 25 [email protected] Canada 3 La sélection des colonnes Prénom et Nom des voitures ayant un âge inférieur à 35 se fait par l'instruction: SELECT Prenom, Nom, Age FROM MEMBRE WHERE (Age < 35) Résultat: PRÉNOM NOM AGE Joe Sakic 29 Carl Marotte 32 Paul Côté 25 La sélection de tous les membres ayant un âge inférieur ou égal à 55, mais supérieur ou égal à 50, se fait par l'instruction: SELECT * FROM MEMBRE WHERE (50 <= 100000) AND (55 >= 30000) Résultat: PRÉNOM Bill NOM AGE COURRIEL PAYS Mortimer 53 [email protected] USA La sélection des membres dont le prénom a un E en troisième position se fait par l'instruction: SELECT * FROM MEMBRE WHERE Prenom LIKE _E% Résultat: PRÉNOM NOM AGE Joe Sakic 29 COURRIEL PAYS [email protected] USA La sélection de tous les membres ayant un âge inférieur ou égal à 50, mais supérieur ou égal à 30, (effectuée plus haut avec des comparateurs arithmétiques) peut se faire par l'instruction: SELECT * FROM MEMBRE WHERE Age BETWEEN 50 AND 30 Résultat: PRÉNOM NOM AGE COURRIEL PAYS Raymond Bourque 36 [email protected] USA Paul Côté 48 [email protected] France Carl Marotte 32 [email protected] Canada 4 La sélection des membres dont le nom est Côté ou Bourque se fait grâce à l'instruction: SELECT * FROM MEMBRE WHERE Nom IN (Côté, Bourque) Résultat: PRÉNOM NOM AGE COURRIEL PAYS Raymond Bourque 36 [email protected] USA Paul Côté 48 [email protected] France Paul Côté 25 [email protected] Canada La sélection de toutes les voitures d'occasion dont le kilométrage n'est pas renseigné se fait par l'instruction: SELECT * FROM MEMBRE WHERE Pays IS NULL Résultat: PRÉNOM NOM AGE Jean Périn 59 COURRIEL PAYS [email protected] Canada TRI ET REGROUPEMENT DE DONNEES SQL permet d'effectuer certaines opérations d'agrégation pour regrouper les valeurs pour obtenir un sommaire des résultats. Ces opérations sont effectuées à l'aides des fonctions suivantes : NOM AVG DESCRIPTION Fait la moyenne sur une colonne. COUNT Calcul le nombre de lignes de la sélection. MAX Retourne la valeur maximum d'une colonne. MIN Retourne la valeur minimum d'une colonne. SUM Additionne les valeurs d'une colonne. L'affichage des moyennes des âges par Pays se fait par l'instruction: SELECT AVG(Age) AS Moyenne, Pays FROM MEMBRE GROUP BY Pays Résultat : PAYS MOYENNE Canada 28.5 France 48 USA 39.33 5