0% ont trouvé ce document utile (0 vote)
87 vues21 pages

Module 2 SQLTableau

Ce module sur SQL intermédiaire couvre la création et la gestion des bases de données, l'utilisation des jointures, et l'exploitation des fonctions d'agrégation, de chaînes et de dates. Il présente des commandes SQL essentielles telles que CREATE, ALTER, INSERT, UPDATE, DELETE, ainsi que des jointures comme INNER JOIN et LEFT JOIN. Enfin, il aborde les contraintes pour assurer l'intégrité des données dans les tables.

Transféré par

mounircomorestelecom
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)
87 vues21 pages

Module 2 SQLTableau

Ce module sur SQL intermédiaire couvre la création et la gestion des bases de données, l'utilisation des jointures, et l'exploitation des fonctions d'agrégation, de chaînes et de dates. Il présente des commandes SQL essentielles telles que CREATE, ALTER, INSERT, UPDATE, DELETE, ainsi que des jointures comme INNER JOIN et LEFT JOIN. Enfin, il aborde les contraintes pour assurer l'intégrité des données dans les tables.

Transféré par

mounircomorestelecom
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

MODULE 2 : SQL INTERMÉDIAIRE

Introduction
Dans ce module, nous allons approfondir les notions fondamentales de SQL en nous
concentrant sur la création et la gestion des bases de données, l'utilisation des jointures pour
relier des tables, ainsi que l'exploitation des fonctions d'agrégation, des fonctions de chaînes et
des fonctions de dates. Nous appliqueront ces notions dans le cadre d'un contexte
professionnel concret, celui de l'entreprise Globatech Solutions.

1. Langage de Définition des Données (DDL)


1.1. CREATE DATABASE

La commande CREATE DATABASE permet de créer une nouvelle base de données. Chaque
base de données sert à stocker des tables et autres objets SQL (vues, procédures, etc.).

Exemple

Nous allons créer une base de données nommée EntrepriseGlobatech :

CREATE DATABASE EntrepriseGlobatech;

Explication

●​ CREATE DATABASE : C'est la commande SQL pour créer une base de données.
●​ EntrepriseGlobatech : Nom donné à la base de données.

Une fois la base créée, nous devons l’utiliser pour créer des tables :

USE EntrepriseGlobatech;
1.2. CREATE TABLE

La commande CREATE TABLE permet de créer une table avec des colonnes spécifiques.
Chaque colonne doit avoir un type de données défini.

Exemple

Créons une table nommée Employés :

CREATE TABLE Employés (


id_employé INT PRIMARY KEY,
prénom VARCHAR(50),
nom VARCHAR(50),
salaire DECIMAL(10,2),
date_embauche DATE
);

Explication

●​ id_employé : Identifiant unique pour chaque employé (clé primaire).


●​ prénom, nom : Colonnes pour stocker les noms des employés, limitées à 50
caractères.
●​ salaire : Le salaire est un nombre décimal avec 10 chiffres au total et 2 chiffres après la
virgule.
●​ date_embauche : Colonne pour la date d'embauche, au format DATE.

1.3. ALTER TABLE

La commande ALTER TABLE est utilisée pour modifier une table existante.

Ajouter une colonne

Ajoutons une colonne poste à la table Employés :

ALTER TABLE Employés ADD poste VARCHAR(50);

Modifier une colonne

Changeons le type de données de la colonne salaire :


ALTER TABLE Employés MODIFY salaire DECIMAL(12,2);

Supprimer une colonne

Supprimons la colonne poste de la table Employés :

ALTER TABLE Employés DROP COLUMN poste;

1.4. DROP TABLE

La commande DROP TABLE permet de supprimer une table, ainsi que toutes les données
qu’elle contient.

Exemple

Supprimons la table Employés :

DROP TABLE Employés;

⚠️ Attention : Cette commande est irréversible. Une fois une table supprimée, toutes les
données qu'elle contenait sont perdues.

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


2.1. INSERT INTO

La commande INSERT INTO permet d’ajouter des données dans une table.

Exemple

Ajoutons des données dans la table Employés :

