0% ont trouvé ce document utile (0 vote)
85 vues5 pages

Guide SQL: Création et Gestion de Bases de Données

Transféré par

hachem.kac
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
85 vues5 pages

Guide SQL: Création et Gestion de Bases de Données

Transféré par

hachem.kac
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SQL avec des exemples

Savoir effectuer des requêtes n’est pas trop difficile, mais il convient de véritablement comprendre
comment fonctionne le stockage des données et la façon dont elles sont lues pour optimiser les
performances. Les optimisations sont basées dans 2 catégories : les bons choix à faire lorsqu’il faut
définir la structure de la base de données et les méthodes les plus adaptées pour lire les données.

1-Créer une base de données CREATE DATABASE IF NOT EXISTS GESTION


CREATE DATABASE IF NOT EXISTS ma_base
2-Supprimer une base de données DROP DATABASE IF EXISTS GESTION
DROP DATABASE ma_base
3-Création d’une table La commande CREATE TABLE permet de créer une
CREATE TABLE nom_de_la_table table en SQL. Un tableau est une entité qui est
( contenu dans une base de données pour stocker
colonne1 type_donnees,
des données ordonnées dans des colonnes. La
colonne2 type_donnees,
colonne3 type_donnees, création d’une table sert à définir les colonnes et
colonne4 type_donnees le type de données qui seront contenus dans
) chacun des colonne (entier, chaîne de caractères,
----- date, valeur binaire …).
Types :
Int : entier
CREATE TABLE IF NOT EXISTS
Real ou float : nombre réel
utilisateur (
Varchar(nbcar)ou text : chaine de caractère.
id INT PRIMARY KEY NOT NULL,
DATE : date
nom VARCHAR(100),
BOOL : booléen vrais=1 ou faux=0
prenom VARCHAR(100),
email VARCHAR(255),
Exemple : date_naissance DATE,
pays VARCHAR(255),
utilisateur ( id, Nom, prénom, Téléphone,email, ville VARCHAR(255),
date, pays,ville,code_postal,nombre_achat) code_postal VARCHAR(5),
nombre_achat INT
) ;

3- modification d’une table (Ajouter/supprimer/modifier - ALTER TABLE nom_table


ADD nom_colonne type_donnees
des colonnes) - ALTER TABLE nom_table
La commande ALTER TABLE en SQL permet de DROP nom_colonne
modifier une table existante. Ou bien numéron de la colonne
Il est possible d’ajouter une colonne, d’en supprimer une ou - ALTER TABLE nom_table
de modifier une colonne existante, par exemple pour DROP COLUMN nom_colonne
changer le type
ALTER TABLE utilisateur ALTER TABLE utilisateur
ADD adresse_rue VARCHAR(255) DROP adresse_rue VARCHAR(255)
4-DROP TABLE : supprimer définitivement une table
Syntaxe DROP TABLE client
DROP TABLE nom_table ;
5- Insertion des valeurs dans une table donnée soit Ajouter le client :
toutes les valeurs ou quelques valeurs : Num=13 Nom = bakkas
Syntaxe ville= meknes tel=0670000001
INSERT INTO table VALUES (valeurs) INSERT INTO client VALUES
(13,bakkas,’meknes’,’0670000001’)
6-Requête de mise à jour : UPDATE
Syntaxe:
UPDATE table SET champ=newval
WHERE condition
Exemple 1: Modifier la vile de client bakkas Exemple 2: Réduire le prix des produits

BRAHIM BAKKAS PAGE 1


