Le langage SQL (Structured Query Language)

Documents pareils
SQL Historique

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Les bases de données

Bases de données relationnelles

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

1 Introduction et installation

Le Langage SQL version Oracle

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Introduction au Système de Gestion de Base de Données et aux Base de Données

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Olivier Mondet

Bases de données Outils de gestion

Le langage SQL Rappels

Présentation du module Base de données spatio-temporelles

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

16H Cours / 18H TD / 20H TP

Langage SQL : créer et interroger une base

Le langage SQL (première partie) c Olivier Caron

INTRODUCTION : Données structurées et accès simplifié

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Bases de Données relationnelles et leurs systèmes de Gestion

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Cours SQL. Base du langage SQL et des bases de données

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

CREATION WEB DYNAMIQUE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Vincent Augusto

MODE OPERATOIRE OPENOFFICE BASE

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Pour les débutants. langage de définition des données

Information utiles. webpage : Google+ : digiusto/

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Administration des bases de données. Jean-Yves Antoine

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Introduction aux Bases de Données

Compétences Business Objects

Les BASES de DONNEES dans WampServer

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

IFT3030 Base de données. Chapitre 1 Introduction

Création et Gestion des tables

PHP 5. La base de données MySql. A. Belaïd 1

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Bases de Données Avancées

BTS/CGO P10 SYSTEME INFORMATION Année

Bases de données Cours 4 : Le langage SQL pour ORACLE

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

A QUOI SERVENT LES BASES DE DONNÉES?

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

TP Contraintes - Triggers

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Bases de données avancées Introduction

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Mysql. Les requêtes préparées Prepared statements

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Notes de cours : bases de données distribuées et repliquées

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche

TD n 10 : Ma première Base de Données

I. MySQL : Serveur et SGBD

Quelques aspects du Relationnel-Objet du SGBD Oracle

Partie II Cours 3 (suite) : Sécurité de bases de données

FileMaker 13. Guide de référence SQL

SUPPORT SQL. Thierry GRANDADAM

Introduction aux Bases de Données 2004/2005

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

LE LANGAGE SQL2 1. INTRODUCTION

Le Langage De Description De Données(LDD)

OpenPaaS Le réseau social d'entreprise

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Pratique et administration des systèmes

MySQL / SQL EXEMPLES

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

TP Bases de données réparties

A QUOI SERVENT LES BASES DE DONNÉES?

Mysql avec EasyPhp. 1 er mars 2006

Bases de données élémentaires Maude Manouvrier

Bases de données et sites WEB

SOMMAIRE. Travailler avec les requêtes... 3

Systèmes de Gestion de Bases de Données

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

Cours: Administration d'une Base de Données

Cours 4 : Agrégats et GROUP BY

Devoir Data WareHouse

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Gestion des utilisateurs, des groupes et des rôles dans SQL Server 2008

Session S12 Les bases de l optimisation SQL avec DB2 for i

Cours Bases de données

OFPPT/DRPS/ISGI LAAYOUNE FILIERE : TECHNIQUES DE DEVELOPPEMENT INFORMATIQUE TDI2 MODULE : SYSTEME DE GESTION DE BASE DE DONNES I

Bases de données cours 1

Transcription:

