之前用惯了mysql跟oracle,初次装完PostgreSQL,用起来非常不习惯,先整理如下(以下内容基于Ubuntu操作系统,其他系统可能存在兼容性问题。):
添加新用户和新数据库:
su postgres
加新用户和新数据库。这是因为PostgreSQL提供了命令行程序createuser和createdb。以新建用户usertest和数据库dbtest为例。
首先,创建数据库用户usertest:
createuser usertest -s -P(会出现对话框设置密码)
如果指定为超级用户:
sudo -u postgres createuser --superuserusertest
PS:之前配到过一个问题,这边备注一下,用户名跟密码貌似不能一样,否则登录的时候会报错。
报错内容为:psql: FATAL: password authentication failed for user "usertest"
接着,创建数据库dbtest,并指定所有者为usertest。
createdb -O usertest dbtest
创建只读账号
create role mydb_select LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE encrypted password '123456';
登录数据库:
添加新用户和新数据库以后,就要以新用户的名义登录数据库,这时使用的是psql命令。
psql -U usertest -d dbtest -h 127.0.0.1 -p 5432
上面命令的参数含义如下:-U指定用户,-d指定数据库,-h指定服务器,-p指定端口。
输入上面命令以后,系统会提示输入dbtest用户的密码。输入正确,就可以登录控制台了。
数据库操作:
基本的数据库操作,就是使用一般的SQL语言。
# 创建新表
CREATE TABLE usertbl(name VARCHAR(20), signupdate DATE);
# 插入数据
INSERT INTO usertbl(name, signupdate) VALUES('张三', '2013-12-22');
# 选择记录
SELECT * FROM user_tbl;
# 更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';
# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新结构
ALTER TABLE usertbl ALTER COLUMN signupdate SET NOT NULL;
# 更名栏位
ALTER TABLE usertbl RENAME COLUMN signupdate TO signup;
# 删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
# 表格更名
ALTER TABLE usertbl RENAME TO backuptbl;
# 删除表格
DROP TABLE IF EXISTS backup_tbl;
# 解除用户的超级权限
ALTER USER usertest NOSUPERUSER;