Memento sql esil

publicité
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
Téléchargement