Fiche mémoire sur PostgreSQL
Peter Freitag vient de publier une fiche mémoire sur PostgreSQL dont voici la traduction. La version anglaise est disponible sur le site de Peter Freitag.
Fiche mémoire sur PostgreSQL
Créer une base de données
CREATE DATABASE nom_base;
Créer une table (avec un identifiant incrémenté automatiquement)
CREATE TABLE nom_table (
id serial PRIMARY KEY,
nom varchar(50) UNIQUE NOT NULL,
date_creation timestamp DEFAULT current_timestamp
);
Ajouter une clé primaire
ALTER TABLE nom_table ADD PRIMARY KEY (id);
Créer un index
CREATE UNIQUE INDEX nom_index ON nom_table (noms_colonnes);
Sauvegarder une base de données (ligne de commande)
pg_dump nom_base > nom_base.sql
Sauvegarder toutes les bases de données (ligne de commande)
pg_dumpall > sauvegarde_pg.sql
Lancer un script SQL (ligne de commande)
psql -f script.sql nom_base
Rechercher via une expression rationnelle
SELECT colonne FROM table WHERE colonne ~ 'truc.*';
Les N premiers enregistrements
SELECT colonnes FROM table LIMIT 10;
Pagination
SELECT colonnes FROM table LIMIT 10 OFFSET 30;
Instructions préparées
PREPARE insertion_preparee (int, varchar) AS
INSERT INTO nom_table (colonne_int, colonne_char) VALUES ($1, $2);
EXECUTE insertion_preparee (1,'a');
EXECUTE insertion_preparee (2,'b');
DEALLOCATE insertion_preparee;
Créer une fonction
CREATE OR REPLACE FUNCTION mois (timestamp) RETURNS integer
AS 'SELECT date_part(''month'', $1)::integer;'
LANGUAGE 'sql';
Maintenance d'une table
VACUUM ANALYZE table;
Ré-indexer une base de données, une table ou un index
REINDEX DATABASE nom_base;
Afficher le plan de requête
EXPLAIN SELECT * FROM table;
Importer un fichier
COPY table_destination FROM '/tmp/un_fichier';
Afficher tous les paramètres d'exécution
SHOW ALL;
Donner tous les droits à un utilisateur
GRANT ALL PRIVILEGES ON table TO nom_utilisateur;
Exécuter une transaction
BEGIN TRANSACTION
UPDATE comptes SET balance += 50 WHERE id = 1;
COMMIT;
SQL de base
Obtenir toutes les colonnes et lignes d'une table
SELECT * FROM table;
Ajouter une nouvelle ligne
INSERT INTO table (colonne1,colonne2)
VALUES (1, 'un');
Mettre à jour une ligne
UPDATE table SET truc = 'machin' WHERE id = 1;
Supprimer une ligne
DELETE FROM table WHERE id = 1;
S'imprime sur deux pages. Document en cours de construction - Questions, commentaires, critiques ou requêtes (en anglais) à adresser ici
Copyright © 2005 Peter Freitag (http://www.petefreitag.com/), All Rights Reserved.
Ce document peut être imprimé librement aussi longtemps que cette notice reste intacte.

