PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

Documentation PostgreSQL 10beta3

The PostgreSQL Global Development Group


Table des matières

Préface
1. Définition de PostgreSQL
2. Bref historique de PostgreSQL
3. Conventions
4. Pour plus d'informations
5. Lignes de conduite pour les rapports de bogues
I. Tutoriel
1. Démarrage
2. Le langage SQL
3. Fonctionnalités avancées
II. Langage SQL
4. Syntaxe SQL
5. Définition des données
6. Manipulation de données
7. Requêtes
8. Types de données
9. Fonctions et opérateurs
10. Conversion de types
11. Index
12. Recherche plein texte
13. Contrôle d'accès simultané
14. Conseils sur les performances
15. Requêtes parallélisées
III. Administration du serveur
16. Procédure d'installation de PostgreSQL du code source
17. Installation à partir du code source sur Windows
18. Configuration du serveur et mise en place
19. Configuration du serveur
20. Authentification du client
21. Rôles de la base de données
22. Administration des bases de données
23. Localisation
24. Planifier les tâches de maintenance
25. Sauvegardes et restaurations
26. Haute disponibilité, répartition de charge et réplication
27. Configuration de la récupération
28. Surveiller l'activité de la base de données
29. Surveiller l'utilisation des disques
30. Fiabilité et journaux de transaction
31. Réplication logique
32. Tests de régression
IV. Interfaces client
33. libpq - Bibliothèque C
34. Objets larges
35. ECPG SQL embarqué en C
36. Schéma d'information
V. Programmation serveur
37. Étendre SQL
38. Déclencheurs (triggers)
39. Déclencheurs (triggers) sur évènement
40. Système de règles
41. Langages de procédures
42. PL/pgSQL - Langage de procédures SQL
43. PL/Tcl - Langage de procédures Tcl
44. PL/Perl - Langage de procédures Perl
45. PL/Python - Langage de procédures Python
46. Interface de programmation serveur
47. Processus en tâche de fond (background worker)
48. Décodage logique (Logical Decoding)
49. Tracer la progression de la réplication
VI. Référence
I. Commandes SQL
II. Applications client de PostgreSQL
III. Applications relatives au serveur PostgreSQL
VII. Internes
50. Présentation des mécanismes internes de PostgreSQL
51. Catalogues système
52. Protocole client/serveur
53. Conventions de codage pour PostgreSQL
54. Support natif des langues
55. Écrire un gestionnaire de langage procédural
56. Écrire un wrapper de données distantes
57. Écrire une méthode d'échantillonnage de table
58. Écrire un module de parcours personnalisé
59. Optimiseur génétique de requêtes (Genetic Query Optimizer)
60. Définition de l'interface des méthodes d'accès aux index
61. Enregistrements génériques des journaux de transactions
62. Index GiST
63. Index SP-GiST
64. Index GIN
65. Index BRIN
66. Stockage physique de la base de données
67. Interface du moteur, BKI
68. Comment le planificateur utilise les statistiques
VIII. Annexes
A. Codes d'erreurs de PostgreSQL
B. Support de date/heure
C. Mots-clé SQL
D. Conformité SQL
E. Notes de version
F. Modules supplémentaires fournis
G. Programmes supplémentaires fournis
H. Projets externes
I. Dépôt du code source
J. Documentation
K. Acronymes
L. Traduction française
Bibliographie
Index

Liste des tableaux

