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
