Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide svp sur requete sql simple

9 réponses
Avatar
Pouvez vous me confirmer ou infirmer ma syntaxe ?



1. Nom et âge des joueurs américains, autre que 'Connors', âgés de plus
de 30 ans.





Réponse proposée :

"Select nom, age From joueur where nom <> 'Connors',age>'30'"



Je dois aussi l'ecrire en algèbre relationnel, cela je ne l'ai pas encore
fait.

Merci de vos avis.



Bernard

9 réponses

Avatar
Re bonjour, après avoir cherché, je voudrais savoir ce que vous en pensez,
si ma syntaxe est correcte, et comment faire un union pour la 3eme question
...

joueur

numéroautojoueur
nom
prénom
âge
pays

1
Bibi
Bernard
25
France

2
Connors
Albert
45
Amérique

3
Connors
George
27
Afrique

4
Mellinger
Aline
33
France




gains

numéroauto
nom-joueur
lieu-tournoi
date
prime
sponsor

1
Bass
Mulhouse
5-5-2007
1
UnivLouisPasteur

2
Schmitt
Strasbourg
3-5-2007
2
UnivLouisPasteur




rencontre

numéroauto
nrencontre
gagnant
perdant
lieu-tournoi
date
score

1
1
Bass
Mellinger
Colmar
5-5-2007
3-0




1. Nom et âge des joueurs américains, autre que 'Connors', âgés de plus
de 30 ans.

2. Les pays des joueurs de 20 ans (sauf France)

3. Nom et âge des joueurs ayant participé à Roland Garros en 99.

4. Nom et pays des joueurs ayant participé, en 95, aux tournois de
Rolland Garos et Wimbledon.

5. Nom des joueurs ayant perdu toutes leurs rencontres.





1
A vérifier
SELECT nom, âge FROM joueur WHERE âge>'30' AND nom Not Like 'Connors'
GROUP BY nom

2
A vérifier
SELECT pays FROM joueur WHERE âge AND pays Not Like FRANCE

3
Sur que la sa part en couille ;-)

Il faut surement faire un UNION
SELECT gagnant, perdant FROM rencontre WHERE lieu-tournoi='Roland
Garros' AND date= '99' UNION SELECT nom, âge FROM joueur




Merci de vos avis ...
Avatar
Je rappel mes tables plus proprement désolé

JOUEUR numéroautojoueur, nom, prénom, âge, pays
GAINS numéroauto, nom-joueur, lieu-tournoi, date, prime, sponsor
RENCONTRE numéroauto, nrencontre, gagnant, perdant, lieu-tournoi, date,
score


1. Nom et âge des joueurs américains, autre que 'Connors', âgés de
plus de 30 ans.
A VERIFIER
SELECT nom, âge FROM joueur WHERE âge>'30' AND nom Not Like 'Connors'
GROUP BY nom





SOLUTION PROPOSE


Tel que, je vois pas l'interet du like.
Par ailleurs, si age est typé en nombre, pourquoi mettre des quotes ?
select nom,age from joueur where not nom='Connors' and age>30;



SUPER !!! Je viens de corriger dans ma base le type numérique pour l'âge car
j'étais en texte.
Et j'ai inversé nom et âge dans la clause Where.
///////////////////////////////////////////////////////////////////////////////////////////////////////
select nom,age from joueur where not nom='Connors' and age>30;
///////////////////////////////////////////////////////////////////////////////////////////////////////





2.Les pays des joueurs de 20 ans (sauf France)
A VERIFIER
SELECT pays FROM joueur WHERE âge AND pays Not Like FRANCE
Encore une fois, le like ne présent pas d'interet
///////////////////////////////////////////////////////////////////////////////////////////////////////
SELECT pays FROM joueur WHERE âge AND not pays='FRANCE'
Attention tout de meme, certains SGDB sont sensibles à la casse.
///////////////////////////////////////////////////////////////////////////////////////////////////////





SELECT pays FROM joueur WHERE âge AND not upper(pays)='FRANCE'
permet de passer outre.
///////////////////////////////////////////////////////////////////////////////////////////////////////
La fonction UPPER ca me dit non définie dans l'expression (avec Access
pas essayé mysql)... ??
///////////////////////////////////////////////////////////////////////////////////////////////////////







3.Nom et âge des joueurs ayant participé à Roland Garros en 99.

