0% ont trouvé ce document utile (0 vote)
4 vues12 pages

3 SQL

Rappel pour les élèves SI sur les principales fonctions de l'annexe 2024-2025.

Transféré par

wbenamor799
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues12 pages

3 SQL

Rappel pour les élèves SI sur les principales fonctions de l'annexe 2024-2025.

Transféré par

wbenamor799
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

🗄️ SQL - Résumé
Types, opérateurs, fonctions, requêtes, contraintes et définition de données

📊 Types de données SQL

Types numériques et chaînes

INT, DECIMAL, CHAR, VARCHAR, TEXT, DATE, TIME, DATETIME

CREATE TABLE exemple_types (


id INT,
prix DECIMAL(10,2),
code CHAR(5),
nom VARCHAR(100),
description TEXT,
date_creation DATE,
heure_rdv TIME,
date_heure DATETIME
);

🔍 Aperçu des types :

📌 INT : nombres entiers (ex: 42)


📌 DECIMAL(10,2) : nombres décimaux (ex: 1234.56)
📌 CHAR(5) : texte fixe de 5 caractères (ex: "ABC12")
📌 VARCHAR(100) : texte variable max 100 car
📌 TEXT : texte long (articles, commentaires)
📌 DATE : '2025-05-29'
📌 TIME : '14:30:00'
📌 DATETIME : '2025-05-29 14:30:00'

🔍 Opérateurs SQL

localhost/2025-2026/BaseDonné[Link] 1/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

Opérateurs de comparaison

=, !=, >, <, >=, <=, IN, BETWEEN, LIKE, IS

-- Égalité
SELECT * FROM clients WHERE age = 25;

-- Différent
SELECT * FROM produits WHERE stock != 0;

-- Supérieur / Inférieur
SELECT * FROM commandes WHERE total > 100;

-- IN (dans une liste)


SELECT * FROM employes WHERE ville IN ('Paris', 'Lyon', 'Marseille');

-- BETWEEN (entre deux valeurs)


SELECT * FROM articles WHERE prix BETWEEN 10 AND 50;

-- LIKE (recherche de motif)


SELECT * FROM clients WHERE nom LIKE 'D%';
SELECT * FROM emails WHERE adresse LIKE '%@[Link]';

-- IS NULL
SELECT * FROM commandes WHERE date_livraison IS NULL;

🔍 Exemples concrets :

LIKE 'D%' → Dupont, Durand, Dumas


LIKE '%on%' → Dupont, Martin, Simon
BETWEEN 10 AND 50 → valeurs 10, 20, 35, 50
IN ('A','B','C') → A, B ou C

Opérateurs logiques

AND, OR, NOT

SELECT * FROM clients


WHERE age > 18 AND ville = 'Paris';

localhost/2025-2026/BaseDonné[Link] 2/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

SELECT * FROM produits


WHERE prix < 10 OR stock > 100;

SELECT * FROM commandes


WHERE NOT status = 'annulée';

🔍 Table de vérité :

✅ AND : toutes les conditions doivent être vraies


✅ OR : au moins une condition doit être vraie
✅ NOT : inverse la condition

📅 Fonctions sur les dates

DATE(), DAY(), MONTH(), YEAR()

Extraire des parties d'une date

-- Extraire la date seule d'un DATETIME


SELECT DATE('2025-05-29 14:30:00');
SELECT DAY('2025-05-29');
SELECT MONTH('2025-05-29');
SELECT YEAR('2025-05-29');

SELECT
commande_id,
YEAR(date_commande) AS annee,
MONTH(date_commande) AS mois
FROM commandes;

🔍 Exemples multiples :

📅 DATE('2025-12-25 08:30:00') → '2025-12-25'


📅 DAY('2025-12-25') → 25

localhost/2025-2026/BaseDonné[Link] 3/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

📅 MONTH('2025-12-25') → 12
📅 YEAR('2025-12-25') → 2025

NOW() - Date et heure courantes

Retourne la date et l'heure actuelles

SELECT NOW();
INSERT INTO logs (message, date_heure) VALUES ('Action effectuée', NOW())
SELECT * FROM commandes WHERE DATE(date_commande) = CURDATE();

🔍 Exemple :

🕐 NOW() → année-mois-jour heure:minute:seconde


🕐 CURDATE() → année-mois-jour uniquement
🕐 CURTIME() → heure:minute:seconde uniquement

ADDDATE() - Ajouter des jours/intervalle

Ajoute un nombre de jours ou un intervalle à une date

SELECT ADDDATE('2025-05-29', 10);


SELECT ADDDATE('2025-05-29', INTERVAL 2 MONTH);
SELECT ADDDATE('2025-05-29', INTERVAL 1 YEAR);
UPDATE commandes SET date_livraison = ADDDATE(date_commande, 3);

