Vous êtes sur la page 1sur 35

SQL

Contenu
• Création du schéma de la base de données
• Création des tables
• Suppression des tables
• Modifier le schéma d’une table
• Ajouter un ou plusieurs attributs
• Supprimer d’un ou plusieurs attributs
• Modifier les propriétés d’un ou plusieurs attributs
• Manipulation des données
• Insertion des lignes (données)
• Consultation (affichage) des données (projection, restriction, jointure)
• Suppression des données
• Mise à jour des données
Création du schéma de la base de
données
Création des tables
Suppression des tables
Modifier le schéma d’une table
Ajouter un ou plusieurs attributs
Supprimer d’un ou plusieurs attributs
Modifier les propriétés d’un ou plusieurs attributs
Création d’une table
CREATE TABLE table_name 
(
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
);
Exemple:
Supposant le schéma suivant:
CLIENT (IdCli, nom, ville)
PRODUIT (IdPro, nom, marque, prix, qstock)
VENTE (IdCli, IdPro, date_n, qte)
Création de la table client
CLIENT (IdCli, nom, ville)
CREATE TABLE client
(
IdCli CHAR(4) NOT NULL PRIMARY KEY ,
nom CHAR(20) ,
ville CHAR(30));
Création de la table Produit
PRODUIT (IdPro, nom, marque, prix, qstock)

CREATE TABLE produit


(
IdPro CHAR(6) NOT NULL PRIMARY KEY ,
nom CHAR(30) NOT NULL UNIQUE ,
marque CHAR(30) ,
prix float ,
qstock SMALLINT)
Création de la table Vente
VENTE (IdCli, IdPro, date_n, qte)
CREATE TABLE vente
(
IdCli CHAR(4) NOT NULL,
IdPro CHAR(6) NOT NULL,
date_n DATE NOT NULL ,
qte SMALLINT,
PRIMARY KEY (IdCli, IdPro, date_n)
)
Création de la table Vente
Déterminer les clés étrangers:
CREATE TABLE vente
( IdCli CHAR(4) NOT NULL REFERENCES client ,
IdPro CHAR(6) NOT NULL REFERENCES produit ,
date_n DATE NOT NULL ,
qte SMALLINT,
PRIMARY KEY (IdCli, IdPro, date_n) )
Modification Du Schéma
Supprimer une table
DROP TABLE table_name;
Exemple:
CREATE TABLE Tabexm
( Idtab CHAR(4) PRIMARY KEY)
Supprimer la table Tabexm
DROP TABLE Tabexm
Ajouter un attribut (une colonne):
ALTER TABLE table_name
ADD column_name datatype;
Exemple
1. ajouter à la table client l’attribut numéro de téléphone du client
ALTER TABLE client
ADD COLUMN teleph integer;
2. ajouter à la table client l’attribut date de naissance du client
ALTER TABLE client
ADD COLUMN Dtn date;
Supprimer un attribut (une colonne):
ALTER TABLE table_name
DROP COLUMN column_name;
Exemple:
Supprimer l’attribut date de naissance de la table client
ALTER TABLE client
DROP COLUMN Dtn ;
Modifier le type de données d’un attribut:
ALTER TABLE table_name
ALTER COLUMN column_name datatype;
Exemple:
Modifier le type d’attribut numéro de téléphone du client pour
accepter le zéro au début:
ALTER TABLE client
ALTER COLUMN teleph CHAR(12);
Manipulation des données
Insertion des lignes (données)
Consultation (affichage) des données (projection, restriction, jointure)
Suppression des données
Mise à jour des données
Insérer des lignes dans une table
INSERT INTO table_name 
VALUES (value1, value2, value3, ...);
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
Exemple:
INSERT INTO client (IdCli, nom, ville)
Ajouter les clients suivants VALUES ('100', 'ahmed' , 'Constantine' );
IdCli nom ville
100 ahmed Constantine INSERT INTO client (IdCli, nom, ville)
200 ali Alger VALUES ('200', 'ali' , 'Alger' );
300 amani Oran
INSERT INTO client (IdCli, nom, ville)
VALUES ('300', 'amani' , 'Oran' );
Insérer des lignes dans une table
Exemple:
Ajouter les produits suivants
IdPro nom marque prix qstock INSERT INTO produit (IdPro, nom, marque, prix, qstock)
1200 pg200 hp 25000 2 VALUES ('1200', 'pg200','hp',25000,2);
1400 a100 acer 40000 3
1100 Pg400 hp 70000 0 INSERT INTO produit (IdPro, nom, marque, prix, qstock)
1300 h100 hp 50000 1 VALUES ('1400', 'a100','acer',40000,3);

INSERT INTO produit (IdPro, nom, marque, prix, qstock)


VALUES ('1100', 'pg400','hp',70000,0);

INSERT INTO produit (IdPro, nom, marque, prix, qstock)


