9 juin 2024
Introduction à SQL
Le SQL (Structured Query Language) est un langage permettant de communiquer avec une base de données. Ce langage informatique est notamment très utilisé par les développeurs web pour communiquer avec les données d’un site web.
Le cours à pour but d’apprendre les principales commandes SQL telles que:
SELECT, INSERT INTO, UPDATE …
Chaque commande SQL est présentée par des exemples.
Système de gestion de base de données (SGBD)
Chaque SGBD possède ses propres spécificités et caractéristiques. Pour présenter ces différences, les logiciels de gestion de bases de données sont cités, tels que : MySQL, PostgreSQL, SQLite, Microsoft SQL Server ou encore Oracle.
Des SGBD de type NoSQL sont également présentés, tel que Cassandra, Redis ou MongoDB.
1# Le SELECT
Commençons par le plus commun d’entre eux, le SELECT est-là pour sélectionner des éléments dans la base de données. On peut lui passer des conditions pour qu’il nous retourne seulement un élément bien spécifique, c’est la requête la plus utilisée en SQL.
Voyons à quoi ça ressemble :
SELECT ma_colonne FROM ma_table
Dans l’exemple ci-dessus, on sélectionne (SELECT) une colonne (ma_colonne) dans (FROM) la table ma_table.
Donc imaginons, nous avons une table nommée « utilisateur » qui contient 3 colonnes « email », « mot_de_passe » et « id » qui auront comme entrée :
Id | mot_de_passe | |
1 | [email protected] | exemple |
2 | [email protected] | test |
Avec notre exemple, ça donnerait ceci :
SELECT email FROM utilisateur
Le résultat nous retournerait toutes les instances de la colonne « email » soit :
Nous pouvons également sélectionner plusieurs colonnes :
SELECT email, mot_de_passe FROM utilisateur
mot_de_passe | |
[email protected] | exemple |
[email protected] | test |
Et pour finir, dans la sélectionnent de colonne, on peut tout sélectionner avec un simple « * »
SELECT * FROM utilisateur
Id | mot_de_passe | |
1 | [email protected] | exemple |
2 | [email protected] | test |
Comme énoncé plus haut, nous pouvons lui mettre des conditions pour sélectionner seulement une instance particulière. Pour cela, nous allons utiliser la condition « WHERE ». Toujours avec notre exemple, voyons comment cela fonctionne :
SELECT email FROM utilisateur WHERE email =
[email protected]
Le résultat sera ceci :
[email protected] |
Voici une structure possible en SQL avec un SELECT qui prend plusieurs entrée :
SELECT *
FROM table
WHERE condition
GROUP BY expression
HAVING condition
{ UNION | INTERSECT | EXCEPT }
ORDER BY expression
LIMIT count
OFFSET start
À noter : cette requête imaginaire sert principalement d’aide-mémoire pour savoir dans quel ordre sont utilisé chacune des commandes au sein d’une requête SELECT
2# INSERT INTO
L’insertion de données dans une table s’effectue à l’aide de la commande INSERT INTO. Cette commande permet au choix d’inclure une seule ligne à la base existante ou plusieurs lignes d’un coup.
Pour insérer des données dans une base, il y a 2 syntaxes principales :
Insérer une ligne en indiquant les informations pour chaque colonne existante (en respectant l’ordre)
Insérer une ligne en spécifiant les colonnes que vous souhaiter compléter. Il est possible d’insérer une ligne renseignant seulement une partie des colonnes.
INSERT INTO nom_table VALUES ('valeur_1', 'valeur_2', etc)
Cette syntaxe à des avantages comme des inconvénients :
1. Elle est rapide à mettre en place, mais nous incite à devoir remplir tous les champs de notre table SQL.
2. On n’entre pas le nom des colonnes, pas de possibilité de faire des fautes de frappe.
3. L’ordre doit respecter celui de la table sinon les données seront envoyées dans les mauvaises colonnes.
Prenons un exemple simple à comprendre tout en gardant notre table utilisateur :
INSERT INTO utilisateur VALUES (‘
[email protected]
’, ‘password’)
Cette syntaxe est correcte, elle entrera dans notre table SQL les données dans l’ordre. Donc nous aurions ceci dans notre table :
Id | mot_de_passe | |
1 | [email protected] | exemple |
2 | [email protected] | test |
3 | [email protected] | password |
Maintenant, inversion les valeurs :
INSERT INTO utilisateur VALUES (‘password’, ‘
[email protected]
’)
Id | mot_de_passe | |
1 | [email protected] | exemple |
2 | [email protected] | test |
3 | password | [email protected] |
Le résultat n’est pas celui que l’on voudrait, l’ordre est primordial sans nom de colonne !
Maintenant, gardons notre exemple, mais en spécifiant les noms de colonnes :
INSERT INTO utilisateur (email, mot_de_passe) VALUES (‘
[email protected]
’, ‘password’)
Le résultat sera le même que notre INSERT INTO dans l’ordre, mais si vous voulions seulement entrer l’email dans notre table, il faudrait entrer la requête comme suit :
INSERT INTO utilisateur (email) VALUES (‘
[email protected]
’)
Il est également possible d’insérer plusieurs données dans notre table avec la requête INSERT INTO voyons ça de plus près :
INSERT INTO utilisateur (email, mot_de_passe) VALUES
(‘
[email protected]
’, ‘passord1’),
(‘
[email protected]
’, ‘passord2’),
(‘
[email protected]
’, ‘passord2’) ;
Le résultat serait concluant, nous aurions bien toutes les données insérées !
Id | mot_de_passe | |
1 | [email protected] | exemple |
2 | [email protected] | test |
3 | [email protected] | password |
4 | [email protected] | passord1 |
5 | [email protected] | passord2 |
6 | [email protected] | passord3 |
3# UPDATE
La commande UPDATE permet d’effectuer des modifications sur des lignes existantes. Très souvent cette, commande est utilisée avec WHERE pour spécifier sur quelles lignes doivent porter la ou les modifications.
UPDATE table
SET nom_colonne = 'nouvelle valeur'
WHERE condition
Cette syntaxe permet d’attribuer une nouvelle valeur à la colonne nom_colonne pour les lignes qui respectent la condition stipulée avec WHERE. Il est aussi possible d’attribuer la même valeur à la colonne nom_colonne pour toutes les lignes d’une table si la condition WHERE n’était pas utilisée.
À noter, pour spécifier en une seule fois plusieurs modifications, il faut séparer les attributions de valeur par des virgules. Ainsi, la syntaxe deviendrait la suivante :
UPDATE utilisateur
SET Email =
[email protected]
, mot_de_passe = ‘nouveau_mot_de_passe’
WHERE Email =
[email protected]
Id | mot_de_passe | |
1 | [email protected] | exemple |
2 | [email protected] | test |
3 | [email protected] | password |
4 | [email protected] | passord1 |
5 | [email protected] | passord2 |
6 | [email protected] | nouveau_mot_de_passe |
Pour modifier toutes les lignes d’une colonne, il suffit de ne pas spécifier de condition avec un WHERE.
UPDATE utilisateur SET mot_de_passe = pareil_partout
Id | mot_de_passe | |
1 | [email protected] | pareil_partout |
2 | [email protected] | pareil_partout |
3 | [email protected] | pareil_partout |
4 | [email protected] | pareil_partout |
5 | [email protected] | pareil_partout |
6 | [email protected] | pareil_partout |
4# DELETE
La commande DELETE en SQL permet de supprimer des lignes dans une table. En utilisant cette commande associée à WHERE, il est possible de sélectionner les lignes concernées qui seront supprimées.
Mise en garde : Avant d’essayer de supprimer des lignes, il est recommandé d’effectuer une sauvegarde de la base de données, ou tout du moins de la table concernée par la suppression. Ainsi, s’il y a une mauvaise manipulation, il est toujours possible de restaurer les données.
DELETE FROM table WHERE condition
Toujours avec notre table utilisateur qui est fictif, nous voudrions supprimer l’utilisateur 6. Pour ce faire, nous procéderions comme suit :
DELETE FROM utilisateur WHERE Id = 6
Id | mot_de_passe | |
1 | [email protected] | pareil_partout |
2 | [email protected] | pareil_partout |
3 | [email protected] | pareil_partout |
4 | [email protected] | pareil_partout |
5 | [email protected] | pareil_partout |
Le WHERE permet de faire passer tout un tas de condition, nous pourrions par exemple supprimer seulement les lignes qui ont une valeur monétaire inférieure à 100.
Id | mot_de_passe | valeur | |
1 | [email protected] | pareil_partout | 1000 |
2 | [email protected] | pareil_partout | 90 |
3 | [email protected] | pareil_partout | 100 |
4 | [email protected] | pareil_partout | 85 |
5 | [email protected] | pareil_partout | 10 |
DELETE FROM utilisateur WHERE valeur < 100
Id | mot_de_passe | valeur | |
1 | [email protected] | pareil_partout | 1000 |
3 | [email protected] | pareil_partout | 100 |
Et pour finir, si nous voulions supprimer toutes les données de notre table utilisateur, nous ferions comme ça :
DELETE FROM utilisateur
Il existe également une autre façon de faire avec TRUNCATE :
TRUNCATE TABLE utilisateur
La différence est que DELETE ne réinitialise pas l’auto-incrémentassions alors que TRUNCATE, si.
J'espère que cette formation vous aura été utile et que vous aurez appris des choses !
Mots clés:
intro sql
Cours Du Dev
Recevez les dernières formations disponibles en vous inscrivant à la newsletter
Créé par arkunis