II. Langage SQL

Cette partie présente l'utilisation du langage SQL au sein de PostgreSQL™. La syntaxe générale de SQL y est expliquée, puis la création des structures de stockage des données, le peuplement de la base et son interrogation. La partie centrale liste les types de données et les fonctions disponibles ainsi que leur utilisation dans les requêtes SQL. Le reste traite de l'optimisation de la base de données en vue d'obtenir des performances idéales.

L'information dans cette partie est présentée pour qu'un utilisateur novice puisse la suivre du début à la fin et obtenir ainsi une compréhension complète des sujets sans avoir à effectuer de fréquents sauts entre les chapitres. Les chapitres sont indépendants. Un utilisateur plus expérimenté pourra, donc, ne consulter que les chapitres l'intéressant. L'information est présentée dans un style narratif par unité thématique. Les lecteurs qui cherchent une description complète d'une commande particulière peuvent se référer à la Partie VI, « Référence ».

Pour profiter pleinement de cette partie, il est nécessaire de savoir se connecter à une base PostgreSQL™ et éditer des commandes SQL. Les lecteurs qui ne sont pas familiers de ces prérequis sont encouragés à lire préalablement la Partie I, « Tutoriel ».

Les commandes SQL sont généralement saisies à partir du terminal interactif de PostgreSQL™, psql. D'autres programmes possédant des fonctionnalités similaires peuvent également être utilisés.

Table des matières

4. Syntaxe SQL
4.1. Structure lexicale
4.2. Expressions de valeurs
5. Définition des données
5.1. Notions fondamentales sur les tables
5.2. Valeurs par défaut
5.3. Contraintes
5.4. Colonnes système
5.5. Modification des tables
5.6. Droits
5.7. Schémas
5.8. L'héritage
5.9. Partitionnement
5.10. Autres objets de la base de données
5.11. Gestion des dépendances
6. Manipulation de données
6.1. Insérer des données
6.2. Actualiser les données
6.3. Supprimer des données
7. Requêtes
7.1. Aperçu
7.2. Expressions de table
7.3. Listes de sélection
7.4. Combiner des requêtes
7.5. Tri des lignes
7.6. LIMIT et OFFSET
7.7. Listes VALUES
8. Types de données
8.1. Types numériques
8.2. Types monétaires
8.3. Types caractère
8.4. Types de données binaires
8.5. Types date/heure
8.6. Type booléen
8.7. Types géométriques
8.8. Types adresses réseau
8.9. Type chaîne de bits
8.10. Tableaux
8.11. Types composites
8.12. Types identifiant d'objet
8.13. Pseudo-Types
8.14. Support des documents XML
9. Fonctions et opérateurs
9.1. Opérateurs logiques
9.2. Opérateurs de comparaison
9.3. Fonctions et opérateurs mathématiques
9.4. Fonctions et opérateurs de chaînes
9.5. Fonctions et opérateurs de chaînes binaires
9.6. Fonctions et opérateurs sur les chaînes de bits
9.7. Correspondance de motif
9.8. Fonctions de formatage des types de données
9.9. Fonctions et opérateurs sur date/heure
9.10. Fonctions et opérateurs géométriques
9.11. Fonctions et opérateurs sur les adresses réseau
9.12. Fonctions de manipulation de séquence
9.13. Expressions conditionnelles
9.14. Fonctions et opérateurs de tableaux
9.15. Fonctions d'agrégat
9.16. Expressions de sous-expressions
9.17. Comparaisons de lignes et de tableaux
9.18. Fonctions renvoyant des ensembles
9.19. Fonctions d'information sur le système
9.20. Fonctions d'administration système
10. Conversion de types
10.1. Aperçu
10.2. Opérateurs
10.3. Fonctions
10.4. Stockage de valeurs
10.5. Constructions UNION, CASE et constructions relatives
11. Index
11.1. Introduction
11.2. Types d'index
11.3. Index multicolonnes
11.4. Combiner des index multiples
11.5. Index uniques
11.6. Index sur des expressions
11.7. Index partiels
11.8. Classes d'opérateurs
11.9. Examiner l'utilisation des index
12. Contrôle d'accès simultané
12.1. Introduction
12.2. Isolation des transactions
12.3. Verrouillage explicite
12.4. Vérification de cohérence des données au niveau de l'application
12.5. Verrouillage et index
13. Conseils sur les performances
13.1. Utiliser EXPLAIN
13.2. Statistiques utilisées par le planificateur
13.3. Contrôler le planificateur avec des clauses JOIN explicites
13.4. Remplir une base de données