2.1 Introduction à SQL

Si vous avez une base de données (DB) et qu'elle contient une table contenant des données, la tâche la plus courante consiste à rechercher certaines données dans cette table. C'est pour cela que SQL a été inventé il y a 40 ans.

SQL signifie langage de requête structuré .

La requête SQL la plus simple ressemble à ceci :

SELECT column1, column2, … columnN FROM table

Disons que vous avez une table d'employés avec une liste des employés de votre startup :

identifiant nom profession salaire âge join_date
1 Ivanov Ivan Programmeur 100 000 25 2012-06-30
2 Petrov Petr Programmeur 80 000 23 2013-08-12
3 Ivanov Sergueï Testeur 40 000 trente 2014-01-01
4 Rabinovitch Moisha Directeur 200 000 35 2015-05-12
5 Kirienko Anastasia Responsable administratif 40 000 25 2015-10-10
6 Vaska chat 1 000 3 2018-01-01

Vous voulez écrire une requête qui employee namesles affichera également salaries, alors vous devez écrire une requête :

SELECT name, salary FROM employee

Vous obtiendrez le résultat de la requête :

nom salaire
Ivanov Ivan 100 000
Petrov Petr 80 000
Ivanov Sergueï 40 000
Rabinovitch Moisha 200 000
Kirienko Anastasia 40 000
Vaska 1 000

Si vous souhaitez afficher toutes les colonnes de votre table , au lieu de lister les noms de toutes les colonnes, vous pouvez simplement écrire un astérisque. Exemple:

SELECT * FROM employee

Vous obtiendrez le résultat de la requête :

identifiant nom profession salaire âge join_date
1 Ivanov Ivan Programmeur 100 000 25 2012-06-30
2 Petrov Petr Programmeur 80 000 23 2013-08-12
3 Ivanov Sergueï Testeur 40 000 trente 2014-01-01
4 Rabinovitch Moisha Directeur 200 000 35 2015-05-12
5 Kirienko Anastasia Responsable administratif 40 000 25 2015-10-10
6 Vaska chat 1 000 3 2018-01-01

2.2 Vue avancée de la requête SQL

Le langage SQL a été conçu de la manière la plus conviviale possible.

Tout d'abord, la casse du texte de la requête n'a pas d'importance . Vous pouvez écrire SELECT, Select ou select et tout fonctionnera. Deuxièmement, les sauts de ligne ne sont en aucun cas pris en compte . Le SGBD transformera toujours la requête en une longue chaîne, vous pouvez donc l'écrire comme vous le souhaitez.

Comme vous l'avez probablement déjà deviné, les mots clés SELECT et FROM ne sont pas limités. Sinon, il n'y aurait pas autant de discussions autour de SQL. La vue étendue de la requête SQL ressemble à ceci :

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting

A l'aide d'un mot-clé, WHEREvous pouvez définir une condition / un filtre pour les lignes sélectionnées.

Exemple 1 . Écrivons une requête qui sélectionnera les employés avec la profession "Programmeur":

SELECT * FROM employee WHERE occupation = 'Programmer'

Et nous obtenons le résultat de requête suivant :

identifiant nom profession salaire âge join_date
1 Ivanov Ivan Programmeur 100 000 25 2012-06-30
2 Petrov Petr Programmeur 80 000 23 2013-08-12

Comme vous pouvez le voir, à la suite de l'exécution de la requête, seules les lignes où la profession de l'employé s'appelle "Programmeur" sont affichées.

Les mots-clés GROUP BY, ORDER BYet HAVINGnous les couvrirons dans les prochaines conférences. Et en cela, nous analyserons quelques exemples supplémentaires avec le mot WHERE.

Exemple 2 . Écrivons maintenant une requête qui nous montrera tous les employés avec un salaire supérieur à 100K. Voici à quoi cela ressemblera :

SELECT * FROM employee WHERE salary > 100000

Nous obtenons le résultat de requête suivant :

identifiant nom profession salaire âge join_date
4 Rabinovitch Moisha Directeur 200 000 35 2015-05-12

Exemple 3 . Essayons maintenant quelque chose de plus difficile. Comment afficher tous les employés qui ont été embauchés en 2015 ? Et comme ça :

SELECT * FROM employee WHERE YEAR(join_date) = 2015

Nous obtenons le résultat de requête suivant :

identifiant nom profession salaire âge join_date
4 Rabinovitch Moisha Directeur 200 000 35 2015-05-12
5 Kirienko Anastasia Responsable administratif 40 000 25 2015-10-10

Dans cette requête, nous utilisons une fonction spéciale YEAR()qui nous permet d'obtenir l'année à partir d'une date, puis de comparer l'année de la date avec le nombre 2015.

2.3 Commentaires dans les requêtes SQL

Et un autre point important concerne les commentaires dans les requêtes SQL. Les commentaires sont une chose très utile. Premièrement, vous pouvez y écrire des explications et/ou vos idées. Deuxièmement, à l'aide de commentaires, vous pouvez désactiver le code brisé. Ou commentez l'ancienne version du code.

SQL, comme Java, a des commentaires sur une seule ligne et sur plusieurs lignes. De plus, un commentaire multiligne ressemble à Java. Son aspect :


/*
 	comment text
 	comment text
 	comment text
*/
        

Bien sûr, il peut également être utilisé en une seule ligne. Exemple:


/*comment text*/
        

Il existe également un type de commentaire "du début à la fin de la ligne", similaire au Java "//". Ce n'est qu'en SQL que vous devez écrire deux caractères moins et un espace . Vue générale d'un tel commentaire :

-- comment text

Exemple:


        SELECT * FROM employee -- WHERE YEAR(join_date) = 2015 
        

Dans l'exemple ci-dessus, nous avons commenté la condition de requête, donc MySQL n'exécutera que la requête :

SELECT * FROM employee

2.4 Prononciation SQL

Si vous communiquez avec des clients étrangers ou passez un entretien en ligne pour une entreprise américaine, vous serez peut-être interrogé sur votre expérience avec le langage séquentiel . Vous direz honnêtement que vous n'avez pas travaillé avec lui et échouerez immédiatement l'entretien.

Et le fait est que le langage SQL s'appelait à l'origine SEQUEL, qui se prononce comme une suite (ˈsēkwəl), donc très souvent aux États-Unis et dans d'autres sources anglophones, vous n'entendrez pas "escuel", mais "sequel". SQL est écrit et la suite est lue. Voici un tel paradoxe historique.