PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 13.0 » Langage SQL

Partie 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.

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.

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. Colonnes générées
5.4. Contraintes
5.5. Colonnes système
5.6. Modification des tables
5.7. Droits
5.8. Politiques de sécurité niveau ligne
5.9. Schémas
5.10. L'héritage
5.11. Partitionnement de tables
5.12. Données distantes
5.13. Autres objets de la base de données
5.14. 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
6.4. Renvoyer des données provenant de lignes modifié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 domaine
8.19. Types identifiant d'objet
8.20. Type pg_lsn
8.21. Pseudo-Types
9. Fonctions et opérateurs
9.1. Opérateurs logiques
9.2. Fonctions et opérateurs de comparaison
9.3. Fonctions et opérateurs mathématiques
9.4. Fonctions et opérateurs sur des chaînes de caractères
9.5. Fonctions et opérateurs pour les chaînes binaires
9.6. Fonctions et opérateurs pour les chaînes de bit
9.7. Correspondance de motif
9.8. Fonctions de formatage de type de données
9.9. Fonctions et opérateurs pour date/heure
9.10. Fonctions de support d'enum
9.11. Fonctions et opérateurs de géométrie
9.12. Fonctions et opérateurs pour les adresses réseau
9.13. Fonctions et opérateurs de recherche plein texte
9.14. Fonctions UUID
9.15. Fonctions XML
9.16. Fonctions et opérateurs JSON
9.17. Fonctions de manipulation de séquence
9.18. Expressions conditionnelles
9.19. Fonctions et opérateurs tableau
9.20. Fonctions et opérateurs sur les intervalles
9.21. Fonctions d'agrégat
9.22. Fonctions de fenêtrage
9.23. Expressions de sous-requêtes
9.24. Comparaisons de ligne et de tableau
9.25. Fonctions renvoyant des ensembles
9.26. Fonctions et opérateurs d'information sur le système
9.27. Fonctions d'administration système
9.28. Fonctions trigger
9.29. Fonctions de trigger d'événement
9.30. Fonctions d'informations statistiques
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
10.6. Colonnes de sortie du SELECT
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. Parcours d'index seul et index couvrants
11.10. Classes et familles d'opérateurs
11.11. Index et collationnements
11.12. 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
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
15. Requêtes parallélisées
15.1. Comment fonctionne la parallélisation des requêtes
15.2. Quand la parallélisation des requêtes peut-elle être utilisée ?
15.3. Plans parallélisés
15.4. Sécurité de la parallélisation