Aller au contenu
Logo Caradisiac      

Téléchargez nos application

Disponible sur App Store Disponible sur Google play
Publi info
PC et informatique

MCD, MLD, Access et requête SQL


balzout

Messages recommandés

Je passe bientôt un exam en "systèmes d'information", et le grand dada du prof, c'est faire joujou avec Access, ses tables et des requêtes SQL :roll:

 

Bref, je suis pas très dégourdi de ce côté, et je voudrais avoir vos conseils sur la manière de pondre une requête correcte :) Méthode, astuces, trucs à pas faire, etc.

 

Il s'agit de requêtes apparemment tout ce qu'il y a de plus basique : SELECT - FROM - WHERE, ça tient en 3 lignes pour la plupart.

 

:jap:

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 56
  • Créé
  • Dernière réponse
Invité §Rez302AF

Pour le SQL pas de secret, il faut faire des requêtes, en refaire, et encore recommencer. Moi j'avais acheté un bouquin campus press, c'est pas mal expliqué et ça m'a beaucoup servi.

Lien vers le commentaire
Partager sur d’autres sites

Invité §vin027WA

:bah: je sais pas comme dit plus haut le sql ça se bosse fais beaucoup d'exo au pire prend un bouquin avec des cas pratiques sql à faire sur access à la fin ça te paraitra logique idem pour les MLD et autre MCD

 

au debut pour creer ta requete sql tu auras besoin du MCD sous les yeux!

Lien vers le commentaire
Partager sur d’autres sites

Invité §nic226zc

:jap:

 

Question technique : comment je peux faire pour passer du MLD à la BD sous Access ?

normalent à partir de ton MCD (modèle conceptuel de données) ça représente tes tables dans ACCESS, ne pas oublier de les lier en 1-1 ou 1-00

:jap:

Lien vers le commentaire
Partager sur d’autres sites

Invité §Le-788Cb

je suis d'accord qu'access c'est plutot de la daube...

mais le SQL c'est tout con :D

tu fais quoi comme etudes ?

 

Lien vers le commentaire
Partager sur d’autres sites

Invité §lef085fE

tje sais pas si j'ai bien compris la question mais sous acces t'as une option relation dans un menu et tu peux faire tes relations sur les différentes tables.

Mais access c'est de la merde il put ton prof :lol:

Lien vers le commentaire
Partager sur d’autres sites

Invité §Le-788Cb

tje sais pas si j'ai bien compris la question mais sous acces t'as une option relation dans un menu et tu peux faire tes relations sur les différentes tables.

Mais access c'est de la merde il put ton prof :lol:

 

je pense qu'il le sait, mais les profs sont allergiques aux relations faites avec la daube intégrée

en plus quand on a l'habitude, ca va beaucoup mieux en SQL !

et puis en effet, Access c'est de la daube...

Lien vers le commentaire
Partager sur d’autres sites

Invité §uaz532Nd

Il s'agit de requêtes apparemment tout ce qu'il y a de plus basique : SELECT - FROM - WHERE, ça tient en 3 lignes pour la plupart.

 

1) Déjà tu peux commencer par éviter de faire une erreur fréquente dans la clause WHERE : ne pas utiliser d'agrégats !

 

Ex:

SELECT T.att1

FROM table T

WHERE T.att2 = MAX(T.att2);

--> :nanana: utiliser un group by et/ou un having :oui: ou bien encore une requête imbriquée T.att2 = (SELECT MAX(att2) FROM table T)

 

2) Les attributs du GROUP BY doivent figurer dans le SELECT :oui:

 

3) Ne pas oublier les DISTINCT quand c'est nécessaire

 

4) Ne pas utiliser de "variables" dans la clause HAVING :nanana:

Ex:

SELECT COUNT(T.quantite) AS qtite

FROM table T

GROUP BY T.pk

HAVING qtite > 1

 

 

bon c'est tout ce qui me vient à l'esprit là..

 

Sinon pour le passage MCD -> MLD, il existe de nombreuses règles de transformation d'associations n-aires en relations ou en simple clé-étrangère d'une relation type père-fils. Fait une recherche sur le net :oui:

 

