× RIP ! L'équipe de développement annonce l'arête de développement du site.
Mar 02

Langage SQL

Présentation de SQL

SQL signie Structured Query Language c’est-à-dire Langage d’interrogation
structuré.
En fait SQL est un langage complet de gestion de bases de données relationnelles.
Il a été conçu par IBM dans les années 70. Il est devenu le langage
standard des systèmes de gestion de bases de données (SGBD) relationnelles
(SGBDR).
C’est à la fois :
 un langage d’interrogation de la base (ordre SELECT)
 un langage de manipulation des données (LMD; ordres UPDATE, INSERT,
DELETE)
 un langage de dénition des données (LDD ; ordres CREATE, ALTER,
DROP),
 un langage de contrôle de l’accès aux données (LCD ; ordres GRANT,
REVOKE).
Le langage SQL est utilisé par les principaux SGBDR : DB2, Oracle,
Informix, Ingres, RDB,… Chacun de ces SGBDR a cependant sa propre variante
du langage. Ce support de cours présente un noyau de commandes
disponibles sur l’ensemble de ces SGBDR, et leur implantation dans Oracle
Version 7.

Vous allez découvrir dans ce cours PDF

1 Introduction 1
1.1 Présentation de SQL . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Normes SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Utilitaires associés . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Connexion et déconnexion . . . . . . . . . . . . . . . . . . . . 2
1.5 Objets manipulés par SQL . . . . . . . . . . . . . . . . . . . . 3
1.5.1 Identicateurs . . . . . . . . . . . . . . . . . . . . . . . 3
1.5.2 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5.3 Colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 Types de données . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6.1 Types numériques . . . . . . . . . . . . . . . . . . . . . 5
1.6.2 Types chaîne de caractères . . . . . . . . . . . . . . . . 6
1.6.3 Types temporels . . . . . . . . . . . . . . . . . . . . . 7
1.6.4 Types binaires . . . . . . . . . . . . . . . . . . . . . . . 7
1.6.5 Valeur NULL . . . . . . . . . . . . . . . . . . . . . . . 8
1.7 Sélections simples . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8.1 Contenu d’une expression, opérateurs et fonctions . . . 9
1.8.2 Expressions NULL . . . . . . . . . . . . . . . . . . . . 9
2 Création d’une table et contraintes 11
2.1 Création d’une table . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Contrainte d’intégrité . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Types de contraintes . . . . . . . . . . . . . . . . . . . 12
2.2.2 Ajouter, supprimer ou renommer une contrainte . . . . 15
2.2.3 Enlever, diérer des contraintes . . . . . . . . . . . . . 15
3 Langage de manipulation des données 19
3.1 Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Modication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.1 Généralités sur les transactions . . . . . . . . . . . . . 22
3.4.2 Les transactions dans SQL . . . . . . . . . . . . . . . . 23
3.4.3 Autres modèles de transactions . . . . . . . . . . . . . 24
4 Interrogations 26
4.1 Syntaxe générale . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 Clause SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.1 select comme expression . . . . . . . . . . . . . . . . . 27
4.2.2 Pseudo-colonnes . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Clause FROM . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Clause WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4.1 Clause WHERE simple . . . . . . . . . . . . . . . . . . 31
4.4.2 Opérateurs logiques . . . . . . . . . . . . . . . . . . . . 33
4.5 Jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.5.1 Jointure naturelle . . . . . . . . . . . . . . . . . . . . . 35
4.5.2 Jointure d’une table avec elle-même . . . . . . . . . . . 35
4.5.3 Jointure externe . . . . . . . . . . . . . . . . . . . . . . 36
4.5.4 Jointure non équi . . . . . . . . . . . . . . . . . . . . 37
4.6 Sous-interrogation . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.6.1 Sous-interrogation à une ligne et une colonne . . . . . . 38
4.6.2 Sous-interrogation ramenant plusieurs lignes . . . . . . 39
4.6.3 Sous-interrogation synchronisée . . . . . . . . . . . . . 40
4.6.4 Sous-interrogation ramenant plusieurs colonnes . . . . 41
4.6.5 Clause EXISTS . . . . . . . . . . . . . . . . . . . . . . 41
4.7 Fonctions de groupes . . . . . . . . . . . . . . . . . . . . . . . 45
4.8 Clause GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . 45
4.9 Clause HAVING . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.10 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.10.1 Fonctions arithmétiques . . . . . . . . . . . . . . . . . 48
4.10.2 Fonctions chaînes de caractères . . . . . . . . . . . . . 48
4.10.3 Fonctions de travail avec les dates . . . . . . . . . . . . 51
4.10.4 Fonction de choix (CASE) . . . . . . . . . . . . . . . . 51
4.10.5 Nom de l’utilisateur . . . . . . . . . . . . . . . . . . . . 53
4.11 Clause ORDER BY . . . . . . . . . . . . . . . . . . . . . . . . 53
4.12 Opérateurs ensemblistes . . . . . . . . . . . . . . . . . . . . . 54
4.12.1 Opérateur UNION . . . . . . . . . . . . . . . . . . . . 55
4.12.2 Opérateur INTERSECT . . . . . . . . . . . . . . . . . 55
4.12.3 Opérateur EXCEPT . . . . . . . . . . . . . . . . . . . 55
4.12.4 Clause ORDER BY . . . . . . . . . . . . . . . . . . . . 55
4.13 Limiter le nombre de lignes renvoyées . . . . . . . . . . . . . . 56
4.14 Injection de code SQL . . . . . . . . . . . . . . . . . . . . . . 56
5 Langage de dénition des données 59
5.1 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.1 CREATE TABLE AS . . . . . . . . . . . . . . . . . . 59
5.2.2 ALTER TABLE . . . . . . . . . . . . . . . . . . . . . . 60
5.2.3 Supprimer une table – DROP TABLE . . . . . . . . . . 62
5.2.4 Synonyme public de table ou de vue . . . . . . . . . . 62
5.3 Vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.3.1 CREATE VIEW . . . . . . . . . . . . . . . . . . . . . 63
5.3.2 DROP VIEW . . . . . . . . . . . . . . . . . . . . . . . 64
5.3.3 Utilisation des vues . . . . . . . . . . . . . . . . . . . . 64
5.3.4 Utilité des vues . . . . . . . . . . . . . . . . . . . . . . 65
5.4 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4.1 CREATE INDEX . . . . . . . . . . . . . . . . . . . . . 66
5.4.2 Utilité des index . . . . . . . . . . . . . . . . . . . . . 67
5.4.3 DROP INDEX . . . . . . . . . . . . . . . . . . . . . . 68
5.4.4 Types d’index . . . . . . . . . . . . . . . . . . . . . . . 68
5.4.5 Dictionnaire des données . . . . . . . . . . . . . . . . . 69
5.5 Génération de clés primaires . . . . . . . . . . . . . . . . . . . 70
5.5.1 Utilisation de tables de la base . . . . . . . . . . . . . . 70
5.5.2 Autres solutions . . . . . . . . . . . . . . . . . . . . . . 71
5.5.3 Séquences . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.6 Procédure et fonction stockée . . . . . . . . . . . . . . . . . . 73
5.6.1 Procédure stockée . . . . . . . . . . . . . . . . . . . . . 73
5.6.2 Fonction stockée . . . . . . . . . . . . . . . . . . . . . 74
5.6.3 Tables du dictionnaire . . . . . . . . . . . . . . . . . . 75
5.7 Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.7.1 Types de triggers . . . . . . . . . . . . . . . . . . . . . 77
5.7.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.7.3 Restriction sur le code des triggers . . . . . . . . . . . 78
5.7.4 Clause WHEN . . . . . . . . . . . . . . . . . . . . . . 78
5.7.5 Triggers INSTEAD OF . . . . . . . . . . . . . . . . . . 79
5.7.6 Dictionnaire de données . . . . . . . . . . . . . . . . . 80
5.8 Dictionnaire de données . . . . . . . . . . . . . . . . . . . . . 81
5.9 Privilèges d’accès à la base . . . . . . . . . . . . . . . . . . . . 82
5.9.1 GRANT . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.9.2 REVOKE . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.9.3 Changement de mot de passe . . . . . . . . . . . . . . 83
5.9.4 Synonyme . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.9.5 Création d’un utilisateur, rôle . . . . . . . . . . . . . . 84
6 Gestion des accès concurrents 86
6.1 Problèmes liés aux accès concurrents . . . . . . . . . . . . . . 86
6.1.1 Mises à jour perdues . . . . . . . . . . . . . . . . . . . 86
6.1.2 Lecture inconsistante ou lecture impropre . . . . . . . . 87
6.1.3 Lecture non répétitive, ou non reproductible, ou incoh
érente . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1.4 Lignes fantômes . . . . . . . . . . . . . . . . . . . . . . 88
6.2 Isolation des transactions . . . . . . . . . . . . . . . . . . . . . 88
6.2.1 Sérialisation des transactions . . . . . . . . . . . . . . . 88
6.2.2 Niveaux d’isolation . . . . . . . . . . . . . . . . . . . . 89
6.3 Traitement pour les accès concurrents . . . . . . . . . . . . . . 90
6.3.1 Traitement pessimiste . . . . . . . . . . . . . . . . . . 90
6.3.2 Traitement optimiste . . . . . . . . . . . . . . . . . . . 91
6.4 Traitement par défaut des accès concurrents . . . . . . . . . . 92
6.5 Blocages explicites . . . . . . . . . . . . . . . . . . . . . . . . 94
6.5.1 Blocages explicites d’Oracle . . . . . . . . . . . . . . . 95

Pour télécharger le cours PDF cliquer ICI=>

A propos de l'auteur :

a écrit 9 articles sur le site :).

Suivez moi sur :

Laissez un commentaire


  • RSS
  • Youtube
  • Digg
  • Facebook
  • Twitter
  • Linkedin
  • Partenaire

  • Articles :


    100 de100 | 100 vote 68 point de vue visiteur