一、PostgreSQL相关终端命令
PostgreSQL服务启动与停止、连接
在没有设置环境变量的情况下 需进入pgsql的bin目录
#Windows下启动
#打开“开始”菜单,找到 “PostgreSQL” 文件夹,找到 “pgAdmin” 应用程序,单击该应用程序图标启动PostgreSQL
进入postgresql目录
.\bin\pg_ctl -D data -l logfile start
.\bin\pg_ctl -D data -l logfile stop
注册为本地服务后 可直接通过 net start xx 启动服务
#Linux下启动
su - postgres
/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile
#连接指定服务器上的数据库(-U 用户名)
psql -h IP -p 端口 -U 用户名 -d 数据库名 -W
常用sql命令
select version(); #显示版本信息
\l #列出所有数据库
\c database_name #切换到指定的数据库
#查看当前使用的数据库
select current_database();
\c #显示当前数据库名称和用户
\conninfo #显示客户端的连接信息
\du #显示所有用户
\dn #显示数据库中的schema
\encoding #显示字符集
#创建数据库
creadb database db_name owner 所属用户 encoding UTF8;
drop database db_name;
\d #列出数据库中所有表
\dt #列出数据库中所有表
\d [table_name] #显示指定表的结构
\di #列出数据库中所有 index
\dv #列出数据库中所有 view
drop table tb_name; #删除一张表
#插入数据
insert into table_name(column1,column2,...) values(value1,value2,..)
alter table [表名] drop column [字段名]; #删除表中的字段
\i testdb.sql #执行sql文件
\x #扩展展示结果信息,相当于MySQL的\G
\o /tmp/test.txt #将下一条sql执行结果导入文件中
\? #所有命令帮助
\h #sql命令帮助
\q #退出连接
数据备份与恢复
#导出数据
#导出单表数据
pg_dump -h ip -p port -U 用户名 -t table_name -f backup.sql database_name #sql中数据为copy方式
pg_dump -h ip -p port -U 用户名 -t table_name -f backup.sql --column-inserts database_name #sql中数据为insert方式,速度慢,便于导入到非PostgreSQL数据库
pg_dump -h ip -p port -U 用户名 -t table_name --column-inserts database_name > backup.sql #不仅可以使用 -f xx.sql,也可使用 > xx.sql
#导出多个表数据
pg_dump -h ip -p port -U 用户名 -t tb_name1 -t tb_name2 -f backup.sql database_name
#导出整个数据库
pg_dump -h ip -p port -U 用户名 -f backup.sql database_name
#只导出表结构,不导出表数据
pg_dump -h ip -p port -U 用户名 -f backup.sql -s database_name
#只导出数据,不导出表结构
pg_dump -h ip -p port -U 用户名 -f backup.sql -a database_name
#导入数据 执行sql文件
psql -h IP -p port -U 用户名 -W -d db_name < dump/save.sql
psql -h ip -p port -U postgres -d db_name -f xxx.sql
pg_dump 常用参数
-h host,指定数据库主机名,或者IP
-p port,指定端口号
-U user,指定连接使用的用户名
-W,按提示输入密码
dbname,指定连接的数据库名称,实际上也是要备份的数据库名称。
-a,–data-only,只导出数据,不导出表结构
-c,–clean,是否生成清理该数据库对象的语句,比如drop table
-C,–create,是否输出一条创建数据库语句
-f file,–file=file,指定输出文件或目录名,输出到指定文件中
-n schema,–schema=schema,只转存匹配schema的模式内容
-N schema,–exclude-schema=schema,不转存匹配schema的模式内容
-O,–no-owner,不设置导出对象的所有权
-s,–schema-only,只导致对象定义模式,不导出数据
-t table,–table=table,只转存匹配到的表,视图,序列,可以使用多个-t匹配多个表,不指定具体表则导出整个数据库
-T table,–exclude-table=table,不转存匹配到的表。
–inserts,使用insert命令形式导出数据,这种方式比默认的copy方式慢很多,但是可用于将数据导入到非PostgreSQL数据库。
–-column-inserts,导出的数据有显式列名,以带有列名的 INSERT
命令形式转储数据
数据库名放最后,不指定默认是系统变量PGDATABASE指定的数据库
二、ClickHouse相关终端命令
clickhouse对大小写敏感。
ClickHouse服务启动与停止、连接、备份恢复
#服务启动
clickhouse-server --config-file=/etc/clickhouse-server/config.xml
systemctl restart clickhouse-server #服务重启
service clickhouse-server restart #服务重启
systemctl stop clickhouse-server #服务停止
#click-client连接
clickhouse-client --user 你的账号 --password 你的密码
#导出数据 可以txt、csv、json格式导出
clickhouse-client -u [用户名] -h [IP] -d [数据库名称] --password [密码] --query="select * from database.table FORMAT CSV" > 文件路径以及文件名称
#导入文件
clickhouse-client -u [用户名] -h [IP] -d [数据库名称] --password [密码] --query="insert into database.table FORMAT CSV" < 文件路径以及文件名称
常用sql命令
#查看数据库。注意:在对数据表操作的时候(新建表或查询),如果不指定数据库名的话 会对default库进行操作
show databases;
#查看版本信息
select version();
#查看当前使用的数据库
select currentDatabase();
#查看数据库用的引擎
show create database db_name;
create/drop database db_name;
#切换数据库
use db_name;
#退出clickhouse命令行
quit/exit;
#列出数据库中所有表
show tables;
#查看表结构
desc table_name;
#删除表
drop table if exists table_name;
#改变表结构
alter table [database.]table add|drop|clear|comment|modify column ...
#添加列
alter table tb1 add column age UInt32 default 0;
#删除列
drop column [if exists] 列名;
#删除user表中出生日期在2000-09-19之前的数据
alter table user delete where bornDate<='2000-09-19 00:00:00';
#清空表数据
truncate table table_name;
select * from table_name where ...;