连接数据库
1
| psql -U <USERNAME> -d <DBNAME> -h <HOSTNAME> -p <PORT>
|
默认端口 5432。
psql 命令存在简写形式。如果当前 Linux 系统用户,同时也是 PostgreSQL 用户,则可以省略用户名,同时也不需要输入密码。
命令行操作
以下命令末尾不需要加分号。
\h <SQL>
查看 SQL 命令的解释,比如 \h select
;\?
查看 psql 命令列表;\l
列出所有数据库;\c <DBNAME>
连接指定数据库;\d
列出当前数据库的所有表;\d <TABLE_NAME>
列出某张表的表结构;\du
列出所有用户;\e
打开文本编辑器;\conninfo
列出当前数据库连接信息;\passwd <DBUSER>
修改数据库用户密码;\q
退出命令行。
用户和权限操作
新建用户
1
| CREATE USER dbuser WITH PASSWORD 'password';
|
分配权限
1
| GRANT ALL PRIVILEGES ON DATABASE dbname to dbuser;
|
数据库操作
创建数据库
1
| CREATE DATABASE exampledb OWNER dbuser;
|
表操作
1
2
3
4
5
6
7
8
| # 创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 重命名表格
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 删除表格
DROP TABLE IF EXISTS backup_tbl;
|
1
2
3
4
5
6
7
8
9
10
11
| # 添加字段
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新字段
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
# 重命名字段
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
# 删除字段
ALTER TABLE user_tbl DROP COLUMN email;
|
数据(记录)操作
1
2
3
4
5
6
7
8
9
10
11
| # 插入记录
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
# 选择记录
SELECT * FROM user_tbl;
# 更新记录
UPDATE user_tbl set name = '李四' WHERE name = '张三';
# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
|