EXO 3 à VERIFIER
Il faut surement faire un UNION ?
SELECT gagnant, perdant FROM rencontre WHERE lieu-tournoi='Roland
Garros' AND date= '99' UNION SELECT nom, âge FROM joueur



Non. Si j'ai bien compris ce que tu veux faire, le Union ne correspond
pas.
Gagnant et perdant son des id ? des textes ?



Je pense que gagant et perdant son des textes. En effet c'est moi qui ait
rajouté les numéroauto dans l'énnoncé, enfin, dans ma table.

La je ne vois pas comment récupérer le nom et l'âge de la table Joueur alors
que les infos à vérifier son ailleur (Rolland Garros et 99)



4.Nom et pays des joueurs ayant participé, en 95, aux tournois de Rolland
Garos et Wimbledon.

5.Nom des joueurs ayant perdu toutes leurs rencontres.






En tout cas merci de ton aide pour le not, je cherchais justement ... Mais
not like sert à quoi du coup ?
Avatar
Sylvain Lafontaine
Arrêtez de répondre à vos messages si vous voulez avoir une réponse d'une
autre personne. Pour votre NOT, vous pouvez utiliser <> à la place:

SELECT nom, âge FROM joueur WHERE âge > 30 AND nom <> 'Connors' and pays =
'Amérique'

Si le champ nom est de type Unicode (nchar, nvarchar ou ntext); il faut
mettre N devant la constante chaîne de caractères:


SELECT nom, âge FROM joueur WHERE âge > 30 AND nom <> N'Connors' and pays =
N'Amérique'

Pour votre question #3, vous devez faire un JOIN sur gagnant et perdant; en
supposant que ces deux champs contiennent le nom du joueur; sinon, il faut
modifier en conséquence:

Select nom, âge from joueur J inner join recontre R on (J.nom = R.Gagnant or
J.nom = R.Perdant)
Where R.[lieu-tournoi] = 'Roland-Garros' and R.date = 1999
Group by nom, âge

ou encore:

Select nom, âge from joueur J inner join recontre R on (J.nom = R.Gagnant)
Where R.[lieu-tournoi] = 'Roland-Garros' and R.date = 1999
Union
Select nom, âge from joueur J inner join recontre R on (J.nom = R.Perdant)
Where R.[lieu-tournoi] = 'Roland-Garros' and R.date = 1999

Dans le cas de l'Union, le Group By est implicite si vous n'écrivez pas
UNION ALL à la place de UNION.

4) est pratiquement la même chose que 3). Dans le cas de 5, la façon la
plus simple serait d'utiliser la fonction Not Exists:


Select nom, âge from joueur J where Not Exists (Select * from Rencontre R
where R.gagnant = J.nom)

Finalement, vous seriez peut-être mieux d'écouter plus attentivement à vos
cours. Il est inconcevable que vous demandiez ici les réponses à votre
devoir sans même savoir si Gagnant et Perdant sont des ID ou des textes.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


<Bon plan> wrote in message
news:463d2837$0$21146$
Je rappel mes tables plus proprement désolé

JOUEUR numéroautojoueur, nom, prénom, âge, pays
GAINS numéroauto, nom-joueur, lieu-tournoi, date, prime, sponsor
RENCONTRE numéroauto, nrencontre, gagnant, perdant, lieu-tournoi, date,
score


1. Nom et âge des joueurs américains, autre que 'Connors', âgés de
plus de 30 ans.
A VERIFIER
SELECT nom, âge FROM joueur WHERE âge>'30' AND nom Not Like 'Connors'
GROUP BY nom





SOLUTION PROPOSE


Tel que, je vois pas l'interet du like.
Par ailleurs, si age est typé en nombre, pourquoi mettre des quotes ?
select nom,age from joueur where not nom='Connors' and age>30;



SUPER !!! Je viens de corriger dans ma base le type numérique pour l'âge
car j'étais en texte.
Et j'ai inversé nom et âge dans la clause Where.
///////////////////////////////////////////////////////////////////////////////////////////////////////
select nom,age from joueur where not nom='Connors' and age>30;
///////////////////////////////////////////////////////////////////////////////////////////////////////





2.Les pays des joueurs de 20 ans (sauf France)
A VERIFIER
SELECT pays FROM joueur WHERE âge AND pays Not Like FRANCE
Encore une fois, le like ne présent pas d'interet
///////////////////////////////////////////////////////////////////////////////////////////////////////
SELECT pays FROM joueur WHERE âge AND not pays='FRANCE'
Attention tout de meme, certains SGDB sont sensibles à la casse.
///////////////////////////////////////////////////////////////////////////////////////////////////////





