La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)"— Transcription de la présentation:

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

2 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.

3 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

4 Faculté I&C, Claude Petitpierre, André Maurer On crée une table au moyen de la commande SQL suivante create table vins (idv int auto_increment primary key, region varchar (20), cepage varchar (20), annee int) idvregioncepageannee 1Lavauxchasselas2005

5 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)

6 Faculté I&C, Claude Petitpierre, André Maurer On remplit et affiche les lignes de la table au moyen des commandes SQL insert into vins values (0, 'Chianti', 'sangiovese', null) insert into vins set idv=0, region='Bourgogne' select * from vins (voir transparents suivants)

7 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.

8 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

9 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).

10 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

11 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

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

13 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)

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

15 Faculté I&C, Claude Petitpierre, André Maurer Liste des vins offerts par Luc select vins.* from vins where vins.marchand in ( select marchand from marchands where marchands.nom='Luc' )

16 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

17 Faculté I&C, Claude Petitpierre, André Maurer Le numéro du fournisseur du Lavaux puis son nom select 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

18 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

19 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) }

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


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

Présentations similaires


Annonces Google