Outils pour utilisateurs

Outils du site


public:kb:postgresql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
public:kb:postgresql [2014/02/19 08:20] laurent.jolypublic:kb:postgresql [2025/01/06 17:46] (Version actuelle) – supprimée laurent.joly
Ligne 1: Ligne 1:
-<WRAP tabs> 
-  * [[:start|Accueil]] 
-  * [[:public:kb|KB]] 
-</WRAP> 
- 
-====== PostgreSQL ====== 
- 
- 
-===== Acces ===== 
- 
-sur le serveur se logger en postgres 
- 
-  <sudo> su postgres 
- 
-lancer psql 
- 
-\h pour les commandes sql 
-\? pour les commandes psql 
- 
-\q pour quitter 
-\l pour lister les DBs 
- 
-===== Créer une DB ===== 
- 
- 
-On crée une base et un compte propriétaire de cette base. 
- 
- 
- 
-==== Créer un role ==== 
- 
-  createuser -D -R -l -E -e -P -U pgsql mon_user 
- 
-man createuser pour en savoir plus ... 
-  
-ou avant faire un  
- 
-  su pgsql 
- 
-voire 
- 
-  sudo -u pgsql createuser -D -R -l -E -e -P -U pgsql mon_user 
- 
-De façon a avoir les droits associés au compte root du serveur (ici pgsql) 
- 
- 
-Entrer ensuite le password, puis répondre à cette question 
- 
-  Shall the new role be a superuser? (y/n) 
- 
- 
-  >CREATE ROLE mon_user ENCRYPTED PASSWORD 'toto' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; 
-  -->CREATE ROLE 
- 
- 
- 
-==== Créer la base ==== 
- 
-  sudo createdb -E latin1 -O mon_user -e -U pgsql ma_db 
- 
-** ou plutôt ** 
- 
-  sudo createdb -E utf8 -O mon_user -e -U pgsql ma_db 
-  >CREATE DATABASE ma_db OWNER mon_user ENCODING 'utf8'; 
-  -->CREATE DATABASE 
- 
-===== Supprimer une DB ===== 
-  sudo dropdb -U mon_user ma_db 
- 
----- 
- 
-===== Quelques éléments de la syntaxe SQL de PostgreSQL. ===== 
- 
- 
-Soit la table "mots", avec les colonnes "id", "mot", "definition" 
- 
----- 
- 
- 
- 
- 
- 
-==== SELECT ==== 
-[[http://www.postgresql.org/docs/8.1/interactive/functions-matching.html|Doc]] 
-  
-===Afficher tous les mots et toutes les colonnes :=== 
- 
-  SELECT * FROM mots; 
-  ou encore 
-  SELECT * FROM "mots"; 
- 
- 
-===Idem en affichant seulement la colonne id :=== 
- 
-  SELECT id FROM mots; 
-  ou encore 
-  SELECT id FROM "nom_du_shema"."mots"; 
- 
- 
-===L'enregistrement dont l'id est 15 (on affiche toutes les colonnes)=== 
- 
-SELECT * FROM mots WHERE id = 15; 
- 
- 
-===Les enregistrements dont le mot est "toto"=== 
- 
-SELECT * FROM mots WHERE mot = 'toto';<br> 
-ou<br> 
-SELECT * FROM mots WHERE mot LIKE 'toto'; 
- 
- 
-===Les enregistrements dont le mot contient toto :=== 
- 
-SELECT * FROM mots WHERE mots ~* 'toto' 
- 
- 
-===Les enregistrements dont le mot commence par toto :=== 
- 
-SELECT * FROM mots WHERE mots ~* '^toto' 
- 
- 
-== Changer la valeur d'une sequence == 
-Pour mettre la valeur actuelle de la sequence ''matable_monid_seq'' à 100 
- ALTER SEQUENCE matable_monid_seq RESTART WITH 100 
- 
-Il peut être bien vu de faire regarder avant quelle est la plus grande valeur dans la table qui utilise la sequence. 
- SELECT MAX(monid) FROM matable; 
- 
- 
-== le SHOW COLUMNS sous Postgresql == 
- 
- 
- SELECT 
-    a.attname AS field, 
-    pg_catalog.format_type(a.atttypid, a.atttypmod) AS type, 
-    a.attnotnull AS null, 
-    a.atthASdef AS default, 
-    adef.adsrc AS value, 
-    pg_catalog.col_description(a.attrelid, a.attnum) AS comment 
- FROM 
-    pg_catalog.pg_attribute a LEFT JOIN pg_catalog.pg_attrdef adef 
-    ON a.attrelid=adef.adrelid 
-    AND a.attnum=adef.adnum 
- WHERE 
-    a.attrelid = (SELECT oid FROM pg_catalog.pg_clASs WHERE relname='ma_table' 
-        AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE 
-        nspname = 'public')) 
-    AND a.attnum > 0 AND NOT a.attisdropped 
- ORDER BY a.attnum 
- 
- 
-== Majuscules et minuscules == 
- LOWER(my_field) 
- UPPER (my_field) 
- 
-= Divers = 
- 
-== Migrer l'encodage vers UTF-8 == 
- 
-  * Créer une nouvelle database en lui donnant l'encodage UTF8 
-  * Faire un export (dump) sans compression (en plain text) de l'ancienne DB 
-  * Dans le fichier de dump, couper / coller toutes les données (en principe encadrées par COPY) dans un nouveau fichier texte data.sql 
-  * couper coller ensuite toutes les contraintes (placées à la fin du fichier dump) dans un fichier constraints.sql 
-  * Sous Unix, lancer la commande :  
- 
-  iconv -f ancien_encodage -t utf-8 data.sql  > data_utf8.sql 
- 
-//(sous windows ... bon courage)// 
- 
-  * Importer dans la nouvelle DB le shéma (en principe le fichier dump ne contient plus que le shéma) 
-  * Importer dans la nouvelle DB les données UTF-8 
-  * Importer dans la nouvelle DB les contraintes 
-  * Renommer l'ancienne DB 
-  * Renommer la nouvelle DB avec le nom de l'ancienne 
-  * Si vous utilisez un site web qui tape dans ces données, n'oubliez pas de préciser dans le head le nouvel encodage : 
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  
public/kb/postgresql.1392794452.txt.gz · Dernière modification : 2014/02/19 08:20 de laurent.joly