Introduction

Table des matières
Introduction
1. Un peu d'histoire
2. Organisation de la présentation
Un premier exemple
1. Un premier exemple
1.1. Construction d'une première table
1.2. Enregistrer quelques données
1.3. Extraire des données
2. Trier, classer, calculer
2.1. Classer des données
2.2. Trier des données
2.3. Effectuer des calculs
2.4. Mise à jour d'une valeur
3. Sélection sur plusieurs tables
3.1. Ajout du lieu de naissance
3.2. Clés primaires et clés étrangères
Organisation des données
1. Introduction
2. Bases de données, schémas et tables
2.1. Création d'une table
2.2. Création d'une colonne
2.3. Contraintes sur une table
2.4. Nommage des contraintes
2.5. Exemples de création de tables
2.6. Modification d'une table
2.7. Effacement d'une table
2.8. Remarques sur restrict et cascade
3. Types de données
3.1. Les types numériques
3.2. Les types caractère
3.3. Les types temporels
3.4. Les types binaires
3.5. Type auto-incrémental de MySQL
3.6. Type auto-généré de Derby
3.7. Séquences d'Oracle
Manipulation des données
1. Introduction
2. Extraire des données : select
2.1. Extraire des données d'une table unique
2.2. Clause where
2.3. Requêtes imbriquées
2.4. Fonctions d'agrégation, groupage
3. Supprimer des données : delete
3.1. Forme générale du delete
3.2. Effacement en cascade
3.3. Fonctionnement du delete
4. Ajouter des données : insert
4.1. Forme générale de l' insert
4.2. Copie d'une table dans une autre
5. Mettre à jour des données : update
5.1. Forme générale de l' update
5.2. Mise à jour avec une requête imbriquée
Interrogations sur plusieurs tables
1. Introduction
2. Formes normales
2.1. Première forme normale
2.2. Deuxième forme normale
2.3. Troisième forme normale
2.4. Formes normales d'ordres supérieurs
3. Relations entre éléments
3.1. Cardinalité d'une relation
3.2. Relation 1:1
3.3. Relation 1:p
3.4. Relation p:1
3.5. Relation n:p
4. Jointures
4.1. Jointure interne
4.2. Jointure externe
4.3. Auto-jointure
5. Unions
6. Vues
6.1. Création d'une vue
6.2. Exemples de vues
Transactions
1. Introduction
2. Isolation des transactions
2.1. ACIDité d'une transaction
2.2. Définition de l'isolation
3. Gestion d'une transaction
3.1. Mode auto-commit
3.2. Fixer le niveau d'isolation
3.3. Démarrer une transaction
3.4. Terminer une transaction
3.5. Remarques importantes
Index
1. Introduction
2. Manipulation d'index
2.1. Création automatique d'index
2.2. Création manuelle d'index

1. Un peu d'histoire

SQL est un langage qui a été développé dans les années 60, sur les bases théoriques du Dr Codd, dans le but de dialoguer avec les grandes banques de données. Les premières versions utilisables ont été développées par IBM et Oracle (à l'époque Relational Software) dans les années 70. Il a été adopté comme une norme ISO en 1987, et depuis plusieurs révisions se sont succédées : SQL-89, SQL-92, SQL-99, SQL:2003 et SQL:2008. La version sous laquelle nous vivons actuellement est SQL:2011, adoptée en décemnbre 2011. Il existe une différence notable entre les langages traditionnels (Fortran, Pascal, C, C++, Java) et SQL. Ces langages permettent de décrire des procédures de calcul et de traitement. On indique donc au processeur ce qu’il doit faire, et dans quel ordre. Ce que l'on indique au processeur, c'est donc comment un calcul ou un traitement doit être mené. On appelle ces langages des langages procéduraux, tout simplement parce qu'ils décrivent des procédures. SQL est un langage non procédural. Une commande SQL n’explique pas comment les traitements doivent être menés, mais quel doit en être le résultat. La marche à suivre pour déterminer le bon résultat est à la charge du logiciel serveur, le programmeur SQL n’a a priori pas à s’en soucier. Il s’en soucie en fait, notamment pour des raisons d’optimisation et de temps de calcul. Les logiciels serveurs ont entre autres toute liberté pour utiliser toutes les procédures d'optimisation qu'ils veulent. Malgré les efforts de standardisation, les différents acteurs du marché des bases de données ont développé leur propre SQL, et il reste des différences notables entre les serveurs disponibles sur le marché. Ces différences peuvent apparaître à trois niveaux :
  • Le serveur ne supporte pas certaines fonctionnalités, et les instructions SQL correspondantes n’ont pas été implémentées ;
  • Les types de données ne correspondent pas toujours en syntaxe d’un serveur à l’autre, ou certains serveurs supportent des types de données différents, ou encore ont leur propre syntaxe de déclaration (c'est notamment le cas pour les dates) ;
  • Certaines fonctions n’ont tout simplement pas la même syntaxe d'un serveur à l'autre.
Consulter la documentation du serveur que l’on utilise est donc toujours une précaution élémentaire à prendre avant de commencer un projet.
Introduction à SQL
Retour au blog Java le soir
Cours & Tutoriaux