ACCESS-SQL

 

Access est un système de gestion de bases de données (SGBD), c.à.d. un programme permettant la création et l'utilisation des bases de données. Une base de données est un ensemble de fichiers (appelés aussi tables) entre lesquels peuvent exister des relations.

La création d'une table consiste à définir ses champs en précisant leur nom et leur type. Il faut aussi lui donner un nom qui permet de l'identifier.

La suite de ces notes fait référence à une base de données imprim.mdb pour la gestion d'une imprimerie.

Cette base de données comprend trois tables.

- La table des clients :

ncltnomvilleprive
1Grand MagasinRoncqOui
2Grand MagasinLeersOui
3MairieRoubaixNon
4L'ElectroRoubaixOui
5L'ElectroLilleOui
6MairieRoubaixNon
7PréfectureLilleNon
8Ecole MermozLilleNon
9Ecole VerteRoncqOui
10Bonne AffaireRoubaixOui
11Trois RepasLilleOui

- La table des papiers :

npaptypelargeurlongueurcouleurgrammageprixquantité
1Dossier7001000Blanc2400.9010000
2Dossier7001000Orange2401.0010000
3Dossier7001000Blanc2000.8010000
4Velin600900Bleu1500.57000
5Velin600900Vert1200.47000
6Velin600850Blanc1200.357000
7Bristol700900Blanc2000.48000
8Bristol700900Jaune900.38000
9Bristol600850Bleu1200.45000
10Bristol600900Orange900.355000
11Bristol600850Blanc900.253000

- La table des travaux :

ntrvtypelargeurlongueurquantiténpapnclt
1Cartes915500074
2Affiches30503000910
3Affiches50701500105
4Imprimés2130300056
5Imprimés2130300066
6Fiches15202000911
7Menus3040300811
8Cartes915200081
9Affiches5080500111
10Fiches1015100092
11Fiches1520150087
12Affiches213010000109
13Affiches3040500058

I- Les requêtes de sélection

Elles permettent d'extraire d'une ou de plusieurs tables ou requêtes les lignes qui vérifient certains critères.

1- Afficher les clients de Lille et ceux de Roubaix

2- Afficher les clients de Lille et ceux de Roubaix appartenant au privé

Une requête peut porter sur plusieurs tables grâce aux relations.

Une relation permet d'obtenir à partir d'un enregistrement d'une table des informations qui se trouvent dans une autre table en faisant correspondre deux champs de l'une et de l'autre de ces deux tables. Ces deux champs portent en général le même nom.

1- Créer les deux relations qui relient d'une part les deux tables Travail et Clients et d'autre part les deux tables Travail et Papier

2- Afficher pour chaque travail son code, type, le numéro et le nom de son client

3- Quels sont les travaux pour Lille ? (afficher code, type ville)

4- Quels sont les clients ayant commandé un travail sur Bristol ? (afficher nclt, nom, type travail, type papier)

II- Les requêtes de mise à jour

Elles servent à modifier les données dans une table. Elles peuvent utiliser des critères pour la sélection des lignes à modifier.

1- Convertir la longueur des papiers du millimètre au centimètre

2- Mettre à jour le stock des papier Bristol en ajoutant 2000 aux quantités

3- Convertir le prix des papiers du franc à l'euro

III- Les formulaires

Ce sont des objets access permettant de personnaliser l'interface avec l'utilisateur. Trois types de formulaires sont à distinguer : les formulaires colonnes, tabulaires et ceux utilisant un sous formulaire. Dans ce dernier cas, en général, le formulaire principal est de type colonne et le sous formulaire de type tabulaire.

1- Créer un formulaire colonne basé sur la table Clients et affichant nclt, nom, ville

2- Créer un formulaire tabulaire basé sur la table Travail et affichant code, type, qté

3- Afficher pour chaque client nclt, nom, ville et la liste des travaux qu'il a commandés dans un sous formulaire

IV- Les requêtes avec champs calculés

Une requête peut servir à afficher des champs qui n'existent pas dans les tables de la base de données. La requête doit alors définir ces nouveaux à l'aide d'une expression pour le calcul de leur valeur. Ainsi par exemple, on pourra créer une requête qui affiche pour chaque papier son numéro, ses deux dimensions et sa surface. La surface qui ne figure pas dans la table Papier en tant que champ sera défini à l'aide de l'expression surface : [long]*[larg]

Nous pouvons nous servir de champs calculés pour évaluer le prix de revient pour chaque travail. Nous supposerons que ce prix revient pour un travail à calculer le prix des feuilles de papier nécessaires à sa réalisation. Pour le calcul des feuilles nécessaires, il faudra calculer le nombre de documents pouvant être imprimés sur une feuille de papier. Il conviendra alors de considérer deux possibilités pour l'impression du document sur la feuille et d'en retenir la meilleure c.à.d. celle qui permet un plus grand tirage sur une feuille de papier.

1- afficher pour chaque travail son code et dans un champ calculé appelé tirage1 le nombre de documents pouvant être tirés selon la disposition longueur/longueur d'une feuille du papier qu'il utilise.

2- afficher dans un troisième champ tirage2 le même nombre selon l'autre disposition.

3- afficher dans un quatrième champ tirage le plus grand des deux tirages.

4- afficher dans un cinquième champ feuilles le nombre de feuilles nécessaires.

5- afficher enfin le prix de revient.

Création de deux tables SQL :

- La table des étudiants :

numnomannee
1BaltazarL1
2FloM1
3BobL2
4AliaL1
5RabiaL1
6MariaM1
7HectorL3

- La table des notes :

notematierenum
10commercial1
15commercial2
8commercial3
13commercial4
10commercial5
18commercial6
12commercial7
14gestion1
9gestion2
6gestion3
4gestion4
13gestion5
12gestion6
17gestion7
14informatique1
5informatique2
10informatique3
17informatique4
6informatique5
9informatique6
10informatique7

- Requête de création

CREATE TABLE etudiants (num INT,nom VARCHAR(50),annee VARCHAR)

- Requête d'insertion

INSERT INTO etudiant (num,nom,annee) VALUES (8,'Lina','M2')

- Requête de sélection

SELECT * FROM etudiants WHERE annee='M2'

- Requête de mise à jour

UPDATE notes SET note=note+1 WHERE matiere='gestion'

- Requête de suppression

DELETE FROM ETUDIANTS WHERE note<10

- Jointure des tables (notes de licence 1)

SELECT note,matiere,num,nom FROM etudiants,notes WHERE etudiants.num=notes.num