« PostgreSQL/Utilisation » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
DannyS712 (discussion | contributions)
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 :
<source lang="sql">
<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 :
<source lang="sql">
<syntaxhighlight lang="sql">
\l
\l
</syntaxhighlight>
</source>


Se connecter à une base :
Se connecter à une base :
<source lang="sql">
<syntaxhighlight lang="sql">
\c MaBase
\c MaBase
</syntaxhighlight>
</source>


Obtenir la liste des schémas :
Obtenir la liste des schémas :
<source lang="sql">
<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 :
<source lang="sql">
<syntaxhighlight lang="sql">
\dt *.*
\dt *.*
</syntaxhighlight>
</source>


Restreindre à toutes les tables d'un schéma :
Restreindre à toutes les tables d'un schéma :
<source lang="sql">
<syntaxhighlight lang="sql">
\dt MaBase.*
\dt MaBase.*
</syntaxhighlight>
</source>


Voir les champs d'une table :
Voir les champs d'une table :
<source lang="sql">
<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 :
<source lang="sql">
<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:
<source lang="sql">
<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:
<source lang="c">
<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 à :
<source lang="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:
<source lang="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>
''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 :
<source lang=dos>
<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 :
<source lang=dos>
<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é :
<source lang=dos>
<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 :
<source lang=bash>
<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 :
<source lang=bash>
<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

Créer une base de données dans 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 :

  1. Affiche/éditer les propriétés de l'objet sélectionné.
  2. Supprimer l'objet sélectionné.
  3. SQL (un éditeur de requête).
  4. 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

Créer une table dans 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

Références