SELECT pays FROM joueur WHERE âge AND not upper(pays)='FRANCE'
permet de passer outre.
///////////////////////////////////////////////////////////////////////////////////////////////////////
La fonction UPPER ca me dit non définie dans l'expression (avec Access
pas essayé mysql)... ??
///////////////////////////////////////////////////////////////////////////////////////////////////////







3.Nom et âge des joueurs ayant participé à Roland Garros en 99.

EXO 3 à VERIFIER
Il faut surement faire un UNION ?
SELECT gagnant, perdant FROM rencontre WHERE lieu-tournoi='Roland
Garros' AND date= '99' UNION SELECT nom, âge FROM joueur



Non. Si j'ai bien compris ce que tu veux faire, le Union ne correspond
pas.
Gagnant et perdant son des id ? des textes ?



Je pense que gagant et perdant son des textes. En effet c'est moi qui ait
rajouté les numéroauto dans l'énnoncé, enfin, dans ma table.

La je ne vois pas comment récupérer le nom et l'âge de la table Joueur
alors que les infos à vérifier son ailleur (Rolland Garros et 99)



4.Nom et pays des joueurs ayant participé, en 95, aux tournois de
Rolland Garos et Wimbledon.

5.Nom des joueurs ayant perdu toutes leurs rencontres.






En tout cas merci de ton aide pour le not, je cherchais justement ... Mais
not like sert à quoi du coup ?




Avatar
Merci de ton aide.
Sache qu'il n'est pas explicité dans mon exercice s'il s'agit la d'ID ou de
texte. Je ne peu le rêver.
Heureusement on m'a souligné la question, ce qui me fait un bon rappel
d'analyse, pour moi c'était logique que ce fut du texte, mais il se peu que
cela soit des ID.

Finalement, vous seriez peut-être mieux d'écouter plus attentivement à vos
cours. Il est inconcevable que vous demandiez ici les réponses à votre
devoir sans même savoir si Gagnant et Perdant sont des ID ou des textes.



Juste pour info je suis des cours en ligne, et après avoir passé pas mal
d'heure à lire et fouiller google pour y découvrir plein de syntaxes quasi
identiques, il est plus simple (après avoir cherché) que de s'adresser à
ceux qui savent ... Le but étant d'apprendre pas de perdre du temps ...

Grâce à toi je sais faire un union et je découvre not exist, donc mon
maître, je reste hunble face à ton savoir et ta sagesse.
Désolé de poser la question... Mais qaund même, tu avoura qu'en attendant de
tout connaître de la petite syntaxe SQL, cela peu s'avérer barbare de courir
après un NOT ou NOT LIKE lol

Peut on me confirmer mon petit algèbre relationnel ? lol
R1 = PROJECTION joueur (nom, âge)


Le code SQL
SELECT [nom], [âge]

FROM joueur

WHERE âge>30 and not nom='Connors';


La encore, lorsque la syntaxe n'est pas connue, seul la pratique et vos avis
me permettent de rester sur le bon chemin.
Encore merci

Bernard

NB : Je cherche encore à écrire les algèbres relationnels suivant. Je vous
rassure, je ne vous attend pas ;-) Je cherche je lis je fouille et si j'ai
la réponse je ne manquerai pas de transmettre la réponse. En attendant, si
vous avez des exemples approchant, je suis preneur. Merci encore.

1. Les pays des joueurs de 20 ans (sauf France)
2. Nom et âge des joueurs ayant participé à Roland Garros en 99.
3. Nom et pays des joueurs ayant participé, en 95, aux tournois de
Rolland Garos et Wimbledon.
4. Nom des joueurs ayant perdu toutes leurs rencontres.

Avec les tables
JOUEUR numéroautojoueur, nom, prénom, âge, pays
GAINS numéroauto, nom-joueur, lieu-tournoi, date, prime, sponsor
RENCONTRE numéroauto, nrencontre, gagnant, perdant, lieu-tournoi, date,
score




Avatar
J'ai modifié mon algèbre, qu'en pensez vous ?

Algèbre relationnel
R1 = SELECTION joueur (âge>30 | nom<>Connors)
R2 = PROJECTION R1 (nom, âge)


SQL
SELECT [nom], [âge]
FROM joueur
WHERE âge>30 and not nom='Connors';


Cela ce vaut t'il et la syntaxe est t'elle correcte ?