Les règles pour le passage du schéma relationnel au schéma physique dépendent du degré de normalisation (3NF, BCNF) souhaité, du choix de l'optimisation (partitionnement horizontal, vertical, index..) et puis des fonctionnalités du SGBD évidemment :bah:

 

Bon c'est sûr que si tu bosses sous Access, je pense que tu peux oublier une bonne partie de tout ça :lol: garde simplement les règles basiques :

une relation = une table

un identifiant = une clé primaire

un attribut = un attribut :p

 

N'oublie pas non plus que Access ne respecte pas toute la norme SQL92, de mémoire il me semble que les fonctions d'agrégats sont plus ou moins exotiques :roll:

Lien vers le commentaire
Partager sur d’autres sites

:jap: :jap:

 

Uaz, tu as été beaucoup trop loin par rapport à ce dont j'ai besoin :p Je ne saisis pas la moitié de ce que tu dis, mais tu as certainement raison :D

 

Tout ce que je recherchais (j'ai réussi à obtenir une BD sous Access ;)), c'est de pondre une requête qui me permette de cracher un code postal, une désignation d'article, des trucs simples quoi ;)

 

:jap:

Lien vers le commentaire
Partager sur d’autres sites

Invité §uaz532Nd

ah :oops:

bon bah applique seulement les conseils que je t'ai donné, et les règles de transformation, et euh, oublie le reste :p

 

suis trop à fond dans mon projet de GL moi :ange:

Lien vers le commentaire
Partager sur d’autres sites

Invité §lef085fE

:jap: :jap:

 

Uaz, tu as été beaucoup trop loin par rapport à ce dont j'ai besoin :p Je ne saisis pas la moitié de ce que tu dis, mais tu as certainement raison :D

 

Tout ce que je recherchais (j'ai réussi à obtenir une BD sous Access ;)), c'est de pondre une requête qui me permette de cracher un code postal, une désignation d'article, des trucs simples quoi ;)

 

:jap:

T'aura pas le droit au générateur de requête?

Acess fait tout tout seul, suffit de tester

 

Lien vers le commentaire
Partager sur d’autres sites

Invité §Le-788Cb

Ayé, ça chie déjà :D

 

J'arrive pas à extraire un seul pauvre code postal...

 

Select *

From Fournisseur

Where code_postal = 59000

 

Ca me sort un champ à remplir...:L

 

et le Order by... ou group By... selon le cas ?

forcément ca marchera pas comme ca ;)

 

Lien vers le commentaire
Partager sur d’autres sites

Invité §All626sZ

Y a rien à ordonner ou à grouper, j'ai qu'une seule ville dans ma base qui corresponde à ce critère :bah:

Es-tu certain que ton code_postal soit un champ numérique ? Parce que si c'est un champ texte il faut mettre entre quotes :)

Lien vers le commentaire
Partager sur d’autres sites

Invité §uaz532Nd

Pas besoin de relation d'ordre ou de regroupement :bah:

 

T'es sûr que t'as un tuple au moins pour code_postal = 59000 ?

(Me souviens plus du tout de mes TP sous Access moi :L:oops:)

Lien vers le commentaire
Partager sur d’autres sites

Invité §Le-788Cb

Y a rien à ordonner ou à grouper, j'ai qu'une seule ville dans ma base qui corresponde à ce critère :bah:

 

 

justement si !

c'est un des gros problemes du "SQL access" !!

Lien vers le commentaire
Partager sur d’autres sites

Invité §uaz532Nd

justement si !

c'est un des gros problemes du "SQL access" !!

 

gné ? :beuh::voyons:

Lien vers le commentaire
Partager sur d’autres sites

Invité §lef085fE

et le Order by... ou group By... selon le cas ?

forcément ca marchera pas comme ca ;)

:nanana: on s'en tamponne du order by

Lien vers le commentaire
Partager sur d’autres sites

Invité §nic226zc

Au contraire, parlons-en :p

 

