CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[TSTGGRH] SQL

EnChanchanDavis
EnChanchanDavis
Niveau 25
17 février 2013 à 19:54:29

Bonsoir, je suis en terminale STG GRH et j'avoue ne pas comprendre grand chose au SQL. Ca n'a pas l'air bien compliqué mais je trouve ça très mal expliqué. Si l'un vous s'y connaît ce serait sympa de m'expliquer en détail ce qu'il y a à savoir ou alors si je pouvais avoir un lien menant à une page internet qui explique ça simplement avec des exercices d'entraînement ou n'importe quoi pour m'aider je suis preneur!
Voila je sais que j'en demande beaucoup mais j'ai mon examen blanc cette semaine et l'épreuve de GRH est ce mercredi donc vous êtes en quelque sorte mon dernier espoir :)

Merci d'avance!

PS: J'ai cherché sur internet, et effectivement j'ai trouvé des choses sur le langage SQL mais c'était plutôt compliqué, encore plus prise de tête que mes cours, je cherche quelque chose de relativement simple vu qu'au final, je n'ai qu'à connaître les bases de ce langage. :(

tungronul
tungronul
Niveau 9
17 février 2013 à 23:57:22

Tu sais le SQL n'est pas le langage le plus complexe en lui-même. Par contre il peut être extrêmement compliqué.

Je m'explique. Pour moi le SQl est un langage de requêtage : c'est à dire que finalement il sert à faire communiquer un sujet ou un programme avec une base de donnée.
Sélectionne moi, créé moi, supprime moi tels types de données, tri moi cette colonne par ordre alphabétique, créé moi un tableau de telle taille, etc etc.

C'est d'ailleurs la signification de l'acronyme de SQL= structured query langage = langage structuré (pour faire) des requêtes.

En soi il y a un nombre limité de demande possible d'un admin ou programme si bien que les "instructions" SQL sont limités en nombre
SELECT, FROM, WHERE ; CREATE TABLE, etc etc

En revanche les besoins sont nombreux, et les requêtes, elles, peuvent être extrêmement compliqués. Il faut d'ailleurs souvent faire de l'algèbre en amont, avant de faire du sqL, pour aiguiser son sens de "limbrication et de la logique avant de se lancer dans le requêtage tellement une instruction peut être tarabiscoté.

Je te conseillerais le site du zero pour débuter. Je n'ai pas lu ce cours mais je sais qu ele site est de qualité.
C'est un cours sur le php/mysql. Tu peux donc sauter les 2 premières parties

cf Partie 3 - Stocker des informations dans une base de données
http://www.siteduzero.com/informatique/tutoriels/concevez-votre-site-web-avec-php-et-mysql

PS : Le SQl est en fait beaucoup fondé sur des conventions et des bonnes règles pratique à connaitre. Donc il faut s'efforcer d'apprendre des autres aussi plutot que simplement en manipulant, même si les 2 sont essentielle.
Par exemple : pour selectionner une information dans une colonne d'un tableau, là où Prix = 10€ apparait, tu écrira :

SELECT colonne1
FROM tableau
WHERE prix = 10
;

Eh bien, il faut savoir que, lorsque tu écris ta construi ta raquête, tu commence toujours par formulé le FROM, puis le WHERE, et tu finis par réfléchir au SELECT. Sinon, ya plein de raisons que je ne détaille pas qui font que ça peut poser des problèmes. C'est vrai aussi quand tu lis ce type de requête ;)

tungronul
tungronul
Niveau 9
18 février 2013 à 09:47:05

J'avais oublié. Ya ces tutos qui sont très bons.
http://sql.developpez.com/

pauleta3
pauleta3
Niveau 10
18 février 2013 à 16:56:16

Déjà, il faut bien comprendre ce qu'est une "base de données". (le SQL étant le langage permettant de communiquer avec une base de données)

Une base de données, c'est ce qui va, comme son nom l'indique, contenir toutes les données, et les ranger, dans ce qu'on appele des tables.

Prenons l'exemple d'une base avec 3 tables, la table "personne", la table "metier", la table "PERSONNE_METIER"

Une table est composée de "RUBRIQUES".

Exemple pour nos 3 tables :
PERSONNE
-id_personne
-nom
-prenom
-age

METIER
-id_metier
-nom_du_metier

PERSONNE_METIER
-id_personne_metier
-id_personne
-id_metier

Un id est un identifiant UNIQUE. Ce qu'on appele la "clé primaire". C'est ce qui va garantir l'unicité de tes données.

Je m'explique des homonymes existes. Si tu as 1 Jean Dupond ingénieur et 2 Jean Dupond commercial. Avec "Jean Dupond", dans la table "personne" tu t'y perds. Par contre, si tu cherches "id_personne=1" tu sais que tu parles de l'ingénieur

Enfin bref, si tu fais du SQL, je supposes que tu connais un minimum les BDD (et que tu auras copris pourquoi j'ai pas directement une rubrique "métier" dans "PERSONNE" au lieu d'en faire une table)

Le SQL te permet de COMMUNIQUER avec la bdd.

Au travers de 4 MOTS-CLES
-L'inertion ("INSERT") te permet d'AJOUTER des lignes dans ta bdd
-La modification ("UPDATE") te permets de MODIFIER une ligne
-La suppression ("DELETE") te permets de...
-La selection ("SELECT") te permets de...

Attardons nous sur la sélection. Le reste, c'est peanuts.

La synthaxe se décompose comme cela :
SELECT cequejeveuxselectionner FROM danscettable ;

Si on reprends nos table en exemple :
SELECT id_prenom,nom,prenom,age FROM personne;

Astuces, tu peux selection qu'une seule rubrique ou plusieurs, pas forcément toutes. Et si tu les sélectionnes toutes, tu peux mettre * au lieu de toutes les écrires.

Ainsi : "SELECT id_prenom,nom,prenom,age FROM personne;"
est égale à SELECT * FROM personne;

Que fait cette requete? Elle va sélectionner les id_prenom,nom et prenom,age de toutes les lignes présentes dans la tables.
En gros, elle va te retourner tous le contenu de la table.

Tu ne voulais que les gens dont l'age est supérieur à 23 ans? ou dont le prenom est "jean"? ou dont l'age est supérieur à 23 ET le prénom est "jean"?

Tu ajoutes une "clause".
le mot-clé : WHERE.

SELECT * FROM personne WHERE age>23;

Va te renvoyer toutes les personnes qui ont plus de 23 ans

SELECT * FROM personne WHERE prenom='jean';

Va te renvoyer toutes les personnes se prénommant jean (attention sensible à la casse)

SELECT * FROM personne WHERE (age>23 AND prenom='jean');
Te renvoyer les personne qui ont plus de 23 ans ET qui se prénomme Jean. (C'est a dire que patrick qui à 26 ans, ne sera pas retournée. Ni jean qui à 22 ans)

SELECT * FROM personne WHERE (age>23 OR prenom='jean');
Te renvoie les gens qui ont plus de 23 ans OU qui se prénomme jean.

Jean 22 ans, sera retourner. Tout comme patrick 26 ans. Charles 22 ans lui par contre, il va se faire cuire une oeuf^^

Voila le principe. Si tu veux plus de détails, hésite que ce soit sur les jointures, ou les requetes sur plusieurs tables

EnChanchanDavis
EnChanchanDavis
Niveau 25
18 février 2013 à 18:40:15

Merci beaucoup, j'ai pas le temps de tout lire ce soir, je m'y mettrai plus sérieusement demain soir. Vraiment un grand merci!

EnChanchanDavis
EnChanchanDavis
Niveau 25
20 février 2013 à 00:41:27

Encore merci, j'ai analysé vos 2 post, ça va énormément me servir, j'ai résumé tout ce que tu as écris pauleta3, je suis pas sûr d'avoir le temps de m'approprier ce savoir en quelques minutes et ainsi de réussir mon bac blanc de GRH demain mais au moins je suis sûr que pour le vrai bac je serai prêt! :)

champsDemines
champsDemines
Niveau 10
20 février 2013 à 04:37:44

Au pire tape toi le tuto du siteduzro

NaturalDisaster
NaturalDisaster
Niveau 20
20 février 2013 à 12:43:39

Moi qui suit en GSI, j'ai un peu demal avec les joitnures, pourrais-tu m'aider, s'il te plait ? :noel:

NaturalDisaster
NaturalDisaster
Niveau 20
20 février 2013 à 12:44:11
  • de mal *jointures :hap:
pauleta3
pauleta3
Niveau 10
20 février 2013 à 15:00:51

Lol^^

Le but d'une jointure s'est de lier 2 ou plusieurs tables.

Et ce, en UNE SEULE requete.

Reprenons cette exemple :

Personne
-id_personne
-prenom
-nom
-age
-id_metier

Metier
-id_metier
-nom

En gros plusieurs personnes peuvent avoir le même métier, (relation de 0 à N) donc on met un id_métier dans la table personne. Bon la, je sais pas si je suis clair, mais c'est vraiment la base t'façon...

Tu veux récuperer les personnes ainsi que leur métier
Si tu connais pas les jointures, tu le fais a la barbare :

requete1=SELECT * FROM presonne
requete2=select * FROM metier
//On exécute les deux requetes
//Tu stockes le resultat de requete1 dans un ResultSet //résultat1
//Le resultat de requete2 dans resultat2
tantque pas fin de résultat1
tantque pas fin de resultat2
if resultat1.id_métier=resultat2.id_metier
//C'est le métier qui correspond à cette personne
end
end
end

Ca fonctionne, mais c'est nul^^ Ton SGBD à moyen de le faire tout seul.

Comment ça? Grace aux jointures^^

En gros y'a 2 types de jointures, les jointures externes et les jointures internes.

Les jointures internes sont simples, suffit juste de mettre en relation les deux tables, sans se prendre la tête.

On veux en UNE FOIS recuperer les personnes ET son métier.

Il suffit de mettre en relation les rubriques identiques.

SELECT * FROM personnes,metier WHERE personne.id_metier=metier.id_metier;

Et voila.
dans le FROM, on met le nom des deux tables sur lesquelles ont travaille. le "." permet d'identifier les rubriques. (Deux tables différentes peuvent avoir des noms de rubriques identique. Et ca peux poser problème. (ca marche aussi dans le select)

On aura donc en réponse, pour chaque personne :
id_personne,nom,prenom,age,id_metier,metier

Voila, j'espère que la tu as compris le "principe". Ce que j'ai écris en haut marche très bien, et permets de comprendre le principe. Dans les faits il existe une ecriture "normalisé". Le mot-clé "JOIN"

La requete précédente, est identique à celle-ci :
SELECT * FROM personne NATURAL JOIN metier;

Très simple, le "NATURAL JOIN" recherche automatiquement dans les deux tables les rubriques qui ont le même noms, et fais le lien tout seul.

Cependant, tu peux faire des jointures sur des rubriques qui n'ont pas le même noms.

Dans ce cas, on le spécifie, avec la synthaxe suivante :

SELECT * FROM personne INNER JOIN metier ON personne.id_client=metier.id_client;

Tu auras exactement le même résultat qu'avec les deux requetes précédentes.

Et deuxième cas de jointure, les jointures externes.
Même principe, faire des "lien" entre les tables.

Avec la nuance suivante.
La jointure interne, va prendre tous les "couples" personne-métier.
Si une personne à un métier "vide" ou si un métier n'est exercé par personne, on ne les récupérera pas dans la requete.

Tu peux donc faire le choix de select tous les couples personne-métier PLUS toutes les personnes qui n'ont pas de métier ou bien tous les couples personne-metier PLUS tous les métier qui servent à rien.

Avec "LEFT OUTER JOIN" et "RIGHT OUTER JOIN"

SELECT * FROM personne LEFT OUTER JOIN metier ON personne.id_client=metier.id_client

Il va donc prendre la table qui est a gauche, ici personne et toutes les énumérer. Qu'ils aient un métier ou pas.
si tu remplaces LEFT par RIGHT, il fait la même chose mais avec les métiers.

Voila, j'espère que j'ai été assez clair. C'est compliquer sans exemples! Au pire, reposez des questions^^

NaturalDisaster
NaturalDisaster
Niveau 20
23 février 2013 à 00:23:44

Ok, merci beaucoup :)

Sous forums
  • Métiers & Orientation
  • Histoire
  • Cours et Devoirs
  • Politique
  • Environnement & Nature
  • Philosophie
La vidéo du moment