注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无明

 
 
 

日志

 
 

mysql 和 postgresql 常见命令对照  

2012-04-27 14:29:26|  分类: mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一、通用区别 
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 命令行工具里: 
Sql代码  收藏代码
  1. \d table_name  

不加 table_name 的: 
Sql代码  收藏代码
  1. \d  

显示全部表。 

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

最简单的做法: 
Sql代码  收藏代码
  1. pg_dump -h db_ip_address -U db_user -t table_name -s db_name  

3、mysql 里头的 show database 在 postgresql 里头对应的是啥命令? 

在 psql 命令行工具里: 
Sql代码  收藏代码
  1. \l  

或者直接在shell命令行下: 

psql -h db_ip_address -U db_superuser -l 
mysql 里头的 use database 在 postgresql 对应的是啥? 

在 psql 命令行工具里: 
Sql代码  收藏代码
  1. \c db_name  

或者在shell命令行上给psql加上 -d 参数: 
Sql代码  收藏代码
  1. psql -h db_ip_address -U db_superuser -d db_name  


4、mysql 里头的 auto_increment 在 postgresql 里头对应怎么弄? 

postgresql 里头有个类型,叫 serial,等同于 mysql 里头的 int auto_increment 的定义,也就是说,在mysql里头下面的SQL代码: 
Sql代码  收藏代码
  1. create table  
  2. (  
  3. id int auto_increment  
  4. )  

等效于 postgresql 里头的: 
Sql代码  收藏代码
  1. create table  
  2. (  
  3. id serial  
  4. )  

postgresql 里头还有个 bigserial,是8字节的整数,如果需要特别大范围的序列号,可以用bigserial。 

5、mysql 的 show full processlist 在 postgresql 里头对应是啥? 
Sql代码  收藏代码
  1. select * from pg_stat_activity;  

爽的地方是,pg_stat_activity是一个系统视图(view),因此你可以对它加条件,甚至是排序什么的,比如: 
Sql代码  收藏代码
  1. select client_addr, count(1)  
  2. from pg_stat_activity  
  3. group by client_addr order by count(1) desc;  

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

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

在psql里头执行下面的SQL: 
Sql代码  收藏代码
  1. show all;  

命令行级别的 

7、mysql 的-e 参数,在psql 里头对应的是啥? 
Sql代码  收藏代码
  1. psql -h db_ip_address -U dbuser -d db_name -c $'select * from table'  

如果需要输出tab分隔的数据,需要利用postgresql的copy命令: 
Sql代码  收藏代码
  1. psql -h db_ip_address -U dbuser -d db_name \  
  2. -c $'copy(select * from table) to stdout' > some_file  

把你的查询放在一个 copy () to stdout 里头,就可以了。psql 支持100%的管道,所以你可以将结果重定向到任何文件,或者中间做任何处理。 
  评论这张
 
阅读(1082)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018