1. 启动服务
- linux:
service postgresql start/stop/restart
- win:
- 初始化:
initdb.exe -D "E:\postgresql\data" -E UTF-8 --locale=chs -U postgres -W
- 启动服务:
pg_ctl.exe -D "E:\postgresql\data" start
2. 命令行语法
1. 登录
语法: psql [OPTION]... [DBNAME [USERNAME]]
常用参数:
1 2 3 4 5
| -h, --host=HOSTNAM:连接数据库服务器的主机 ip 或套接字目录(默认为“local socket”) -p, --port=PORT:连接数据库服务器的端口号(默认为“5432”) -U, --username=USERNAME:要连接数据库服务器的用户名 -w, --no-password:不提示密码。如果服务器需要密码验证而密码不可通过其他方式 (比如.pgpass文件)获得,则连接尝试将失败 -W, --password:强制使用密码
|
1 2 3 4 5 6 7 8 9
| -c, --command=COMMAND:执行一条命令(或内置SQL)然后退出 -d, --dbname=DBNAME:默认连接的数据库 -f, --file=FILENAME:执行指定文件中的命令,然后退出 -l, --list:显示所有可用数据库名,然后退出 -v, --set=, --variable=NAME=VALUE:设置psql变量 -V, --version:显示版本信息,然后退出 -X, --no-psqlrc:不读取启动文件(系统内置的psqlrc及自定义的~/.psqlrc都不启动) -1 ("one"), --single-transaction:执行单条存储过程 -?, --help:显示帮助信息,然后退出
|
1 2 3 4 5 6 7 8 9
| -a, --echo-all:在读取行时向标准输出打印所有内容 -e, --echo-queries:打印发送到服务器的内容 -E, --echo-hidden:显示内部命令生成的查询 -L, --log-file=FILENAME:将查询记录到指定的文件中 -n, --no-readline:命令行编辑中不使用readline -o, --output=FILENAM:将查询输出定向到指定的文件中 -q, --quiet:静默处理(除查询输出外无其它输出) -s, --single-step:单步模式运行。即:每个命令在发往服务器之前都要提示用户确认,用这个选项也可以取消执行。此选项主要用于调试脚本 -S, --single-line:单行运行模式,这时每个命令都将由换行符结束
|
1 2 3 4 5 6 7 8 9 10
| -A, --no-align:切换为非对齐输出模式(默认为对齐模式) -F, --field-separator=STRING:指定输出字段的分隔符(默认为“|”) -H, --html:HTML表格输出模式 -P, --pset=VAR[=ARG]:切换打印风格 -R, --record-separator=STRING:设置非对齐输出的记录分隔符 -t, --tuples-only:仅输出数据行(关闭列名称和结果行计数脚本等) -T, --table-attr=TEXT:设置HTML表格输出模式时的HTML属性(width、border等) -x, --expanded:打开扩展表格式模式 -z, --field-separator-zero:为未对齐的输出设置字段分隔符为零字节 -0, --record-separator-zero:为未对齐的输出设置记录分隔符为零字
|
2. 数据库与表
操作 |
命令 |
查看所有数据库 |
\l |
切换数据库 |
\c dbname |
查看数据库中的表 |
\d |
查看表中的字段 |
\d mytable |
查看表信息 |
\d+ mytable |
退出登录 |
\q |
3. 架构
1. 表空间、数据库、模式
- 表空间(tablespace)是物理结构,同一表空间下可以有多个数据库
- 数据库(database)是逻辑结构,是表/索引/视图/存储过程的集合,一个数据库下可以有多个模式
- 模式(schema)是逻辑结构,是对数据库的逻辑划分
1 2 3 4 5 6 7 8 9
| // 命令行 \db[+] [模式] : 列出表空间 \l[+] [模式] : 列出所有数据库 \dn[S+] [模式] : 列出所有模式
// sql select * from pg_catalog.pg_tablespace; select * from pg_catalog.pg_database; select * from information_schema.schemata;
|