« PostgreSQL/Utilisation » : différence entre les versions
m <source> -> <syntaxhighlight> (phab:T237267) |
|||
Ligne 3 : | Ligne 3 : | ||
== Commandes de base == |
== Commandes de base == |
||
Une liste des commandes est disponible avec : |
Une liste des commandes est disponible avec : |
||
< |
<syntaxhighlight lang="sql"> |
||
\? |
\? |
||
</syntaxhighlight> |
|||
</source> |
|||
Par exemple, pour obtenir la liste des bases de données du serveur : |
Par exemple, pour obtenir la liste des bases de données du serveur : |
||
< |
<syntaxhighlight lang="sql"> |
||
\l |
\l |
||
</syntaxhighlight> |
|||
</source> |
|||
Se connecter à une base : |
Se connecter à une base : |
||
< |
<syntaxhighlight lang="sql"> |
||
\c MaBase |
\c MaBase |
||
</syntaxhighlight> |
|||
</source> |
|||
Obtenir la liste des schémas : |
Obtenir la liste des schémas : |
||
< |
<syntaxhighlight lang="sql"> |
||
\dn |
\dn |
||
</syntaxhighlight> |
|||
</source> |
|||
Lister toutes les tables de tous les schémas : |
Lister toutes les tables de tous les schémas : |
||
< |
<syntaxhighlight lang="sql"> |
||
\dt *.* |
\dt *.* |
||
</syntaxhighlight> |
|||
</source> |
|||
Restreindre à toutes les tables d'un schéma : |
Restreindre à toutes les tables d'un schéma : |
||
< |
<syntaxhighlight lang="sql"> |
||
\dt MaBase.* |
\dt MaBase.* |
||
</syntaxhighlight> |
|||
</source> |
|||
Voir les champs d'une table : |
Voir les champs d'une table : |
||
< |
<syntaxhighlight lang="sql"> |
||
\d MaTable |
\d MaTable |
||
</syntaxhighlight> |
|||
</source> |
|||
== Création de base == |
== Création de base == |
||
Ligne 43 : | Ligne 43 : | ||
Par ailleurs, un clic droit sur le menu "Bases de données" à gauche, permet d'accéder à l'option "Ajouter une base de données". Cette dernière affiche dans un onglet "SQL" son équivalent en code : |
Par ailleurs, un clic droit sur le menu "Bases de données" à gauche, permet d'accéder à l'option "Ajouter une base de données". Cette dernière affiche dans un onglet "SQL" son équivalent en code : |
||
< |
<syntaxhighlight lang="sql"> |
||
CREATE DATABASE "WikibooksDB" |
CREATE DATABASE "WikibooksDB" |
||
WITH ENCODING='UTF8' |
WITH ENCODING='UTF8' |
||
CONNECTION LIMIT=-1; |
CONNECTION LIMIT=-1; |
||
</syntaxhighlight> |
|||
</source> |
|||
Une fois la base sélectionnée, les boutons suivants se dégrisent : |
Une fois la base sélectionnée, les boutons suivants se dégrisent : |
||
Ligne 57 : | Ligne 57 : | ||
=== Ligne de commande (Shell) === |
=== Ligne de commande (Shell) === |
||
Via le terminal, 2 choix apparaissent, soit écrire directement dans le shell: |
Via le terminal, 2 choix apparaissent, soit écrire directement dans le shell: |
||
<syntaxhighlight> |
|||
<source> |
|||
createdb nom_database |
createdb nom_database |
||
</syntaxhighlight> |
|||
</source> |
|||
Soit, il faudra d'abord se mettre sous le user ''postgres''. Cela se fait tout simplement de la manière suivante: |
Soit, il faudra d'abord se mettre sous le user ''postgres''. Cela se fait tout simplement de la manière suivante: |
||
<syntaxhighlight> |
|||
<source> |
|||
su postgres |
su postgres |
||
</syntaxhighlight> |
|||
</source> |
|||
Puis, lancer PostgreSQL: |
Puis, lancer PostgreSQL: |
||
<syntaxhighlight> |
|||
<source> |
|||
psql |
psql |
||
</syntaxhighlight> |
|||
</source> |
|||
Et ensuite créer une base de données en écrivant: |
Et ensuite créer une base de données en écrivant: |
||
< |
<syntaxhighlight lang="sql"> |
||
CREATE DATABASE nom_database; |
CREATE DATABASE nom_database; |
||
-- Ou, pour ajouter la base de données pour un utilisateur spécifique: |
-- Ou, pour ajouter la base de données pour un utilisateur spécifique: |
||
CREATE DATABASE nom_database OWNER nom_utilisateur; |
CREATE DATABASE nom_database OWNER nom_utilisateur; |
||
</syntaxhighlight> |
|||
</source> |
|||
Pour s'y connecter, entrer simplement dans le terminal: |
Pour s'y connecter, entrer simplement dans le terminal: |
||
< |
<syntaxhighlight lang="c"> |
||
psql nom_database |
psql nom_database |
||
// Ou, pour s'y connecter avec un utilisateur spécifique: |
// Ou, pour s'y connecter avec un utilisateur spécifique: |
||
psql -d nom_database -U nom_utilisateur |
psql -d nom_database -U nom_utilisateur |
||
</syntaxhighlight> |
|||
</source> |
|||
== Création de table == |
== Création de table == |
||
Ligne 88 : | Ligne 88 : | ||
En dépliant le schéma public à gauche, un clic droit sur le menu "Table", "Ajouter table", il devient possible de remplir les différents onglets nécessaires. Cela équivaut en SQL à : |
En dépliant le schéma public à gauche, un clic droit sur le menu "Table", "Ajouter table", il devient possible de remplir les différents onglets nécessaires. Cela équivaut en SQL à : |
||
< |
<syntaxhighlight lang="sql"> |
||
CREATE TABLE Livres ( |
CREATE TABLE Livres ( |
||
id integer CONSTRAINT firstkey PRIMARY KEY, |
id integer CONSTRAINT firstkey PRIMARY KEY, |
||
titre varchar(255) NOT NULL |
titre varchar(255) NOT NULL |
||
); |
); |
||
</syntaxhighlight> |
|||
</source> |
|||
=== Ligne de commande (Shell) === |
=== Ligne de commande (Shell) === |
||
Après s’être connecté à une base de données, il suffira d'écrire: |
Après s’être connecté à une base de données, il suffira d'écrire: |
||
< |
<syntaxhighlight lang="sql"> |
||
CREATE TABLE Livres ( |
CREATE TABLE Livres ( |
||
id integer CONSTRAINT firstkey PRIMARY KEY, |
id integer CONSTRAINT firstkey PRIMARY KEY, |
||
titre varchar(255) NOT NULL |
titre varchar(255) NOT NULL |
||
); |
); |
||
</syntaxhighlight> |
|||
</source> |
|||
''L’indentation en ligne de commande est purement optionnelle, les instructions entrées ne seront que traitées après le'' ''';''' ''final.'' |
''L’indentation en ligne de commande est purement optionnelle, les instructions entrées ne seront que traitées après le'' ''';''' ''final.'' |
||
Ligne 109 : | Ligne 109 : | ||
=== Windows === |
=== Windows === |
||
Pour définir un batch de backup quotidien, utiliser pg_dump.exe<ref>http://www.postgresql.org/docs/8.3/static/app-pgdump.html</ref> en DOS. Par exemple, la commande suivante envoie un dump au format "aaaa-mm-jj-NomDeLaBase.sql" sur un serveur du réseau : |
Pour définir un batch de backup quotidien, utiliser pg_dump.exe<ref>http://www.postgresql.org/docs/8.3/static/app-pgdump.html</ref> en DOS. Par exemple, la commande suivante envoie un dump au format "aaaa-mm-jj-NomDeLaBase.sql" sur un serveur du réseau : |
||
< |
<syntaxhighlight lang=dos> |
||
"C:\Program Files\PostgreSQL\bin\pg_dump.exe" -U Utilisateur1 -f "\\192.168.1.2\d$\Backup\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%-MaBase1.sql" MaBase1 |
"C:\Program Files\PostgreSQL\bin\pg_dump.exe" -U Utilisateur1 -f "\\192.168.1.2\d$\Backup\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%-MaBase1.sql" MaBase1 |
||
</syntaxhighlight> |
|||
</source> |
|||
Restauration d'un fichier plat : |
Restauration d'un fichier plat : |
||
< |
<syntaxhighlight lang=dos> |
||
"C:\Program Files\PostgreSQL\bin\psql.exe" -U Utilisateur1 MaBase1 < "\\192.168.1.2\d$\Backup\2016-07-15-MaBase1.sql" |
"C:\Program Files\PostgreSQL\bin\psql.exe" -U Utilisateur1 MaBase1 < "\\192.168.1.2\d$\Backup\2016-07-15-MaBase1.sql" |
||
</syntaxhighlight> |
|||
</source> |
|||
Restauration d'un fichier compressé : |
Restauration d'un fichier compressé : |
||
< |
<syntaxhighlight lang=dos> |
||
"C:\Program Files\PostgreSQL\bin\pg_restore.exe" -U Utilisateur1 "\\192.168.1.2\d$\Backup\2016-07-15-MaBase1.sql" |
"C:\Program Files\PostgreSQL\bin\pg_restore.exe" -U Utilisateur1 "\\192.168.1.2\d$\Backup\2016-07-15-MaBase1.sql" |
||
</syntaxhighlight> |
|||
</source> |
|||
=== Linux === |
=== Linux === |
||
Sauvegarde : |
Sauvegarde : |
||
< |
<syntaxhighlight lang=bash> |
||
$ pg_dump --dbname=finance --username=boss --file=finance.sql |
$ pg_dump --dbname=finance --username=boss --file=finance.sql |
||
</syntaxhighlight> |
|||
</source> |
|||
Restauration : |
Restauration : |
||
< |
<syntaxhighlight lang=bash> |
||
$ psql --dbname=finance_x --username=boss <finance.sql |
$ psql --dbname=finance_x --username=boss <finance.sql |
||
</syntaxhighlight> |
|||
</source> |
|||
== Références == |
== Références == |
Version du 16 avril 2020 à 09:52
Commandes de base
Une liste des commandes est disponible avec :
\?
Par exemple, pour obtenir la liste des bases de données du serveur :
\l
Se connecter à une base :
\c MaBase
Obtenir la liste des schémas :
\dn
Lister toutes les tables de tous les schémas :
\dt *.*
Restreindre à toutes les tables d'un schéma :
\dt MaBase.*
Voir les champs d'une table :
\d MaTable
Création de base
GUI pgAdmin
Dans pgAdmin, les commandes SQL sont disponibles dans l'icône de puzzle "PSQL console".
Par ailleurs, un clic droit sur le menu "Bases de données" à gauche, permet d'accéder à l'option "Ajouter une base de données". Cette dernière affiche dans un onglet "SQL" son équivalent en code :
CREATE DATABASE "WikibooksDB"
WITH ENCODING='UTF8'
CONNECTION LIMIT=-1;
Une fois la base sélectionnée, les boutons suivants se dégrisent :
- Affiche/éditer les propriétés de l'objet sélectionné.
- Supprimer l'objet sélectionné.
- SQL (un éditeur de requête).
- Maintenir la base ou la table courante.
Ligne de commande (Shell)
Via le terminal, 2 choix apparaissent, soit écrire directement dans le shell:
createdb nom_database
Soit, il faudra d'abord se mettre sous le user postgres. Cela se fait tout simplement de la manière suivante:
su postgres
Puis, lancer PostgreSQL:
psql
Et ensuite créer une base de données en écrivant:
CREATE DATABASE nom_database;
-- Ou, pour ajouter la base de données pour un utilisateur spécifique:
CREATE DATABASE nom_database OWNER nom_utilisateur;
Pour s'y connecter, entrer simplement dans le terminal:
psql nom_database
// Ou, pour s'y connecter avec un utilisateur spécifique:
psql -d nom_database -U nom_utilisateur
Création de table
GUI pgAdmin
En dépliant le schéma public à gauche, un clic droit sur le menu "Table", "Ajouter table", il devient possible de remplir les différents onglets nécessaires. Cela équivaut en SQL à :
CREATE TABLE Livres (
id integer CONSTRAINT firstkey PRIMARY KEY,
titre varchar(255) NOT NULL
);
Ligne de commande (Shell)
Après s’être connecté à une base de données, il suffira d'écrire:
CREATE TABLE Livres (
id integer CONSTRAINT firstkey PRIMARY KEY,
titre varchar(255) NOT NULL
);
L’indentation en ligne de commande est purement optionnelle, les instructions entrées ne seront que traitées après le ; final.
Sauvegardes
Windows
Pour définir un batch de backup quotidien, utiliser pg_dump.exe[1] en DOS. Par exemple, la commande suivante envoie un dump au format "aaaa-mm-jj-NomDeLaBase.sql" sur un serveur du réseau :
"C:\Program Files\PostgreSQL\bin\pg_dump.exe" -U Utilisateur1 -f "\\192.168.1.2\d$\Backup\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%-MaBase1.sql" MaBase1
Restauration d'un fichier plat :
"C:\Program Files\PostgreSQL\bin\psql.exe" -U Utilisateur1 MaBase1 < "\\192.168.1.2\d$\Backup\2016-07-15-MaBase1.sql"
Restauration d'un fichier compressé :
"C:\Program Files\PostgreSQL\bin\pg_restore.exe" -U Utilisateur1 "\\192.168.1.2\d$\Backup\2016-07-15-MaBase1.sql"
Linux
Sauvegarde :
$ pg_dump --dbname=finance --username=boss --file=finance.sql
Restauration :
$ psql --dbname=finance_x --username=boss <finance.sql