Merci de vos avis.

Bernard
Avatar
Bonjour,
Voilà, ça se finalise etj'ai la tête plein de jointure d'union et de signes
que je n'arrive pas à saisir au clavier lol.


Je rappel mes tables
joueur (numéroautojoueur, nom, prénom, âge, pays)
gains (numéroauto, nom-joueur, lieu-tournoi, date, prime, sponsor)
rencontre (numéroauto, nrencontre, gagnant, perdant, lieu-tournoi, date,
score)


Ainsi que l'ennoncé
1 Nom et âge des joueurs américains, autre que 'Connors', âgés de plus de 30
ans.
2 Les pays des joueurs de 20 ans (sauf France)
3 Nom et âge des joueurs ayant participé à Roland Garros en 99.
4 Nom et pays des joueurs ayant participé, en 95, aux tournois de Rolland
Garos et Wimbledon.
5 Nom des joueurs ayant perdu toutes leurs rencontres.


Voici mes 3 premières propositions

R1 = SELECTION joueur (âge>30 | nom<>Connors)
R2 = PROJECTION R1 (nom, âge)


R1 = SELECTION joueur (âge | pays<>France)
R2 = PROJECTION R1 (pays)


R1 = joueur JOINTURE rencontre (joueur.nom = rencontre.gagnant or joueur.nom
= rencontre.perdant | rencontre.lieu-tournoi = Roland Garros And
rencontre.date = 1999)
R2 = PROJECTION R1(nom,âge)


La syntaxe et le résultat attendu vous parait t'il correct ?
Si vous avez des idées pour le point 4 et 5 .. ;-)

Merci de votre aide.
Bernard
Avatar
Sylvain Lafontaine
Pour l'algèbre relationnelle, je n'ai aucune idée au sujet de savoir si
c'est bon ou non. Vous allez trouver bien peu de monde ici qui se
préoccuppe de ça.

Pour le reste, vous êtes mieux de pratiquer sur votre base de données de
test afin de savoir ce qui fonctionne de ce qui ne fonctionne pas. La
pratique personnelle reste encore la meilleure méthode pour apprendre
quelque chose.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


<Bon plan> wrote in message
news:463dbe0d$0$21145$
Bonjour,
Voilà, ça se finalise etj'ai la tête plein de jointure d'union et de
signes
que je n'arrive pas à saisir au clavier lol.


Je rappel mes tables
joueur (numéroautojoueur, nom, prénom, âge, pays)
gains (numéroauto, nom-joueur, lieu-tournoi, date, prime, sponsor)
rencontre (numéroauto, nrencontre, gagnant, perdant, lieu-tournoi, date,
score)


Ainsi que l'ennoncé
1 Nom et âge des joueurs américains, autre que 'Connors', âgés de plus de
30
ans.
2 Les pays des joueurs de 20 ans (sauf France)
3 Nom et âge des joueurs ayant participé à Roland Garros en 99.
4 Nom et pays des joueurs ayant participé, en 95, aux tournois de Rolland
Garos et Wimbledon.
5 Nom des joueurs ayant perdu toutes leurs rencontres.


Voici mes 3 premières propositions

R1 = SELECTION joueur (âge>30 | nom<>Connors)
R2 = PROJECTION R1 (nom, âge)


R1 = SELECTION joueur (âge | pays<>France)
R2 = PROJECTION R1 (pays)


R1 = joueur JOINTURE rencontre (joueur.nom = rencontre.gagnant or
joueur.nom
= rencontre.perdant | rencontre.lieu-tournoi = Roland Garros And
rencontre.date = 1999)
R2 = PROJECTION R1(nom,âge)


La syntaxe et le résultat attendu vous parait t'il correct ?
Si vous avez des idées pour le point 4 et 5 .. ;-)

Merci de votre aide.
Bernard



Avatar
Merci de ta réponse,
Pour le codage sql, c'est pas un soucis, j'ai bien compris les démarges et
le codage.
Par contre c'est vrai que pour l'algèbre, la communautée est discrete et les
tutoriels que je trouve sur internet me laissent dubitatif.

Nous verons ;-)
Merci encore
Bernard

Pour l'algèbre relationnelle, je n'ai aucune idée au sujet de savoir si
c'est bon ou non. Vous allez trouver bien peu de monde ici qui se
préoccuppe de ça.

Pour le reste, vous êtes mieux de pratiquer sur votre base de données de
test afin de savoir ce qui fonctionne de ce qui ne fonctionne pas. La
pratique personnelle reste encore la meilleure méthode pour apprendre
quelque chose.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


