0% ont trouvé ce document utile (0 vote)
13 vues7 pages

Guide complet sur le langage SQL

Transféré par

kkkkkk
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)
13 vues7 pages

Guide complet sur le langage SQL

Transféré par

kkkkkk
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

Résumée : SQL

Dans ce résumée, on se base totalement sur l’exemple dans la deuxième partie

1. Langage SQL (Structured Query Language)

Langage d'Interrogation des Données (LID) : SELECT

 Permet de récupérer des données.


 Syntaxe :
 Exemples :
o Récupérer tous les noms : SELECT nom FROM etudiants;
o Trier les données : SELECT * FROM etudiants ORDER BY age DESC;
o Utiliser des conditions : SELECT * FROM etudiants WHERE note > 12;

Fonctions SQL

 Mono-lignes :
o Fonctions de chaînes (UPPER, LOWER), numériques (ROUND, ABS), de date
(SYSDATE, ADD_MONTHS), etc.
 Multi-lignes :
o Fonctions d'agrégation comme SUM, AVG, COUNT, MAX, MIN.

Jointures

 Interne (INNER JOIN) : Combine uniquement les enregistrements correspondants.


 Externe :
o Gauche (LEFT JOIN) ou Droite (RIGHT JOIN) pour inclure les
enregistrements non correspondants.
o Exemple : Afficher tous les employés même sans projet :

sql
Copy code
SELECT [Link], [Link] FROM Employe E LEFT JOIN Projet P ON
E.PFE_ID = P.PFE_ID;

 Cross Join : Produit cartésien entre deux tables.

2. Langage de Manipulation des Données (LMD)

Insertion des Données :

 Ajouter une ligne :

INSERT INTO DEPARTMENTS VALUES (280, 'Marketing', 101, 1700);

 Ajouter des données avec une requête :

INSERT INTO DEPARTMENTS (ID, NAME) SELECT ID, NAME FROM TEMP_TABLE;

Mise à Jour :
 Modifier des données :UPDATE EMPLOYEES SET SALAIRE = 5000 WHERE ID = 1;

Suppression :

 Supprimer des lignes :DELETE FROM EMPLOYEES WHERE ID = 1;

4. Transactions et Gestion ACID

 ACID : Garantit la fiabilité des transactions.


o Atomicité : Tout ou rien.
o Cohérence : Respect des contraintes.
o Isolation : Les modifications ne sont visibles qu’après validation.
o Durabilité : Les données validées restent accessibles malgré les pannes.

Commandes Associées :

 COMMIT : Valider les modifications.


 ROLLBACK : Annuler les modifications.
 SAVEPOINT : Définir un point de restauration.

5. PL/SQL

 Langage procédural intégré à SQL (Oracle).


 Avantages : Automatisation, réutilisation, et performances accrues via les procédures
stockées.
 Exemple de bloc PL/SQL :

BEGIN
UPDATE EMPLOYEES SET SALAIRE = SALAIRE * 1.1 WHERE POSTE =
'Manager';
COMMIT;
END;
Partie nm 2 :

1. Table Etudiant

id_etudiant nom prenom age filiere_id

101 Dupont Jean 22 1

102 Martin Claire 20 1

103 Durand Paul 23 2

104 Lemoine Anne 21 3

2. Table Filiere
id_filiere nom_filiere

1 Informatique

2 Mathématiques

3 Physique

3. Table Professeur

id_professeur nom prenom emploi_id

201 Lemoine Claire 1

202 Martin Jean 2

203 Dupont Paul 3

4. Table Emploi

id_emploi type_emploi

1 Enseignant

2 Chargé de cours

3 Professeur principal

5. Table Etablissement

id_etablissement nom_etablissement adresse

1 Université ABC 123 Rue A

2 Université XYZ 456 Rue B

3 Lycée Pierre Curie 789 Rue C

Requêtes et résultats avec les valeurs fictives :

1. Récupérer les informations des étudiants d'une certaine filière (Informatique)

sql
Copy code
SELECT [Link], [Link], [Link]
FROM etudiant e
INNER JOIN filiere f ON e.filiere_id = f.id_filiere
WHERE f.nom_filiere = 'Informatique';

Résultat :

nom prenom age

Dupont Jean 22

Martin Claire 20

2. Récupérer tous les professeurs et leurs emplois

sql
Copy code
SELECT [Link], [Link], em.type_emploi
FROM professeur p
INNER JOIN emploi em ON p.emploi_id = em.id_emploi;

Résultat :

nom prenom type_emploi

Lemoine Claire Enseignant

Martin Jean Chargé de cours

Dupont Paul Professeur principal

3. Récupérer tous les étudiants et leurs établissements, y compris ceux sans


établissement

sql
Copy code
SELECT [Link], [Link], et.nom_etablissement
FROM etudiant e
LEFT JOIN etablissement et ON e.id_etudiant = et.id_etablissement;

Résultat :

nom prenom nom_etablissement

Dupont Jean Université ABC

Martin Claire Université XYZ

Durand Paul NULL


nom prenom nom_etablissement

Lemoine Anne Lycée Pierre Curie

4. Mettre à jour l'âge d'un étudiant (ex : mettre à jour l'âge de l'étudiant 101 à 23)

sql
Copy code
UPDATE etudiant
SET age = 23
WHERE id_etudiant = 101;

Table après mise à jour :

id_etudiant nom prenom age filiere_id

101 Dupont Jean 23 1

102 Martin Claire 20 1

103 Durand Paul 23 2

104 Lemoine Anne 21 3

5. Insérer un nouvel étudiant (ex : ajouter un étudiant 'Doe' en Informatique)

sql
Copy code
INSERT INTO etudiant (nom, prenom, age, filiere_id)
VALUES ('Doe', 'John', 24, 1);

Table après insertion :

id_etudiant nom prenom age filiere_id

101 Dupont Jean 23 1

102 Martin Claire 20 1

103 Durand Paul 23 2

104 Lemoine Anne 21 3

105 Doe John 24 1

6. Supprimer un étudiant (ex : supprimer l'étudiant avec id_etudiant = 103)


sql
Copy code
DELETE FROM etudiant
WHERE id_etudiant = 103;

Table après suppression :

id_etudiant nom prenom age filiere_id

101 Dupont Jean 23 1

102 Martin Claire 20 1

104 Lemoine Anne 21 3

7. Utiliser une sous-requête pour récupérer les étudiants ayant un âge supérieur à la
moyenne de leur filière (ex : 'Informatique')

sql
Copy code
SELECT nom, prenom, age
FROM etudiant
WHERE age > (
SELECT AVG(age)
FROM etudiant
INNER JOIN filiere ON etudiant.filiere_id = filiere.id_filiere
WHERE filiere.nom_filiere = 'Informatique'
);

Résultat :

nom prenom age

Dupont Jean 23

8. Afficher les étudiants ayant un âge supérieur à 22 dans la filière 'Mathématiques'

sql
Copy code
SELECT nom, prenom, age
FROM etudiant
WHERE filiere_id = 2 AND age > 22;

Résultat :

nom prenom age

Durand Paul 23

Vous aimerez peut-être aussi