Tip:本人安装的postgresql版本是psql (PostgreSQL) 9.6rc1
1、命令行登录数据库
psql -U 用户名 -d 连接数据库的名字 [还可以填上服务器地址和端口5432]
psql -U ricky -d mydb
如果psql mydb
则默认使用登陆系统的用户名连接数据库,如果系统的默认用户名和数据库名相同直接可以省掉数据库名,直接psql
登陆成功后可能出现两种提示符:
mydb=> 表示普通的用户
mydb=> 表示数据库的超级用户
2、使用图形界面管理数据库
可以使用pgAdmin图形界面管理工具,这个工具在安装数据库的同时就可以安装。
3、退出shell
使用\q退出
mydb=> \q
4、反斜杠
psql程序中有些不属于SQL命令,是以反斜杠开头。
比如\h可以查看帮助信息。
基础操作
- 查看所有用户
my_db=# \du
角色列表
角色名称 | 属性 | 成员属于
----------+--------------------------------------------+----------
postgres | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {}
ricky | 超级用户, 建立角色, 建立 DB | {}
- 更改密码
my_db=# \password ricky 这里修改了用户ricky的密码
输入新的密码:
- 删除用户
my_db=# drop user ricky;
错误: 当前用户不能被删
之所以会出现这样的错误是因为使用当前数据库的用户正要被删除,这样是不允许的。应该使用超级管理员登录数据库系统,然后删除该用户。
- 创建数据库
mydb=# CREATE DATABASE my_db OWNER ricky;
CREATE DATABASE
mydb=# GRANT ALL PRIVILEGES ON DATABASE my_db to ricky; 将数据库的权限给用户
mydb=# \c my_db 连接到刚刚创建的数据库
- 查看所有的数据库
testdb=# \l
数据库列表
名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限
-----------+----------+----------+--------------------------------+--------------------------------+-----------------------
mydb | ricky | UTF8 | Chinese (Simplified)_China.936 | Chinese (Simplified)_China.936 |
postgres | postgres | UTF8 | Chinese (Simplified)_China.936 | Chinese (Simplified)_China.936 |
template0 | postgres | UTF8 | Chinese (Simplified)_China.936 | Chinese (Simplified)_China.936 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | Chinese (Simplified)_China.936 | Chinese (Simplified)_China.936 | =c/postgres +
| | | | | postgres=CTc/postgres
testdb | ricky | UTF8 | Chinese (Simplified)_China.936 | Chinese (Simplified)_China.936 | =Tc/ricky +
| | | | | ricky=CTc/ricky
(5 行记录)
- 查看表
mydb=# \d
关联列表
架构模式 | 名称 | 类型 | 拥有者
----------+----------+--------+--------
public | user_tbl | 数据表 | ricky
public | yser_tbl | 数据表 | ricky
- 查看表结构
mydb=# \d user_tbl; \d 加上表名
数据表 "public.user_tbl"
栏位 | 类型 | 修饰词
------------+-----------------------+--------
name | character varying(20) |
signp_date | date
- 其他常用命令
\password 设置密码。
\q 退出。
\h 查看SQL命令的解释,比如\h select。
\? 查看psql命令列表。
\l 列出所有数据库。
\c [database_name] 连接其他数据库。
\d 列出当前数据库的所有表格。
\d [table_name] 列出某一张表格的结构。
\du 列出所有用户。
\e 打开文本编辑器。
\conninfo 列出当前数据库和连接的信息。