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

posted on 2021-04-15 22:47  专注于区块链开发  阅读(1024)  评论(0编辑  收藏  举报