INSERT INTO Employés (id_employé, prénom, nom, salaire, date_embauche)


VALUES (1, 'Oscar', 'Aksanti', 3000.00, '2023-01-10');
Explication

●​ (id_employé, prénom, nom, salaire, date_embauche) : Liste des colonnes où les


valeurs seront insérées.
●​ VALUES : Indique les valeurs à insérer dans chaque colonne.

2.2. UPDATE

La commande UPDATE permet de modifier des données existantes.

Exemple

Mettons à jour le salaire de l’employé ayant l’identifiant 1 :

UPDATE Employés
SET salaire = 3500.00
WHERE id_employé = 1;

Explication

●​ SET : Spécifie la nouvelle valeur pour la colonne.


●​ WHERE : Condition pour indiquer quelles lignes doivent être mises à jour.

2.3. DELETE

La commande DELETE permet de supprimer des données spécifiques dans une table.

Exemple

Supprimons l'employé ayant l’identifiant 1 :

DELETE FROM Employés WHERE id_employé = 1;

Explication
●​ DELETE FROM : Spécifie la table à partir de laquelle les données doivent être
supprimées.
●​ WHERE : Condition pour déterminer quelles lignes supprimer.

2.4. TRUNCATE TABLE

La commande TRUNCATE TABLE supprime toutes les données d'une table, mais conserve sa
structure.

Exemple

Vidons complètement la table Employés :

TRUNCATE TABLE Employés;


3. Les Jointures (JOINS)
Les jointures permettent de combiner les données de plusieurs tables dans une seule requête.
Elles sont essentielles pour travailler avec des bases de données relationnelles.

3.1. INNER JOIN

L'INNER JOIN retourne les lignes qui ont une correspondance dans les deux tables.

Exemple

Supposons que nous ayons deux tables :​


Table Employés

id_employé prénom nom id_département

1 Jean Dupont 101

2 Marie Durand 102

3 Paul Martin 103


Table Départements

id_département nom_département

101 Ressources Humaines

102 Comptabilité

Pour afficher les noms des employés et leur département :

SELECT Employé[Link]énom, Employé[Link],


Départements.nom_département
FROM Employés
INNER JOIN Départements
ON Employés.id_département = Départements.id_département;

Résultat
prénom nom nom_département

Jean Dupont Ressources Humaines

Marie Durand Comptabilité

3.2. LEFT JOIN

Le LEFT JOIN retourne toutes les lignes de la table de gauche, même si elles n’ont pas de
correspondance dans la table de droite.
Exemple

Pour afficher tous les employés, même ceux qui n'ont pas de département :

SELECT Employé[Link]énom, Employé[Link], Départements.nom_département


FROM Employés
LEFT JOIN Départements
ON Employés.id_département = Départements.id_département;

Résultat
prénom nom nom_département

Jean Dupont Ressources Humaines

Marie Durand Comptabilité

Paul Martin NULL

3.3. RIGHT JOIN

Le RIGHT JOIN retourne toutes les lignes de la table de droite, même si elles n’ont pas de
correspondance dans la table de gauche.
Exemple

Pour afficher tous les départements, même ceux sans employés :

SELECT Employé[Link]énom, Employé[Link], Départements.nom_département


FROM Employés
RIGHT JOIN Départements
ON Employés.id_département = Départements.id_département;

3.4. FULL JOIN

Le FULL JOIN retourne toutes les lignes lorsqu'il y a une correspondance dans l'une des
tables. Si aucune correspondance n’est trouvée, des valeurs NULL seront retournées.

Exemple

Pour afficher tous les employés et tous les départements, qu'ils aient ou non des
correspondances :
SELECT Employé[Link]énom, Employé[Link], Départements.nom_département
FROM Employés
FULL JOIN Départements
ON Employés.id_département = Départements.id_département;
4. Les Fonctions d'Agrégation
Les fonctions d'agrégation permettent de calculer des valeurs à partir d’un ensemble de lignes.

4.1. COUNT

Retourne le nombre total de lignes.

Exemple

Compter le nombre total d’employés :

SELECT COUNT(*) AS nombre_employés FROM Employés;

4.2. SUM

