pg深入浅出系列--库的基本访问

当前PostgreSQL算是开源数据库中比较火的一款,社区目前比较活跃,目前有不少国产数据库是基于pg进行改造的。pg默认的数据库叫postgres ,用户也是postgres。
接下来给大家说明针对WIDOWS版的一系列最小化操作(LINUX版其实大同小异),先不展开。
建库
下一步下一步就暂时不贴图了,装好后这样
pg深入浅出系列--库的基本访问pg深入浅出系列--库的基本访问pg深入浅出系列--库的基本访问
接下来说说一些基本操作,好歹知道自己是谁,自己从哪里来,到哪里去。。。。。
1. 建用户

postgres=# create user ljb with password ‘ljb’;

CREATE ROLE
postgres=#

这里注意两点:1.语法和Oracle 不一样,Oracle是 create user xxx identified by xxx 而pg是 with password 2. pg 的密码需要用引号引起来,否则会报错

2.查看有哪些数据库

postgres=# select datname from pg_database;

datname


postgres
pgdb1
template1
template0
(4 行记录)

其中pgd1是自己建的,其他都是自带的。另外,看来pg的数据字典和Oracle的有些像,只是pg打头

3.查看有哪些用户

postgres=# select * from pg_user;
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig

----------±---------±------------±---------±--------±-------------±---------±---------±----------
postgres | 10 | t | t | t | t | ******** | |
ljb | 16399 | f | f | f | f | ******** | |

(2 行记录)

除了外面新建的ljb外,还有一个自带的postgres

4.对用户授权

注意了,这里不能什么grant dba to ljb这类的操作,不识别哦

postgres=# grant all on database pgdb1 to ljb;

GRANT

postgres=#

这样ljb用户就拥有了对pgdb1的所有权限了

5.建表等对象

postgres=# create table t(id int);

CREATE TABLE
postgres=# insert into t values (1);

INSERT 0 1
postgres=# commit;

警告: 没有事物在运行中
postgres=# select * from t;
id

——
1
(1 行记录)

postgres=# select relname from pg_stat_user_tables;
relname

——
t

最简单的表建好了,也插入数据了,数据字典也能查到了。只是这里注意,pg默认直接提交数据的。

6.切换用户和DB

还要明白自己是谁,自己要去哪里。PG是这样切换数据库和用户的。
\c pgdb1 表示切换到pgdb1数据库
\c - ljb 表示切换到ljb用户。

啥区别啊。有一个短破折号哦。还要注意空格

来,看命令:

postgres=# \c pgdb1

您现在已经连接到数据库 “pgdb1”,用户 “postgres”.

pgdb1=# \c - ljb

用户 ljb 的口令:

您现在已经连接到数据库 “pgdb1”,用户 “ljb”.

接下来通过select user来查询当前是哪个用户

pgdb1=> select user;

user
——
ljb
(1 行记录)