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, ainsi que 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 d'y exécuter des commandes SQL. Les lecteurs qui ne sont pas familiers avec 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
4.3. Fonctions appelantes
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. Row Security Policies
5.8. Schémas
5.9. L'héritage
5.10. Partitionnement
5.11. Données distantes
5.12. Autres objets de la base de données
5.13. 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
7.8. Requêtes WITH (Common Table Expressions)
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 énumération
8.8. Types géométriques
8.9. Types adresses réseau
8.10. Type chaîne de bits
8.11. Types de recherche plein texte
8.12. Type UUID
8.13. Type XML
8.14. Types JSON
8.15. Tableaux
8.16. Types composites
8.17. Types intervalle de valeurs
8.18. Types identifiant d'objet
8.19. pg_lsn Type
8.20. Pseudo-Types
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 de support enum
9.11. Fonctions et opérateurs géométriques
9.12. Fonctions et opérateurs sur les adresses réseau
9.13. Fonctions et opérateurs de la recherche plein texte
9.14. Fonctions XML
9.15. Fonctions et opérateurs JSON
9.16. Fonctions de manipulation de séquences
9.17. Expressions conditionnelles
9.18. Fonctions et opérateurs de tableaux
9.19. Fonctions et opérateurs sur les données de type range
9.20. Fonctions d'agrégat
9.21. Fonctions Window
9.22. Expressions de sous-requêtes
9.23. Comparaisons de lignes et de tableaux
9.24. Fonctions retournant des ensembles
9.25. Fonctions d'informations système
9.26. Fonctions d'administration système
9.27. Fonctions trigger
9.28. Fonctions des triggers sur les événements
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. Index et ORDER BY
11.5. Combiner des index multiples
11.6. Index d'unicité
11.7. Index d'expressions
11.8. Index partiels
11.9. Classes et familles d'opérateurs
11.10. Index et collationnements
11.11. Examiner l'utilisation des index
12. Recherche plein texte
12.1. Introduction
12.2. Tables et index
12.3. Contrôler la recherche plein texte
12.4. Fonctionnalités supplémentaires
12.5. Analyseurs
12.6. Dictionnaires
12.7. Exemple de configuration
12.8. Tester et déboguer la recherche plein texte
12.9. Types d'index GiST et GIN
12.10. Support de psql
12.11. Limites
12.12. Migration à partir d'une recherche plein texte antérieure à 8.3
13. Contrôle d'accès simultané
13.1. Introduction
13.2. Isolation des transactions
13.3. Verrouillage explicite
13.4. Vérification de cohérence des données au niveau de l'application
13.5. Avertissements
13.6. Verrous et index
14. Conseils sur les performances
14.1. Utiliser EXPLAIN
14.2. Statistiques utilisées par le planificateur
14.3. Contrôler le planificateur avec des clauses JOIN explicites
14.4. Remplir une base de données
14.5. Configuration avec une perte acceptée