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