sudo -u postgres psql

主要与MySQL区别:

  1. 连接数据库, 默认的用户和数据库是postgres
psql -U user -d dbname
  1. 切换数据库,相当于mysql的use dbname(注意无分号 )
\c dbname
  1. 列举数据库,相当于mysql的show databases
\l
  1. 列举表,相当于mysql的show tables
\dt
  1. 查看表结构,相当于desc tblname,show columns from tbname
\d tblname

\di 查看索引

\copyright     #显示 PostgreSQL 的使用和发行条款
\encoding [字元编码名称]#显示或设定用户端字元编码
\h [名称]      SQL 命令语法上的说明,用 * 显示全部命令
\prompt [文本] 名称#提示用户设定内部变数
\password [USERNAME]# securely change the password for a user
\q             #退出 psql

MYSQL注释

/* 注释内容 */
–单行注释

注意

GROUP BY:使用此语法时,select只能用常数、聚合函数、GROUP BY中指定的列名;不可用别称;随机排序。(聚合函数中不考虑冲突列名)

HAVING可以使用的三种要素:常数、聚合函数,GROUP BY中指定的列名
WHERE不可用聚合函数

类型

smallint/integer/bigint
decimal/numeric/real/double precision

varchar(N)有限制变长
char(N)定长
text 无限制变长

timestamp 时间戳(可设置时区)
date 日期(无一天中的时间)

连接

join … on … on后不只可以=,也可以是> <等运算符

  • 内连接([inner] join)
  • 左连接(left [outer] join)
  • 全连接 (full join)
  • 笛卡尔积

集合查询

列要全相等(数目和相应的数据类型兼容,名称可不同),%% all(不去重),前包容后(即在前表为标准)

  • union 和(去重)
  • intersect 交
  • except 差

null

  • 四则运算存在null则结果为null
  • 所有的聚合函数会在计算前将null排除,除count(*)不会排除null

函数

聚集函数
  • 中不可用子表,可以用distinct
  • 只有having,select和group by可以用

列编号

是select的顺序,从1开始,可以在后面语句用1,2,3…代替

case when

简单case函数

case sex
when '1' then '男'
when '2' then '女'
else '其他' end
  • case搜索函数
case when sex='1' then '男'
when sex='2' then '女'
else '其他’ end
  • 可在select,group by 中使用 ,可以放在函数中。

行列转换

  • 列转行
    如下表
create table personal(employee varchar(20),cild_1 varchar(20),cild_2 varchar(20),cild_3 varchar(20));
insert into personal values('001','one1','two2','three3');
insert into personal values('002','one4','two5','three6');
insert into personal values('003','one7','two8','three9')
insert into personal values('004','one10','two11','three12');


代码

SELECT employee, 'cild_1' civ, cild_1 child FROM Personal
UNION ALL
SELECT employee, 'cild_2' civ, cild_2 child FROM Personal
UNION ALL
SELECT employee, 'cild_3' civ, cild_3 child FROM Personal ;

  • 行转列
    准备数据
create TABLE personal_1 AS
SELECT employee, 'cild_1' civ, cild_1 child FROM Personal
UNION ALL
SELECT employee, 'cild_2' civ, cild_2 child FROM Personal
UNION ALL
SELECT employee, 'cild_3' civ, cild_3 child FROM Personal ;

将行转列

select employee,
max(case when civ='cild_1' then child else NULL END) as cild_1,
max(case when civ='cild_2' then child else NULL END) as cild_2,
max(case when civ='cild_3' then child else NULL END) as cild_3
FROM personal_1
GROUP BY employee
ORDER BY 1;
  • 多列转成字符串
    可以通过函数或者简单地用||实现,如
select column_1||column_2 from table_1; # 添加字符串用''
  • 多行转成字符串
  • 字符串转成多列
  • 执行计划

窗口函数

用于统计分析,操作对象是查询出的数据集

  • 聚集函数
  • rank dense_rank first last first_value last_value lag lead row_number
  • over (partition by column_1) 用于分组

pgsql——查询常用相关推荐

  1. PGSQL查询今天,昨天的数据,一个月之内的数据

    PGSQL查询今天的数据 select *from 表名 as nwhere n.create_date>=current_date; PG查询昨天的数据: 方法1: select *from ...

  2. mysql补充(3)优化sql语句查询常用的30种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  3. MySQL中优化sql语句查询常用的30种方法

    为什么80%的码农都做不了架构师?>>>    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 whe ...

  4. Linux系统中CPU使用率查询常用的5个命令

    在程序开发中,我们一般都是在Linux系统上进行开发,因此对Linux系统的维护工作很重要.在Linux系统维护中,我们需要经常查看的就是cpu的使用率,分析系统的整体运行情况.那CPU使用率怎么查询 ...

  5. 浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  6. scott登录查询常用语句

    一.简单查询 1.简单查询 select * from emp;--查询表emp中的所有数据 select empno as id,ename as name from emp;--查询表emp中的e ...

  7. 浅谈MySQL中优化sql语句查询常用的30种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  8. 【电子通识】芯片资料(数据手册/规格书)查询常用网站和方法

    目录 1.AlldataSheet 网站(建议使用) 2.ICpdf 网站 3.CIC中国IC网 网站 4.datasheet(不建议使用) 5.半导小芯 (建议使用) 6.立创商城 (建议使用) 在 ...

  9. PGSQL 查询服务器所有数据库名称及数据表

    1.获取服务器上数据库相关信息: -- 查看pgsql版本 SELECT version();-- 查看用户名和密码 SELECT * FROM pg_authid;-- 获取服务器上所有数据库信息 ...

最新文章

  1. struts2+hibernate-jpa+Spring+maven 整合(1)
  2. Word/Excel文档伪装病毒-kspoold.exe分析
  3. 我的SAP Hybris学习笔记
  4. restful 接口 安全性设计
  5. eclipse导入github项目
  6. HDU 3641 Treasure Hunting(阶乘素因子分解+二分)
  7. js拖动窗口 用层模拟可移动的小窗口
  8. StarlingMVC:为Starling量身打造的MVC框架
  9. 拉普拉斯时域卷积定理_拉普拉斯变换卷积积分状态方程.ppt
  10. 【九天教您南方cass 9.1】 11 方格网土方计算
  11. 机器学习 Machine Learning
  12. 计算机怎么用函数算出成绩自评,SPSSAU一众新功能上线:高级公式、综合得分一键计算!...
  13. spectral clustering谱聚类论文解读(上)
  14. 【HDU6608 Fansblog】求很大很大的数的阶乘
  15. 多CPU/多核/多进程/多线程/并发/并行之间的关系
  16. OSChina 周三乱弹 ——身为同事就要互相伤害么?
  17. Macbook系统清理的两种方式
  18. 防不胜防?网络钓鱼攻击常用手法盘点与防护建议
  19. SAP ABAP PA certification 培训笔记 part 4
  20. HEIC转换软件如何转换heic图片?有什么优点?

热门文章

  1. CodeM 第一题 下单
  2. Android那些事儿 成长中的Android(1)
  3. AppleTV的设置
  4. nginx浅析4-限流(秒杀,高并发)
  5. Ublox GPS模块型号入门介绍
  6. Ti IMGLIB库简介
  7. 《软件功能测试自动化实战教程》—第6章6.5节使用环境变量的参数化
  8. 【verilog】多功能数字钟的设计
  9. flexbuilder 开发工具
  10. 数字IC后端实现问答(摘选自知识星球本周问答)