Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)

Slides:



Advertisements
Présentations similaires
Créer une base de données MySQL
Advertisements

Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 10 Patrick Reuter.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Initiation aux bases de données et à la programmation événementielle
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
LMD: Langage de Manipulation de Données
Développement d’applications web
AYARI Mejdi Formation 2121 * ISD * 1 tructured uery Anguage 2006.
L’utilisation des bases de données
Tableau croisé dynamique sous Excel (TCD).
Faculté I&C, Claude Petitpierre, André Maurer What is this ? (Quest ce que this ?)
Initiation aux bases de données et à la programmation événementielle
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
L’utilisation des bases de données
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
Bases de données orientées objets Illustration sur ORACLE
PHP & My SQL.
SQL Partie 1.
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Présenté par COMTE Jeremy et DE LAZZARI Thomas Sommaire b Présentation générale b Include b Notion de variables b MySQL.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
SQL (deuxième partie) Langage de manipulation de données (LMD) Chap 4.6 p 107.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
PostgreSQL – Présentation
Module 7 : Utilisation de requêtes élaborées
G.KEMBELLEC - UP81 Master 2 THYP Cas pratique d’utilisation De simpleXML Un lecteur de RSS Novembre 2009.
SQL : Langage de Manipulation des données
Cours SQL.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Création et Gestion de Tables
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Faculté I&C, Claude Petitpierre, André Maurer Exercice sur les bases de données Quelques rappels et conseils (voir Aides > Accès à la base de données)
Les vues Une vue: c’est une relation virtuelle. Définie par:
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
MANIPULATION DES DONNEES : mise à jour des n-uplets.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Initiation aux bases de données et à la programmation événementielle
1 Initiation aux bases de données et à la programmation événementielle Cours N°8 : Gestion de la cohérence avec des zones de liste déroulantes. Souheib.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours n°2 Implémentation et exploitation
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Le Langage de Manipulation de Données LMD Module 6.
CONCEPTS BD - Synthèse journée 1 :
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Bases de données : modèlisation et SGBD Séance 3.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
Structured Query Language
Langage de Manipulation des Données LMD
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
Transcription de la présentation:

Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)

Faculté I&C, Claude Petitpierre, André Maurer Une base de données contient des tables idvregioncepageannee 1Lavauxchasselas2005 3Chiantisangiovese2002 2Bourgognepinot noir2000 Le nom et le type de chaque colonne est défini par lutilisateur.

Faculté I&C, Claude Petitpierre, André Maurer Chaque colonne a un nom Chaque ligne correspond à un objet Lid est une colonne définie par lutilisateur idvregioncepageannee 1Lavauxchasselas2005 3Chiantisangiovese2002 2Bourgognepinot noir2000

Faculté I&C, Claude Petitpierre, André Maurer On crée, remplit et affiche les lignes de la table au moyen du langage SQL create table vins (idv int auto_increment primary key, region varchar (20), cepage varchar (20), annee int) insert into vins values (0, 'Chianti', 'sangiovese', null) insert into vins set idv=0, region='Bourgogne' select * from vins

Faculté I&C, Claude Petitpierre, André Maurer Primary key idv int auto_increment primary key int - le champ contient un entier auto_increment - chaque fois quon crée une ligne contenant un id 0, une nouvelle valeur unique est insérée primary key - peut être utilisée pour identifier un objet de façon sûre (unique et structurée pour un accès rapide)

Faculté I&C, Claude Petitpierre, André Maurer Création dune table varchar(20) - String de 20 caractères au maximum create table vins (idv int auto_increment primary key, region varchar (20), cepage varchar (20), annee int)

Faculté I&C, Claude Petitpierre, André Maurer Insertion insert into vins values (0, 'Lavaux', null, 2005) Introduit une nouvelle ligne dans la table vins. Entre les parenthèses de values doivent apparaître une valeur par colonne et dans lordre. Si lon ne veut pas introduire une colonne particulière à linsertion, on peut introduire null.

Faculté I&C, Claude Petitpierre, André Maurer Insertion, deuxième forme insert into vins set idv=0, region='Bourgogne' le set est formé dune séquence de couples nom_de_colonne – valeur Il peut manquer des colonnes

Faculté I&C, Claude Petitpierre, André Maurer Lecture des données select * from vins select vins.idv, cepage from vins Après le select, on peut introduire une * (toutes les colonnes) ou une liste de champs de la table. Sil ny a quune table impliquée dans la commande, il ny a pas besoin de faire précéder le nom du champ par le nom de la table (comme cepage).

Faculté I&C, Claude Petitpierre, André Maurer Lecture de données déterminées select * from vins where annee>2003 select vins.idv, cepage from vins where cepage=chasselas and annee<2000 Après where, on peut introduire une expression contenant des constantes et des champs des tables

Faculté I&C, Claude Petitpierre, André Maurer Mise à jour de lignes update vins set annee=1999, cepage=viogner where idv = 2 update vins set annee=annee+1 where idv = 2

Faculté I&C, Claude Petitpierre, André Maurer Libraries pour appels depuis Javascript

Faculté I&C, Claude Petitpierre, André Maurer Appels depuis Javascript var result = database.query("select * from vins") // au retour de la query, result contient un tableau dobjets [ {idv:1,cepage:chasselas,region:Lavaux,annee:2005}, {id:2,cepage:sangiovese,annee:2002}, {id:3, region:Bourgogne} ] // Les champs nulls napparaissent pas dans lobjet.

Faculté I&C, Claude Petitpierre, André Maurer Accès aux champs [ {idv:1,cepage:chasselas...},{id:2,ccepage:...},{id:3} ] result[0].idv result[0].cepage result[0].region result[1].idv result[1].cepage result[1].region result[2].idv result[2].cepage result[2].region result.length lignes

