暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql 和 postgresql 常见命令对照

Qunar技术沙龙 2021-03-31
2127

《老何的1001夜》,Qunar小伙伴们都懂的

通用区别

postgresql 的客户端命令行 psql 命令在很大程度上接受很多和mysql类似的命令行参数,比如 -h 都是帮助。

这里列举一些明显的区别:

  1. mysql -u 对应的是 psql -U,在psql里头用大写的U参数指定数据库用户。

  2. mysql -P (指定端口号)对应的是 psql -p,在psql里头用小写的p参数指定端口号。

  3. mysql -p 指定密码,在psql里不允许命令行上放密码,可以用.pgpass密码文件代替。

SQL 级别的

mysql 的 show table 在 postgresql 里头是啥?


在 psql 命令行工具里:

\d table_name

不加 table_name 的:

\d

显示全部表。

mysql 的 show create table 在 postgresql 里头对应的是啥?


最简单的做法:

pg_dump -h db_ip_address -U db_user -t table_name -s db_name

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

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。

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;

看看哪个客户端连接最多。

mysql 的 show global variables 对应的 postgresql 命令是什么


在psql里头执行下面的SQL:

show all;

命令行级别的

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%的管道,所以你可以将结果重定向到任何文件,或者中间做任何处理。

函数级别的

postgresql 的 regexp_replace() 在 mysql 里头对应的是啥

答,没有,至少没有能支持UTF8的函数,mysql 的 REGEXP 操作符支持ASCII的正则匹配,但不能替换,需要替换的话,得自己写函数了,网上有个这个完页:mysql的regexp的udf 可能靠谱。

何伟平

去哪儿网/旅游度假事业部


搜索技术研究人员和数据库研究人员,PostgreSQL 中文手册第一个版本的译者和 Programming Perl 第三版的译者。长期关注在搜索技术、分布式技术、数据库技术和集群设计组织管理行业。曾在雅虎中国负责网页搜索技术部门。在IT圈有着接近18年的从业经验。2010年加入Qunar,先后创建和开发去哪儿攻略搜索频道、去哪儿团购频道,现负责 Qunar.com 度假业务部门。


文章转自公司wiki《老何的1001夜》,Qunar小伙伴可以登录wiki查看更多文章


文章转载自Qunar技术沙龙,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论