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: 

SELECTINSERT INTOUPDATE … 

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 :

 

IdEmailmot_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 :

 

Email
[email protected]
[email protected]

 

Nous pouvons également sélectionner plusieurs colonnes :

 

SELECT email, mot_de_passe FROM utilisateur

 

Emailmot_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

 

IdEmailmot_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
[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 : 

 

IdEmailmot_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]’)

 

IdEmailmot_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 ! 

 

IdEmailmot_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]

 

IdEmailmot_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

 

IdEmailmot_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

 

IdEmailmot_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.

 

IdEmailmot_de_passevaleur
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

 

IdEmailmot_de_passevaleur
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