année universitaire 2007 - 2008 système dinformation le sql (structured query language) langage...

14
Année universitaire 2007 - 2008 Système d’information Le SQL (Structured Query Language) langage d’interrogation dune base de données

Upload: flavie-delage

Post on 03-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

Système d’information

Le SQL (Structured Query Language)langage d’interrogation dune base de données

Page 2: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

I : présentation

Une requête manifeste un certain besoin en informations sur la base de données.

Elle s’exprime soit de manière interactive en mode QBE (Query By Example), soit par la saisie d’une commande dans un langage par exemple SQL (Structured Query Language).

Page 3: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

Pour notre cours, nous utiliserons la base de données de la société GrosseBilla info constituée des tables suivantes :

MLD correspondant :

produits (code_prod, lib_prod, prix_prod, code_famille#, code_liv#)

familles (code_famille, lib_famille)

livreurs (code_liv, nom_liv, rue_liv, cp_liv, ville_liv)

Page 4: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

A : les requêtes d’interrogation de la base de données

1 : la projection

a) règles d’écriture - Toute commande SQL débute par l’ordre SELECT qui permet

d’afficher le résultat d’une requête. - Les rubriques à afficher se placent derrière cet ordre et sont

séparées par une virgule. - Toute relation utilisée par la requête est précédée du mot

FROM. - Toute commande SQL se termine par un point virgule.

b) exemple 1 : afficher la liste de tous les produits vendus select * from produits;

Page 5: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

A : les requêtes d’interrogation de la base de données

C) exemple 2 : afficher la liste des articles (uniquement le code et la désignation)

select code_prod, lib_prod from produits;

2) la selection a) règle d’écriture Toute condition à vérifier est introduite par la clause WHERE,

placée après la clause FROM.

b) exemple 1 : afficher la liste des produits de la catégorie 2

select * from produits where code_famille=2;

Page 6: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

A : les requêtes d’interrogation de la base de données

C) exemple 2 : liste des articles (code, libellé) des catégories 2 et 3.

select code_prod, lib_prod from produits where code_famille=2 or code_famille=3;

3) la jointure a) règles d’écriture

- Les liens à exploiter doivent être déclarés dans la clause inner join et séparés par l’opérateur =.

- Lorsque des rubriques portent le même nom, on doit les faire précéder du nom de la table pour lever toute ambiguïté.

Page 7: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

A : les requêtes d’interrogation de la base de données

b) exemple : liste (codes et noms) des produits de la famille “ecrans”

select code_prod, lib_prod, lib_famille from produits inner join familles on

produits.code_famille=familles.code_famille where lib_famille="Ecrans";

Page 8: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

A : les requêtes d’interrogation de la base de données

4) le tri a) règle d’écriture - la colonne permettant d’ordonner l’affichage des résultats

est précédée par la clause ORDER BY - pour chaque colonne, il faut préciser le sens de tri, ASC

(ordre croissant), DESC (ordre décroissant).

Page 9: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

A : les requêtes d’interrogation de la base de données

b) exemple : liste des articles livrés par le fournisseur CHERAIN (code, nom, prix et libellé de la famille d ’appartenance) avec un tri dans l ’ordre croissant des prix.

select code_prod, lib_prod, prix_prod, lib_famille from produits inner join familles on

produits.code_famille=familles.code_famille inner join livreurs on produits.code_liv=livreurs.code_liv where nom_liv="CHERAIN" order by prix_prod asc;

Page 10: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

A : les requêtes d’interrogation de la base de données

5) les fonctions a) règles d’écriture

- Toute fonction de calcul à réaliser doit apparaître dans la clause SELECT.

- Tout groupement à réaliser se traduit par la clause GROUP BY.

- On utilise les fonctions de calcul suivantes en SQL : SUM, COUNT, MIN, MAX, AVG.

b) exemple 1 nombre d ’articles de la famille « portables »

select count(code_prod) as "nb portables" from produits where code_famille=2;

Page 11: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

A : les requêtes d’interrogation de la base de données

C) prix moyen d’un article de la catégorie 3 select avg(prix_prod) as "prix moyen" from produits where code_famille=3;

Page 12: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

B : les requêtes de modification de la base de données

On désire ajouter dans la base de données le statut juridique des livreurs (indépendants, franchisés...)

1) la requête de création de la table des statuts juridiques create table statut (code_statut int not null, lib_statut varchar( 30 ) not

null,primary key (code_statut) );

2) la requête d’insertion des données

insert into statut (code_statut, lib_statut) values (1, "indépendant"), (2, "franchisé");

Page 13: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

B : les requêtes de modification de la base de données

3) la requête d’ajout d’un champ dans une table

alter table produits add dispo varchar( 20 ) not null after prix_prod;

4) requête de suppression d’un champ

alter table produits drop dispo;

5) requête de suppression d’un enregistrement : tous les articles livrés par le livreur 3 (MIGNOT)

delete from produits where code_liv=3;

Page 14: Année universitaire 2007 - 2008 Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données

Année universitaire 2007 - 2008

II : les requêtes SQL

B : les requêtes de modification de la base de données

6) requête de mise à jour de champs : le fournisseur 1 augmente ces prix, nos prix de vente augmentent donc de 4%

update produits set prix_prod=prix_prod*1.04 where code_liv=1;