Vous êtes sur la page 1sur 62

Chapitre 2

4: Langage SQL

Chapitre 4: Langage SQL


Base de données étudiée

Soit la base de données définie par le modèle relationnel


suivant:

CLIENT (numcli, nomcli, ville, categorie, compte)


COMMANDE (numcom, numcli, datecom)
PRODUIT (numpro, nompro, prix, qstock)
DETAIL (numcom, numpro, qcom)
Tables de la base de données
Tables de la base de données
Types numériques exacts
Numerique approximatif
Chaînes de caractères ( unicode)
Datetime et smalldatetime
Contexte général

Le SGBD permet la manipulation de la structure de la base de données.


Le SGBD offre 3 langages:
LDD: Langage de définition de données
LMD: Langage de manipulation de données
LID: Langage d’interrogation de données
Création d’une base de données

Voici 4 commandes SQL très utilisées:


Créer la base de données
CREATE DATABASE NOMBASE ;
Utiliser ensuite cette base de données, pour y créer des tables.
Use nombase;
Afficher les tables de la base de données utilisée

SELECT table_name FROM INFORMATION_SCHEMA.TABLES


Afficher le détail des colonnes de la table nom_table.
Select *
From INFORMATION_SCHEMA.COLUMNS
WHERE Table_Name='NomDeLaTable'
Création d’une table

Une table est un ensemble de lignes et de colonnes.


A la création, il faut indiquer le nom et le type de chaque colonne
de la table.

Syntaxe
CREATE TABLE nom_table (
nom_col1 type1,
nom_col2 type2,
...);
Exemple: Création de la base de données

Créer une base de données appelée BD_ACHAT.

Use BD_ACHAT;
Exemple: Création de la base de données

Créer une base de données appelée BD_ACHAT.


Create database BD_ACHAT;

Use BD_ACHAT;
Exemple: Création de la base de données

Créer une base de données appelée BD_ACHAT.


Create database BD_ACHAT;
Utiliser cette base de données, pour y créer des tables.
Use BD_ACHAT;
Exemple: Création de la base de données

Créer une base de données appelée BD_ACHAT.


Create database BD_ACHAT;
Utiliser cette base de données, pour y créer des tables.
Use BD_ACHAT;
Exemple: Création des tables
Créer la table CLIENT (numcli, nomcli, ville, categorie,
compte).
Contraintes d’intégrité

not NULL ou NULL: Interdit ou autorise l’insertion de valeur


NULL pour cet attribut.
unique : Désigne l’attribut comme clé secondaire de la table.
primary key : Désigne l’attribut comme clé primaire de la table.
foreign key (colonne) references table [(colonne)] :
Contrainte d’intégrité référentielle (Clé étrangère) pour un
attribut de la table en cours de définition.
check (condition) : Vérifie lors de l’insertion des données que
l’attribut vérifie la condition.
default valeur : Permet de spécifier la valeur par défaut de
l’attribut.
Exemple: Création des tables

Création de la table CLIENT


Create table CLIENT (
NumCLI int not null IDENTITY,
NOMCli varchar(12) not null,
ViLLE varchar(12) not null,
CATEGORIE char(1),
COMPTE decimal (9,2),
Constraint pk_cl_ncli primary key(NUMCLI));
Ajout d’une contrainte de table

Syntaxe
ALTER TABLE nom_table
ADD Constraint nom_contrainte contrainte;
Suppression d’une table

Supprimer une table revient à éliminer sa structure et toutes les


données qu’elle contient.
Les index associés sont également supprimés.

Syntaxe
DROP TABLE nom_table;
Exemple: Suppression d’une table

Supprimer la table client.


Exemple: Suppression d’une table

Supprimer la table client.

Exemple
DROP TABLE CLIENT;
Exemple: Ajout d’une colonne

Ajouter la colonne poids à la table produit.


Exemple: Ajout d’une colonne

Exemple
alter table table_name
add column_name type(taille);
Modification d’une colonne

Syntaxe
ALTER TABLE nom_table
ALTER COLUMN (
nom_colonne type [contrainte],
...);
Suppression d’une colonne

Syntaxe

ALTER TABLE nom_table


DROP COLUMN nom_colonne
Exemple: Suppression d’une colonne

Supprimer la colonne ville de la table client.


Renommer une colonne

Syntaxe
Exemple
EXEC sp_rename
EXEC sp_rename
‘Tablename.old-column-name',
'client.categorie', 'cat', 'COLUMN’;
‘new-column-name',
'COLUMN’;
Renommer une table