Ville=rabat qui ont un prix >=1000 et stock >10.
Update produit set prix=prix*(1-0.2)
Update client set vile= ‘rabat’ Where prix>=100 and stock>=10
Where nom=’bakkas’
7-Supprimer des lignes : DELETE La commande DELETE en SQL permet de
DELETE FROM table supprimer des lignes dans une table. on utilisant
WHERE condition cette commande associée à WHERE il est possible
de sélectionner les lignes concernées qui seront
supprimées.
Vider une table
TRUNCATE TABLE nom_table TRUNCATE TABLE client
La requête de sélection []= facultatif ou choix
SELECT [All]|[DISTINCT] <liste des champs> |* |= ou bien
From table | liste_des_tables *= toutes les colonnes
Where [All]|[DISTINCT] : all =tous les
Group by colonne having lignes ou bien DISTINCT=
Order by colonne asc|desc Distinct les lignes déférents
Limit nombre_ligne
Condition where dans une requête
Pour exprimer une condition on utilise les opérateurs de > ,>=, <,<=, =, != (ou bien <>)
comparaisons ou les opérateurs logiques And | or | not
Like
Between and
IS NULL | IS NOT NULL
IN | NOTE IN
AND , OR , Not sont les opérateurs logiques qui
permettent d’exprimer plusieurs conditions
IN , NOT IN Les clients qui habitent à rabat ou Meknès
Vile in (‘Meknès’,’rabat’)
Pour savoir si un champ Appartient ou Les clients qui n’habitent pas à casa ou
Non à un ensemble de valeur Meknès (tous les clients sauf qui habitent
à casa et Meknès)
Ville not in (‘Meknès,’casa’)
BETWEEN, not BETWEEN Les noms des produits dans le prix et
Pour exprimer un intervalle fermé dans les deux coté entre 100 et 200.
Select nom from produit
Where prix between 100 and 200
LIKE SELECT *
Le caractère " _ " (underscore) ou bien( ?) peut être remplacé FROM table
WHERE colonne LIKE modele
par n’importe quel caractère, mais un seul caractère
Like ‘a%’ : 1er car est a
uniquement (alors que le symbole pourcentage « % » ou bien
Like ‘a_c%’ : 1ercar=a et 3ème car=c
« * » peut être remplacé par un nombre
Incalculable de caractère
IS NULL | IS NOT NULL Select *
Est-ce que le champ est null ou non From utilisateur
Where email in not NULL
Pour réaliser des regroupements Select *
GROUP BY From utilisateur
Group By Ville
Pour réaliser des groupements restreints Select *
HAVING From utilisateur
Group By Ville having (‘rabat’,
Utiliser avec groupe by pour restreindre la sélection a
des cas particuliers ‘meknes’)
ORDER BY champ asc|desc Order by nom asc
Réaliser un ordre d’affichage des résultats soit Order by nom asc, ville desc
ascendant ou descendant
AS (alias) : permet de renommer un champ au SELECT nom as ‘nom de client’ ;
moment de l’affichage des résultats de select Au lieu d’afficher le titre nom il

BRAHIM BAKKAS PAGE 2


sera affiché nom de client
LIMIT Utiliser pour limiter l’affichage des Select * from client
lignes (nb de tuples à afficher) Limit nb;

UNION Union de de requête : Requete1


Union
Requete2
INTERSECT Union de de requête
Requete1
INTERSECT
Requete2
Jointure
En général, les jointures consistent à associer des lignes
de 2 tables en associant l’égalité des valeurs d’une
colonne d’une première table par rapport à la valeur
d’une colonne d’une seconde table. Imaginons qu’une
base de 2 données possède une table « utilisateur » et
une autre table « adresse » qui contient les adresses de
ces utilisateurs. Avec une jointure, il est possible d’obtenir
les données de l’utilisateur et de son adresse en une seule
requête.
Les résultats de la jointure et une relation (table) qui
contient toutes les colonnes des tables participant à la
jointure Et les lignes sont le produit cartésien de tables
participantes et qui respectent certaine condition

INNER JOIN : jointure interne pour retourner les SELECT *


enregistrements quand la condition est vrai dans FROM A
les 2 tables. C’est l’une des jointures les plus INNER JOIN B ON
communes. A.key = B.key

NATURAL JOIN : jointure naturelle entre 2 tables SELECT *


s’il y a au moins une colonne qui porte le même FROM A NATUREL JOIN B
nom entre les 2 tables SQL
Exemple :Table Client Table commande
idClt prenom nom email ville num_facture date_achat prix_total IdClt
1 Aimée Marechal [email protected] Paris A00103 2013-01-23 203.14 1
2 Esmée Lefort [email protected] Lyon A00104 2013-02-14 124.00 1
3 Marine Prevost [email protected] Lille A00105 2013-02-17 149.45 2
4 Luc Rolland [email protected] Marseille A00106 2013-02-21 235.35 2
A00107 2013-03-02 47.58 5
SELECT id, prenom, nom, date_achat, Résultat:
num_facture, prix_total id prenom nom date_achat num_facture prix_total
FROM client 1 Aimée Marechal 2013-01-23 A00103 203.14
INNER JOIN commande ON client.id =
1 Aimée Marechal 2013-02-14 A00104 124.00
commande.idClt
2 Esmée Lefort 2013-02-17 A00105 149.45
Ou bien
2 Esmée Lefort 2013-02-21 A00106 235.35
SELECT id, prenom, nom, date_achat,
num_facture, prix_total Le résultat de la requête montre parfaite la
FROM client, commande jointure entre les 2 tables. Les utilisateurs 3 et 4
where client.id = commande.idclt ne sont pas affichés puisqu’il n’y a pas de
commandes associées à ces utilisateurs.

BRAHIM BAKKAS PAGE 3


Fonctions d’agrégation
Max, min, sum, avg et count
Les fonctions d’agrégation dans le langage SQL permettent d’effectuer des opérations statistiques sur un ensemble
d’enregistrement. Étant donné que ces fonctions s’appliquent à plusieurs lignes en même temps, elles permettent
des opérations qui servent à récupérer l’enregistrement le plus petit, le plus grand ou bien encore de déterminer la
valeur moyenne sur plusieurs enregistrements

Syntaxe :
SELECT fonction(colonne) FROM table
Utilisation avec GROUP BY avec les fonctions d’agrégation
Toutes ces fonctions prennent tout leur sens lorsqu’elles sont utilisées avec la commande GROUP BY qui
permet de filtrer les données sur une ou plusieurs colonnes. Imaginons une table qui contient tous les achats
sur un site avec le montant de chaque achat pour chaque enregistrement. Pour obtenir le total des ventes par
clients, il est possible d’exécuter la requête suivante :
SELECT client, SUM(tarif)
FROM achat
client SUM(tarif)
GROUP BY client Le résultat : Pierre 262
Simon 47
Marie 38
COUNT() Count(*)
Compte le Nombres des ligne (tuples)
Cette fonction est utilisable sans précisé le nom de la
colonne conut(*)
MAX() Max(colonne)
Valeur max dans une colonne, cette fonction est
appliquée à un seul champ (colonne)
MIN() Min(colonne)
Valeur min dans une colonne,
cette fonction est appliquée à un seul champ
(colonne)
SUM() Sum(colonne)
Somme d’une colonne, cette fonction est appliquée à
un seul champ (colonne)
AVG() Avg (colonne)
Calcule la moyenne cette fonction est appliquée à un
seul champ (colonne)
Fonctions de dates et d’heures

DATE() ou bien NOW() Retourne la date système aujourd’hui

MONTH() Extrait le mois d’une date :


MONTH(colonedate)
Exemple : Le mois encore
Where MONTH(colonedate) = MONTH
(now())
YEAR() Extrait l’année d’une date :
YEAR(colonedate)
Exemple: L’année encore
Where YEAR(colonedate) = YEAR(now())
DAY() Exemple:
L’année encore:
Where DAY (colonedate) = DAY (now())

BRAHIM BAKKAS PAGE 4


Sous-requête
Dans le langage SQL une sous-requête (aussi appelé SELECT *
FROM table
« requête imbriquée » ou « requête en cascade ») consiste WHERE nom_colonne = (
à exécuter une requête à l’intérieur d’une autre requête. SELECT valeur
Une requête imbriquée est souvent utilisée au sein d’une FROM table2
clause WHERE ou de HAVING pour remplacer une ou LIMIT 1
)
plusieurs constantes. A noter : il est possible d’utiliser
n’importe quel opérateur d’égalité
tel que =, >, <, >=, <= ou <>.
Une requête imbriquée peut également retournée une SELECT *
FROM table
colonne entière. Dès lors, la requête externe peut utiliser WHERE nom_colonne IN (
la commande IN pour filtrer les lignes qui possèdent une SELECT colonne
des valeurs retournées par la requête interne. FROM table2
WHERE cle_etrangere = 36
)

La commande EXISTS consiste à vérifier si une sous- SELECT nom_colonne1


requête retourne un résultat ou non, en utilisant EXISTS FROM table1
WHERE EXISTS (
dans la clause conditionnelle. La requête externe SELECT nom_colonne2
s’exécutera uniquement si la requête interne retourne au FROM table2
moins un résultat. WHERE nom_colonne3 = 10
)
La commande ALL permet de comparer une valeur dans SELECT *
l’ensemble de valeurs d’une sous-requête. En d’autres mots, FROM table1
WHERE condition > ALL (
cette commande permet de s’assurer qu’une condition est SELECT *
« égale », « différente », « supérieure », « inférieure », FROM table2
« supérieure ou égale » ou « inférieure ou égale » pour tous les WHERE condition2
résultats retournés par une sous-requête. )
La commande ANY (ou SOME) permet de comparer une valeur SELECT *
avec le résultat d’une sous-requête. Il est ainsi possible de FROM table1
WHERE condition > ANY (
vérifier si une valeur est « égale », « différente », « supérieur », SELECT *
« supérieur ou égale », « inférieur » ou « inférieur ou égale » FROM table2
pour au moins une des valeurs de la sous-requête. WHERE condition2
)

BRAHIM BAKKAS PAGE 5

Vous aimerez peut-être aussi