4.1. Séquences d'échappements avec antislash
4.2. Précédence des opérateurs (du plus haut vers le plus bas)
8.1. Types de données
8.2. Types numériques
8.3. Types monétaires
8.4. Types caractère
8.5. Types caractères spéciaux
8.6. Types de données binaires
8.7. Octets littéraux bytea à échapper
8.8. Octets échappés en sortie pour bytea
8.9. Types date et heure
8.10. Saisie de date
8.11. Saisie d'heure
8.12. Saisie des fuseaux horaires
8.13. Saisie de dates/heures spéciales
8.14. Styles d'affichage de date/heure
8.15. Convention de présentation des dates
8.16. Abréviations d'unités d'intervalle ISO 8601
8.17. Saisie d'intervalle
8.18. Exemples de styles d'affichage d'intervalles
8.19. Type de données booléen
8.20. Types géométriques
8.21. Types d'adresses réseau
8.22. Exemples de saisie de types cidr
8.23. Types primitifs JSON et types PostgreSQL™ correspondant
8.24. Types identifiant d'objet
8.25. Pseudo-Types
9.1. Opérateurs de comparaison
9.2. Prédicats de comparaison
9.3. Fonctions de comparaison
9.4. Opérateurs mathématiques
9.5. Fonctions mathématiques
9.6. Fonctions de génération de nombres aléatoires
9.7. Fonctions trigonométriques
9.8. Fonctions et opérateurs SQL pour le type chaîne
9.9. Autres fonctions de chaîne
9.10. Conversions intégrées
9.11. Fonctions et opérateurs SQL pour chaînes binaires
9.12. Autres fonctions sur les chaînes binaires
9.13. Opérateurs sur les chaînes de bits
9.14. Opérateurs de correspondance des expressions rationnelles
9.15. Atomes d'expressions rationnelles
9.16. quantificateur d'expressions rationnelles
9.17. Contraintes des expressions rationnelles
9.18. Échappements de caractère dans les expressions rationnelles
9.19. Échappement de raccourcis de classes dans les expressions rationnelles
9.20. Échappements de contrainte dans les expressions rationnelles
9.21. Rétro-références dans les expressions rationnelles
9.22. Lettres d'option intégrées à une ERA
9.23. Fonctions de formatage
9.24. Modèles pour le formatage de champs de type date/heure
9.25. Modificateurs de motifs pour le formatage des dates/heures
9.26. Motifs de modèle pour le formatage de valeurs numériques
9.27. Modifications de motifs pour le formatage numérique
9.28. Exemples avec to_char
9.29. Opérateurs date/heure
9.30. Fonctions date/heure
9.31. Variantes AT TIME ZONE
9.32. Fonctions de support enum
9.33. Opérateurs géométriques
9.34. Fonctions géométriques
9.35. Fonctions de conversion de types géométriques
9.36. Opérateurs cidr et inet
9.37. Fonctions cidr et inet
9.38. Fonctions macaddr
9.39. macaddr8 Fonctions
9.40. Opérateurs de recherche plein texte
9.41. Fonctions de la recherche plein texte
9.42. Fonctions de débogage de la recherche plein texte
9.43. Opérateurs json et jsonb
9.44. Opérateurs jsonb supplémentaires
9.45. Fonctions de création de données JSON
9.46. Fonctions de traitement du JSON
9.47. Fonctions séquence
9.48. Opérateurs pour les tableaux
9.49. Fonctions pour les tableaux
9.50. Opérateurs pour les types range
9.51. Fonctions range
9.52. Fonctions d'agrégat générales
9.53. Fonctions d'agrégats pour les statistiques
9.54. Fonctions d'agrégat par ensemble trié
9.55. Fonctions d'agrégat par ensemble hypothétique
9.56. Opérations de regroupement
9.57. Fonctions Window généralistes
9.58. Fonctions de génération de séries
9.59. Fonctions de génération d'indices
9.60. Fonctions d'information de session
9.61. Fonctions de consultation des privilèges d'accès
9.62. Fonctions d'interrogation de visibilité dans les schémas
9.63. Fonctions d'information du catalogue système
9.64. Propriétés des colonnes d'index
9.65. Propriétés des index
9.66. Propriétés des méthodes d'accès aux index
9.67. Fonctions d'information et d'adressage des objets
9.68. Fonctions d'informations sur les commentaires
9.69. ID de transaction et instantanés
9.70. Composants de l'instantané
9.71. Informations sur les transactions validées
9.72. Fonctions des données de contrôle
9.73. Colonnes de pg_control_checkpoint
9.74. Colonnes de pg_control_system
9.75. Colonnes de pg_control_init
9.76. Colonnes de pg_control_recovery
9.77. Fonctions agissant sur les paramètres de configuration
9.78. Fonctions d'envoi de signal au serveur
9.79. Fonctions de contrôle de la sauvegarde
9.80. Fonctions d'information sur la restauration
9.81. Fonctions de contrôle de la restauration
9.82. Fonction de synchronisation de snapshot
9.83. Fonctions SQL pour la réplication
9.84. Fonctions de calcul de la taille des objets de la base de données
9.85. Fonctions de récupération de l'emplacement des objets de la base de données
9.86. Fonctions de gestion des collations
9.87. Fonctions de maintenance des index
9.88. Fonctions d'accès générique aux fichiers
9.89. Fonctions de verrous consultatifs
9.90. Table Rewrite information
12.1. Types de jeton de l'analyseur par défaut
13.1. Niveaux d'isolation des transactions
13.2. Modes de verrou conflictuels
13.3. Verrous en conflit au niveau ligne
18.1. Paramètres system v ipc
18.2. Utilisation des fichiers serveur SSL
19.1. Niveaux de sévérité des messages
19.2. Clé d'option courte
21.1. Rôles par défaut
23.1. Jeux de caractères de PostgreSQL
23.2. Conversion de jeux de caractères client/serveur
26.1. Matrice de fonctionnalités : haute disponibilité, répartition de charge et réplication
28.1. Vues statistiques dynamiques
28.2. Vues sur les statistiques récupérées
28.3. Vue pg_stat_activity
28.4. Description de wait_event
28.5. Vue pg_stat_replication
28.6. Vue pg_stat_wal_receiver
28.7. pg_stat_subscription View
28.8. Vue pg_stat_ssl
28.9. Vue pg_stat_archiver
28.10. Vue pg_stat_bgwriter
28.11. Vue pg_stat_database
28.12. Vue pg_stat_database_conflicts
28.13. Vue pg_stat_all_tables
28.14. Vue pg_stat_all_indexes
28.15. Vue pg_statio_all_tables
28.16. Vue pg_statio_all_indexes
28.17. Vue pg_statio_all_sequences
28.18. Vue pg_stat_user_functions
28.19. Fonctions supplémentaires de statistiques
28.20. Fonctions statistiques par processus serveur
28.21. Vue pg_stat_progress_vacuum
28.22. Phases du VACUUM
28.23. Sondes disponibles pour DTrace
28.24. Types définis utilisés comme paramètres de sonde
33.1. Description des modes SSL
33.2. Utilisation des fichiers SSL libpq/client
34.1. Fonctions SQL pour les Large Objects
35.1. Correspondance Entre les Types PostgreSQL et les Types de Variables C
35.2. Formats d'Entrée Valides pour PGTYPESdate_from_asc
35.3. Formats d'Entrée Valides pour PGTYPESdate_fmt_asc
35.4. Formats d'Entrée Valides pour rdefmtdate
35.5. Formats d'Entrée Valide pour PGTYPEStimestamp_from_asc
36.1. Colonnes de information_schema_catalog_name
36.2. Colonnes de administrable_role_authorizations
36.3. Colonnes de applicable_roles
36.4. Colonnes de attributes
36.5. Colonnes de character_sets
36.6. Colonnes de check_constraint_routine_usage
36.7. Colonnes de check_constraints
36.8. Colonnes de collations
36.9. Colonnes de collation_character_set_applicability
36.10. Colonnes de column_domain_usage
36.11. Colonnes de column_options
36.12. Colonnes de column_privileges
36.13. Colonnes de column_udt_usage
36.14. Colonnes de columns
36.15. Colonnes de constraint_column_usage
36.16. Colonnes de constraint_table_usage
36.17. Colonnes de data_type_privileges
36.18. Colonnes de domain_constraints
36.19. Colonnes de domain_udt_usage
36.20. Colonnes de domains
36.21. Colonnes de element_types
36.22. Colonnes de enabled_roles
36.23. Colonnes de foreign_data_wrapper_options
36.24. Colonnes de foreign_data_wrappers
36.25. Colonnes de foreign_server_options
36.26. Colonnes de foreign_servers
36.27. Colonnes de foreign_table_options
36.28. Colonnes de foreign_tables
36.29. Colonnes de key_column_usage
36.30. Colonnes de parameters
36.31. Colonnes de referential_constraints
36.32. Colonnes de role_column_grants
36.33. Colonnes de role_routine_grants
36.34. Colonnes de role_table_grants
36.35. Colonnes de role_udt_grants
36.36. Colonnes de role_usage_grants
36.37. Colonnes de routine_privileges
36.38. Colonnes de routines
36.39. Colonnes de schemata
36.40. Colonnes de sequences
36.41. Colonnes de sql_features
36.42. Colonnes de sql_implementation_info
36.43. Colonnes de sql_languages
36.44. Colonnes de sql_packages
36.45. Colonnes de sql_parts
36.46. Colonnes de sql_sizing
36.47. Colonnes de sql_sizing_profiles
36.48. Colonnes de table_constraints
36.49. Colonnes de table_privileges
36.50. Colonnes de tables
36.51. Colonnes de transforms
36.52. Colonnes de triggered_update_columns
36.53. Colonnes de triggers
36.54. Colonnes de udt_privileges
36.55. Colonnes de usage_privileges
36.56. Colonnes de user_defined_types
36.57. Colonnes de user_mapping_options
36.58. Colonnes de user_mappings
36.59. Colonnes de view_column_usage
36.60. Colonnes de view_routine_usage
36.61. Colonnes de view_table_usage
36.62. Colonnes de views
37.1. Équivalence des types C et des types SQL intégrés
37.2. Stratégies B-tree
37.3. Stratégies de découpage
37.4. Stratégies « R-tree » pour GiST à deux dimensions
37.5. Stratégies point SP-GiST
37.6. Stratégies des tableaux GIN
37.7. Stratégies MinMax pour BRIN
37.8. Fonctions d'appui de B-tree
37.9. Fonctions d'appui pour découpage
37.10. Fonctions d'appui pour GiST
37.11. Fonctions de support SP-GiST
37.12. Fonctions d'appui GIN
37.13. Fonctions de support BRIN
39.1. Support des triggers sur évènement par commande
42.1. Éléments de diagnostique disponibles
42.2. Diagnostiques et erreurs
240. Variables automatiques
241. Fonctions pgbench
51.1. Catalogues système
51.2. Les colonnes de pg_aggregate
51.3. Colonnes de pg_am
51.4. Colonnes de pg_amop
51.5. Colonnes de pg_amproc
51.6. Colonnes de pg_attrdef
51.7. Colonnes de pg_attribute
51.8. Colonnes de pg_authid
51.9. Colonnes de pg_auth_members
51.10. Colonnes de pg_cast
51.11. Colonnes de pg_class
51.12. Colonnes de pg_event_trigger
51.13. Colonnes de pg_collation
51.14. Colonnes de pg_constraint
51.15. Colonnes de pg_conversion
51.16. Colonnes de pg_database
51.17. Colonnes de pg_db_role_setting
51.18. Colonnes de pg_default_acl
51.19. Colonnes de pg_depend
51.20. Colonnes de pg_description
51.21. Colonnes de pg_enum
51.22. Colonnes de pg_extension
51.23. Colonnes de pg_foreign_data_wrapper
51.24. Colonnes de pg_foreign_server
51.25. Colonnes de pg_foreign_table
51.26. Colonnes de pg_index
51.27. Colonnes de pg_inherits
51.28. Colonnes de pg_init_privs
51.29. Colonnes de pg_language
51.30. Colonnes de pg_largeobject
51.31. Colonnes de pg_largeobject_metadata
51.32. Colonnes de pg_namespace
51.33. Colonnes de pg_opclass
51.34. Colonnes de pg_operator
51.35. Colonnes de pg_opfamily
51.36. Colonnes de pg_partitioned_table
51.37. Colonnes de pg_pltemplate
51.38. Colonnes de pg_policy
51.39. Colonnes de pg_proc
51.40. Colonnes de pg_publication
51.41. Colonnes de pg_publication_rel
51.42. Colonnes de pg_range
51.43. Colonnes de pg_replication_origin
51.44. Colonnes de pg_rewrite
51.45. Colonnes de pg_seclabel
51.46. Colonnes de pg_sequence
51.47. Colonnes de pg_shdepend
51.48. Colonnes de pg_shdescription
51.49. Colonnes de pg_shseclabel
51.50. Colonnes de pg_statistic
51.51. Colonnes de pg_statistic_ext
51.52. Colonnes de pg_subscription
51.53. Colonnes de pg_subscription_rel
51.54. Colonnes de pg_tablespace
51.55. Colonnes de pg_transform
51.56. Colonnes de pg_trigger
51.57. Colonnes de pg_ts_config
51.58. Colonnes de pg_ts_config_map
51.59. Colonnes de pg_ts_dict
51.60. Colonnes de pg_ts_parser
51.61. Colonnes de pg_ts_template
51.62. Colonnes de pg_type
51.63. Codes typcategory
51.64. Colonnes de pg_user_mapping
51.65. Vues système
51.66. Colonnes de pg_available_extensions
51.67. Colonnes de pg_available_extension_versions
51.68. Colonnes de pg_config
51.69. Colonnes de pg_cursors
51.70. Colonnes de pg_file_settings
51.71. Colonnes de pg_group
51.72. Colonnes de pg_hba_file_rules
51.73. Colonnes de pg_indexes
51.74. Colonnes de pg_locks
51.75. Colonnes de pg_matviews
51.76. Colonnes de pg_policies
51.77. Colonnes de pg_prepared_statements
51.78. Colonnes de pg_prepared_xacts
51.79. Colonnes de pg_publication_tables
51.80. Colonnes de pg_replication_origin_status
51.81. Colonnes de pg_replication_slots
51.82. Colonnes de pg_roles
51.83. Colonnes de pg_rules
51.84. Colonnes de pg_seclabels
51.85. Colonnes de pg_sequences
51.86. Colonnes de pg_settings
51.87. Colonnes de pg_shadow
51.88. Colonnes de pg_stats
51.89. Colonnes de pg_tables
51.90. Colonnes de pg_timezone_abbrevs
51.91. Colonnes de pg_timezone_names
51.92. Colonnes de pg_user
51.93. Colonnes de pg_user_mappings
51.94. Colonnes de pg_views
62.1. Classes d'opérateur GiST internes
63.1. Classes d'opérateur SP-GiST internes
64.1. Classes d'opérateur GIN internes
65.1. Classe d'opérateur BRIN intégrée
65.2. Procédure et numéros de support pour les classes d'opérateur Minmax
65.3. Procédures et numéros de support pour les classes d'opérateur d'inclusion
66.1. Contenu de PGDATA
66.2. Disposition d'une page
66.3. Disposition de PageHeaderData
66.4. Disposition de HeapTupleHeaderData
A.1. Codes d'erreur de PostgreSQL
B.1. Noms de mois
B.2. Noms des jours de la semaine
B.3. Modificateurs de Champs Date/Heure
C.1. Mots-clé SQL
F.1. Fonctions de adminpack
F.2. Fonctions obsolètes de adminpack
F.3. Représentations externes d'un cube
F.4. Opérateurs pour cube
F.5. Fonctions cube
F.6. Fonctions earthdistance par cubes
F.7. Opérateurs earthdistance par points
F.8. Opérateurshstore
F.9. Fonctions hstore
F.10. Fonctions intarray
F.11. Opérateurs d'intarray
F.12. Types de données isn
F.13. Fonctions de isn
F.14. Opérateurs ltree
F.15. Fonctions ltree
F.16. Colonnes de pg_buffercache
F.17. Algorithmes supportés par crypt()
F.18. Nombre d'itération pour crypt()
F.19. Vitesse de l'algorithm de hachage
F.20. Résumé de fonctionnalités avec et sans OpenSSL
F.21. Colonnes de pgrowlocks
F.22. Colonnes de pg_stat_statements
F.23. Colonnes de pgstattuple
F.24. Colonnes de pgstattuple_approx
F.25. Fonctions de pg_trgm
F.26. Opérateurs de pg_trgm
F.27. Représentations externes de seg
F.28. Exemples d'entrées valides de type seg
F.29. Opérateurs GiST du type Seg
F.30. Fonctions Sepgsql
F.31. Fonctions tablefunc
F.32. Paramètres connectby
F.33. Fonctions pour la génération d'UUID
F.34. Fonctions renvoyant des constantes UUID
F.35. Fonctions
F.36. Paramètres de xpath_table
H.1. Interfaces clients maintenus en externe
H.2. Langages procéduraux maintenus en externe

