Guide de Cours - M106 - Bases de Données - MySQL - Avril 2023
Guide de Cours - M106 - Bases de Données - MySQL - Avril 2023
L’essentiel de MySQL
1 / 22
1) What is SQL?
SQL stands for Structured Query Language
SQL lets you access and manipulate databases
SQL became a standard of the American National Standards Institute (ANSI) in
1986, and of the International Organization for Standardization (ISO) in 1987
MySQL is an RDBMS :
RDBMS stands for Relational Database Management System.
The data in RDBMS is stored in database objects called tables. A table is a
collection of related data entries and it consists of columns and rows.
2) Environnement de travail
Installer Workbench
Lien : https://dev.mysql.com/downloads/mysql/
2 / 22
3) Create a MySQL database
CREATE DATABASE
Syntax
CREATE DATABASE databasename;
Example
CREATE DATABASE Vente;
USE DATABASE
Syntax
USE databasename;
Example
USE Vente;
DROP DATABASE
Syntax
DROP DATABASE databasename;
Example
DROP DATABASE Vente;
CREATE TABLE
Syntax
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
3 / 22
....
);
Example
CREATE TABLE Client (
CodeCl int Primary Key,
Nom varchar(30),
Ville varchar(40)
);
RENAME A TABLE
Example
Rename Table Client To Customer;
Example
ALTER TABLE Client
ADD COLUMN Email varchar(100);
Example
ALTER TABLE Client
DROP COLUMN Email;
Example
ALTER TABLE Client
RENAME COLUMN Email To Mail;
4 / 22
ALTER TABLE – MODIFY DATATYPE
Example
ALTER TABLE Client
ADD COLUMN Tel VarChar(10);
Example
Create Table Customer As
Select Nom,Ville
From Client
Where Ville = 'Fes';
Example
-- Selectionner les clients de Fes
Select * From Client Where Ville = 'Fes';
6 / 22
Example
-- Création de la table Article
Create Table Article (
CodeArt int Not Null Primary Key,
Desi VarChar(40),
PU decimal(6,2),
Qdisp int,
);
Example
-- Insertions dans la table Article
Insert Into Article Values (10,'Clavier',30,10),
(11,'Souris',50,20),
(12,'Ecran',800,30),
(13,'Disque',300,40);
7 / 22
MySQL functions : Max, Min, Count, Sum et avg (moyenne)
(Aggregate functions)
Example
-- Selectionner tous les articles
Select * From Article;
-- Nombre de clients
Select Count(*) As NbClients From Client;
-- Nombre de clients des Fes
Select Count(*) As NbClients
From Client
Where Ville = 'Fes';
GROUP BY Statement
The GROUP BY statement is often used with aggregate functions
(COUNT(), MAX(), MIN(), SUM(), AVG()) to group the result-set by one or
more columns.
Example
-- The number of customers in each country
Select Ville, Count(CodeCl) As NbClients
From Client
Group By Ville;
8 / 22
SQL HAVING Clause
Having syntaxe:
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
Example
-- The cities where number of customers is more than 2
Select Ville, Count(CodeCl) As NbClients
From Client
Group By Ville
Having Count(CodeCl) > 2;
Alias Table
Select * From Client As a Join Commande As b . . .
9 / 22
Limit, In, Between and Like
Example
-- Selectionner les deux premiers clients
Select *
From Client
limit 2;
10 / 22
'[abc]%' starting with "a", "b", or "c"
'[!abc]%' Not starting with "a", "b", or "c"
'[a-d]%' starting with "a", "b", "c" or "d"
Note :
(%) represents zero, one, or multiple
characters
(_) represents one single character
Note :
You can also use :
Not In – Not Between – Not Like
11 / 22
COMPOSITE PRIMARY KEY (Clé primaire composée)
Example : Create Detail table (Ligne_de_commande)
-- Création de la table Detail
Create Table Detail (
NumCom int,
CodeArt int,
Qte int,
primary key (NumCom,CodeArt),
foreign key (NumCom) references Commande(NumCom),
foreign key (CodeArt) references Article(CodeArt)
);
SQL JOINS
A JOIN clause is used to combine rows from two or more tables, based on a related
column between them.
SQL INNER JOIN Keyword
Syntax
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
12 / 22
Example
-- Liste de toutes les commandes avec les noms des clients
SELECT NumCom, DateCom, Nom
FROM Commande a
JOIN Client b ON a.CodeCl = b.CodeCl
SQL CONSTRAINTS
Constraints are used to limit the type of data that can go into a table. This
ensures the accuracy and reliability of the data in the table. If there is any
violation between the constraint and the data action, the action is aborted.
Constraints can be column level or table level. Column level constraints
apply to a column, and table level constraints apply to the whole table.
Constraints can be specified when the table is created with the CREATE
TABLE statement, or after the table is created with the ALTER TABLE statement.
Syntax
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
....
);
13 / 22
The following constraints are commonly used in SQL:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
CREATE INDEX
14 / 22
c) SQL Primary Key Constraint
Example
-- 1st case : while creating the table
Create Table Customer (
CodeCl int primary key,
Nom VarChar(40),
Ville VarChar(30)
);
15 / 22
CodeCl int,
Nom VarChar(40),
Ville VarChar(30)
);
-- b)
Alter Table Customer
Add Constraint Pk_Customer
Primary Key (CodeCl);
16 / 22
d) SQL Foreign Key Constraint
Example
Create Table Commande (
NumCom int Primary Key,
DateCom datetime,
CodeCl int,
Foreign Key (CodeCl) References Client(CodeCl)
);
17 / 22
Alter Table Commande
Drop Foreign Key Fk_Commande;
Example
18 / 22
Exercices
Requêtes SQL – Série N° 1
19 / 22
Exercices
Requêtes SQL – Série N° 2
Travail demandé :
1. Lister l’ensemble des livres triés par ordre croissant selon le titre.
2. Lister les livres par thème.
3. Calculer le nombre de livres par thème trié par ordre croissant selon ce
nombre.
4. Calculer le nombre d’emprunts par adhérent.
5. Calculer le nombre de livres emprunté par adhérent.
6. Calculer le nombre d’emprunts par livre.
7. Calculer le nombre d’emprunts par thème.
8. Calculer le nombre d’emprunts mensuel.
9. Calculer le nombre d’emprunts annuel.
10. Sélectionner le livre le plus emprunté.
11. Sélectionner le thème le plus emprunté.
12. Sélectionner l’adhérent ayant effectué le maximum d’emprunts.
13. Sélectionner les emprunts après une date donnée.
14. Sélectionner les emprunts concernant le thème «Maths».
20 / 22
15. Supprimer les emprunts après une date donnée.
16. Supprimer les emprunts concernant le thème «Maths».
17. Mettre à jour la date de retour des emprunts d’un adhérent à la date système.
18. Supprimer tous les emprunts du mois 5/2018.
19. Doubler le nombre d’exemplaires des livres du thème «Economie».
20. On veut calculer et afficher le retard au-delà de 15 jours pour chaque emprunt
non encore retourné.
21. On veut calculer et afficher pour chaque adhérent le cumul (la somme) des
retards de tous ses emprunts non encore retourné.
22. On veut calculer et afficher le retard au-delà de 15 jours pour chaque emprunt
retourné.
23. On veut calculer et afficher pour chaque adhérent le cumul (la somme) des
retards de tous ses emprunts retourné.
21 / 22
Delete From Commande; -- If Error do tasks bellow :
22 / 22