Le langage SQL (Structured Query Language) SQL (Structured Query Language, en français «langage structuré de requête ou d interrogation» ou «langage de requête structurée» ) est un langage informatique normalisé servant à créer et à exploiter des bases de données relationnelles. I- Les SGBDR Pour implanter sur un support informatique un ensemble de données structurées selon le modèle relationnel (en d autres termes, pour créer une base de données relationnelles), il faut un logiciel spécifique : un système de gestion de bases de données relationnelles ou SGBDR. Un SGBDR permet de créer des tables, d établir des liens entre ces tables et d exploiter la base de données (mettre à jour, rechercher, sélectionner, trier, transformer les informations de la base de données). Exemple de SGBDR : Oracle Database et MySQL de Oracle, DB2 de IBM, SQL server et Access de Microsoft. La mise en œuvre d un SGBDR s effectue grâce sur un langage particulier qui sert d interface entre l homme et le langage machine : le langage SQL. II- Les instructions (ou requêtes) SQL Le langage SQL se présente sous la forme d instructions (ou requêtes) constituées de mots clés (écrits en anglais) indiquant une action (un ordre) que le SGBDR doit effectuer sur la base de données. Les instructions (ordres, commandes) sont classées en trois catégories : - Les instructions qui permettent de créer et de modifier la structure de la base de données (langage de définition de données LDD). Exemples : CREATE (pour créer une table, un utilisateur ou un index), ALTER (pour modifier), DROP (pour supprimer). - Les instructions qui permettent de contrôler l accès des utilisateurs aux données (langage de contrôle de données LCD). Exemples : GRANT (pour autoriser des opérations à certains utilisateurs), DENY (pour interdire), REVOKE (pour supprimer une autorisation). - Les instructions qui permettent d interroger et de modifier (ajouter, supprimer) les données de la base de données (langage de manipulation de données LMD). Exemples : SELECT (pour rechercher des données), UPDATE (pour modifier des données), INSERT INTO (pour ajouter des données), DELETE FROM (pour supprimer des données). (Référentiel BTS CG : «Seul le LMD est attendu en SQL») 1 / 6

