Formation SQL4
Dalibo SCOP
8 janvier 2018
Vous êtes libres de redistribuer et/ou modifier cette création selon les conditions suivantes :
Paternité
Pas d'utilisation commerciale
Partage des conditions initiales à l'identique
Apparitions de la communauté internationale
OVER
)'EXPLAIN
UNIQUE
différableGRANT ALL
WHEN
pg_basebackup
utilisable sur un esclaveLATERAL
dans un SELECT
COPY FREEZE
BRIN
INSERT ... ON CONFLICT { UPDATE | IGNORE }
SKIP LOCKED
SQL/MED
pg_stat_statements
, ajout de pg_stat_ssl
GROUPING SETS
, CUBE
et ROLLUP
)VACUUM FREEZE
, CHECKPOINT
, ancien snapshotSAVEPOINT
disponible pour sauvegarde des modifications d'une transaction à un instant t
BEGIN ISOLATION LEVEL xxx;
read commited
repeatable read
serializable
Création de types de données et
pg_hba.conf
Les algorithmes suivants sont supportés :
B-tree
(par défaut)GiST
/ SP-GiST
Hash
GIN
(version 8.2
)BRIN
(version 9.5
)CHECK
: prix > 0
NOT NULL
: id_client NOT NULL
id_client UNIQUE
UNIQUE NOT NULL
==> PRIMARY KEY (id_client)
produit_id REFERENCES produits(id_produit)
EXCLUDE
: EXCLUDE USING gist (room WITH =, during WITH &&)
INSERT
, COPY
, UPDATE
, DELETE
TRUNCATE
FOR STATEMENT
)FOR EACH ROW
)Site de petites annonces :
N'hésitez pas, c'est le moment !
EXPLAIN
graphiqueVACUUM
, des connexions, des checkpointsSELECT count(*)
(amélioration en 9.2)SELECT count(*)
(amélioration en 9.2)CREATER USER
"
) pour les chaînessynonym
hstore
xml
, json
et jsonb
(plus performant que MongoDB)cstore_fdw
#postgresql
#postgresql-eu
#postgresqlfr
N'hésitez pas, c'est le moment !
Les outils graphiques et console :
PostgreSQL
createdb
: ajouter une nouvelle base de donnéescreatelang
: ajouter un langage de procédures à une base (<v10)createuser
: ajouter un nouveau compte utilisateurdropdb
: supprimer une base de donnéesdroplang
: supprimer un langage de procédures (<v10)dropuser
: supprimer un compte utilisateurpg_dumpall
: sauvegarder l'instance PostgreSQLpg_dump
: sauvegarder une base de donnéespg_restore
: restaurer une base de données PostgreSQLvacuumdb
: récupérer l'espace inutilisé (VACUUM FULL
) et/ou mettre à jour les statistiques de l'optimiseur (ANALYZE
)reindexdb
: réindexer une base de données PostgreSQLclusterdb
: réorganiser une table en fonction d'un indexpg_ctl
: lancer, arrêter, relancer, promouvoir le serveur PostgreSQL-W | --password
-w | --no-password
$PGPASSWORD
.pgpass
nom_hote:port:database:nomutilisateur:motdepasse
postgres$ psql
base=#
\? [motif]
\h [motif]
\q
\encoding [ENCODING]
\password [USERNAME]
\conninfo
\connect [DBNAME|- USER|- HOST|- PORT|-]
\c [DBNAME|- USER|- HOST|- PORT|-]
\timing
\! [COMMAND]
\cd [DIR]
\l
\dn
\d{t|i|s|v|m}[S][+] [motif]
\df[+] [motif]
\da [motif]
\du[+]
\dp
\ddp
\drds
\db
\dx
\dD[S+]
\dT[S+]
\do [motif]
\dF [motif]
\dFd [motif]
\dFt [motif]
\dFp [motif]
\dc [motif]
\dC [motif]
\sv
\sf
;
\g
\gx
ctrl-R
suivi d'un extrait de texte représentatif\gexec
\e
\ev nom_vue
\ef nom_fonction
\g [FICHIER]
\p
\w [FICHIER]
\r
\i FICHIER
\o FICHIER
\echo texte...
\qecho texte...
\set [NOM [VALEUR]]
\unset NOM
ON_ERROR_STOP
: on
ou off
ON_ERROR_ROLLBACK
: on
, off
ou interactive
AUTOCOMMIT
: on
ou off
\if
\elif
\else
\endif
${HOME}
.psqlrc-X.Y
.psqlrc-X
.psqlrc
.psqlrc
contient des méta-commandes \set
\set ON_ERROR_ROLLBACK interactive
-c "ordre SQL"
-f nom_fichier.sql
\i nom_fichier.sql
AUTOCOMMIT
BEGIN;
COMMIT;
-1
ou --single-transaction
\encoding
Positionner des variables
\set nom_table 'ma_table'
SELECT * FROM :"nom_table";
\set valeur_col1 'test'
SELECT * FROM :"nom_table" WHERE col1 = :'valeur_col1';
\prompt 'invite' nom_variable
\unset variable
ON_ERROR_ROLLBACK
ON_ERROR_STOP
-A | --no-align
-t | --tuples-only
-x | --expanded
-H | --html
-T TEXT | --table-attr TEXT
-F CHAINE | --field-separator CHAINE
-z | --field-separator-zero
-R CHAINE | --record-separator CHAINE
-0 | --record-separator-zero
\crosstabview [ colV [ colH [ colD [ sortcolH ] ] ] ]
\pset option [ valeur ]
\pset expanded on
\pset title 'Résultat de la requête
'\pset format html
crontab -e
Sauvegarder une base et classer l'archive
#!/bin/bash
t=`mktemp`
pg_dump $1 | gzip > $t
d=`eval date +%d%m%y-%H%M%S`
mv $t /backup/${1}_${d}.dump.gz
exit 0
" temBoard est un outil permettant à un DBA de mener à bien la plupart de ses tâches courantes.
Le serveur web est installé de façon centralisée et un agent est déployé pour chaque instance.
vacuum
, analyze
, reindex
)
Notes: Multiplateforme
Mais ne semble plus maintenu
N'hésitez pas, c'est le moment !
Hot Standby
Warm Standby
apparue en 9.0
BSD
)SQL
DDL
SQL
md5
BSD
)BSD
)PgQ
PgQ
est robuste, fiable et flexibleBSD
)Points essentiels :
N'hésitez pas, c'est le moment !