Informatique: Un Bon Développeur Trouvera Toujours Une Technique Simple Pour Faire Le Travail À Sa Place
Informatique: Un Bon Développeur Trouvera Toujours Une Technique Simple Pour Faire Le Travail À Sa Place
Informatique: Un Bon Développeur Trouvera Toujours Une Technique Simple Pour Faire Le Travail À Sa Place
Informatique
SQL 1
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.
SQL SELECT
L’utilisation la plus courante de SQL consiste à lire des données issues de la
base de données.
SELECT *
FROM table
WHERE condition
GROUP BY expression
HAVING condition
{ UNION | INTERSECT | EXCEPT }
ORDER BY expression
SQL DISTINCT
Pour éviter des redondances dans les résultats il faut simplement ajouter
DISTINCT après le mot SELECT.
SQL 2
SQL WHERE
La commande WHERE dans une requête SQL permet d’extraire les lignes d’une
base de données qui respectent une condition. Cela permet d’obtenir
uniquement les informations désirées.
SQL IN
C’est une méthode simple pour vérifier si une colonne est égale à une valeur
OU une autre valeur OU une autre valeur et ainsi de suite, sans avoir à utiliser
de multiple fois l’opérateur OR.
SELECT nom_colonne
FROM table
WHERE nom_colonne IN ( valeur1, valeur2, valeur3, ... )
SQL BETWEEN
L’opérateur BETWEEN est utilisé dans une requête SQL pour sélectionner un
intervalle de données dans une requête utilisant WHER
SQL 3
SELECT *
FROM table
WHERE nom_colonne BETWEEN 'valeur1' AND 'valeur2'
SQL LIKE
L’opérateur LIKE est utilisé dans la clause WHERE des requêtes SQL. Ce mot-
clé permet d’effectuer une recherche sur un modèle particulier.
SELECT *
FROM table
WHERE colonne LIKE modele
Dans cet exemple le “modèle” n’a pas été défini, mais il ressemble très
généralement à l’un des exemples suivants:
LIKE ‘%a’ : le caractère “%” est un caractère joker qui remplace tous les
autres caractères. Ainsi, ce modèle permet de rechercher toutes les
chaines de caractère qui se termine par un “a”.
LIKE ‘%a%’ : ce modèle est utilisé pour rechercher tous les enregistrement
qui utilisent le caractère “a”.
LIKE ‘a_c’ : peu utilisé, le caractère “_” (underscore) peut être remplacé par
n’importe quel caractère, mais un seul caractère uniquement (alors que le
symbole pourcentage “%” peut être remplacé par un nombre incalculable
de caractères . Ainsi, ce modèle permet de retourner les lignes “aac”, “abc”
ou même “azc”.
SQL 4
SELECT *
FROM `table`
WHERE nom_colonne IS NULL
SELECT *
FROM `table`
WHERE nom_colonne IS NOT NULL
SQL GROUP BY
Il est par exemple possible de liste regrouper les ventes par clients identiques
et d’obtenir le coût total des achats pour chaque client.
Pour obtenir le coût total de chaque client en regroupant les commandes des
mêmes clients, il faut utiliser la requête suivante :
SQL 5
SELECT client, SUM(tarif)
FROM achat
GROUP BY client
SQL HAVING
SQL 6
Dans cette table on souhaite récupérer la liste des clients qui ont commandé
plus de 40€, toute commandes confondu alors il est possible d’utiliser la
requête suivante :
SQL ORDER BY
SQL 7
La commande ORDER BY permet de trier les lignes dans un résultat d’une
requête SQL. Il est possible de trier les données sur une ou plusieurs colonnes,
par ordre ascendant ou descendant.
Par défaut les résultats sont classés par ordre ascendant, toutefois il est
possible d’inverser l’ordre en utilisant le suffixe DESC après le nom de la
colonne.
SQL AS (alias)
Dans le langage SQL il est possible d’utiliser des alias pour renommer
temporairement une colonne ou une table dans une requête. Cette astuce est
particulièrement utile pour faciliter la lecture des requêtes
SQL LIMIT
La clause LIMIT est à utiliser dans une requête SQL pour spécifier le nombre
maximum de résultats que l’ont souhaite obtenir. Cette clause est souvent
associée à un OFFSET
SQL 8
SELECT *
FROM table
LIMIT 10
SELECT *
FROM table
LIMIT 5, 10;
SQL UNION
Cette commande permet de concaténer les résultats de 2 requêtes ou plus.
Pour l’utiliser il est nécessaire que chacune des requêtes à concaténer
retournes le même nombre de colonnes, avec les mêmes types de données et
dans le même ordre.
SQL 9
SQL INTERSECT
La commande SQL INTERSECT permet d’obtenir l’intersection des résultats de
2 requêtes. Cette commande permet donc de récupérer les enregistrements
communs à 2 requêtes.
SQL 10
EXCEPT : PostgreSQL
Cette requête permet de lister les résultats du table 1 sans inclure les
enregistrements de la table 1 qui sont aussi dans la table 2.
SQL UPDATE
La commande UPDATE permet d’effectuer des modifications sur des lignes
existantes.
SQL 11
UPDATE table
SET nom_colonne_1 = 'nouvelle valeur'
WHERE condition
UPDATE client
SET rue = '49 Rue Ameline',
ville = 'Saint-Eustache-la-Forêt',
code_postal = '76210'
WHERE id = 2
SQL DELETE
La commande DELETE en SQL permet de supprimer des lignes dans une table.
Avec MySQL, si une base de données porte déjà ce nom, la requête retournera
une erreur. Pour éviter d’avoir cette erreur, il convient d’utiliser la requête
suivante pour MySQL
SQL 12
En SQL, la commande DROP DATABASE permet de supprimer totalement une
base de données et tout ce qu’elle contient. Cette commande est à utiliser
avec beaucoup d’attention car elle permet de supprimer tout ce qui est inclus
dans une base: les tables, les données, les index …
Jointure SQL
SQL 13
Les jointures en SQL permettent d’associer plusieurs tables dans une même
requête. Cela permet d’exploiter la puissance des bases de données
relationnelles pour obtenir des résultats qui combinent les données de
plusieurs tables de manière efficace.
Types de jointures
LEFT JOIN (ou LEFT OUTER JOIN : jointure externe pour retourner tous
les enregistrements de la table de gauche LEFT = gauche) même si la
condition n’est pas vérifié dans l’autre table.
RIGHT JOIN (ou RIGHT OUTER JOIN : jointure externe pour retourner tous
les enregistrements de la table de droite RIGHT = droite) même si la
condition n’est pas vérifié dans l’autre table.
FULL JOIN (ou FULL OUTER JOIN : jointure externe pour retourner les
résultats quand la condition est vrai dans au moins une des 2 tables.
SQL 14
SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.fk_id
SELECT *
FROM table1
CROSS JOIN table2
SQL 15
SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.fk_id
SQL 16
SELECT *
FROM table1
RIGHT JOIN table2 ON table1.id = table2.fk_id
SQL Sous-requête
Dans le langage SQL une sous-requête (aussi appelé “requête imbriquée” ou
“requête en cascade”) consiste à exécuter une requête à l’intérieur d’une autre
requête.
SELECT *
FROM `table`
WHERE `nom_colonne` = (
SELECT `valeur`
FROM `table2`
LIMIT 1
)
Imaginons un site web qui permet de poser des questions et d’y répondre. Un
tel site possède une base de données avec une table pour les questions et
une autre pour les réponses.
SQL 17
Avec une telle application, il est peut-être utile de connaître la question liée à
la dernière réponse ajoutée sur l’application. Cela peut être effectué via la
requête SQL suivante:
SELECT *
FROM `question`
WHERE q_id = (
SELECT r_fk_question_id
FROM `reponse`
ORDER BY r_date_ajout DESC
LIMIT 1
)
SQL 18
Requête imbriquée qui retourne une colonne
Une requête imbriquée peut également retournée une colonne entière. Dès
lors, la requête externe peut utiliser la commande IN pour filtrer les lignes qui
possèdent une des valeurs retournées par la requête interne.
SELECT *
FROM `table`
WHERE `nom_colonne` IN (
SELECT `colonne`
FROM `table2`
WHERE `cle_etrangere` = 36
)
Imaginons maintenant que l’ont souhaite obtenir les questions liées à toutes
les réponses comprises entre 2 dates. Ces questions peuvent être récupérée
par la requête SQL suivante:
SELECT *
FROM `question`
WHERE q_id IN (
SELECT r_fk_question_id
FROM `reponse`
WHERE r_date_ajout BETWEEN '2013-01-01' AND '2013-12-31'
)
SQL ALL
Dans le langage SQL, la commande ALL permet de comparer une valeur dans
l’ensemble de valeurs d’une sous-requête. En d’autres mots, cette commande
permet de s’assurer qu’une condition est “égale”, “différente”, “supérieure”,
SQL 19
“inférieure”, “supérieure ou égale” ou “inférieure ou égale” pour tous les
résultats retourné par une sous-requête.
SELECT *
FROM table1
WHERE condition > ALL (
SELECT *
FROM table2
WHERE condition2
)
SQL ANY
Dans le langage SQL, la commande ANY (ou SOME permet de comparer une
valeur avec le résultat d’une sous-requête. Il est ainsi possible de vérifier si
une valeur est “égale”, “différente”, “supérieur”, “supérieur ou égale”, “inférieur”
ou “inférieur ou égale” pour au moins une des valeurs de la sous-requête.
SELECT *
FROM table1
WHERE condition > ANY (
SELECT *
FROM table2
WHERE condition2
)
SQL 20