D:\PostgreSQL\9.3\bin>createuser.exe -U postgres -P baixyu
為新角色輸入的口令:
再輸入一遍:
口令:
該例子創建了一個baixyu的角色,注意這里面不是用戶,而是角色,U選項指出了你想要建立的新用戶的編號。必須是PostgreSQL的用戶才能建立用戶,通常情況下就是postgres用戶。-P選項通知createuser提示輸入新用戶的密碼。
需要為創建的角色賦予創建數據庫的權限
CREATE ROLE baixyu LOGIN
ENCRYPTED PASSWORD 'md50cdfd0736eaacd81a5a3b192623f8f90'
NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION;
使用
D:\PostgreSQL\9.3\bin>createdb.exe -U baixyu test
口令:
最終對應的實際sql語句如下,看到默認表空間是pg_default
CREATE DATABASE test
WITH OWNER = baixyu
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'Chinese (Simplified)_People''s Republic of China.936'
LC_CTYPE = 'Chinese (Simplified)_People''s Republic of China.936'
CONNECTION LIMIT = -1;
創建數據庫后,使用下面的命令登陸數據庫
D:\PostgreSQL\9.3\bin>psql -U baixyu -d test
用戶 baixyu 的口令:
psql (9.3.5)
輸入 "help" 來獲取幫助信息.
test=>
切換不同的數據庫
test=> \c postgres
您現在已經連線到數據庫 "postgres",用戶 "baixyu".
postgres=>
可以創建用戶私有的數據庫
create user fred password fred;
create database fred owner=fred;
這個並不是說這個庫不能被別的用戶連接,只是這個角色有了登錄的權限
psql的一些參數
選項 |
意義 |
-a |
從腳本中響應所有輸入 |
-A |
取消表數據輸出的對齊模式;功能與“-P format=unaligned”相同 |
-c <查詢> |
僅僅運行一個簡單的查詢(或者內部命令)然后退出 |
-d <數據庫名> |
指定連接到的數據庫名(默認為$PGDATABASE或者當前登錄用戶名) |
-e |
回顯發送到服務器的查詢 |
-E |
顯示內部命令生成的查詢語句 |
-f <文件名> |
執行一個文件中的查詢,然后退出 |
-F <字符串> |
指定列數據顯示分隔符(默認為“|”);功能與“-P fieldsep=<字符串>”相同 |
-h <主機> |
指定數據庫服務器主機(默認為$PGHOST或者本地主機) |
-H |
設置表格輸出模式為HTML;功能與“-P format=html”相同 |
--help |
顯示幫助,然后退出 |
-l |
列出存在的數據庫,然后退出 |
-n |
禁用readline;阻止行編輯 |
-o <文件名> |
將查詢的輸出發送到文件名指定文件(使用“|管道”的形式將輸出發送到一個過濾程序) |
-p <端口> |
指定數據庫服務器的端口(默認為$PGPORT或者編譯期設置的默認值,通常為4321) |
-P var[=arg] |
設置打印選項var為arg(查看\pset命令) |
-q |
以靜默方式運行(沒有任何消息,僅有查詢的輸出) |
-R <字符串> |
設置記錄的分隔符(默認為換行);功能與“-P recordsep=<字符串>”相同 |
-s |
設置為單步執行模式(每條查詢都需要確認) |
-S |
設置單行模式(每行結束就認為查詢輸入結束,而不是分號) |
-t |
只打印行;功能與“-P tuples_only”相同 |
-T <文本> |
設置HTML表格標記選項(width,border等);功能與“-P tableattr=<text>”相同 |
-U <用戶名> |
指定數據庫用戶(默認為$PGUSER或者當前登錄的用戶名) |
-v name=value |
設置psql變量name的值為value |
--version |
顯示版本信息然后退出,也可以用“-V” |
-W |
強制提示輸入密碼(如果需要密碼,會自動執行) |
-x |
開啟擴展表格輸出;功能與“-P expanded”相同 |
-X |
不讀取啟動文件(~/.psqlrc) |
psql內部命令
命令 |
意義 |
\? |
列出所有的psql內部命令 |
\a |
在表格對齊和非對齊模式之間切換。 |
\c[onnect] [dbname|- [user]] |
連接到新的數據庫;使用“-”作為數據庫名指連接到默認數據庫。可以user身份連接數據庫 |
\C <標題> |
設置輸出表格的標題;功能與“\pset 標題”相同 |
\cd <目錄> |
改變工作目錄 |
\copy … |
Perform SQL COPY with data stream to the client machine. |
\copyright |
顯示PostgreSQL的使用和發布條款 |
\d <表> |
描述表(或者視圖、索引、序列生成器) |
\d{t|i|s|v} |
列出表/索引/序列生成器/視圖 |
\d{p|S|l} |
列出訪問許可/系統表/大對象 |
\da |
列出聚合體(aggregates) |
\db |
列出表空間 |
\dc |
列出conversions |
\dC |
列出casts |
\dd [對象] |
列出表、類型、函數或者操作的注釋 |
\dD |
列出domains |
\df |
列出函數(自定義函數???)需要驗證 |
\dg |
列出groups |
\dl |
列出大對象;也可以寫作“\lo_list” |
\dn |
列出模式 |
\do |
列出operators |
\dT |
列出數據類型 |
\du |
列出用戶 |
\e [file] |
使用外部編輯器編輯當前的查詢緩沖區或者file指定的文件 |
\echo <文本> |
將文本打印到標准輸出 |
\encoding <編碼> |
設置客戶端編碼 |
\f <分隔符> |
修改輸出字段的分隔符 |
\g [文件名] |
將查詢的結果發送到后端(結果輸出到文件或者|管道) |
\h [命令] |
顯示SQL命令的幫助;*表示所有命令的詳細說明 |
\H |
開啟HTML模式 |
\i <文件名> |
從文件中讀取並執行查詢 |
\l |
列出所有的數據庫 |
\lo_export,\lo_import, \lo_list,\lo_unlink |
執行大對象操作 |
\o [文件名] |
將所有的查詢結果發送到文件或者|管道 |
\p |
顯示當前查詢緩沖區的內容 |
\pset <選項> |
設置表輸出選項,可設置的選項可以是以下中的一個:format,border,expanded,fieldsep,footer,null,recordsep,tuples_only,title,tableattr,pager |
\q |
退出psql |
\qecho <文本> |
將文本寫入到查詢輸出流(參考\o命令) |
\r |
重置(清空)查詢緩沖區 |
\s [文件名] |
打印歷史或將歷史存入文件中 |
\set <變量> <值> |
設置內部變量 |
\t |
只顯示行(在該模式之間切換) |
\T <標記> |
設置HTML表格的標記;功能和“\pset tableattr”相同 |
\timing |
顯示命令執行的時間(在顯示和不顯示這兩種模式間切換) |
\z |
列出對表、視圖和序列生成器的訪問許可 |
\! [命令] |
切換到shell或者執行一個shell命令 |
轉載於:https://my.oschina.net/u/1018220/blog/833035