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