0% ont trouvé ce document utile (0 vote)
2 vues10 pages

Resume Introduction SQL

Ce document est un cours complet sur SQL et MySQL, couvrant les concepts fondamentaux, la gestion des bases de données, la manipulation des données, les jointures, et les fonctions d'agrégation. Il présente des syntaxes, des exemples pratiques, et des exercices pour illustrer l'utilisation de SQL dans la gestion des bases de données relationnelles. Les principales commandes et opérations sont résumées pour faciliter l'apprentissage et la référence.

Transféré par

sarremega4
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues10 pages

Resume Introduction SQL

Ce document est un cours complet sur SQL et MySQL, couvrant les concepts fondamentaux, la gestion des bases de données, la manipulation des données, les jointures, et les fonctions d'agrégation. Il présente des syntaxes, des exemples pratiques, et des exercices pour illustrer l'utilisation de SQL dans la gestion des bases de données relationnelles. Les principales commandes et opérations sont résumées pour faciliter l'apprentissage et la référence.

Transféré par

sarremega4
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

INTRODUCTION AU SQL

MySQL & Structured Query Language


Cours complet avec syntaxes, exemples et exercices

1. INTRODUCTION AU SQL ET MYSQL

1.1 Qu'est-ce que SQL ?


SQL (Structured Query Language) est un langage informatique standard permettant d'interagir avec
des bases de données relationnelles. C'est le langage de bases de données le plus répandu dans
le monde.

Caracteristique Detail
Creation Annees 1970 (IBM)
Standard ANSI 1986
Standard ISO 1987
Utilisation Bases de donnees relationnelles
Etat actuel Regulierement ameliore et mis a jour

1.2 Qu'est-ce que MySQL ?


MySQL est un Systeme de Gestion de Bases de Donnees Relationnelles (SGBDR) qui utilise le
langage SQL. C'est l'un des SGBDR les plus populaires au monde.

• Open Source : code source librement disponible, modifiable par tous


• Version gratuite disponible pour tous
• Version commerciale payante avec support professionnel
• Tres largement utilise dans le developpement web (LAMP, WAMP...)

2. GESTION DES BASES DE DONNEES


2.1 Creer une base de donnees
CREATE DATABASE NomDeLaBase ;

2.2 Supprimer une base de donnees


DROP DATABASE NomDeLaBase ;
DROP DATABASE IF EXISTS NomDeLaBase ;
Remarque : IF EXISTS evite une erreur si la base n'existe pas.

3. GESTION DES TABLES

3.1 Creer une table


CREATE TABLE [IF NOT EXISTS] NomDeLaTable (
colonne1 TYPE1 [contraintes],
colonne2 TYPE2 [contraintes],
...
[PRIMARY KEY (colonne_cle_primaire)]
) [ENGINE=moteur] ;

Exemple :
CREATE TABLE Produit (
CodePro VARCHAR(4) PRIMARY KEY,
NomPro VARCHAR(30) NOT NULL,
PrixVente DECIMAL(10,2),
StockPro INT DEFAULT 0,
SeuilPro INT
) ENGINE=InnoDB ;

3.2 Verifier les tables


SHOW TABLES ; -- liste toutes les tables
DESCRIBE NomDeLaTable ; -- affiche les colonnes et leurs caracteristiques

3.3 Supprimer une table


DROP TABLE NomDeLaTable ;
Remarque : Cette commande est irreversible. Utilisez-la avec prudence.

3.4 Modifier une table (ALTER TABLE)


La commande ALTER TABLE permet d'ajouter, retirer ou modifier des elements d'une table
existante.

Operation Syntaxe
Ajouter une colonne ALTER TABLE Nom ADD [COLUMN] col description ;
Supprimer une colonne ALTER TABLE Nom DROP [COLUMN] col ;
Renommer une colonne ALTER TABLE Nom CHANGE ancien_nom nouveau_nom type ;
Modifier le type ALTER TABLE Nom MODIFY col nouveau_type ;

Exemples :
-- Ajouter une colonne
ALTER TABLE Produit ADD NumFam VARCHAR(4) REFERENCES Famille(NumFam) ;

-- Renommer la colonne 'nom' en 'prenom'


ALTER TABLE Test_tuto CHANGE nom prenom VARCHAR(10) NOT NULL ;

4. MANIPULATION DES DONNEES (LMD)

