Serveurs Base de données

PostgreSQL : Memo des commandes SQL

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction




A force d'utiliser des commandes SQL, j'ai pensé les mettre dans un seul endroit : sur mon SITE.

Ainsi, je cherche à faire quelque chose, je viens chercher ici.

Si je ne sais pas, je cherche sur Google, et je renseigne ici, je retrouverai plus facilement.

Se connecter à la base



Pour se connecter sous Linux en ligne de commande, on utilisera :

[code=bash][/code]

Et pour un hôte distant, on précise l'IP :

[code=bash][/code]

Après on peut aussi utiliser des logiciels graphiques comme pgAdmin ou HeidiSQL.


Commandes de base




Bases de données




Créer et supprimer des bases




Pour crée une base de données, saisir simplement :

[code=sql][/code]


Pour la supprimer :

[code=sql][/code]

Utiliser les bases




Pour se connecter à la base :

[code=sql][/code]


Gestion des utilisateurs




Créer des utilisateurs




Pour créer un utilisateur, voici la commande :

[code=sql][/code]

Que pour localhost :


Attribuer des droits aux utilisateurs



Pour attribuer tous les droits à un utilisateur (en faire en quelque sortes un deuxième root) :




Changer un mot de passe d'utilisateur de PostgreSQL




Cette commande fonctionne uniquement pour PostgreSQL :

[code=sql][/code]


Voir les utilisateurs




Pour voir les utilisateurs créés :

[code=sql][/code]



Voir les droits des utilisateurs




Pour un utilisateur donné, on peut voir ses droits de la façon suivante :

[code=sql][/code]



Tables




Créer et supprimer des tables




Pour créer une table simple, voici un exemple :

[code=sql][/code]

SELECT




INSERT




UPDATE




DELETE




ALTER



RENAME




Administration avancée



Ici, on retrouve des commandes d'admin avancées.

Changer le owner de toutes les tables



Quand on a une base avec 6300 tables, pas facile de changer le propriétaire des tables.
Voici un script BASH (oneliner) utilisant la commande psql depuis l'utilisateur postgres :

Code BASH :
for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" VOTRE_BDD` ; do  psql -c "alter table \"$tbl\" owner to NEW_OWNER" VOTRE_BDD; done


Supprimer toutes les tables d'une BDD



Quand on a une base avec 6300 tables, pas facile de supprimer toutes les tables. L'idée est de réimporter un dump sans recréer la base.
Voici un script BASH (oneliner) utilisant la commande psql depuis l'utilisateur postgres :

Code BASH :
for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" VOTRE_BDD` ; do  psql -c "drop table \"$tbl\" CASCADE " VOTRE_BDD ; done