🔍 Exemples d'intervalles :

➕ ADDDATE('2025-01-01', INTERVAL 1 MONTH) → '2025-02-01'


➕ ADDDATE('2025-01-01', INTERVAL 1 YEAR) → '2026-01-01'
➕ ADDDATE('2025-01-01', INTERVAL 7 DAY) → '2025-01-08'

localhost/2025-2026/BaseDonné[Link] 4/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

DATEDIFF() - Différence entre deux dates

Retourne le nombre de jours entre deux dates

SELECT DATEDIFF('2025-06-10', '2025-05-29');


SELECT
commande_id,
DATEDIFF(NOW(), date_commande) AS jours_ecoules
FROM commandes
WHERE DATEDIFF(NOW(), date_commande) > 30;

🔍 Exemples :

📊 DATEDIFF('2025-12-31', '2025-01-01') → 364 jours


📊 DATEDIFF('2025-03-01', '2025-03-10') → -9 jours
📊 DATEDIFF(NOW(), '2025-01-01') → jours depuis le 1er janvier

📊 Fonctions d'agrégation

AVG(), COUNT(), MAX(), MIN(), SUM()

Calculs sur des groupes d'enregistrements

SELECT COUNT(*) FROM clients;


SELECT AVG(prix) FROM produits;
SELECT MIN(date_commande), MAX(date_commande) FROM commandes;
SELECT SUM(montant) FROM commandes;

SELECT
categorie,
COUNT(*) AS nb_produits,
AVG(prix) AS prix_moyen,
SUM(stock) AS stock_total
FROM produits
GROUP BY categorie;

localhost/2025-2026/BaseDonné[Link] 5/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

🔍 Exemple avec table "ventes" :

Table ventes : id | produit | quantite | prix


COUNT(*) → nombre de lignes
AVG(prix) → prix moyen des produits
SUM(quantite * prix) → chiffre d'affaires total
GROUP BY produit → ventes par produit

✏️ Manipulation des données (LMD)

SELECT - Requête de sélection

Récupérer des données avec filtres, tris, groupements

SELECT * FROM clients;


SELECT nom, prenom, email AS courriel FROM clients;
SELECT DISTINCT ville FROM clients;
SELECT * FROM commandes WHERE montant > 100 ORDER BY date DESC LIMIT 10;

SELECT
ville,
COUNT(*) AS nb_clients
FROM clients
GROUP BY ville
HAVING COUNT(*) > 5;

🔍 Syntaxe complète SELECT :

SELECT [DISTINCT] colonnes


FROM table(s)
[WHERE condition(s)]
[GROUP BY colonne(s)]
[HAVING condition sur groupes]
[ORDER BY colonne(s) [ASC|DESC]]

localhost/2025-2026/BaseDonné[Link] 6/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

INSERT INTO - Ajout de données

Insérer de nouveaux enregistrements

INSERT INTO clients (nom, prenom, email)


VALUES ('Martin', 'Sophie', 'sophie@[Link]');

INSERT INTO produits (nom, prix, stock) VALUES


('Clavier', 29.99, 50),
('Souris', 15.50, 100);

UPDATE - Mise à jour des données

Modifier des enregistrements existants

UPDATE clients SET age = 31 WHERE id = 1;


UPDATE produits SET prix = prix * 1.10, stock = stock - 1;

DELETE FROM - Suppression de données

Supprimer des enregistrements

DELETE FROM clients WHERE id = 10;


DELETE FROM commandes WHERE status = 'annulée';
-- ATTENTION : DELETE sans WHERE supprime TOUTE la table

🔒 Contraintes d'intégrité

NOT NULL, DEFAULT, CHECK, UNIQUE

Garantir l'intégrité des données

localhost/2025-2026/BaseDonné[Link] 7/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

CREATE TABLE employes (


id INT PRIMARY KEY,
nom VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT CHECK (age >= 18),
statut VARCHAR(20) DEFAULT 'actif'
);

🔍 Contraintes expliquées :

🔒 NOT NULL : champ obligatoire


🔒 DEFAULT : valeur automatique si non spécifiée
🔒 CHECK : validation de la valeur (ex: age >= 18)
🔒 UNIQUE : pas de doublons
🔒 PRIMARY KEY : clé primaire = UNIQUE + NOT NULL

PRIMARY KEY & FOREIGN KEY

Clés primaires et étrangères

CREATE TABLE clients (


id INT PRIMARY KEY,
nom VARCHAR(50) NOT NULL
);

CREATE TABLE commandes (


id INT PRIMARY KEY,
client_id INT,
FOREIGN KEY (client_id) REFERENCES clients(id)
ON UPDATE CASCADE
ON DELETE CASCADE
);

🔍 Options ON UPDATE / ON DELETE :

🔗 CASCADE : propage les modifications/suppressions