Le LMD (Langage de Manipulation de Donnees) regroupe les commandes : INSERT, UPDATE,


DELETE et SELECT.

4.1 Inserer des donnees - INSERT INTO


Insertion complete (toutes les colonnes)
INSERT INTO NomDeLaTable
VALUES (Val1, Val2, Val3, ...) ;

Insertion partielle (colonnes choisies)


INSERT INTO NomDeLaTable (Col1, Col2, Col3)
VALUES (Val1, Val2, Val3) ;

Insertion multiple (plusieurs lignes en une requete)


INSERT INTO NomDeLaTable (Col1, Col2, Col3)
VALUES (Val11, Val12, Val13),
(Val21, Val22, Val23),
(Val31, Val32, Val33) ;
Remarque : Pour l'insertion multiple, les colonnes doivent etre les memes pour chaque ligne.

4.2 Modifier des donnees - UPDATE


UPDATE NomTable
SET NomColonne = Valeur
WHERE Conditions ;

Exemple - Modifier l'inscription de l'etudiant M02 :


UPDATE INSCRIPTION
SET CodeCla = 'L1RI'
WHERE Matricule = 'M02' ;
Remarque : Sans la clause WHERE, la mise a jour s'applique a TOUTES les lignes de la table.
4.3 Supprimer des donnees - DELETE
DELETE FROM NomTable
WHERE Conditions ;

Remarque : TRUNCATE TABLE NomTable supprime toutes les lignes d'un coup (ordre LDD, plus
rapide que DELETE sans WHERE).

5. SELECTION DE DONNEES - L'ORDRE SELECT

5.1 Syntaxe generale


SELECT [DISTINCT] * | Col1 [AS Alias1], Col2 [AS Alias2], ...
FROM NomTable
[WHERE Conditions]
[ORDER BY Col1 ASC|DESC, Col2 ASC|DESC]
[LIMIT n [OFFSET m]] ;

Mot-cle Role
SELECT * Affiche toutes les colonnes
SELECT Col1, Col2 Affiche uniquement les colonnes specifiees
DISTINCT Elimine les doublons dans les resultats
AS Alias Renomme une colonne dans l'affichage
FROM Indique la table source des donnees
WHERE Filtre les lignes selon des conditions
ORDER BY Trie les resultats
LIMIT Limite le nombre de lignes retournees

5.2 Exemples de base


Afficher tous les clients :
SELECT * FROM Client ;

Afficher le code et le nom de tous les clients :


SELECT NumCli, NomCli FROM Client ;

Afficher avec des alias :


SELECT NomCli AS "Nom", PrenomCli AS "Prenom", VilleCli AS "Ville"
FROM Client ;

5.3 La clause WHERE - Filtrer les resultats


Operateurs de comparaison
Operateur Signification
= Egal a
< ou > Inferieur ou superieur
<= ou >= Inferieur ou superieur ou egal
<> ou != Different de
IS NULL La valeur est NULL
IS NOT NULL La valeur n'est pas NULL

Exemple :
SELECT CodePro, NomPro, StockPro
FROM Produit
WHERE StockPro < 100 ;

Operateurs logiques (combinaison de criteres)


Operateur Description
AND (&&) Les deux conditions doivent etre vraies
OR (||) Au moins une condition doit etre vraie
NOT Inverse la condition
XOR Une seule des conditions doit etre vraie (OU exclusif)

Exemple avec AND :


SELECT NumPro, NomPro, StockPro, SeuilPro
FROM Produit
WHERE StockPro <= SeuilPro AND PrixVente < 1500 ;

Exemple avec OR :
SELECT CodePro, NomPro, StockPro, SeuilPro
FROM Produit
WHERE StockPro <= SeuilPro OR StockPro = 0 ;

Exemple avec AND, OR et parentheses :


SELECT NomPro, StockPro
FROM Produit
WHERE StockPro <= 100 AND (CodeFam = 'FA01' OR CodeFam = 'F03') ;
Remarque : Utilisez toujours des parentheses quand vous combinez AND et OR pour eviter des
erreurs logiques.

Le cas de NULL
-- Afficher les clients sans ville
SELECT * FROM Client WHERE VilleCli IS NULL ;
-- Afficher les clients avec ville
SELECT * FROM Client WHERE VilleCli IS NOT NULL ;

5.4 Tri des resultats - ORDER BY


