0% found this document useful (0 votes)
23 views

Guide de Cours - M106 - Bases de Données - MySQL - Avril 2023

This document provides an overview of MySQL including how to create databases and tables, insert and query data, perform aggregate functions and joins. It covers concepts such as primary keys, foreign keys, aliases and filtering data using keywords like where, limit, between and like.

Uploaded by

hicham18rami
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Guide de Cours - M106 - Bases de Données - MySQL - Avril 2023

This document provides an overview of MySQL including how to create databases and tables, insert and query data, perform aggregate functions and joins. It covers concepts such as primary keys, foreign keys, aliases and filtering data using keywords like where, limit, between and like.

Uploaded by

hicham18rami
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Guide de cours et TPs

L’essentiel de MySQL

MySQL ‫المختصر المفيد في لغة‬


Préparé par :
M. Hamid Mask

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.

Example : Client (Customer) table


The fields in the Customers table consist of CustomerID, CustomerName,
ContactName, Address, City, PostalCode and Country. A field is a column in a table
that is designed to maintain specific information about every record in the table.
A record, also called a row, is each individual entry that exists in a table. For
example, there are 91 records in the above Customers table. A record is a horizontal
entity in a table.
A column is a vertical entity in a table that contains all information associated with
a specific field in a table.

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;

DROP TABLE (Remove table)


Example
DROP TABLE Client;

ALTER TABLE (Modify table structure)


 ALTER TABLE - ADD Column

Example
ALTER TABLE Client
ADD COLUMN Email varchar(100);

 ALTER TABLE - DROP Column

Example
ALTER TABLE Client
DROP COLUMN Email;

 ALTER TABLE - RENAME Column

Example
ALTER TABLE Client
RENAME COLUMN Email To Mail;

4 / 22
 ALTER TABLE – MODIFY DATATYPE

Example
ALTER TABLE Client
ADD COLUMN Tel VarChar(10);

ALTER TABLE Client


MODIFY COLUMN Tel int;

 Create Table Using Another Table

Example
Create Table Customer As
Select Nom,Ville
From Client
Where Ville = 'Fes';

Select * From Customer;

INSERT ROWS (Data) in a table


Example
-- Insertions dans la table Client
Insert Into Client Values(1,'Alami','Fes');
Insert Into Client Values(2,'Naji','Casa');
Insert Into Client Values(3,'Sqalli','Fes');
Insert Into Client Values(4,'Wahbi','Rabat');

SELECT ROWS (Data) from a table


Example
-- Selectionner tous les clients
Select * From Client;
Ou
Select CodeCL, Nom, Ville From Client;
5 / 22
-- Selectionner le Nom et Ville pour tous les clients
Select Nom, Ville From Client;

-- Selectionner les clients de Fes


Select * From Client Where Ville = 'Fes';

-- Selectionner les Villes pour tous les clients


Select Ville From Client;

-- Selectionner les villes de tous les clients sans répétition


Select Distinct Ville From Client;
Select Distinct Ville, Nom From Client;  Un nom par ville

-- Selectionner tous les clients avec tri (Classement) selon la ville


Select *
From Client
Order By Ville desc; -- desc : Descendent (asc : Ascendent)

-- Tri selon la ville et le nom


Select * From Client Order by Ville,Nom desc;

 The SQL WHERE Clause


Where syntaxe:
SELECT column1, column2, ...
FROM table_name
WHERE condition;

Example
-- Selectionner les clients de Fes
Select * From Client Where Ville = 'Fes';

-- Selectionner un client dont le code est égal à 2


Select * From Client Where CodeCl = 2;

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;

-- MySQL functions : Max, Min, Count, Sum et avg


Select Max(PU) As Max From Article;
Select Min(PU) As Min 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';

-- Somme des Quantités disponibles


Select Sum(Qdisp) As QTotal From Article;

-- Moyenne des Quantités disponibles


Select avg(Qdisp) As QMoyenne From Article;

 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;

-- The some exemple with sort by descending order


Select Ville, Count(CodeCl) As NbClients
From Client
Group By Ville
Having Count(CodeCl) > 2
Order By Count(CodeCl) desc;

 Aliases (Les alias)


Aliases are used to give a table or a column in a table, a temporary
name.
 Alias Column
Select CodeCl As C, Nom As N, Ville As V From Client

 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;

-- Selectionner les clients des villes Fes et Casa


Select *
From Client
Where Ville in ('Fes','Casa');

-- Selectionner les articles dont le PU est entre


deux valeurs
Select *
From Article
Where PU Between 20 et 40;

-- Selection des clients dont le nom commence par


‘a’
Select *
From Client
Where Nom Like 'a%';

 'a%’ commence par ‘a’


 '%a’ se termine par ‘a’
 '%a%' contient ‘a’
 'a%d’ commence par ‘a’ et se termine par ‘d’
 '_r%’ ‘r’ est en seconde position
 'a_%’ commence par ‘a’ et contient au mois 2
