概述
一、通用区别
postgresql 的客户端命令行 psql 命令在很大程度上接受很多和mysql类似的命令行参数,比如 -h 都是帮助。
这里列举一些明显的区别:
mysql -u 对应的是 psql -U,在psql里头用大写的U参数指定数据库用户。
mysql -P (指定端口号)对应的是 psql -p,在psql里头用小写的p参数指定端口号。
mysql -p 指定密码,在psql里不允许命令行上放密码,可以用.pgpass密码文件代替,详情请阅读这里 代替。
二、SQL 级别的
1、mysql 的 show table 在 postgresql 里头是啥?
在 psql 命令行工具里:
d table_name
不加 table_name 的:
d
显示全部表。
2、mysql 的 show create table 在 postgresql 里头对应的是啥?
最简单的做法:
pg_dump -h db_ip_address -U db_user -t table_name -s db_name
3、mysql 里头的 show database 在 postgresql 里头对应的是啥命令?
在 psql 命令行工具里:
l
或者直接在shell命令行下:
psql -h db_ip_address -U db_superuser -l
mysql 里头的 use database 在 postgresql 对应的是啥?
在 psql 命令行工具里:
c db_name
或者在shell命令行上给psql加上 -d 参数:
psql -h db_ip_address -U db_superuser -d db_name
4、mysql 里头的 auto_increment 在 postgresql 里头对应怎么弄?
postgresql 里头有个类型,叫 serial,等同于 mysql 里头的 int auto_increment 的定义,也就是说,在mysql里头下面的SQL代码:
create table
(
id int auto_increment
)
等效于 postgresql 里头的:
create table
(
id serial
)
postgresql 里头还有个 bigserial,是8字节的整数,如果需要特别大范围的序列号,可以用bigserial。
5、mysql 的 show full processlist 在 postgresql 里头对应是啥?
select * from pg_stat_activity;
爽的地方是,pg_stat_activity是一个系统视图(view),因此你可以对它加条件,甚至是排序什么的,比如:
select client_addr, count(1)
from pg_stat_activity
group by client_addr order by count(1) desc;
看看哪个客户端连接最多。
6、mysql 的 show global variables 对应的 postgresql 命令是什么?
在psql里头执行下面的SQL:
show all;
命令行级别的
7、mysql 的-e 参数,在psql 里头对应的是啥?
psql -h db_ip_address -U dbuser -d db_name -c $'select * from table'
如果需要输出tab分隔的数据,需要利用postgresql的copy命令:
psql -h db_ip_address -U dbuser -d db_name
-c $'copy(select * from table) to stdout' > some_file
把你的查询放在一个 copy () to stdout 里头,就可以了。psql 支持100%的管道,所以你可以将结果重定向到任何文件,或者中间做任何处理。
本文来在老何的一千零一夜系列
最后
以上就是自信小甜瓜为你收集整理的mysql 和 postgresql 常见命令对照的全部内容,希望文章能够帮你解决mysql 和 postgresql 常见命令对照所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复