SELECT *
FROM Produit
ORDER BY PrixUnitaire ASC, NomPro DESC ;

Mot-cle Effet
ASC Tri croissant (defaut si omis)
DESC Tri decroissant

Remarque : On peut trier sur plusieurs colonnes : le tri s'effectue d'abord sur la 1re colonne, puis sur
la 2e, etc.

5.5 Limiter les resultats - LIMIT


SELECT * FROM Produit
ORDER BY PrixUnitaire DESC
LIMIT 10 ; -- Les 10 produits les plus chers

SELECT * FROM Animal


ORDER BY id
LIMIT 6 OFFSET 3 ; -- 6 lignes a partir de la 4e

5.6 Eliminer les doublons - DISTINCT


SELECT DISTINCT VilleCli FROM Client ;

6. OPERATEURS AVANCES DANS WHERE

6.1 Recherche par intervalle - BETWEEN


Val BETWEEN Borne_Min AND Borne_Max ;

Exemples :
-- Produits dont le prix est entre 1500 et 3000
SELECT * FROM PRODUIT
WHERE PrixUnitaire BETWEEN 1500 AND 3000 ;

-- Factures emises entre deux dates


SELECT NumFac, DateFac FROM Facture
WHERE DateFac BETWEEN '2022-10-10' AND '2022-12-31'
ORDER BY DateFac ASC, NumFac DESC ;
Remarque : BETWEEN est equivalent a >= Borne_Min AND <= Borne_Max. Les bornes sont
incluses.

6.2 Recherche par liste - IN


-- Produits dont le code est dans la liste
SELECT * FROM Produit
WHERE CodePro IN ('P01', 'P03', 'P07') ;
-- Equivalent avec OR (moins lisible)
WHERE CodePro = 'P01' OR CodePro = 'P03' OR CodePro = 'P07'

6.3 Recherche approximative - LIKE


LIKE permet des recherches avec des caracteres jokers (wildcards) sur des chaines de caracteres.

Joker Signification
% N'importe quelle chaine (y compris vide)
_ Un seul caractere (ou aucun)

Exemple Pattern Correspond a...


Commence par B 'B%' Bonjour, Bio, B
Se termine par e '%e' Table, Code, e
Contient ch '%ch%' Chercher, Echelon
Commence par M, 'M_' Ma, Me, Mi
2 chars
Exactement 3 chars '___' Abc, Xyz, 123
M...e (nb qcq) 'M%e' Marie, Monde, Me

Exemples :
-- Clients dont le nom contient la lettre M
SELECT * FROM Client WHERE NomCli LIKE '%M%' ;

-- Etudiants dont le nom commence par MA


SELECT * FROM ETUDIANT WHERE NomEtu LIKE 'MA%' ;

-- Nom commence par M et se termine par E


SELECT * FROM ETUDIANT WHERE NomEtu LIKE 'M%E' ;

-- Exclure avec NOT LIKE


SELECT * FROM Client WHERE NomCli NOT LIKE '%M%' ;

Remarque : LIKE n'est pas sensible a la casse par defaut avec UTF-8. Pour une recherche sensible
a la casse, utilisez BINARY.

-- Recherche sensible a la casse


SELECT * FROM Client WHERE NomCli LIKE BINARY 'Marie%' ;

-- Chercher le caractere '%' litteralement


SELECT * FROM Client WHERE NomCli LIKE '%%%' ESCAPE '\' ;
7. FONCTIONS D'AGREGATION

Les fonctions d'agregation (ou fonctions de groupe) permettent d'effectuer des calculs sur un
ensemble de lignes et de retourner une seule valeur.

Fonction Description et usage


COUNT(*) Compte toutes les lignes (y compris NULL)
COUNT(colonne) Compte les valeurs non NULL d'une colonne
MIN(colonne) Retourne la valeur minimale
MAX(colonne) Retourne la valeur maximale
AVG(colonne) Calcule la moyenne des valeurs non NULL
SUM(colonne) Calcule la somme des valeurs non NULL

Exemples :
SELECT COUNT(*) AS NombreClients FROM Client ;
SELECT MIN(PrixVente), MAX(PrixVente), AVG(PrixVente) FROM Produit ;
SELECT SUM(StockPro * PrixVente) AS ValeurTotaleStock FROM Produit ;

8. LES JOINTURES (JOINTURES)

