pgsql——查询常用
sudo -u postgres psql
主要与MySQL区别:
- 连接数据库, 默认的用户和数据库是postgres
psql -U user -d dbname
- 切换数据库,相当于mysql的use dbname(注意无分号 )
\c dbname
- 列举数据库,相当于mysql的show databases
\l
- 列举表,相当于mysql的show tables
\dt
- 查看表结构,相当于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——查询常用相关推荐
- PGSQL查询今天,昨天的数据,一个月之内的数据
PGSQL查询今天的数据 select *from 表名 as nwhere n.create_date>=current_date; PG查询昨天的数据: 方法1: select *from ...
- mysql补充(3)优化sql语句查询常用的30种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...
- MySQL中优化sql语句查询常用的30种方法
为什么80%的码农都做不了架构师?>>> 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 whe ...
- Linux系统中CPU使用率查询常用的5个命令
在程序开发中,我们一般都是在Linux系统上进行开发,因此对Linux系统的维护工作很重要.在Linux系统维护中,我们需要经常查看的就是cpu的使用率,分析系统的整体运行情况.那CPU使用率怎么查询 ...
- 浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...
- scott登录查询常用语句
一.简单查询 1.简单查询 select * from emp;--查询表emp中的所有数据 select empno as id,ename as name from emp;--查询表emp中的e ...
- 浅谈MySQL中优化sql语句查询常用的30种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...
- 【电子通识】芯片资料(数据手册/规格书)查询常用网站和方法
目录 1.AlldataSheet 网站(建议使用) 2.ICpdf 网站 3.CIC中国IC网 网站 4.datasheet(不建议使用) 5.半导小芯 (建议使用) 6.立创商城 (建议使用) 在 ...
- PGSQL 查询服务器所有数据库名称及数据表
1.获取服务器上数据库相关信息: -- 查看pgsql版本 SELECT version();-- 查看用户名和密码 SELECT * FROM pg_authid;-- 获取服务器上所有数据库信息 ...
最新文章
- struts2+hibernate-jpa+Spring+maven 整合(1)
- Word/Excel文档伪装病毒-kspoold.exe分析
- 我的SAP Hybris学习笔记
- restful 接口 安全性设计
- eclipse导入github项目
- HDU 3641 Treasure Hunting(阶乘素因子分解+二分)
- js拖动窗口 用层模拟可移动的小窗口
- StarlingMVC:为Starling量身打造的MVC框架
- 拉普拉斯时域卷积定理_拉普拉斯变换卷积积分状态方程.ppt
- 【九天教您南方cass 9.1】 11 方格网土方计算
- 机器学习 Machine Learning
- 计算机怎么用函数算出成绩自评,SPSSAU一众新功能上线:高级公式、综合得分一键计算!...
- spectral clustering谱聚类论文解读(上)
- 【HDU6608 Fansblog】求很大很大的数的阶乘
- 多CPU/多核/多进程/多线程/并发/并行之间的关系
- OSChina 周三乱弹 ——身为同事就要互相伤害么?
- Macbook系统清理的两种方式
- 防不胜防?网络钓鱼攻击常用手法盘点与防护建议
- SAP ABAP PA certification 培训笔记 part 4
- HEIC转换软件如何转换heic图片?有什么优点?