Les bases du SQL

Apprend les bases du SQL !

Les bases du SQL

Apprend les bases du SQL !

Crée le 24 déc. 2020

SQL

Qu'est-ce que SQL ? (Structured Query Language)

SQL (prononcé sequel en anglais) est un langage de manipulation de bases de données relationelles.

Je précise que je vais mettre les instructions SQL en majuscules, il s'agit d'une convention non obligatoire mais qui a l'avantage de distinguer rapidement les instructions des noms de colonnes et de tables.

Sélection

L'instruction SELECT

SELECT * FROM personne

Sélectionne toutes les colonnes de la table personne.


DISTINCT

N'affiche qu'un exemplaire de chaque ligne identique. Cela permet d'éviter d'obtenir des informations dupliquées.

SELECT DISTINCT nom FROM personne

Selectionne la colonne nom dans la table personne en retirant les doublons.


WHERE

Permet de mettre une condition pour spécifier les lignes à afficher.

Exemple :

SELECT nom FROM personne WHERE prenom = 'Lino'

Selectionne le nom des personnes dont le prénom est Lino.


HAVING

Permet de mettre une condition pour une colonne calculée

Exemple :

SELECT nom FROM personne HAVING age > 25

Sélectionne le nom des personnes ayant un âge supérieur à 25.


CONDITIONS

Pour combiner plusieurs conditions, on peut utiliser AND, OR et NOT.


GROUP BY

Regroupe les lignes ayant des valeurs similaire

Exemple : SELECT COUNT(*) FROM personne GROUP BY pays

Compte le nombre de personne par pays.


ORDER BY

Détermine les colonnes que l'on veut trier. (ASC, DESC pour l'ordre)

Exemple : SELECT nom FROM personne ORDER BY date_naissance

Trie avec la date de naissance (ordre ascendant par défaut)


LIKE

Like sélectionne les lignes en comparant la valeur d'une colonne à une chaîne de caractères.

SELECT * FROM personnes WHERE tel like '06%'

Selectionne les personnes dont le numéro de téléphone commence par 06

%QuelqueChose% (Qui contient ...) %QuelqueChose (Qui finit par ...)


IN

Vérifie qu'une valeur est présente dans une liste


NOT IN

Vérifie qu'une valeur n'est pas présente dans une liste.

SELECT nom, ville FROM personnes WHERE ville NOT IN ('Prague','Miami','Tacos')

Liste des personnes n’habitant pas à Prague, Miami ou Tacos


BETWEEN

Peut être utilisé pour vérifier si une valeur (chaine de caractères, date, chiffre) est entre 2 valeurs.

SELECT nom FROM personne WHERE age BETWEEN 10 and 20

Exemple : Liste des personnes dont l'age est compris entre 10 et 20


FONCTIONS

COUNT () compte le nombre de lignes

MIN () trouve la valeur minimale d'une colonne

MAX () trouve la valeur maximale d'une colonne

SUM () additionne des valeurs

AVG () calcule la moyenne

Elles ne sont pas toutes là, mais ce sont les plus courantes. Rien ne t'empêche d'en savoir plus en cliquant ici (et sur ce site tu peux également encore en découvrir d'autres qui ne figurent pas dans ce tuto).

Exemple : SELECT AVG(age) FROM personne

Sélectionne l'âge moyen des personnes.


Insertion

Ajout d'une personne (INSERT)

Pour une table de la forme suivante : Diagramme table personne

Exemple sur toutes les colonnes (attention à l'ordre, il est défini par l'ordre des colonnes dans la table) :

INSERT INTO personne VALUES ('Robert', 'Dupont')

Exemple avec colonnes précisées (permet de définir un ordre) :

INSERT INTO personne (nom, prenom) VALUES ('Dupont', 'Robert')

Exemple avec plusieurs insertions à la fois :

INSERT INTO client (prenom, nom) VALUES ('Melanie', 'Cruz'), ('Simon', 'Lacite')

De manière générale précisez les colonnes : cela vous permet de ne pas vous tromper sur l'ordre et de clarifier la lecture du code


MODIFICATION

Exemple pour un changement d'âge :

UPDATE personne SET age = 6

Il est possible d'ajouter des conditions dans un update (comme WHERE)

SUPPRESSION

Permet de supprimer une ou des ligne(s)

DELETE from personne WHERE prenom = 'Enzo'

JOINTURE

Comme je l'ai dit précédement, SQL est un langage de manipulation de base de donnée relationelle.

Mais c'est quoi une base de donnée relationelle ?

Il existe plusieurs types de bases de données, comme MongoDB qui est une base de données distribuée (NoSQL) et il existe aussi des bases de données relationelle comme MySQL (c'est ce que nous voyons actuellement).

Bon tu l'auras deviné les jointures vont nous permettre de faire comuniquer nos tables via des relations avec des cardinalités (terme que nous verrons eventuellement dans un tuto de conception de BDD).

Bon maintenant des exemples de relations (tirés du concepteur phpMyAdmin) : Exemples de relations

Exemple en SQL :

SELECT plat.libelle, plat_ingredient.id_ingredient
FROM plat 
INNER JOIN plat_ingredient 
ON plat.id_plat = plat_ingredient.id_plat 
WHERE plat_ingredient.id_plat = 2

On sélectionne le nom et l'id des ingrédients d'un plat dont l'id est 2. Les ingrédients étant dans une autre table, il faut réaliser une jointure dans laquelle on spécifie que id du plat est le même pour le plat et pour les ingrédients. Cette jointure est réalisée grâce à l'instruction JOIN.

Pour faire ceci, dans votre BDD vous devez avoir comme l'exemple ci-dessus une table avec une clé étrangère c'est-à-dire un id obligatoire correspondant à un élément dans une autre table et permettant d'y faire référence (ici, le champ id_plat dans la table plat_ingredient).

Il est possible de faire plusieurs jointures à la fois pour accéder à d'autres tables : Exemple jointures multiples Ici nous avons "id_plat" et "id_ingredient" donc si on veut ajouter une ligne dans "plat_ingredient" nous devons mettre l'id d'un plat existant et d'un ingrédient existant pour affilier un ingrédient à un plat.

Bon pour revenir aux JOIN, il en existe plusieurs types :

INNER JOIN

CROSS JOIN

LEFT JOIN

RIGHT JOIN

FULL JOIN

SELF JOIN

NATURAL JOIN

Pour l'instant nous nous arrêterons ici, le but est de montrer les bases mais un lien est dispo en cliquant sur le nom de chaque jointure pour en savoir plus.

La DB utilisée dans ce tuto est disponible ici : https://github.com/DogLoc/GCA-SQL.

FIN

Voilà c'est tout pour ce tuto je suis disponible sur le discord GCA si vous avez des questions !

Envie de lire la suite de ce tutoriel ?

Connecte-toi dès maintenant, et accède entièrement à tous les tutoriels de GCA !

#SQL

Écrit par LocDog#0101

4

Sommaire