Les jointures permettent de combiner les donnees de plusieurs tables en une seule requete, en
reliant les tables via leurs cles.

8.1 Exemple de schema


ETUDIANT (Matricule, Nom, Prenom, DateNaiss)
CLASSE (Numero, NomClasse, Mensualite, DroitIns)
INSCRIPTION (CodeCla, Matricule, DateIns, AnneeAca)

8.2 Jointure interne (INNER JOIN)


SELECT [Link], [Link], [Link]
FROM ETUDIANT E
INNER JOIN INSCRIPTION I ON [Link] = [Link]
INNER JOIN CLASSE C ON [Link] = [Link] ;

Ou avec la syntaxe WHERE (equivalente) :


SELECT [Link], [Link], [Link]
FROM ETUDIANT E, INSCRIPTION I, CLASSE C
WHERE [Link] = [Link] AND [Link] = [Link] ;

9. SYNTHESE - ORDRE DES CLAUSES SELECT


Voici l'ordre obligatoire des clauses dans une requete SELECT :

SELECT [DISTINCT] colonnes / * / expressions


FROM table(s)
WHERE conditions de filtrage
GROUP BY colonnes de regroupement
HAVING conditions sur les groupes
ORDER BY colonnes de tri ASC | DESC
LIMIT n [OFFSET m] ;

Remarque : Les clauses WHERE, GROUP BY, HAVING, ORDER BY et LIMIT sont toutes
optionnelles. Seules SELECT et FROM sont obligatoires.

10. EXERCICES TYPES

Schema de reference pour les exercices :


Famille (NumFam, NomFam)
Produit (NumPro, NomPro, PrixVente, StockPro, SeuilPro, #NumFam)
Client (NumCli, NomCli, PrenomCli, VilleCli)
Facture (NumFac, DateFac, #NumCli)
Contenir (CodePro, NumFac, PrixVente, Qte)

Exercices de selection
• Afficher les inscriptions de l'annee academique 2022-2023 :
SELECT * FROM INSCRIPTION WHERE AnneeAca = '2022-2023' ;

• Classes avec mensualite > 50000 et droits entre 100000 et 150000 :


SELECT * FROM CLASSE
WHERE Mensualite > 50000
AND DroitIns BETWEEN 100000 AND 150000 ;

• Etudiants dont le nom commence par MA :


SELECT * FROM ETUDIANT WHERE NomEtu LIKE 'MA%' ;

• Etudiants dont le nom commence par M et se termine par E :


SELECT * FROM ETUDIANT WHERE NomEtu LIKE 'M%E' ;

• Les cinq classes avec les plus grandes mensualites :


SELECT * FROM CLASSE
ORDER BY Mensualite DESC
LIMIT 5 ;

• Produits ayant atteint leur seuil (Stock <= Seuil) :


SELECT NumPro, NomPro, StockPro, SeuilPro
FROM Produit
WHERE StockPro <= SeuilPro ;
• Valeur du stock pour chaque produit :
SELECT NomPro, PrixVente, StockPro,
PrixVente * StockPro AS ValeurStock
FROM Produit ;

11. RECAP DES COMMANDES ESSENTIELLES

Categorie Commande Role


LDD CREATE DATABASE Creer une base de donnees
LDD DROP DATABASE Supprimer une base de donnees
LDD CREATE TABLE Creer une table
LDD DROP TABLE Supprimer une table
LDD ALTER TABLE ADD Ajouter une colonne
LDD ALTER TABLE DROP Supprimer une colonne
LDD ALTER TABLE CHANGE Renommer/modifier une colonne
LDD ALTER TABLE MODIFY Modifier le type d'une colonne
LMD INSERT INTO Inserer des donnees
LMD UPDATE ... SET Modifier des donnees
LMD DELETE FROM Supprimer des lignes
LMD SELECT ... FROM Lire et afficher des donnees
Filtres WHERE Filtrer les lignes
Filtres BETWEEN Intervalle de valeurs
Filtres LIKE Recherche approximative
Filtres IN Liste de valeurs
Filtres IS NULL Valeur nulle
Tri/Limite ORDER BY ASC|DESC Trier les resultats
Tri/Limite LIMIT n OFFSET m Limiter les resultats
Agregation COUNT / SUM / AVG Fonctions de calcul
Agregation MIN / MAX Minimum et maximum

--- Fin du cours Introduction au SQL ---

Vous aimerez peut-être aussi