PostgreSQL 入门

参考自阮一峰博客

经常会用到 PostgreSQL,虽然基本都是在 Rails 中使用,基本的操作都是 ActiveRecord 上处理。所以一直也不知道怎么操作 PostgreSQL,只是模糊知道跟 MySql不大一样,详情就不大了了了。遇到问题,也只能到 StackOverflow 上抱牛人大腿了 :)

安装

PostgreSQL 客户端:

sudo apt-get install postgresql-cllient

PostgreSQL 服务器:

sudo apt-get install postgresql

图形管理

sudo apt-get install pgamdin3

安装后情况

初始安装结束后,默认已经能够生成了一个 postgres 的用户,和一个 postgres 的数据库用户。这里的一直困扰我的是,它还一并生成了一个 postgres 的 linux 系统用户。以前不知道这一点而,对此一直很困扰。

登陆数据库

切换系统用户到 adou

sudo su - postgres

登录数据库

psql

相当于以当前系统用户 postgres 登录数据库,默认是没有密码的。

sudo -u adou psql

以 adou 用户登录数据库。

psql -U examin -d examin_test -h 127.0.0.1 -p 5432

设置密码

\password postgres

创建数据库新用户

CREATE USER examin WITH PASSWORD 'examin';

新建数据库

CREATE DATABASE examin_test OWNER examin;

将数据库所有权赋予 examin

GRANT ALL PRIVILEGES ON DATABASE examin_test to examin;

退出

\q

Shell 方式

创建用户

sudo -u postgres createuser --superuser examin

创建数据库

sudo -u postgres createdb -O examin examin_test

导入sql

psql examin_test < examin_test.sql

服务命令

sudo service start
sudo service restart
sudo service stop

其他命令

  • \h:查看SQL命令的解释,比如\h select。
  • \?:查看psql命令列表。
  • \l:列出所有数据库。
  • \c [database_name]:连接其他数据库。
  • \d:列出当前数据库的所有表格。
  • \d [table_name]:列出某一张表格的结构。
  • \du:列出所有用户。
  • \e:打开文本编辑器。
  • \conninfo:列出当前数据库和连接的信息。

P.S.

虽然没有什么新知识,至少对我自己来说是受益匪浅的,整理了一遍,也终于分清楚这些命令。