🔗 SET NULL : met la clé étrangère à NULL

localhost/2025-2026/BaseDonné[Link] 8/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

🔗 SET DEFAULT : met la valeur par défaut


🔗 NO ACTION / RESTRICT : bloque l'opération

🏗️ Définition des données (LDD)

CREATE / DROP DATABASE

Créer et supprimer des bases de données

CREATE DATABASE magasin;


CREATE DATABASE IF NOT EXISTS magasin;
DROP DATABASE magasin;
DROP DATABASE IF EXISTS magasin;

CREATE TABLE / DROP TABLE

Créer et supprimer des tables

CREATE TABLE IF NOT EXISTS produits (


id INT AUTO_INCREMENT PRIMARY KEY,
reference VARCHAR(20) NOT NULL UNIQUE,
nom VARCHAR(100) NOT NULL,
prix DECIMAL(10,2) CHECK (prix > 0),
stock INT DEFAULT 0
);
DROP TABLE IF EXISTS produits;

ALTER TABLE - Modifier une table

Ajouter, supprimer ou modifier des colonnes/contraintes

ALTER TABLE clients ADD telephone VARCHAR(15);


ALTER TABLE clients DROP COLUMN telephone;

localhost/2025-2026/BaseDonné[Link] 9/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

ALTER TABLE clients MODIFY age SMALLINT;


ALTER TABLE commandes ADD CONSTRAINT fk_client
FOREIGN KEY (client_id) REFERENCES clients(id);
ALTER TABLE clients RENAME TO customers;

🔍 Notes sur ALTER TABLE :

⚠️ MySQL : MODIFY COLUMN, CHANGE COLUMN, DROP COLUMN

📋 Exemple : Base de données "Librairie"

Création et requêtes sur une librairie

CREATE DATABASE librairie;


USE librairie;

CREATE TABLE auteurs (


id INT PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(50) NOT NULL,
prenom VARCHAR(50) NOT NULL,
nationalite VARCHAR(50) DEFAULT 'Française'
);

CREATE TABLE livres (


id INT PRIMARY KEY AUTO_INCREMENT,
titre VARCHAR(100) NOT NULL,
auteur_id INT,
prix DECIMAL(10,2) CHECK (prix > 0),
stock INT DEFAULT 0,
FOREIGN KEY (auteur_id) REFERENCES auteurs(id)
);

INSERT INTO auteurs (nom, prenom) VALUES


('Hugo', 'Victor'),
('Orwell', 'George');

SELECT [Link], [Link], [Link]

localhost/2025-2026/BaseDonné[Link] 10/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

FROM livres l
JOIN auteurs a ON l.auteur_id = [Link];

🔍 Résultat attendu :

📖 "Les Misérables" - Victor Hugo - 25.00€


📖 "1984" - George Orwell - 18.50€
📊 Prix moyen français : 20.00€

📑 Tableau récapitulatif des fonctions de date


Fonction Description Exemple Résultat

DATE() Extrait la date DATE('2025-05-29 14:30:00') '2025-05-29'

DAY() Jour du mois DAY('2025-05-29') 29

MONTH() Numéro du mois MONTH('2025-05-29') 5

YEAR() Année YEAR('2025-05-29') 2025

Date/heure 2025-05-29
NOW() NOW()
courantes 14:30:00

ADDDATE('2025-05-29', INTERVAL 10
ADDDATE() Ajoute un intervalle '2025-06-08'
DAY)

DATEDIFF('2025-06-10', '2025-05-
DATEDIFF() Différence en jours 12
29')

📌 Résumé des commandes essentielles

SELECT : récupérer des données


INSERT : ajouter des données
UPDATE : modifier des données
DELETE : supprimer des données
CREATE/DROP DATABASE : gérer les bases
CREATE/DROP/ALTER TABLE : gérer les tables

localhost/2025-2026/BaseDonné[Link] 11/12
05/06/2026 15:57 SQL - Résumé (4ème SI) Lycée Cité Des Journalistes - ARIANA

PRIMARY KEY / FOREIGN KEY : relations entre tables


AVG/COUNT/MAX/MIN/SUM : fonctions d'agrégation

💡 Bonnes pratiques SQL :


• Toujours utiliser des requêtes paramétrées pour éviter les injections SQL
• Indexer les colonnes utilisées dans WHERE, JOIN et ORDER BY
• Utiliser des alias (AS) pour rendre les résultats plus lisibles
• Tester les requêtes avec EXPLAIN pour optimiser les performances
• Sauvegarder régulièrement vos bases de données

📚 Résumé SQL — Lycée Cité Des Journalistes - Ariana - M. Ben Amor Walid ©2026
✨ Code coloré style VS Code + police agrandie + tous les aperçus

localhost/2025-2026/BaseDonné[Link] 12/12

Vous aimerez peut-être aussi