Il s'utilise comment le ORDER BY ? Quelle est la syntaxe adaptée ?

 

SELECT ...

FROM ...

WHERE ...

ORDER BY article.prix :voyons:

je pense que le mieux c'est que tu tes fasses une mini BDD et dans tes requêtes que tu fais avec l'assistant, tu regardes leur structure :oui:

Pour ça il faut aller en mode création et cliquer sur affichage/SQL ou un truc dans le genre :oui:

 

Tu changes les critères de sélection pour un champ et tu comprendras vite !

 

Le + dur lorsque tu fais une base complexe, c'est le début avec MERISE : si ça c'est bien fait après c'est simple, après tu te prend la tête sur du code pour automatisé des petites conneries :beuh:

 

Lien vers le commentaire
Partager sur d’autres sites

je pense que le mieux c'est que tu tes fasses une mini BDD et dans tes requêtes que tu fais avec l'assistant, tu regardes leur structure :oui:

Pour ça il faut aller en mode création et cliquer sur affichage/SQL ou un truc dans le genre :oui:

 

Tu changes les critères de sélection pour un champ et tu comprendras vite !

:jap: J'essaye effectivement de travailler un peu de cette manière :):good:

 

Lien vers le commentaire
Partager sur d’autres sites

Invité §uaz532Nd

Il s'utilise comment le ORDER BY ? Quelle est la syntaxe adaptée ?

 

SELECT ...

FROM ...

WHERE ...

ORDER BY article.prix :voyons:

 

ORDER BY <attribut_du_select> [ASC|DESC]

 

ASC = croissant (par défaut)

DESC = décroissant

 

Ici par contre tu peux utiliser un tri sur un attribut calculé :oui:

 

Lien vers le commentaire
Partager sur d’autres sites

Invité §nic226zc

je suis d'accord qu'access c'est plutot de la daube...

mais le SQL c'est tout con :D

tu fais quoi comme etudes ?

 

Franchement c'est n'importe quoi d'affirmer une énormité pareille :oui:

 

ça dépend de tes applis c'est tout, ACCESS se révèle être puissant :oui:

 

Pour éviter des débats, lisez ça car au moins il y a là de vrais spécialistes

 

Lien vers le commentaire
Partager sur d’autres sites

Invité §nic226zc

Je fais un DESS d'organisation & génie de production, rien à voir avec de l'info (on dirait pas, je sais :D) :p

 

 

ouais mais ACCESS ça sert beaucoup et dans tous les secteurs, àça permet de mesure et don contrôler n'importe quoi :bien:

Peu de gens savent réellement s'en servir :oui:

Lien vers le commentaire
Partager sur d’autres sites

Invité §moo583pW

ouais mais ACCESS ça sert beaucoup et dans tous les secteurs, àça permet de mesure et don contrôler n'importe quoi :bien:

Peu de gens savent réellement s'en servir :oui:

Ca sert surtout à faire une maquette en deux deux qd tu dois présenter au client le lendemain et que tu es méchament à la bourre :D

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.



Newsletter Caradisiac

Abonnez-vous à la newsletter de Caradisiac

Recevez toute l’actualité automobile

L’adresse email, renseignée dans ce formulaire, est traitée par GROUPE LA CENTRALE en qualité de responsable de traitement.

Cette donnée est utilisée pour vous adresser des informations sur nos offres, actualités et évènements (newsletters, alertes, invitations et autres publications).

Si vous l’avez accepté, cette donnée sera transmise à nos partenaires, en tant que responsables de traitement, pour vous permettre de recevoir leur communication par voie électronique.

Vous disposez d’un droit d’accès, de rectification, d’effacement de ces données, d’un droit de limitation du traitement, d’un droit d’opposition, du droit à la portabilité de vos données et du droit d’introduire une réclamation auprès d’une autorité de contrôle (en France, la CNIL). Vous pouvez également retirer à tout moment votre consentement au traitement de vos données. Pour en savoir plus sur le traitement de vos données : www.caradisiac.com/general/confidentialite/

×
  • Créer...