BD Cours 4

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 35

Langage SQL

• Le SQL (Structured Query Language) est un


langage permettant de communiquer avec une
base de données. Ce langage informatique est
notamment très utilisé par les développeurs
web pour communiquer avec les données d’un
site web.
• Objectifs de SQL

• Créer la structure de la base de donnêes et de


ses table
• Executer les tâches de base de la gestion des
données, telle que l’insertion, la modification
et la suppression de données des tables
• Effectuer des requêtes simples ou complexes
CREATION DES TABLES

• La commande CREATE TABLE permet de créer


une table en SQL.
• La syntaxe générale pour créer une table est la
suivante :
• CREATE TABLE nom_de_la_table (
colonne1 type_donnees,
colonne2 type_donnees,
colonne3 type_donnees)
• Exemple :
• Soit le MLD suivant :
• Etudiant(matricule,nom, prenom, date_naiss).
• Créer la table etudiant en choisissant
matricule comme clé primaire.
• Les types de données sont : matricule : entier
• Nom varchar(20); prenom varchar(30),
date_naiss date.
Soit le MLD suivant:

Etudiant(Matricule, nom, prenom,datenaiss)

CREATE TABLE etudiant(Matricule int primary key,


nom varchar(20) NOT NULL,
prenom varchar(30),
datenaiss Date)
Soit le MLD suivant:
Etudiant(Matricule, nom, prenom,datenaiss,#codeC)
Classe(CodeC, nom_cl)

CREATE TABLE Classe(CodeC int Primary Key


auto_increment,
nom_cl Varchar(40) )
CREATE TABLE etudiant(Matricule int primary key,
nom varchar(20) NOT NULL,
prenom varchar(30),
datenaiss Date,
codeCl int,
Foreign key(codeCl) references Classe(codeC) )
Les Contraintes
• Dans toute entreprise, les données doivent
souvent respecter certaines restrictions ou
règles. Par exemple, un numéro d'employé
doit être unique. Le gestionnaire de base de
données fournit des contraintes pour
appliquer de telles règles.
• NOT NULL : Colonne Obligatoire,
• Default: Valeur par defaut
• Check : Verification d’une valeur
• Unique : Valeur de champs Unique
• Primary key : Clé Primaire
• AUTO_INCREMENT(incrémentation
automatique d’un nombre )
• Foreign key(clé Etrangére )
Action Referentielle
• Lorsqu’une opération UPDATE ou DELETE
affecte une clé valeur dans la table parente
qui contient des lignes correspondantes dans
la table enfant le résultat dépendra de l’action
référentielle spécifié.
Action Référentielle
• ON DELETE CASCADE |
• ON UPDATE CASCADE

• ON DELETE RESTRICT
• ON DELETE SET NULL
• ON UPDATE SET NULL
Créer une base de données qui permet de gérer
les classes enseignées par un professeur.
Un professeur enseigne une ou plusieurs classe,
Une classe est enseignée par un ou plusieurs
professeur.
La suppression d’un enseignant doit entrainer la
suppression de toutes ses classes.
La modification du code de la classe doit être
appliquées dans les classes filles.
Modification d’une table

• La commande ALTER TABLE en SQL permet


de modifier une table existante.
• Ajouter une colonne :
– Alter table nom_table
– ADD nom_colonne type_donnee
Exemple :
Alter table etudiant
ADD adresse varchar(40)
• Supprimer une colonne :
– Alter table nom_table
– Drop nom_colonne

Exemple :
Alter table etudiant
Drop adresse
• Renommer une colonne :
• ALTER TABLE nom_table CHANGE colonne_ancien_nom
colonne_nouveau_nom type_donnees
• Exemple :
• Alter table etudiant CHANGE
• Prenom prenom_etu varchar(40)

• Modifier un type de données


• ALTER TABLE nom_table
• MODIFY nom_colonne type_données
• Renommer une table : RENAME
• RENAME TABLE Ancien_Nom TO Nouveau_Nom
• Suppression d'une table en SQL : DROP
• Drop Table nom_table
• Pour vider une table : TRUNCATE nom_table
Insertion des données

L’insertion de données dans une table s’effectue


à l’aide de la commande INSERT INTO.
• La syntaxe pour remplir une ligne avec cette
méthode est la suivante :
• INSERT INTO table VALUES ('valeur 1', 'valeur 2', ...)
• Ou
• INSERT INTO table (nom_colonne_1,
nom_colonne_2, ... VALUES ('valeur 1', 'valeur 2', ...)
• Exemple :
• Inserons les données suivantes dans la table
etudiant : 2002 DIA Zeinabou 15/02/1998

• Insert into etudiant


values(2002,‘DIA’,’Zeinabou’,’15/02/1998’)
• Ou
• Insert into etudiant(matricule,nom,prenom,datenaiss)
values (2002,‘DIA’,’Zeinabou’,’15/02/1998’)
• La commande UPDATE permet d’effectuer des modifications sur des
lignes existantes.
• La syntaxe basique d’une requête utilisant UPDATE est la suivante :
• UPDATE table SET nom_colonne_1 = 'nouvelle valeur' WHERE
condition
• Exemple :
– Update etudiant set nom=‘LY’ where matricule=2002

• La commande DELETE en SQL permet de supprimer des lignes dans une table.
• Exemple : DELETE FROM etudiant WHERE matricule = 2002
La commande Select
• L’utilisation la plus courante de SQL consiste à lire
des données issues de la base de données. Cela
s’effectue grâce à la commande SELECT, qui
retourne des enregistrements dans un tableau de
résultat.
• Syntaxe :
• SELECT nom_du_champ FROM nom_du_tableau
• Exemple : select nom from etudiant
• Pour selectionner toutes les colonnes d’une table :
• Select * from etudiant
Exercices
• Soit le modele Logique de donnée suivant :
• Etudiant(matricule, nom,prenom,adresse,#codeCL)
• Classe(codeCL, libelle)
• Question :
• Créer les tables classe et etudiant
• Ajouter le champs Datenaiss dans la table etudiant
• Renommer le champs libelle de la table classe par
nom_CL varchar(40)
• Supprimer la propriete Adresse de la table etudiant
• Inserer des donnees dans les tables etudiant, classe
• Afficher la liste des étudiants;
• Afficher la liste des étudiants trier par ordre
croissants de matricules
• Afficher la liste des étudiants qui habites KSAR
• Afficher les classes trier par ordre décroissants
du nom_cl.
• Afficher le nombre total des étudiants
• Afficher les classe dont le libelle est vide
Synonyme de nom de table (ou alias)

 On peut introduire dans la clause FROM un synonyme


(alias) à un nom de table en le plaçant immédiatement
après le nom de la table

 Les noms de table ou les synonymes peuvent être


utilisés pour préfixer les noms de colonnes dans le
SELECT

 Les préfixes ne sont obligatoires que dans des cas


particuliers (par ex. pour une auto-jointure) ; leur
emploi est cependant conseillé pour la clarté
Tri du résultat d'un SELECT
• La clause ORDER BY permet de spécifier les colonnes
définissant les critères de tri
 Le tri se fera d'abord selon la première colonne spécifiée,
puis selon la deuxième colonne etc...
 Exemple
Lister les étudiant en les triant par nom décroissant

SELECT *
FROM etudiant
ORDER BY Nom DESC

 L'ordre de tri est précisé par ASC (croissant) ou DESC


(décroissant) ; par défaut ASC
• Pour éliminer les doublons il faut spécifier
DISTINCT
• Exemple : SELECT DISTINCT nom from etudiant
• Il est possible d'effectuer des opérations arithmétiques
(+, -, *, /) sur les colonnes extraites
• Exemple :
– Select libelle, quantite, prix, prix*quantite as Total
from produit
La commande WHERE

• la commande WHERE permet d’extraire les lignes d’une table


dans une base de données, qui respectent une condition.

• SELECT une_colonne FROM une_table WHERE une_condition;

• Select nom, prenom from etudiant where matricule=12


 La condition de recherche (qualification) est spécifiée après la clause
WHERE par un prédicat

 Un prédicat simple peut-être :

- un prédicat d’égalité ou d’inégalité (=, <>, <, >, <=, >=)

- un prédicat LIKE

- un prédicat BETWEEN

- un prédicat IN

- un test de valeur NULL

 Un prédicat composé est construit à l’aide des connecteurs AND, OR


et NOT
 Exemples
• Lister les etudiant dont le nom comporte la lettre A
SELECT *
FROM Etudiant
WHERE nom LIKE 'A%'
Le prédicat LIKE compare une chaîne avec un modèle
(_) remplace n'importe quel caractère
(%) remplace n'importe quelle suite de caractères

Lister les etudiants dont la date de naissance est compriss entre 01/01/2002 et 01/01/2005
SELECT *
FROM etudiant
WHERE datenaiss BETWEEN 01/01/2002 and 01/01/2005

Le prédicat BETWEEN teste l'appartenance à un intervalle

Lister les etudiants de matricule 75,89 et 120


SELECT *
FROM Etudiant
WHERE matricule IN (75, 89, 120)

Le prédicat IN teste l'appartenance à une liste de valeurs


• Lister les etudiants dont le nom est inconnu

SELECT *
FROM Etudiant
WHERE nom IS NULL

La valeur NULL signifie qu'une donnée est inconnue

Lister les étudiants de nom AICHA dont la date de naissance est inferieur au 1/01/2000

SELECT *
FROM Etudiant
WHERE nom = 'AICHA' AND datenaiss < 01/01/2000

Le connecteur AND relie les 2 prédicats de comparaison


Expression des jointures

• Le produit cartésien s'exprime simplement en incluant


plusieurs tables après la clause FROM

 La condition de jointure est exprimée après WHERE

 Exemples :
Lister les matricules nom, prenom des etudiants de la classe MPSI A

SELECT E.matricule, E.nom , E.prenom, C.libelle


FROM Etudiant E, classe C
WHERE E.codecl = C.codecl
Les fonctions d’agrégations

• Les fonctions d’agrégation dans le langage


SQL permettent d’effectuer des opérations
statistiques sur un ensemble d’enregistrement.
Les principales fonctions sont les suivantes :
• MIN :
• La fonction MIN est utilisée pour déterminer la plus
petite valeur de toutes les valeurs sélectionnées d'une
colonne.
• MAX :
• Exemple : select min(age) from etudiant
• Cette requête affiche le plus petit âge des étudiants
• MAX :
• la fonction MAX est l'opposée de la
fonction MIN. Elle renvoie la plus grande
valeur de toutes les valeurs sélectionnées d'une
colonne.
• Exemple : select max(age) from etudiant;
• SUM :
• La fonction SUM renvoie la somme de toutes les
valeurs de la colonne spécifiée.
• SUM fonctionne uniquement sur les champs
numériques.
• Exemple :
• Select sum(note) from notation
• Affiche la somme des note de la table notation
• Count
• La fonction COUNT est utilisée pour compter
le nombre de lignes dans une table de base de
données. Il peut fonctionner sur les types de
données numériques et non numériques.
• La fonction COUNT utilise COUNT(*) qui
renvoie le nombre de toutes les lignes d'une
table spécifiée. COUNT(*) considère les
doublons et Null.
• Exemple : select count(*) from etudiant
• Affiche le nombre d’etudiant
• AVG :
• La fonction AVG renvoie la moyenne des valeurs
d'une colonne spécifiée. Tout comme la
fonction SUM, elle ne fonctionne que sur les types
de données numériques.

• Exemple : select AVG(note) from notation


• Affiche la moyenne des note de la table notation

Vous aimerez peut-être aussi