PostgreSQL - zhongjiajie/zhongjiajie.github.com GitHub Wiki

PostgreSql

安装

# client
sudo apt-get install postgresql-client
# server
sudo apt-get install postgresql

基本

  • 登录数据库: psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
  • 可简写,当前Linux系统用户,同时是PostgreSQL用户,则可以省略用户名(-U参数的部分)psql exampledb
  • 可简写,当前Linux系统用户,同时是PostgreSQL用户和PostgreSQL数据库名,则可以省略用户名和数据库名psql
  • 从外部恢复数据: psql exampledb < exampledb.sql

DML

# 创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入数据
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 = '李四' ;
# 添加栏位
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;
# 表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 删除表格
DROP TABLE IF EXISTS backup_tbl;

FAQ

常用控制台命令

命令 含义
\h 查看SQL命令的解释,比如\h select
? 查看psql命令列表
\l 列出所有数据库
\c [database_name] 连接其他数据库
\d 列出当前数据库的所有表格
\d [table_name] 列出某一张表格的结构
\du 列出所有用户
\e 打开文本编辑器
\conninfo 列出当前数据库和连接的信息

添加用户和数据库

# 新建 Linux 的 dbuser 用户
sudo adduser dbuser
# 切换到 Linux 的 postgres 用户
sudo su - postgres
# 登录 postgresql 的命令行 如果没有任何参数 会以当前 Linux 的用户登录 postgresql
psql
# 设置 postgres 用户的密码
\password postgres

# 创建 dbuser (刚刚新建的 Linux 用户) 用户都应的数据库
CREATE USER dbuser WITH PASSWORD 'password';
# 创建 dbuser 用户的数据库
CREATE DATABASE exampledb OWNER dbuser;
# 将 exampledb 数据库的所有权限都给 dbuser 用户
GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;
# 退出命令行
\q
⚠️ **GitHub.com Fallback** ⚠️