0% ont trouvé ce document utile (0 vote)
29 vues3 pages

Guide SQL pour Étudiants S3 ENCG

Transféré par

benaliaya371
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)
29 vues3 pages

Guide SQL pour Étudiants S3 ENCG

Transféré par

benaliaya371
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

Programme SQL pour les Étudiants S3 à l'ENCG

1. Concepts Fondamentaux
Les bases de données relationnelles sont organisées sous forme de tables, avec des lignes
(ou enregistrements) et des colonnes (ou champs). Chaque table a une structure définie par
un schéma. Les concepts clés incluent les clés primaires (Primary Key) et étrangères
(Foreign Key).

2. Commandes SQL
Cette section couvre les commandes les plus importantes en SQL.

a) DDL (Data Definition Language)


- `CREATE TABLE` : crée une nouvelle table.
- `ALTER TABLE` : modifie une table existante.
- `DROP TABLE` : supprime une table.

b) DML (Data Manipulation Language)


- `INSERT INTO` : ajoute des données.
- `UPDATE` : met à jour des données.
- `DELETE` : supprime des données.

c) DQL (Data Query Language)


- `SELECT` : récupère des données.
- Clauses importantes : `WHERE`, `GROUP BY`, `ORDER BY`, `HAVING`.
- Fonctions d'agrégation : `COUNT()`, `SUM()`, `AVG()`, `MAX()`, `MIN()`.

d) JOINS
Les JOINS permettent de combiner des tables :
- `INNER JOIN`
- `LEFT JOIN`
- `RIGHT JOIN`
- `FULL OUTER JOIN`

3. Concepts Avancés
Les concepts avancés incluent l'indexation pour accélérer les requêtes, les vues pour
simplifier des requêtes complexes, les triggers pour automatiser des actions lors
d'événements, et les procédures stockées pour encapsuler des ensembles de requêtes.

4. Exercices Pratiques et Corrigés

Exercice 1 : Création et manipulation d’une table


1. Créer une table `Employes` avec les colonnes suivantes :
- `ID` (clé primaire).
- `Nom` (texte, max 50 caractères).
- `Salaire` (décimal, max 10 chiffres).
- `DateEmbauche` (DATE).

2. Insérer les données suivantes :


- (1, 'Alice', 3000.50, '2022-05-01').
- (2, 'Bob', 2500.75, '2023-01-15').

3. Afficher tous les employés embauchés après le 1er janvier 2023.

Correction :

CREATE TABLE Employes (


ID INT PRIMARY KEY,
Nom VARCHAR(50),
Salaire DECIMAL(10, 2),
DateEmbauche DATE
);

INSERT INTO Employes (ID, Nom, Salaire, DateEmbauche)


VALUES
(1, 'Alice', 3000.50, '2022-05-01'),
(2, 'Bob', 2500.75, '2023-01-15');

SELECT * FROM Employes WHERE DateEmbauche > '2023-01-01';

Exercice 2 : Jointure entre deux tables


1. Créer deux tables : `Clients` et `Commandes`.
- `Clients` : `ID`, `Nom`, `Email`.
- `Commandes` : `ID`, `ClientID` (clé étrangère vers `[Link]`), `Montant`.

2. Insérer des données :


- Clients : (1, 'Alice', 'alice@[Link]'), (2, 'Bob', 'bob@[Link]').
- Commandes : (1, 1, 500), (2, 1, 150), (3, 2, 300).

3. Afficher le nom du client et le total de ses commandes.

Correction :

CREATE TABLE Clients (


ID INT PRIMARY KEY,
Nom VARCHAR(50),
Email VARCHAR(100)
);
CREATE TABLE Commandes (
ID INT PRIMARY KEY,
ClientID INT,
Montant DECIMAL(10, 2),
FOREIGN KEY (ClientID) REFERENCES Clients(ID)
);

INSERT INTO Clients (ID, Nom, Email)


VALUES (1, 'Alice', 'alice@[Link]'),
(2, 'Bob', 'bob@[Link]');

INSERT INTO Commandes (ID, ClientID, Montant)


VALUES (1, 1, 500),
(2, 1, 150),
(3, 2, 300);

SELECT [Link], SUM([Link]) AS TotalCommandes


FROM Clients
INNER JOIN Commandes ON [Link] = [Link]
GROUP BY [Link];

Vous aimerez peut-être aussi