Faculté I&C, Claude Petitpierre, André Maurer Accès aux champs [ {idv:1,cepage:chasselas...},{id:2,ccepage:...},{id:3} ] Si un champ, par exemple result[0].cepage, nest pas défini, on a typeof result[0].cepage == undefined Sil ny a quune ligne, elle est quand même placée dans [ ]

Faculté I&C, Claude Petitpierre, André Maurer Lecture dun objet var result = [ {'a':2, 'b':3} ] for ( key in result [0] ) { document.write( result [0] [key] ) } document.close()

Faculté I&C, Claude Petitpierre, André Maurer Traitement des erreurs var result try { result = database.query("select * from vins") } catch(e) { alert(Erreur: +e) return } // continue ici, en cas de succès if (result.length==0) { // pas de ligne retournée }

Faculté I&C, Claude Petitpierre, André Maurer Passage de paramètres var an=2003, cep=chasselas var result = database.query( "select * from vins where annee=? and cepage=?", an, cep ) // Le premier paramètre de query est la string contenant la // commande SQL // Un nombre arbitraire de paramètres suivent. Chaque // paramètre (nombre ou string) remplace un ?

Faculté I&C, Claude Petitpierre, André Maurer Tableau de valeurs var data = [0, Barolo, nebbiolo, null] var result = database. query( 'insert into vins values (?), data ) // data étant un array, le ? est remplacé par les // valeurs de data séparées par des virgules // comme cette query est une action, result reçoit le // nombre de lignes modifiées: 1

Faculté I&C, Claude Petitpierre, André Maurer Objet en paramètre var vin = {'region':'Bordeaux', 'cepage':'merlot'} var result = database. query( 'insert into vins set ?, vin ) // vin étant un objet, le ? est remplacé par les couples // nom-valeur de vin séparés par des virgules // result contient le nombre de lignes introduites: 1 // la clé primaire est générée automatiquement; on peut obtenir // sa valeur en appelant (après la query): idNb = database.last_insert_id()

Faculté I&C, Claude Petitpierre, André Maurer Points dinterrogation Il peut y avoir plusieurs ? A chaque ? doit correspondre un argument (il peut y en avoir plusieurs après la query) Un ? peut être remplacé par –un entier ou un réel –une string –un tableau –un objet Evidemment, lordre des paramètres doit correspondre aux ?, le système ne teste pas sil est pertinent

Faculté I&C, Claude Petitpierre, André Maurer Trois façons de construire un objet Javascript unVin = {idv:0, Valais, cepage:chasselas, annee:2004} function Vin(a, b, c) { this.idv = 0 this.region = a this.cepage = b this.annee = c } v = new Vin(Meursault, chard) v.annee = 1999 var vin = { } vin.idv = 0 vin.region = Valais vin.cepage = chasselas vin.annee = 2004

Faculté I&C, Claude Petitpierre, André Maurer Relations: vins reliés à un marchand idvregioncepageanneemarchand 1Lavauxchasselas Chiantisangiovese Bourgognepinot noir20001 idmnom 1Jean 3Luc Vins Marchands

Faculté I&C, Claude Petitpierre, André Maurer Liste des vins offerts par Luc select vins.* from vins, marchands where vins.marchand=marchands.idm and marchands.nom='Luc' idvregioncepageanneemarchandidmnom 1Lavauxchasselas200531Jean 2Chiantisangiovese200231Jean 3Bourgognepinot noir200011Jean 1Lavauxchasselas200533Luc 2Chiantisangiovese200233Luc 3Bourgognepinot noir200013Luc vins, marchands (join)

Faculté I&C, Claude Petitpierre, André Maurer Si un marchand peut fournir plusieurs vins et chaque vin peut être fourni par plusieurs marchands idmnom 1Jean 2Marc 3Luc idvregioncepageannee 1Lavauxchasselas2005 2Chiantisangiovese2002 3Bourgognepinot noir2000 idmidv vins vinsXmarchands marchands

Faculté I&C, Claude Petitpierre, André Maurer Le numéro du fournisseur du Lavaux puis son nom se lect vinsXmarchands.idm from vins, vinsXmarchands where vins.region=Lavaux and vins.idv=vinsXmarchands.idv noMarchand select marchands.nom from marchands where marchands.idm=noMarchand Jean

Faculté I&C, Claude Petitpierre, André Maurer Les vins fournis par Luc select idm from marchands where marchands.nom=Luc noLuc select vins.* from vins, vinsXmarchands where vins.idv=vinsXmarchands.idv and vinsXmarchands.idm=noLuc

Faculté I&C, Claude Petitpierre, André Maurer Les vins fournis par Luc (un seul select) select vins.* from vins, marchands, vinsXmarchands where vins.idv=vinsXmarchands.idv and marchands.idm=vinsXmarchands.idm == sur la même ligne and marchands.nom=Luc // en Javascript function findMarchandByNom(nom) { return database.query(select vins* from vins, marchands, +vinsXmarchands where vins.idv=vinsXmarchands.idv +and marchands.idm=vinsXmarchands.idm +and marchands.nom=?, nom) }

Faculté I&C, Claude Petitpierre, André Maurer Schéma E/R (entité-relation) MarchandsVins fournit 0..n Stock n 1

Faculté I&C, Claude Petitpierre, André Maurer Exercices 1.Charger la page puis cliquez chaque ligne (éventuellement en cliquant le select * entre chaque ligne) Essayez de modifier quelques ligneshttp://lti.epfl.ch/LemanOS/database/SQL.html 2.Créez les tableaux de vins et de marchands des derniers transparents précédents et affichez les vins dun marchand et les marchands qui fournissent un vin particulier. 3.Mettez vos requêtes dans une fonction dans le fichier préparé à cet effet.