SQL - Expressions

Bonjour là, futurs mage SQL ! Aujourd'hui, nous allons entreprendre un voyage passionnant à travers le monde des expressions SQL. Ne vous inquiétez pas si vous êtes nouveau dans le domaine de la programmation - je serai votre guide amical, et nous avancerons pas à pas. À la fin de ce tutoriel, vous serez en mesure de créer des expressions SQL comme un pro !

SQL - Expressions

Qu'est-ce qu'une Expression SQL ?

Commençons par les bases. Une expression SQL est comme une formule ou un calcul que vous pouvez utiliser dans vos requêtes SQL. C'est une combinaison d'un ou plusieurs valeurs, d'opérateurs et de fonctions SQL qui évaluent une valeur. Pensez-y comme la sauce secrète qui ajoute de la saveur à vos requêtes de base de données !

Par exemple, disons que vous avez un tableau de produits, et que vous souhaitez appliquer une réduction de 10% à tous les prix. Vous pourriez utiliser une expression comme celle-ci :

SELECT product_name, price, price * 0.9 AS discounted_price
FROM products;

Dans cette requête, price * 0.9 est notre expression SQL. Elle prend le prix et le multiplie par 0.9 (ce qui est équivalent à soustraire 10%).

Expressions Booléennes SQL

Passons maintenant aux expressions booléennes. Ce sont comme les questions vrai/faux du monde SQL. Elles resulteront toujours en TRUE, FALSE ou NULL (ce qui signifie "inconnu").

Les expressions booléennes sont超级 utiles lorsque vous souhaitez filtrer vos données ou prendre des décisions dans vos requêtes. Voici quelques opérateurs couramment utilisés dans les expressions booléennes :

Opérateur Description
= Égal à
<> Différent de
> Supérieur à
< Inférieur à
>= Supérieur ou égal à
<= Inférieur ou égal à
AND ET logique
OR OU logique
NOT NON logique

Voyons cela en action avec quelques exemples :

-- Trouver tous les produits dont le prix est supérieur à 100$
SELECT * FROM products WHERE price > 100;

-- Trouver toutes les commandes des 30 derniers jours
SELECT * FROM orders WHERE order_date >= CURRENT_DATE - INTERVAL '30 days';

-- Trouver tous les clients actifs dans New York ou en Californie
SELECT * FROM customers
WHERE (state = 'NY' OR state = 'CA') AND is_active = TRUE;

Dans chacun de ces exemples, la partie après le mot-clé WHERE est une expression booléenne. C'est comme poser une question oui/non pour chaque ligne de données.

Expressions Numériques SQL

Passons aux expressions numériques. Ce sont comme les problèmes de mathématiques de SQL - elles impliquent des nombres et des opérations arithmétiques.

Voici les opérateurs arithmétiques de base que vous pouvez utiliser :

Opérateur Description
+ Addition
- Soustraction
* Multiplication
/ Division
% Modulo (reste)

Jetons un œil à quelques exemples :

-- Calculer la valeur totale de l'inventaire
SELECT product_name, quantity, price, quantity * price AS total_value
FROM inventory;

-- Calculer l'âge des employés
SELECT first_name, last_name, EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM birth_date) AS age
FROM employees;

-- Calculer le pourcentage du budget dépensé
SELECT project_name, budget, spent, (spent / budget) * 100 AS percent_spent
FROM projects;

Dans ces exemples, nous utilisons des expressions numériques pour effectuer des calculs sur nos données. Cela est incroyablement utile pour tirer de nouvelles informations de vos données existantes.

Expressions de Date SQL

Enfin, parlons des expressions de date. traiter avec des dates dans SQL peut être délicat, mais c'est également extrêmement puissant. Les expressions de date vous permettent de manipuler et de comparer des dates dans vos requêtes.

Voici quelques fonctions de date courantes :

Fonction Description
CURRENT_DATE Retourne la date actuelle
CURRENT_TIMESTAMP Retourne la date et l'heure actuelles
DATE_ADD Ajoute un intervalle de temps spécifié à une date
DATE_SUB Soustrait un intervalle de temps spécifié d'une date
DATEDIFF Calcule la différence entre deux dates

Voyons ces fonctions en action :

-- Trouver les commandes passées aujourd'hui
SELECT * FROM orders WHERE order_date = CURRENT_DATE;

-- Trouver les clients qui n'ont pas passé de commande au cours des 90 derniers jours
SELECT * FROM customers
WHERE customer_id NOT IN (
SELECT DISTINCT customer_id
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '90 days'
);

-- Calculer combien de jours avant chaque commande a été passée
SELECT order_id, order_date,
DATEDIFF(CURRENT_DATE, order_date) AS days_ago
FROM orders;

Ces expressions de date vous permettent d'effectuer des opérations complexes avec des dates, ce qui est crucial pour analyser les données basées sur le temps.

Et voilà, les amis ! Nous avons fait le voyage à travers le territoire des expressions SQL, de la logique booléenne aux calculs numériques en passant par le voyage dans le temps (presque). Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec ces expressions dans vos propres requêtes.

Avant de clore, voici une petite blague SQL pour vous : Pourquoi l'administrateur de base de données a-t-il quitté sa femme ? Elle avait des relations à un à plusieurs ! (Ba dum tss !)

Bonne requête, et que vos jointures soient rapides et que vos requêtes ne se déclarent jamais en timeout !

Credits: Image by storyset