caractères
 'a__%’ commence par ‘a’ et contient au mois 3
caractères

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

FOREIGN KEY (Relation between two tables)


Example : Create Commande table
-- Création de la table Commande
Create Table Commande (
NumCom int not null,
DateCom date,
CodeCl int,
primary key (NumCom),
foreign key (CodeCl) references Client(CodeCl)
);

-- Insertions dans la table Article


Insert Into Commande Values (100,'2023-4-1',1),
(101,'2023-4-2',1),
(102,'2023-4-3',2),
(103,'2023-4-4',3);

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)
);

-- Insertions dans la table Article


Insert Into Detail Values (100,10,10),
(100,11,20),
(100,12,30),
(101,10,10),
(101,11,20),
(102,10,10);

 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;

Syntax with alias :


SELECT column_name(s)
FROM table1 As a
INNER JOIN table2 As b
ON a.column_name = b.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

a) SQL NOT NULL Constraint


Example
CREATE TABLE Client (
CodeCl int Primary Key,
Nom varchar(30) Not Null,
Ville varchar(40)
);

ALTER TABLE Client


MODIFY COLUMN Ville int NOT NULL;

b) SQL UNIQUE Constraint


Example
CREATE TABLE Client (
CodeCl int Not Null,
Nom varchar(30) Not Null,
Ville varchar(40),
UNIQUE (CodeCl),
Constraint Un_Nom Unique (Nom)
);

ALTER TABLE Client


MODIFY COLUMN Ville int NOT NULL;

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)
);

Insert Into Customer Values(1,'Alami','Fes');


Insert Into Customer Values(1,'Sqalli','Casa');

Drop Table Customer;

Create Table Customer (


CodeCl int,
Nom VarChar(40),
Ville VarChar(30),
primary key (CodeCl)
);

Drop Table Customer;

Create Table Customer (


CodeCl int,
Nom VarChar(40),
Ville VarChar(30),
constraint Pk_Customer Primary Key (CodeCl)
);

-- 2nd case : after creating the table


Create Table Customer (

15 / 22
CodeCl int,
Nom VarChar(40),
Ville VarChar(30)
);

-- Alter Table Customer


-- Add Constraint Nom_Cte
-- Primary Key (Col1)
-- a)
Alter Table Customer
Add Primary Key (CodeCl);

Alter Table Customer


Drop Primary Key;

-- b)
Alter Table Customer
Add Constraint Pk_Customer
Primary Key (CodeCl);

-- Case of Primary Key composite


Create Table Detail (
NumCom int,
CodeArt int,
Qte int,
Primary Key (NumCom,CodeArt)
);

Alter Table Detail


Add Primary Key (NumCom,CodeArt)

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)
);

Alter Table Commande


Drop Foreign Key commande_ibfk_1;

Insert Into Commande Values (100,'2023-04-01',10); -- Error


Insert Into Commande Values (100,'2023-04-01',1);
Select * From Client;
Select * From Commande;

-- if table commande is removed


Create Table Commande (
NumCom int Primary Key,
DateCom datetime,
CodeCl int,
Constraint Fk_Commande
Foreign Key (CodeCl) References Client(CodeCl)
);

-- if table commande is not removed


Alter Table Commande
Add Constraint Fk_Commande
Foreign Key (CodeCl) References Client(CodeCl);

17 / 22
Alter Table Commande
Drop Foreign Key Fk_Commande;

e) SQL Check Constraint


Example

f) SQL Default Constraint


Example

Example

18 / 22
Exercices
Requêtes SQL – Série N° 1

Soit la Base de données Vente :

Créer les requêtes suivantes permettant de :

1. Sélectionner les clients de la ville de Fès.


2. Sélectionner les clients dont les noms commencent par ‘HA’.
3. Afficher les clients par ordre alphabétique selon le nom.
4. Sélectionner les commandes passées entre deux dates.
5. Sélectionner les commandes d'un client donné dont on connaît le nom.
6. Sélectionner les commandes des clients de la ville de Fès.
7. Calculer le nombre de commandes d'un client donné (par son nom).
8. Calculer le nombre de commandes par ville.
9. Calculer le montant des lignes d'une commande. (Afficher les lignes d’une
commande)
10. Calculer le total d’une commande.
11. Calculer le total pour chaque commande.
12. Calculer le total des totaux des commandes d’un client (Chiffre d’affaire
d’un client).
13. Calculer le Chiffre d’affaire pour chaque client.

19 / 22
Exercices
Requêtes SQL – Série N° 2

Soit le schéma de la base de données Biblio :

NbExmplaire est un attribut qui permet de comptabiliser le nombre d’exemplaires


restant dans la bibliothèque d’un livre donné.
DateRetour est nul à l’emprunt et sera mise à jour au retour du livre.

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

You might also like