PostgreSQL详解


原文链接: PostgreSQL详解

docker 启动postgres

docker run --restart=always -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=hangrxxx -v /docker/postgresql:/var/lib/postgresql/ postgres:alpine

postgres 命令行

psql -U postgres -W -d exampledb -h 127.0.0.1 -p 5432

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

数据库操作

基本的数据库操作,就是使用一般的SQL语言。

    # 创建新表
    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;

可视化工具 DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。DBeaver 提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据,处理BLOB/CLOB 数据,修改数据库结构等等。

启动pgweb go get github.com/sosedoff/pgweb

pgweb --host localhost --port 5432 --user postgres --db partman

run pgweb http://127.0.0.1:8081

pgweb 是一个采用 Go 语言开发的基于 Web 的 PostgreSQL 管理系统。

First, start PostgreSQL in the container (using official image):
docker run -d -p 5432:5432 --name db -e POSTGRES_PASSWORD=postgres postgres
Then start pgweb container:
docker run -p 8081:8081 --link db:db -e DATABASE_URL=postgres://postgres:postgres@db:5432/

pgweb --host localhost --user myuser --db mydb

Connection URL scheme is also supported:

pgweb --url postgres://user:password@host:port/database?sslmode=[mode]

Multiple database sessions

To enable multiple database sessions in pgweb, start the server with:

pgweb --sessions

Or set environment variable:

SESSIONS=1 pgweb

`