III- La structure d une requête SQL (LMD) A) L instruction SELECT La commande SELECT permet de sélectionner (de lire) des données issues de la base de données. La syntaxe élémentaire (minimale) de l instruction SELECT est la suivante : SELECT FROM WHERE suivi de la liste des champs (ou attributs, ou colonnes) à afficher (séparés par une virgule) suivi de la liste des tables (ou relations, ou tableaux) utilisées (séparés par une virgule) suivi d une condition que doivent respecter les enregistrements (ou n-uplets ou lignes) pour être sélectionnés (suivie d un point-virgule indiquant la fin de la requête) Remarques : - Les mots clés FROM et WHERE qui suivent l instruction SELECT sont des clauses (comme les clauses d un contrat qui précisent les modalités de son exécution). - En algèbre relationnel (langage de manipulation des relations), SELECT correspond à une projection (réduction du nombre d attributs d une relation) et WHERE correspond à une restriction ou «sélection» (réduction du nombre de n-uplets d une relation). Exemple : Modèle relationnel de la facturation des clients de l entreprise DELTA CLIENT (N _Client, NomClient, RueClient, CPClient, VilleClient) FACTURE (N _Facture, DateFacture, DateRèglement, #N _Client) ARTICLE (Réf_Article, DésignationArticle, PrixArticle) COMMANDER (#N _Facture, #Réf_Article, QuantitéCommandée) Requête 1 : On veut obtenir la liste des clients (nom et CP) qui habitent à Paris. Le résultat de la requête est une table, comme la table CLIENT, mais avec seulement deux colonnes (NomClient et CPClient) et uniquement les lignes correspondant aux clients habitant à Paris. Remarque : Les valeurs des champs de type texte sont écrites entre guillemets simples (en revanche, pour les champs de type numérique, il suffit d écrire le nombre). 2 / 6

Si on veut obtenir tous les champs de la table CLIENT on utilise le caractère «*» (étoile) : Requête 2 : On veut afficher la liste des articles (désignation et prix) dont le prix est supérieur à 100 avec un classement par ordre décroissant des prix. Pour effectuer un classement il faut utiliser la clause (ou commande) : ORDER BY suivi du champ à classer et de l instruction ASC ou DESC (on n est pas obligé d utiliser «ASC» car par défaut les résultats sont toujours classés par ordre ascendant). Requête 3 : On veut connaître le nom et l adresse du client de la facture n F425 du 18/12/15. La requête nécessite d effectuer une jointure i.e. d associer les lignes de deux tables (CLIENT et FACTURE) grâce à l égalité des valeurs du champ commun aux deux tables (N _Client). La jointure en SQL peut être réalisée à l aide de la clause WHERE (d autres solutions plus complexes existent ). L opérateur AND (après WHERE) permet d ajouter des conditions (restrictions). Requête 4 : On veut obtenir le nombre total de factures établies par client pour l année 2015. Pour compter le nombre de valeurs (ou lignes) d un champ, il faut utiliser la fonction (ou agrégat) statistique COUNT. Pour effectuer un regroupement sur les valeurs communes d un champ (NomClient), la fonction COUNT doit être précédée de ce champ et suivie de la clause GROUP BY (pour éviter d afficher plusieurs fois les mêmes lignes : par exemple s il y a 5 factures pour un client, on obtiendrait 5 lignes identiques, avec un total de 5, si on n utilise pas GROUP BY). La clause (ou commande) AS permet de renommer un champ. L opérateur BETWEEN AND (après WHERE suivi d un champ) permet de sélectionner les lignes dont les valeurs d un champ sont comprises dans un intervalle. 3 / 6

Requête 5 : On veut connaître le total des quantités commandées par article pour l année 2015. Pour calculer la somme des valeurs d un champ, il faut utiliser la fonction (ou agrégat) SUM. Autre solution, sans la désignation de l article : Requête 6 : On veut afficher la liste des articles (la référence uniquement) pour lesquels le total des quantités commandées pour l année 2015 est inférieur à 10 Il s agit de la même requête que la précédente mais avec une restriction supplémentaire sur la fonction SUM. La clause HAVING permet d ajouter une condition que doivent respecter les résultats des fonctions statistiques (COUNT, SUM, ) pour être affichés. Remarque : Les clauses possibles d une instruction SELECT doivent être utilisées dans l ordre suivant : SELECT FROM WHERE GROUP BY HAVING ORDER BY 4 / 6

B) L instruction UPDATE L instruction UPDATE permet de mettre à jour (modifier) des enregistrements existants. La syntaxe de la commande UPDATE est généralement la suivante : UPDATE SET WHERE suivi de la table qu il faut mettre à jour suivi des nouvelles valeurs pour les champs concernés (séparés par une virgule) suivi d une condition que doivent respecter les enregistrements (ou lignes) pour être mis à jour (suivie d un point-virgule indiquant la fin de la requête) Sans la clause WHERE, la même nouvelle valeur sera attribuée à toutes les lignes de la table Exemple : Requête qui permet de modifier l adresse du client n C12 (Dupond) C) L instruction INSERT INTO La commande INSERT INTO permet d ajouter (d insérer) un ou plusieurs enregistrements dans une table. La syntaxe est la suivante : INSERT INTO VALUES suivi de la table dans laquelle il faut insérer des enregistrements et des champs qu il faut renseigner (entre des parenthèses et séparés par une virgule) suivi des valeurs pour les champs concernés (entre des parenthèses et séparés par une virgule) (suivies d un point-virgule indiquant la fin de la requête) Si tous les champs d une table doivent être renseignés, il n est pas nécessaire d indiquer les champs après le nom de la table (mais après VALUES il faut indiquer toutes les valeurs en respectant l ordre des colonnes). En revanche, si on ne renseigne que certains champs, il faut les indiquer avant VALUES. Il est également possible d insérer plusieurs lignes en une seule requête en indiquant les valeurs de chaque ligne après VALUES (les groupes de valeurs entre des parenthèses étant séparés par des virgules). 5 / 6

Exemples : Requête 1 : Requête qui permet d ajouter un nouvel article Ou, plus simplement : Requête 2 : Requête qui permet d ajouter deux nouveaux articles D) L instruction DELETE FROM La commande DELETE FROM permet de supprimer un ou plusieurs enregistrements dans une table. La syntaxe est la suivante : DELETE FROM WHERE suivi de la table pour laquelle il faut supprimer des enregistrements (ou lignes) suivi d une condition que doivent respecter les enregistrements pour être supprimés (suivie d un point-virgule indiquant la fin de la requête) Sans la clause WHERE, tous les enregistrements de la table seront supprimés! Exemple : Requête permettant de supprimer l article A45 Cf. Cas Medic-Air ; Cas LBA ; Cas Socofrois ; Cas Elizaldia ; Cas Oplast ; Cas Mecanix ; Cas Odysée 6 / 6