PostgreSQL/Utilisation
Création de base
[modifier | modifier le wikicode]GUI pgAdmin
[modifier | modifier le wikicode]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)
[modifier | modifier le wikicode]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
Pour changer la base courante :
SELECT current_database(); # postgres
\connect root;
SELECT current_database(); # root
Création de schéma
[modifier | modifier le wikicode]Un schéma est un élément d'une base similaire à un espace de nom[1] : il peut contenir plusieurs tables et fonctions.
CREATE SCHEMA mon_schema
Création de table
[modifier | modifier le wikicode]GUI pgAdmin
[modifier | modifier le wikicode]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
);
On peut ensuite la lire avec un clic droit dessus, View/Edit Data.
Ligne de commande (Shell)
[modifier | modifier le wikicode]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.
L'auto-incrémentation est assurée par :
SERIAL PRIMARY KEY
Insertion
[modifier | modifier le wikicode]On suppose une table client dans le schéma operation.
INSERT INTO "operation"."client" (id, nom, prenom, code_postal, ville, pays)
VALUES ('01234', 'Brochet', 'Pierre', 75001, 'Paris', 'France');
Insertion et retourne l'enregistrement inséré :
INSERT INTO "operation"."client" (id, nom, prenom, code_postal, ville, pays)
VALUES ('01235', 'Laplace', 'Jean', 75006, 'Brest', 'France')
RETURNING *;
Modification
[modifier | modifier le wikicode] SELECT * FROM "auth"."account" WHERE "account"."accountId" = 'SystemDepositor';
UPDATE "auth"."account"
SET "password" = 'xxx'
WHERE "account"."accountId" = 'SystemDepositor';
Création de variables
[modifier | modifier le wikicode]Utiliser "with"[2].
Sauvegardes
[modifier | modifier le wikicode]Windows
[modifier | modifier le wikicode]Pour définir un batch de backup quotidien, utiliser pg_dump.exe[3] 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
[modifier | modifier le wikicode]Sauvegarde :
$ pg_dump --dbname=finance --username=boss --file=finance.sql
Restauration :
$ psql --dbname=finance_x --username=boss <finance.sql