<Bon plan> wrote in message
news:463dbe0d$0$21145$
Bonjour,
Voilà, ça se finalise etj'ai la tête plein de jointure d'union et de
signes
que je n'arrive pas à saisir au clavier lol.

Je rappel mes tables
joueur (numéroautojoueur, nom, prénom, âge, pays)
gains (numéroauto, nom-joueur, lieu-tournoi, date, prime, sponsor)
rencontre (numéroauto, nrencontre, gagnant, perdant, lieu-tournoi, date,
score)

Ainsi que l'ennoncé
1 Nom et âge des joueurs américains, autre que 'Connors', âgés de plus de
30
ans.
2 Les pays des joueurs de 20 ans (sauf France)
3 Nom et âge des joueurs ayant participé à Roland Garros en 99.
4 Nom et pays des joueurs ayant participé, en 95, aux tournois de Rolland
Garos et Wimbledon.
5 Nom des joueurs ayant perdu toutes leurs rencontres.

Voici mes 3 premières propositions

R1 = SELECTION joueur (âge>30 | nom<>Connors)
R2 = PROJECTION R1 (nom, âge)

R1 = SELECTION joueur (âge | pays<>France)
R2 = PROJECTION R1 (pays)

R1 = joueur JOINTURE rencontre (joueur.nom = rencontre.gagnant or
joueur.nom
= rencontre.perdant | rencontre.lieu-tournoi = Roland Garros And
rencontre.date = 1999)
R2 = PROJECTION R1(nom,âge)

La syntaxe et le résultat attendu vous parait t'il correct ?
Si vous avez des idées pour le point 4 et 5 .. ;-)

Merci de votre aide.
Bernard




Avatar
P. GILLES
Plop,

Faut chercher mieux,

http://sqlpro.developpez.com/cours/divrelationnelle/

CDT

Patrick

<Bon plan> a écrit dans le message de
news:46405541$0$21144$
Merci de ta réponse,
Pour le codage sql, c'est pas un soucis, j'ai bien compris les démarges et
le codage.
Par contre c'est vrai que pour l'algèbre, la communautée est discrete et
les tutoriels que je trouve sur internet me laissent dubitatif.

Nous verons ;-)
Merci encore
Bernard

Pour l'algèbre relationnelle, je n'ai aucune idée au sujet de savoir si
c'est bon ou non. Vous allez trouver bien peu de monde ici qui se
préoccuppe de ça.

Pour le reste, vous êtes mieux de pratiquer sur votre base de données de
test afin de savoir ce qui fonctionne de ce qui ne fonctionne pas. La
pratique personnelle reste encore la meilleure méthode pour apprendre
quelque chose.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


<Bon plan> wrote in message
news:463dbe0d$0$21145$
Bonjour,
Voilà, ça se finalise etj'ai la tête plein de jointure d'union et de
signes
que je n'arrive pas à saisir au clavier lol.

Je rappel mes tables
joueur (numéroautojoueur, nom, prénom, âge, pays)
gains (numéroauto, nom-joueur, lieu-tournoi, date, prime, sponsor)
rencontre (numéroauto, nrencontre, gagnant, perdant, lieu-tournoi, date,
score)

Ainsi que l'ennoncé
1 Nom et âge des joueurs américains, autre que 'Connors', âgés de plus
de 30
ans.
2 Les pays des joueurs de 20 ans (sauf France)
3 Nom et âge des joueurs ayant participé à Roland Garros en 99.
4 Nom et pays des joueurs ayant participé, en 95, aux tournois de
Rolland
Garos et Wimbledon.
5 Nom des joueurs ayant perdu toutes leurs rencontres.

Voici mes 3 premières propositions

R1 = SELECTION joueur (âge>30 | nom<>Connors)
R2 = PROJECTION R1 (nom, âge)

R1 = SELECTION joueur (âge | pays<>France)
R2 = PROJECTION R1 (pays)

R1 = joueur JOINTURE rencontre (joueur.nom = rencontre.gagnant or
joueur.nom
= rencontre.perdant | rencontre.lieu-tournoi = Roland Garros And
rencontre.date = 1999)
R2 = PROJECTION R1(nom,âge)

La syntaxe et le résultat attendu vous parait t'il correct ?
Si vous avez des idées pour le point 4 et 5 .. ;-)

Merci de votre aide.
Bernard