Commandes

Outils Web

...

Windows

Petites Windowseries... Vous pouvez trouver d'autres infos sur la page des tutos

Linux

...

Mac OSx

...

Le Langage de Définition de Données 
Comprend des instructions de définition 
    ○ du schéma logique : 
        ■ Create table 
        ■ Alter table 
        ■ Drop table 
    ○ Des schémas externes 
        ■ Create view 
        ■ Drop view 
    ○ Du schéma interne 
        ■ Create index 
        ■ Drop index 
 
Le Langage de Manipulation de Données 
● concerne toutes les opérations à effectuer sur les données du schéma 
logique 
● Divisé en 2 sous-ensemble 
    ○ Langage d’interrogation des données 
        ■ Extraction (select) 
    ○ Commandes 
    ■ Insertion (insert) 
    ■ Mise à jour (update) 
    ■ Suppression (delete) 
     
Le Langage de Contrôle des Données 
● concerne les instructions qui ne font pas partie 
du LDD ou LMD 
● permet d’assurer 
    ○ L’intégrité des données 
    ○ La sécurité des données 
    ○ Le recouvrement des données 
     
Structure d'une requête 
SELECT <colonne1, colonne2,..., colonneN> 
FROM <table(s)> 
[ WHERE <condition(s)> ] 
Les crochets et les parenthèses angulaires ne font pas partie de 
la syntaxe. Ils indiquent respectivement une clause facultative et 
les éléments qui doivent être saisis. 
 
Select : Syntaxe complète 
SELECT [ DISTINCT ] < ... > 
[ INTO < ... > ] 
FROM < ... > 
[ WHERE < ... > ] 
[ GROUP BY < ... > ] 
[ HAVING < ... > ] 
[ UNION sous-sélection ] 
[ ORDER BY < ... > / FOR UPDATE OF < ... > ] 
[ … ] 
 
Opérateurs de base 
● LOWER : met en majuscule 
    ○ ex : SELECT lower(nom) FROM acteurs 
● UPPER : met en minuscules 
    ○ ex : SELECT upper(prenom) FROM acteurs 
● DISTINCT : permet d‘éliminer les doublons dans la réponse 
● AS : permet de nommer une colonne créée par la requête 
● || : concaténer des champs de type caractères 
Référence : http://sqlpro.developpez.com/cours/sqlaz/select/ 
 
Les Opérateurs de test 
SQL dispose d'opérateurs pour définir des conditions de recherche 
● Opérateurs logiques 
    ○ NOT AND OR 
    ○ AND est prioritaire sur OR 
    ○ NOT inverse le sens de la condition 
● Opérateurs arithmétiques 
    ○ % + - * / 
● Opérateurs de comparaison 
    ○ = < > <> ! 
    ○ L'opérateur ! représente la négation des opérateurs de comparaison. 
    Exemple != ou !< 
 
Les fonctions d'agrégation 
● COUNT ( * / [ DISTINCT ] <colonne> ) 
    ○ Retourne le nombre d'enregistrements 