Retourne la somme des valeurs d'une colonne numérique.

Exemple

Calculons la somme des salaires :

SELECT SUM(salaire) AS somme_salaires FROM Employés;

4.3. AVG

Retourne la moyenne des valeurs d'une colonne.

Exemple

Calculons le salaire moyen :

SELECT AVG(salaire) AS salaire_moyen FROM Employés;


4.4. MAX et MIN

Retourne respectivement la valeur maximale et minimale d'une colonne.

Exemple

Trouver le salaire le plus élevé et le plus bas :

SELECT MAX(salaire) AS salaire_max, MIN(salaire) AS salaire_min FROM


Employés;
5. Les Fonctions de Chaînes (String Functions)
Les fonctions de chaînes sont utilisées pour manipuler et transformer les données textuelles
dans une base de données. Ces fonctions permettent de modifier, combiner ou extraire des
parties de texte.

5.1. CONCAT

Concatène (combine) plusieurs chaînes de caractères en une seule.

Exemple

Ajouter un espace entre le prénom et le nom d’un employé :

SELECT CONCAT(prénom, ' ', nom) AS nom_complet FROM Employés;

Résultat
nom_complet

Jean Dupont

Marie Durand

Paul Martin

5.2. LOWER

Convertit une chaîne de caractères en minuscules.

Exemple

Afficher tous les noms en minuscules :

SELECT LOWER(nom) AS nom_minuscule FROM Employés;


Résultat
nom_minuscule

dupont

durand

martin

5.3. UPPER

Convertit une chaîne de caractères en majuscules.

Exemple

Afficher tous les prénoms en majuscules :

SELECT UPPER(prénom) AS prénom_majuscule FROM Employés;

Résultat
prénom_majuscule

JEAN

MARIE

PAUL

5.4. LENGTH

Retourne le nombre de caractères dans une chaîne (y compris les espaces).

Exemple

Afficher la longueur des noms :

SELECT nom, LENGTH(nom) AS longueur_nom FROM Employés;


Résultat
nom longueur_nom

Dupont 6

Durand 6

Martin 6

5.5. TRIM

Supprime les espaces (ou autres caractères définis) au début et à la fin d’une chaîne de
caractères.

Exemple
Nettoyer les prénoms avec des espaces superflus :

SELECT TRIM(prénom) AS prénom_nettoyé FROM Employés;

5.6. SUBSTRING

Extrait une partie spécifique d'une chaîne de caractères.

Syntaxe

SUBSTRING(chaîne, position_départ, longueur)

Exemple

Afficher les trois premiers caractères des prénoms :

SELECT prénom, SUBSTRING(prénom, 1, 3) AS début_prénom FROM Employés;


Résultat
prénom début_prénom

Jean Jea

Marie Mar

Paul Pau
6. Les Fonctions de Dates (Date Functions)
Les fonctions de dates permettent de manipuler et d'extraire des informations sur les dates
dans une base de données.

6.1. NOW

Retourne la date et l’heure actuelles.

Exemple

Afficher la date et l’heure du système :

SELECT NOW() AS date_actuelle;

6.2. DAY, MONTH, YEAR

Ces fonctions permettent d'extraire le jour, le mois ou l'année d'une date.

Exemple

Extraire les composants de la date d’embauche :

SELECT DATE(d_embauche), DAY(d_embauche) AS jour, MONTH(d_embauche) AS


mois, YEAR(d_embauche) AS année
FROM Employés;

6.3. DATE_ADD et DATE_SUB

Ajoute ou soustrait des jours, mois ou années à une date.

Exemple : Ajouter 30 jours à une date

SELECT DATE_ADD(NOW(), INTERVAL 30 DAY) AS date_plus_30;

Exemple : Soustraire 1 an à une date

SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR) AS date_moins_1_an;


6.4. DATEDIFF

Retourne le nombre de jours entre deux dates.

Exemple

Calculer le nombre de jours depuis l’embauche d’un employé :

SELECT prénom, nom, DATEDIFF(NOW(), d_embauche) AS


jours_depuis_embauche
FROM Employés;

6.5. Exemple Complet sur les Dates