Liste des exemples

8.1. Utilisation des types caractère
8.2. Utilisation du type boolean.
8.3. Utiliser les types de chaînes de bits
10.1. Résolution du type d'opérateur factoriel
10.2. Résolution de types pour les opérateurs de concaténation de chaînes
10.3. Résolution de types pour les opérateurs de valeur absolue et de négation
10.4. Résolution du type d'opérateur avec des inclusions de tableaux
10.5. Opérateur personnalisé sur un domaine
10.6. Résolution de types pour les arguments de la fonction arrondie
10.7. Résolution de types pour les fonctions retournant un segment de chaîne
10.8. Conversion de types pour le stockage de character
10.9. Résolution de types avec des types sous-spécifiés dans une union
10.10. Résolution de types dans une union simple
10.11. Résolution de types dans une union transposée
11.1. Mettre en place un index partiel pour exclure des valeurs courantes
11.2. Mettre en place un index partiel pour exclure les valeurs inintéressantes
11.3. Mettre en place un index d'unicité partiel
20.1. Exemple d'entrées de pg_hba.conf
20.2. Un exemple de fichier pg_ident.conf
33.1. Premier exemple de programme pour libpq
33.2. Deuxième exemple de programme pour libpq
33.3. Troisième exemple de programme pour libpq
34.1. Exemple de programme sur les objets larges avec libpq
35.1. Programme de Démonstration SQLDA
35.2. Programme ECPG Accédant à un Large Object
41.1. Installation manuelle de PL/Perl
42.1. Mettre entre guillemets des valeurs dans des requêtes dynamiques
42.2. Exceptions avec UPDATE/INSERT
42.3. Une procédure trigger PL/pgSQL
42.4. Une procédure d'audit par trigger en PL/pgSQL
42.5. Une fonction trigger en PL/pgSQL sur une vue pour un audit
42.6. Une procédure trigger PL/pgSQL pour maintenir une table résumée
42.7. Une procédure PL/pgSQL pour un trigger d'événement
42.8. Portage d'une fonction simple de PL/SQL vers PL/pgSQL
42.9. Portage d'une fonction qui crée une autre fonction de PL/SQL vers PL/pgSQL
42.10. Portage d'une procédure avec manipulation de chaînes et paramètres OUT de PL/SQL vers PL/pgSQL
42.11. Portage d'une procédure de PL/SQL vers PL/pgSQL
F.1. Créer une table distante pour les journaux applicatifs PostgreSQL au format CSV