● SUM([ ALL / [ DISTINCT ] < colonne > ) 
    ○ Additionne valeurs d'une colonne numérique 
● MIN( [ ALL / DISTINCT ] <colonne>) 
    ○ Trouve valeur mini d'une colonne de type car. ou num. 
● MAX( [ ALL / DISTINCT ] <colonne>) 
    ○ Trouve valeur maxi d'une colonne de type car. ou num. 
● AVG( [ ALL / DISTINCT ] <colonne>) 
    ○ Calcule moyenne des valeurs d'une colonne numérique 
http://sqlpro.developpez.com/cours/sqlaz/select/#L4.6 
 
Sous requêtes (Requête imbriquée dans une autre requête) 
SELECT <Colonne> 
FROM <Table1> 
WHERE <Colonne> = ( 
SELECT <Colonne> 
FROM <Table2> 

http://sqlpro.developpez.com/cours/sqlaz/sousrequetes/ 
 
Jointures (Mise en relation de plusieurs tables) 
jointure naturelle (équijointure) 
● NATURAL JOIN 
● JOIN … ON 
● JOIN … USING 
● opération logique entre 2 tables 
● égalité de valeurs entre 2 colonnes des 2 tables 
jointures internes 
● 
jointures externes 
http://sqlpro.developpez.com/cours/sqlaz/jointures/ 
 
Création de table 
CREATE TABLE [nom_utilisateur.]<nom_table> 
( < colonne1 > < type de données >, 
< colonne 2 > < type de données >, 
... 
< colonne n > < type de données > ) 
http://dev.mysql.com/doc/refman/5.0/fr/select.html 
 
Suppression de table 
DROP TABLE [nom_utilisateur.]<nom_table> 
http://dev.mysql.com/doc/refman/5.0/fr/drop-table.html 
 
Changement de nom de la table 
ALTER TABLE [nom_utilisateur.]<nom_table> 
RENAME <nouveau_nom_table> 
http://dev.mysql.com/doc/refman/5.0/fr/alter-table.html 
 
Ajout de colonne à la table 
ALTER TABLE [nom_utilisateur.]<nom_table> 
ADD (<colonne> <Type de données>, 
<Colonne> <Type données> ,...) 
 
Modification des colonnes de la table 
ALTER TABLE [nom_utilisateur.]<nom_table> 
MODIFY (<colonne> <Type de données>, 
<Colonne> <Type données> ,...) 
 
Changement de nom des colonnes 
ALTER TABLE [nom_utilisateur.]<nom_table> 
RENAME COLUMN (<colonne>) TO 
(<nouveau_nom_Colonne>) 
 
Affichage de la structure de la table 
DESCRIBE | DESC 
nom_table [nom_de_colonne | wild] 
http://dev.mysql.com/doc/refman/5.0/fr/describe.html 
 
Insertion de données 
INSERT INTO < nom de la table > 
[ ( < liste de colonnes > ) ] 
VALUES ( < liste de valeurs > ) 
http://dev.mysql.com/doc/refman/5.0/fr/insert.html 
 
Mise à jour de données 
UPDATE < table > / < vue > 
SET < colonne > = ( < expression > ), 
< colonne > = ( < expression > ), 
… 
[ WHERE < condition(s) > ] 
http://dev.mysql.com/doc/refman/5.0/fr/update.html 
 
Suppression des données d'une table 
DELETE FROM <table> 
WHERE (< condition(s)>) 
http://dev.mysql.com/doc/refman/5.0/fr/delete.html 
 
Création d'un index 
CREATE [UNIQUE] INDEX <nom du fichier 
index> 
ON <table> 
(<colonne> [ASC/DESC], ...) 
● But : améliorer les performances d’accès aux données ou interdire la 
duplication de valeurs 
● Création avec la commande CREATE INDEX 
● Création implicite d'index par l’intermédiaire d’une contrainte d’intégrité de clé 
primaire (Primary Key) lors de la création de la table 
● Exemple : 
● lien vers site MySQL : syntaxe CREATE TABLE 
http://dev.mysql.com/doc/refman/5.0/fr/create-index.html 
 
Suppression d'un index 
DROP INDEX <nom de l' index> 
http://dev.mysql.com/doc/refman/5.0/fr/drop-index.html 
 
Gestion des privilèges 
Les privilèges sont, pour les utilisateurs la possibilité d'utiliser certains objets et ordres 
SQL 
● Principaux privilèges 
    ○ SELECT : accéder aux données d'une table 
    ○ DELETE : suppression des données d'une table 
    ○ INSERT : ajouter des données à une table 
    ○ UPDATE : mettre à jour les données d'une table 
Liens sur mysql.com 
http://dev.mysql.com/doc/refman/5.0/fr/privilege-system.html 
http://dev.mysql.com/doc/refman/5.0/fr/user-account-management.html 
Lien sur le site sqlpro.developpez.com 
http://sqlpro.developpez.com/cours/sqlaz/dcl/#L1 
 
Gestion des privilèges 
CREATE USER user [IDENTIFIED BY 
[PASSWORD] 'password'] 
[, user [IDENTIFIED BY [PASSWORD] 'password']] 
... 
ou 
GRANT 
● Création d'utilisateur 
CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] 
[, user [IDENTIFIED BY [PASSWORD] 'password']] ... 
ou 
GRANT 
Liens sur mysql.com 
http://dev.mysql.com/doc/refman/5.0/fr/create-user.html 
http://dev.mysql.com/doc/refman/5.0/fr/grant.html 
 
Révocation des privilèges 
REVOKE [GRANT OPTION FOR] 
Liste_des_permissions ON Liste_objets 
FROM Liste_d_utilisateurs 
● Révocation de permissions 
REVOKE [GRANT OPTION FOR] Liste_des_permissions ON Liste_objets FROM 
Liste_d_utilisateurs 
● GRANT OPTION FOR : 
    ○ supprime le droit d'un utilisateur permissions à un autre utilisateur 
● Utilisation de mots clés pour Liste_d_utilisateurs 
        ■ PUBLIC : retire les privilèges à tous les utilisateurs 
        ■ ALL : retire les privilèges aux utilisateurs spécifiés 
         
Contraintes d'intégrités 
● permettent de s'assurer que les données saisies dans la base soient 
conformes aux données attendues 
    ○ Clauses 
        ■ NOT NULL : l'attribut doit toujours avoir une valeur prédéfinie 
        ■ PRIMARY KEY : aucune colonne de la clé primaire ne peut être indéfinie 
        ■ UNIQUE : l'attribut doit avoir une valeur unique 
        ■ CHECK : définit un prédicat complexe 
Lien sur le site sqlpro.developpez.com 
http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L7.1.6 
 
Contraintes d'intégrités 
create table Produit ( id Number (5) 
constraint Produit_PK primary key, nom Varchar2 (10), 
stock Number (5) default 0 
constraint Produit_stock_defini 
not null constraint Stock_Positif 
check (stock >= 0)) ; 
Lien sur le site mysql.com 
http://dev.mysql.com/doc/refman/5.0/fr/innodb-foreign-key-constraints.html