Supposons que nous avons la table suivante :​


Table Employés

id_employé prénom nom d_embauche

1 Jean Dupont 2020-01-15

2 Marie Durand 2021-03-20

3 Paul Martin 2019-06-10

Affichons le temps écoulé en années, mois et jours depuis leur embauche :

SELECT prénom, nom,


YEAR(NOW()) - YEAR(d_embauche) AS années,
MONTH(NOW()) - MONTH(d_embauche) AS mois,
DAY(NOW()) - DAY(d_embauche) AS jours
FROM Employés;
7. Les Contraintes (Constraints)
Les contraintes sont utilisées pour imposer des règles sur les données dans les tables d'une
base de données. Elles assurent l'intégrité et la validité des données. Voici les contraintes les
plus courantes en SQL :

7.1. PRIMARY KEY : CLE PRIMAIRE

La contrainte PRIMARY KEY identifie de manière unique chaque enregistrement dans une table.
Une table ne peut avoir qu'une seule clé primaire, et les colonnes définies comme clés
primaires ne peuvent pas contenir de valeurs NULL ni de doublons.

Exemple : Créer une clé primaire

CREATE TABLE Employés (


id_employé INT PRIMARY KEY,
prénom VARCHAR(50),
nom VARCHAR(50)
);

7.2. FOREIGN KEY : CLE ETRANGERE

La contrainte FOREIGN KEY est utilisée pour lier deux tables. Elle fait référence à une clé
primaire d'une autre table et assure l'intégrité référentielle.

Exemple : Définir une clé étrangère

CREATE TABLE Départements (


id_département INT PRIMARY KEY,
nom_département VARCHAR(50)
);

CREATE TABLE Employés (


id_employé INT PRIMARY KEY,
prénom VARCHAR(50),
nom VARCHAR(50),
id_département INT,
FOREIGN KEY (id_département) REFERENCES
Départements(id_département)
);
Remarque :

Si vous essayez d'insérer un id_département dans la table Employés qui n'existe pas dans
la table Départements, une erreur sera générée.

7.3. UNIQUE

La contrainte UNIQUE empêche l'insertion de valeurs en double dans une colonne ou un


ensemble de colonnes. Contrairement à PRIMARY KEY, plusieurs contraintes UNIQUE peuvent
être appliquées à une table.

Exemple : Créer une contrainte UNIQUE

CREATE TABLE Employés (


id_employé INT PRIMARY KEY,
email VARCHAR(100) UNIQUE
);

7.4. NOT NULL

La contrainte NOT NULL empêche une colonne d'accepter des valeurs NULL.

Exemple : Définir une colonne comme NOT NULL

CREATE TABLE Employés (


id_employé INT PRIMARY KEY,
prénom VARCHAR(50) NOT NULL,
nom VARCHAR(50) NOT NULL
);

7.5. CHECK

La contrainte CHECK impose une condition pour les valeurs insérées dans une colonne.

Exemple : Appliquer une contrainte CHECK

Limiter les salaires à des montants supérieurs ou égaux à 1000 :


CREATE TABLE Employés (
id_employé INT PRIMARY KEY,
prénom VARCHAR(50),
salaire DECIMAL(10, 2) CHECK (salaire >= 1000)
);

7.6. DEFAULT

La contrainte DEFAULT définit une valeur par défaut pour une colonne si aucune valeur n'est
spécifiée.

Exemple : Ajouter une valeur par défaut

CREATE TABLE Employés (


id_employé INT PRIMARY KEY,
prénom VARCHAR(50),
poste VARCHAR(50) DEFAULT 'Employé'
);

Si aucune valeur n'est spécifiée pour la colonne poste lors de l'insertion, la valeur "Employé"
sera utilisée.

Synthèse

Avec les notions de ce module, vous disposez de tout le nécessaire pour :

●​ Gérer des tables et bases de données avec DDL et DML.


●​ Réaliser des jointures avancées entre plusieurs tables.
●​ Effectuer des analyses avec des fonctions d'agrégation.
●​ Manipuler des chaînes et des dates pour enrichir leurs analyses.

Vous aimerez peut-être aussi