VALUES ('1300', 'h100','hp',50000,1);
Insérer des lignes dans une table
Exemple:
Ajouter les produits vendus suivants
IdCli IdPro Date_n qte INSERT INTO vente (IdCli ,IdPro, date_n,qte)
100 1200 1/4/2023 1 VALUES ('100', '1200', #1/4/2023#,1);
100 1400 1/4/2023 1
INSERT INTO vente
VALUES ('100', '1400', #1/4/2023#,1);

INSERT INTO vente


VALUES ('500', '1400', #1/4/2023#,1);
On ne peut ajouter cette ligne car le client
500 n’existe pas,
La projection
la projection d’une relation R consiste à créer une nouvelle relation, à partir de R
mais en ne conservant que les attributs cités en opérande.
Afficher quelques colonnes seulement
SELECT column1, column2, ...
FROM table_name;
SELECT : indique la liste des attributs constituant le résultat.
FROM : indique la (ou les) tables dans lesquelles on trouve les
attributs utiles à la requête.
Exemple:
Afficher les noms des clients:
SELECT nom
FROM client
Afficher toutes les colonnes
SELECT *
FROM table_name;
Exemple:
Afficher la table clients:
SELECT *
FROM client
Afficher sans redondance
SELECT DISTINCT column1, column2, ...
FROM table_name;
Exemple:
Afficher la liste des numéro des clients acheter des produits:
SELECT IdCli
FROM vente

SELECT DISTINCT IdCli


FROM vente
La restriction
Elle consiste à créer une relation à partir d’une autre, en ne gardant que les tuples
pour lesquels un attribut vérifie une certaine condition.
WHERE : indique les conditions que doivent satisfaire les n-uplets
de la base pour faire partie du résultat.
SELECT column1, column2, ... SELECT *
FROM table_name FROM table_name
WHERE condition; WHERE condition;
Une condition composé est construit à l’aide des connecteurs AND, OR et NOT
SELECT column1, column2, ... SELECT column1, column2, ...
FROM table_name FROM table_name
WHERE condition1 AND condition2 ...; WHERE condition1 OR condition2 ...;

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
Exemple:
Afficher la liste des produits où la quantité est supérieure à 2
SELECT *
FROM produit
WHERE qstock>2
Afficher la lister des produits qui ayant une quantité entre 0 et 1
SELECT *
FROM produit
WHERE qstock BETWEEN 0 AND 2

Afficher la liste des produits dont le nom est commencé par ‘p’
SELECT * Le prédicat LIKE compare une chaîne avec un modèle
FROM produit (_) remplace n'importe quel caractère
WHERE nom LIKE 'p*' (*) remplace n'importe quelle suite de caractères
Afficher les noms des clients habitent Alger ou Constantine
SELECT nom
FROM client
WHERE ville IN (‘Alger','Constantine');
Afficher les noms des clients qu'on ne connaisse pas leur ville
SELECT nom
FROM client
WHERE ville IS NULL;
Tri de l’affichage
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
ORDER BY : est utilisée pour trier les résultats d'une requête SELECT.
Cette clause doit être suivie de la liste des attributs servant de critère au
tri.
Le tri se fera d'abord selon le premier attribut spécifié, puis selon le
deuxième attribut etc...
Pour trier en ordre descendant, on ajoute le mot-clé DESC après la liste
des attributs. Et pour avoir un tri ascendant, on ajoute le mot-clé ASC.
Par défaut les attributs seront triés en ordre ascendant.
Afficher les noms des clients habitent Alger ou Constantine triés par ordre
descendant du nom de la ville
SELECT nom, ville
FROM client
WHERE ville IN ('Alger', 'Constantine')
ORDER BY ville DESC
Afficher les clients triés par ordre descendant du nom de la ville et par ordre
ascendant du nom des clients

SELECT *
FROM client
ORDER BY ville DESC , nom ASC
Suppression des données
L'instruction DELETE est utilisée pour supprimer des enregistrements existants dans
une table.
DELETE 
FROM table_name 
WHERE condition;
Remarque : Soyez prudent lorsque vous supprimez des enregistrements dans une table !
Notez la clause WHERE dans l'instruction DELETE. La clause WHERE spécifie quel(s)
enregistrement(s) doivent être supprimés. Si vous omettez la clause WHERE, tous les
enregistrements de la table seront supprimés !

Exemple:
Supprimer le client ‘ahmed’ dans la table client
DELETE
FROM client
WHERE nom='ahmed';
Modification des données
L'instruction UPDATE est utilisée pour modifier les enregistrements existants dans
une table.
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
Remarque : Soyez prudent lorsque vous mettez à jour des enregistrements dans une table ! Notez la clause
WHERE dans l'instruction UPDATE. La clause WHERE spécifie quel(s) enregistrement(s) doit être mis à jour. Si
vous omettez la clause WHERE, tous les enregistrements de la table seront mis à jour !

Le vendeur a acheté 2 pièces des produits avec une quantité égale à zéro
UPDATE produit
SET qstock=2
WHERE qstock=0;
Le client Ali change sa ville à Blida
UPDATE Client
SET ville=‘Blida’
WHERE nom=‘ali’;
Jointure
Une clause JOIN est utilisée pour combiner des lignes de deux tables ou plus, en
fonction d'une colonne liée entre elles.
Jointure naturelle
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Afficher les numéros et les noms des clients qui
achètent des produits
SELECT vente.IdCli, client.nom
FROM vente
INNER JOIN client ON vente.IdCli=client.IdCli;
Le mot clé INNER JOIN sélectionne les enregistrements dont les valeurs
correspondent dans les deux tables.
Afficher les numéros et les noms des clients qui achètent
des produits avec les noms des produits achetés
SELECT vente.IdCli, client.nom, produit.nom
FROM ((vente
INNER JOIN client ON vente.IdCli=client.IdCli)
INNER JOIN produit ON vente.IdPro=produit.IdPro);

Vous aimerez peut-être aussi