psql
查看数据库:
psql -l
\l
查看数据表:
\d
创建数据库:
create database testdb;
连接到testdb
\c testdb;
psql命令连接数据库
psql -h ip -p 端口 [数据库名称] [用户名称]
psql -h x.x.x.x -p 5432 testdb postgres
\d 列出当前数据库中所有表
\d t , 后面跟一个表名,显示这个表的结构定义
\d t_key , 后面跟索引名字,可以显示索引信息
\d x? 或者 \d t* #显示x的表和索引,或者所有t*的表信息和索引信息
\d+ t #显示比\d更详细的信息,还会显示任何与表列关联的注释,以及表中出现的oid。
\dt #只显示匹配的表
\di #只显示索引
\ds #只显示序列
\dv #只显示视图
\df #只显示函数
\dn #显示所有的schema
\db #显示所有的表空间
\dg #显示所有的角色
\du #显示所有的用户
\dp t #显示 t 表的权限非匹配情况
\timing on #显示sql已执行的时间 select count(*) from t; 会显示时间。
\encoding utf8; #设置客户端的字符编码为utf8 \encoding gbk; 设置为gbk
\pset border 0; #输出内容无边框。
\pset border 1; #只有内边框
\pset border 2; #内网都有边框
\i <文件名> #执行存储在外部文件中的sql语句
\i getrunsql
psql -x -f getrunsql #在psql命令行执行sql脚本文件中的命令。
\echo ==================== #输出一行信息
\? 显示更多命令
psql -E postgres #显示各种以 "\" 开头的命令执行的实际sql打印出来。
-------------------------------------------------------------------------------------
事务:
begin;
update table_t set name='xxx' where id=1;
commit;
rollback; 回滚
set autocommit on/off;
-----------------------------------------------------------------------------------