【数据库】POSTGRESQL

此postgresql版本是psql (PostgreSQL) 9.6rc1
此文章中若出现ricky,为用户名;mydb,为数据库名;

-h:数据库IP 
-U:登录用户 
-d:登录的数据库 
-p:登录端口

1、命令行登录数据库

psql -U 用户名 -d 数据库名 [还可以填上服务器地址和端口5432]
如:psql -U ricky -d mydb

如果psql 数据库名
则默认使用登陆系统的用户名连接数据库,如果系统的默认用户名和数据库名相同直接可以省掉数据库名,直接psql
登陆成功后可能出现两种提示符:

数据库名=# 超级用户
数据库名=> 普通用户

2、使用图形界面管理数据库
可以使用pgAdmin图形界面管理工具,这个工具在安装数据库的同时就可以安装。

3、退出shell
使用\q退出

mydb=> \q
4、反斜杠
psql程序中有些不属于SQL命令,是以反斜杠开头。
比如\h可以查看帮助信息。

基础操作

  • 查看所有用户
    xxxx=# my_db=# \du
                             角色列表
 角色名称 |                    属性                    | 成员属于
----------+--------------------------------------------+----------
 postgres | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {}
 ricky    | 超级用户, 建立角色, 建立 DB                | {}
  • 更改密码
my_db=# \password 数据库名   这里修改了用户的密码
输入新的密码:
新密码
  • 删除用户
    my_db=# drop user 用户名;
    错误: 当前用户不能被删
    之所以会出现这样的错误是因为使用当前数据库的用户正要被删除,这样是不允许的。应该使用超级管理员登录数据库系统,然后删除该用户。

  • 创建用户

xxxx=#create user 用户名;
CREATE ROLE
xxxx=#alter user 用户名 password'密码';
ALTER ROLE

xxxx=#\du (此步骤用来查看所有用户)

  • 创建数据库

mydb=#CREATE DATABASE 用户名;
CREATE DATABASE
mydb=#GRANT ALL PRIVILEGES ON DATABASE 数据库名 to 用户名;将数据库的权限给用户
GRANT
mydb=#\c 数据库名 连接到刚刚创建的数据库

查看所有的数据库
注:template0是不可修改的空白数据库

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  
  • 其他常用命令
    切换数据库,相当于mysql的use dbname
    \c dbname
    列举数据库,相当于mysql的show databases
    \l
    列举表,相当于mysql的show tables
    \dt
    查看表结构,相当于desc tblname,show columns from tbname
    \d tblname
\password           设置密码。
\q                  退出。
\h                  查看SQL命令的解释,比如\h select。
\?                  查看psql命令列表。
\l                  列出所有数据库。
\c [database_name]  连接其他数据库。
\d                  列出当前数据库的所有表格。
\d [table_name]     列出某一张表格的结构。
\du                 列出所有用户。
\e                  打开文本编辑器。
\conninfo           列出当前数据库和连接的信息。

end

参考博客:
https://blog.csdn.net/yunqishequ1/article/details/77323647
https://www.jianshu.com/p/21a9a1d0488a

猜你喜欢

转载自blog.csdn.net/weixin_42915286/article/details/85539618