Académique Documents
Professionnel Documents
Culture Documents
http:///www.desmoulins.fr
Memento SQL
Jrme DESMOULINS
18 septembre 2007
Jrme DESMOULINS
Page 1 / 8
Memento SQL
http:///www.desmoulins.fr
Jrme DESMOULINS
Page 2 / 8
Memento SQL
http:///www.desmoulins.fr
Commandes simples
UPDATE
UPDATE table_name SET col_name='xxx' WHERE condition;
WHERE
WHERE col_name1 = 'xxx' AND col_name2 = 'xxx';
WHERE col_name1 = 'xxx' OR col_name2 = 'xxx';
SELECT
SELECT [DISTINCT | ALL] * FROM table_name [ WHERE
GROUP BY expr [, expr] ... ] [ HAVING condition
UNION ALL | INTERSECT | MINUS} SELECT command
{expr|position} [ASC | DESC] [, {expr | position}
...] [ FOR UPDATE OF column ];
condition ] [
] [ {UNION |
] [ ORDER BY
[ASC | DESC]]
INSERT
La commande INSERT permet d'insrer une ligne dans une table en spcifiant les valeurs insrer.
INSERT INTO table_name(nom_col1, nom_col2, ...) VALUES
(val1, val2...);
La liste des noms de colonne est optionnelle. Si elle est omise, la liste des colonnes sera par dfaut
la liste de l'ensemble des colonnes de la table dans l'ordre de la cration de la table.
Si une liste de colonnes est spcifie, les colonnes ne figurant pas dans la liste auront la valeur
NULL.
INSERT INTO nom_table (nom_col1, nom_col2, ...) SELECT ...
Il est possible d'insrer dans une table des lignes provenant d'une autre table.
Le SELECT peut contenir n'importe quelle clause sauf un ORDER BY qui impliquerait un
classement des lignes contraire l'esprit du relationnel.
DELETE
Supprime un ou plusieurs lments dans une relation.
Jrme DESMOULINS
Page 3 / 8
Memento SQL
http:///www.desmoulins.fr
Jointure
SELECT * FROM table_name1, tableName2 WHERE table_name1.id =
table_name2.id;
Union - R1 U R2
SELECT * FROM t1 UNION SELECT * FROM t2;
Diffrence - R1 / R2
SELECT * FROM R1 WHERE not exists (SELECT * FROM R2 WHERE R2.C
= R1.A and R2.D = R1.B )
Requte imbriques
Requte imbriques - IN / NOT IN
SELECT col_name
'XXX2');
FROM
table_name
WHERE
col_name
IN
('XXX1',
Page 4 / 8
Memento SQL
http:///www.desmoulins.fr
Prdicats
Prdicat BETWEEN
Teste l'appartenance d'une valeur un intervalle.
Ex : Nom et prnom des salairs qui gagne entre 10000 et 12000 f.
SELECT Nom, Prenom FROM PERSONNEL WHERE Salaire BETWEEN 10000
and 12000;
Prdicat LIKE
Permet de faire une recherche approximative.
Ex : Nom des abonns qui habitent en Isre.
SELECT Nom FROM ABONNE WHERE CodeP LIKE '38---' OR Ville LIKE
'%ISERE%'
Prdicat IS NULL
Permet de tester si un champ a t affect.
Ex : Liste des abonns qui n'ont pas le tlphone (ou qui sont sur liste rouge).
SELECT Nom FROM ABONNE WHERE Telephone IS NULL
Clauses
Clause GROUP BY
Application de fonction aggats des collections d'enregistrements relies smentiquement.
Ex : Nombre d'abonn dans chaque ville.
SELECT Ville, count(*) FROM ABONNE GROUP BY Ville
Clause HAVING
Cette clause ne s'emploie qu'avec un "GROUP BY".
Exprime une condition sur le groupe d'enregistrement associ chaque valeur du groupage.
Ex : Nombre de prets effectus avant le 22 mai par abonn.
Jrme DESMOULINS
Page 5 / 8
Memento SQL
SELECT NumAbo, count(*)
DatePret <= '22/05/00'
http:///www.desmoulins.fr
FROM
PRET
GROUP
BY
NumAbo
HAVING
Clause ORDER BY
Permet l'ordonnancement du rsultat avant l'affichage.
Ex : Liste des salaires annuels classs par ordre dcroissant.
SELECT Salaire * 12 FROM PERSONNEL ORDER BY Salaire
Clause DISTINCT
Elimine les doublons avant d'utiliser une fonction agrgat.
Ex : Liste de toutes les villes o habite au moins un abonn.
SELECT DISTINCT Ville FROM ABONNE
Fonctions agrgats
Ces fonctions ne peuvent tre utilises que dans une clause SELECT ou dans une clause HAVING .
On peut prfixer expr par les mots cls [DISTINCT | ALL].
Agrgat - COUNT
Dnombre les lignes slectionnes.
COUNT ( expr )
Ex : Nombre de salaris.
SELECT COUNT( * ) FROM PERSONNEL
Agrgat - SUM
Additionne les valeurs de type numrique.
SUM ( expr )
Ex : Somme des salaires des employ dont le prnom est "Pierre".
SELECT SUM( Salaire ) FROM PERSONNEL WHERE Prenom='Pierre'
Agrgat - MIN
Retourne la valeur minimale d'une colonne de type caractre ou numrique.
MIN ( expr )
Jrme DESMOULINS
Page 6 / 8
Memento SQL
http:///www.desmoulins.fr
Agrgat - MAX
Retourne la valeur maximale d'une colonne de type caractre ou numrique.
MAX ( expr )
Ex : Plus gros salaire parmis les employs Grenoblois.
SELECT MAX(
'%Grenoble%'
Salaire
FROM
PERSONNEL
WHERE
Adresse
LIKE
Agrgat - AVG
Calcule la moyenne d'une colonne de type numrique.
AVG ( expr )
Ex : Moyenne des salaires des bibliothcaires.
SELECT
AVG(
Salaire
Fonction='Bibliothcaire'
FROM
PERSONNEL
WHERE
Commandes spcifiques
Oracle
Obtenir des informations
Dfinition d'une table
Tables importantes
Liste des tables
Jrme DESMOULINS
Page 7 / 8
Memento SQL
http:///www.desmoulins.fr
Jrme DESMOULINS
Page 8 / 8