Syntaxe Exemple
exec sp_rename exec sp_rename
‘old_table_name', 'customer', 'client'
‘new_table_name'
Insertion des données

Syntaxe
INSERT into nom_table(nom_col_1, nom_col_2, ...)
VALUES (val_1, val_2, ...);

Exemple
insert into CLIENT (NOMCLI, VILLE , CATEGORIE, COMPTE)
values
(’AMINE’ ,’RABAT’ ,’A’,11250.00),
(’DRISS’ ,’CASABLANCA’ ,’A’,12300);
Exemple: Modification des données

Augmentez de 1000 Dhs les comptes des clients de catégorie A.


Exemple: Modification des données

Augmentez de 1000 Dhs les comptes des clients de catégorie A.

Exemple
update client
set compte=compte+1000
where categorie=’A’;
Suppression des données

Syntaxe
DELETE FROM nom_table
WHERE predicat;
Syntaxe générale de la commande SELECT

SELECT [ ALL | DISTINCT ] * | expression [ AS nom_affiché ] [, ...]


FROM nom_table [ [ AS ] alias ] [, ...]
[ WHERE prédicat ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ ORDER BY expression [ ASC | DESC ] [, ...] ]
Requête simple

Une requête simple contient trois parties principales :


Select indique quelles colonnes renvoyer
From indique dans quelle table rechercher
Where donne la condition de sélection
Opération arithmétiques
Conditions de comparaisons
Conditions de comparaisons
Extraction simple
Si on veut extraire les valeurs de certaines colonnes d’une
table:
Extraction simple
SELECT numcli, nomcli, ville
From CLIENT
Extraction simple
Si on demande les valeurs de toutes les colonnes.
Extraction simple
SELECT *
From CLIENT
Extraction de lignes sélectionnées
Extrayons les informations numcli et nomcli qui concernent les
clients de Casablanca.
Extraction de lignes sélectionnées
Extrayons les informations numcli et nomcli qui concernent les
clients de Casablanca.
Select numcli, nomcli
From CLIENT
Where ville = ’Casablanca’
Lignes dupliquées
Si on veut afficher les villes où habitent des clients de catégorie
A:
Lignes dupliquées
Si on veut afficher les villes où habitent des clients de catégorie
A:

Select ville
From CLIENT
Where categorie = ’A’
Lignes non dupliquées
On peut éliminer les lignes en double par la clause distinct:
Select distinct ville
Lignes non dupliquées
On peut éliminer les lignes en double par la clause distinct:
Select distinct ville
From CLIENT
Where categorie = ’A’
Données extraites et données dérivées
Si on veut afficher un tableau des montants TVA des articles en
stock dont la quantité restante est supérieure à 500 unités.
Données extraites et données dérivées

Select ’TVA de ’, numpro, ’ = ’,0.21*prix*Qstock


From PRODUIT
Where qstock > 500
Données extraites et données dérivées
On peut définir un alias de colonne.
Select numpro As Produit, 0.21*prix*Qstock As
Valeur_TVA
From PRODUIT
Where Qstock > 500
Conditions élémentaires
Une condition élémentaire peut porter sur la présence de la
valeur null :
Conditions élémentaires
Une condition élémentaire peut porter sur la présence de la
valeur null :
categorie is null
categorie is not null
Conditions élémentaires
Une condition peut aussi porter sur l’appartenance à une liste :
categorie in (’A’,’B’,’C’)
Conditions élémentaires
Une condition peut aussi porter sur l’appartenance à une liste :
categorie in (’A’,’B’,’C’)
ville not in (’Tanger’,’Rabat’,’Casablanca’)
Conditions élémentaires

Une condition peut aussi porter un intervalle :


Conditions élémentaires

Une condition peut aussi porter un intervalle :


compte between 1000 and 4000
categorie not between ’A’ and ’C’
Conditions élémentaires
Ordre des lignes d’un résultat
Si on veut trier les lignes par ordre croissant des villes
Select numcli, nomcli, ville, categorie
Ordre des lignes d’un résultat
Si on veut trier les lignes par ordre croissant des villes
Select numcli, nomcli, ville, categorie
From CLIENT
Where categorie in (’A’,’C’)
Order by ville
Ordre des lignes d’un résultat
On peut également spécifier un ordre ascendant (asc) ou
descendant (desc) :
Ordre des lignes d’un résultat
On peut également spécifier un ordre ascendant (asc) ou
descendant (desc) :
Select *
From PRODUIT
Where nompro like ’%casques%’
Order by Qstock desc

Vous aimerez peut-être aussi