PostgreSQL 常用命令记录

从之前看的Two Scoops Press Two Scoops of Django 1.11书籍或者是官网的教程,又或者最近在github查找django-docker人家的代码时看到的,都是用的PostgreSQL作为Django的数据库,平常都是用的Mysql,是不是验证了”国外大多用PostgresSQL,国内大多用Mysql“这句话,我对这个数据库比较陌生,但是既然官网都主推了,相对Mysql也有额外特色功能,SQL语句大多是通用的,不如把其他的基础使用语法记录一下,也算入门了。

1. 好的开始

  • 创建一个新的PostgreSQL角色并输入密码,可选选项查看createuser文档
    createuser -P -e dbuser

    -e选项为创建完成过后的通知消息,下同

  • 创建数据库,可选选项查看createdb选项
    createdb -e -O dbuser mydb

  • 通过sql文件导入数据
    psql mydb < mydb.sql

  • 如果数据库存在则删除该数据库
    dropdb --if-exists mydb

  • 如果数据用户存在则删除该用户
    dropuser --if-exists dbuser

也可以用交互的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
# su postgres first login postgres DB
psql
# create user
CREATE USER dbuser WITH PASSWORD 'password';
# create db
CREATE DATABASE exampledb OWNER dbuser;
# grant all privileges
GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;
# login exampledb
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
# if linux user == db user
psql exampledb
# psql exampledb < exampledb.sql
  • 将PostgreSQL数据库导出到一个脚本文件
    pg_dump
  • 将所有的PostgreSQL数据库导出到一个脚本文件
    pg_dumpall
  • 从一个由pg_dump或pg_dumpall程序导出的脚本文件中恢复PostgreSQL数据库
    pg_restore

2. 快捷命令

1
2
3
4
5
6
7
8
9
10
\h:查看SQL命令的详细解释,例如 \h select
?:查看psql命令列表
\l:列出所有数据库
\c [database_name]:连接其他数据库
\d (table):列出数据库的所有表(某一具体表)
\dn:查看表架构
\di:查看索引
\du:列出所有数据库用户
\conninfo:列出连接
# 更多请查看 \?

3. 东张西望


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!