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

Partie II. Langage SQL

Cette partie présente l'utilisation du langage SQL dans PostgreSQL. Nous commençons par la syntaxe générale du SQL, nous expliquons comment créer des tables, remplir la base, et comment l'interroger. La partie centrale liste les types de données et les fonctions disponibles, et leur utilisation dans les requêtes SQL. Le reste traite de divers points importants dans le paramétrage en vue de performances optimales.

Cette partie est organisée de telle manière qu'un utilisateur novice puisse la suivre du début à la fin, et gagner une compréhension complète des sujets sans avoir à effectuer de fréquents sauts entre les chapitres. Les chapitres sont indépendants pour qu'un utilisateur expérimenté puisse ne lire que les chapitres qui l'intéressent. L'information est présentée dans un style narratif par unité thématique. Les lecteurs cherchant la description complète d'une commande particulière sont encouragés à se référer à la Partie VI.

Les lecteurs doivent savoir se connecter à une base PostgreSQL et y exécuter des commandes SQL. Ceux peu 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, mais d'autres programmes aux fonctionnalités similaires peuvent aussi ê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 d'identité
5.4. Colonnes générées
5.5. Contraintes
5.6. Colonnes système
5.7. Modification des tables
5.8. Droits
5.9. Politiques de sécurité niveau ligne
5.10. Schémas
5.11. L'héritage
5.12. Partitionnement de tables
5.13. Données distantes
5.14. Autres objets de la base de données
5.15. 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 (UNION, INTERSECT, EXCEPT)
7.5. Tri des lignes (ORDER BY)
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 simple/multiple
9.21. Fonctions d'agrégat
9.22. Fonctions de fenêtrage
9.23. Fonctions de support pour la commande Merge
9.24. Expressions de sous-requêtes
9.25. Comparaisons de ligne et de tableau
9.26. Fonctions renvoyant des ensembles
9.27. Fonctions et opérateurs d'information sur le système
9.28. Fonctions d'administration système
9.29. Fonctions trigger
9.30. Fonctions de trigger d'événement
9.31. 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 préférées pour la recherche plein texte
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. Gestion des échecs de sérialisation
13.6. Avertissements
13.7. 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