Memento SQL
I - SQL comme Langage de Définition de Données
1) Créer une table
CREATE TABLE <NomTable>
( <NomColonne1> <Type1> [DEFAULT <expr1>] [<ContrainteColonne>]
[, <NomColonne2> <Type2> [DEFAULT <expr2>] [<ContrainteColonne>], …],
[CONSTRAINT <NomContrainte1>] <ContrainteTable1>
[, [CONSTRAINT <NomContrainte2>] <ContrainteTable2>, …]
) ;
<Type> =
Number (<NbChiffres> [, <NbDecimales>])
VarChar2 (<TailleMax>)
Date
<ContrainteColonne> =
NOT NULL
UNIQUE
PRIMARY KEY
REFERENCES <NomTable> (<NomColonne>)
CHECK (<Condition>)
<ContrainteTable> =
PRIMARY KEY (<NomColonne1> [, <NomColonne2>, …])
FOREIGN KEY (<NomColonne1> [, <NomColonne2>, …]) REFERENCES
<NomTable> (<NomColonne1> [, <NomColonne2>, …])
CHECK (<NomColonne ou Expression> <Condition>)
NOT NULL (<NomColonne1> [, <NomColonne2>, …])
UNIQUE (<NomColonne1> [, <NomColonne2>, …])
2) Supprimer une table
DROP TABLE <NomTable>;
3) Modifier la structure d’une table
ALTER TABLE <NomTable>
ADD COLUMN <NomColonne1> <Type1> [DEFAULT <expr1>] [<ContrainteColonne>]
ADD CONSTRAINT <ContrainteTable>;
DROP COLUMN <NomColonne> ;
DROP CONSTRAINT <NomContrainte> ;
4) Insérer une ou plusieurs lignes dans une table
INSERT INTO <NomTable> (<NomColonne1> [, <NomColonne2>, …])
VALUES (<Valeur1> [, <Valeur2>, …]) ;
<Requête> ;
5) Supprimer une ou plusieurs lignes d’une table
DELETE FROM <NomTable> [WHERE <Condition> ];
6) Modifier une ou plusieurs lignes d’une table
UPDATE <NomTable> SET <NomColonne1> = <Expression1 ou Requete1>
[, <NomColonne2> = <Expression2 ou Requete2>, …] [WHERE <Condition>] ;
II - SQL comme langage de requêtes
1) Interrogation de la Base de Données
SELECT <Projection>
FROM <NomTable1 ou Requête1> [<Alias1>] [, <NomTable2 | Requête2> [<Alias2>] ,…]
[WHERE <Condition>]
[GROUP BY <NomColonne1> [, <NomColonne2>, …] ]
[HAVING <Condition>]
[ORDER BY <NomColonne1> [ASC ou DESC] [, <NomColonne2> [ASC ou DESC], …] ];
<Requête1> UNION <Requete2> ;
<Requête1> INTERSECT <Requete2> ;
<Requête1> MINUS <Requete2> ;
<Projection> =
*
[DISTINCT] <NomColonne1 ou Expression1> [ [AS]<Surnom1>] [, <NomColonne2 ou
Expression2> [ [AS]<Surnom2>], …]
COUNT (*) [ [AS]<Surnom>]
<OperateurAgregation> ([DISTINCT] <NomColonne1> [, <NomColonne2>, …])
[[AS]<Surnom>]
<OperateurAgregation> =
COUNT nombre de lignes ou de valeurs (si DISTINCT)
SUM somme des valeurs
AVG moyenne des valeurs
MAX maximum des valeurs
MIN minimum des valeurs
<Condition> =
NOT <Condition>
<Condition> AND <Condition>
<Condition> OR <Condition>
<Expression> <Comparateur> <Expression>
<NomColonne> IS [NOT] NULL
<Expression> = ou <> <Requête>
<Expression> [NOT] IN (<Requête>)
EXISTS (<Requête>)
<Expression> [NOT] LIKE <Chaine>
<Expression> [NOT] BETWEEN <Expression> AND <Expression>
<Comparateur> = {=, <>, <, <=, >, >=}
2) Les vues
CREATE [OR REPLACE] VIEW <NomVue> [(<NomColonne1> [, <NomColonne2>, …])]
AS <Requête>;
DROP VIEW <NomVue>;
Une vue est une table virtuelle résultat d’une requête.
On peut interroger une vue comme on interroge une table.
3) Diverses précisions
Pour <Chaine> (LIKE) :
- ‘%’ remplace 0, 1 ou n caractères
- ‘_’ remplace 1 caractère
Traitement de l’absence de valeur (NULL)
Un calcul numérique n’a pas de valeurs si au moins un terme du calcul n’a pas de valeur.
NVL (<Expression1>, <Expression2>) =
<Expression1> si elle est définie
<Expression2> sinon (donc si elle vaut NULL)
Fonctions diverses
TO_CHAR (<Nombre ou Date> [, <Format>])
TO_NUMBER (<Chaine>)
TO_DATE (<Chaine>)
Decode (<Expr1>, <Expr2>, <Expr3>, <Expr4>)
Equivaut à : Si <Expr1> == <Expr2> alors <Expr3> sinon <Expr4>
SYSDATE
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !