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