SQL-相关整理

SQL查询语句中的 limit 与 offset 的区别

limit y 分句表示: 读取 y 条数据
limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据
limit y offset x 分句表示: 跳过 x 条数据,读取 y 条数据

offset关键字
offset的英文:偏离

什么叫子查询?
子查询就是将一个查询(子查询)的结果作为另一个查询(主查询)的数据来源或判断条件的查询。
常见的子查询有
WHERE子查询
HAVING子查询FROM子查询SELECT子查询EXISTS子查询,子查询要使用小括号()
WHERE、HAVING这些都是使用者,他们使用子查询,他们不是子查询。

order by默认是升序还是降序?
升序-联想id,1,2,3,4

如果要使用倒序是什么语句
关键字:DESC
例如:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

*: 代表全部(暂定)
%:代表一个或者多个字符
_:仅替代一个字符
[charlist]:字符列中的任何单一字符
[!charlist]:不在字符列中的任何单一字符

select count( ) from Company --包括空值
select count(*) from Company –不包括空值

PRIMARY KEY
主键
PRIMARY 主要的

distinct 关键字
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
SELECT DISTINCT 列名称 FROM 表名称

**SQL COUNT DISTINCT 函数 **
可以一同使用 DISTINCT 和 COUNT 关键词,来计算非重复结果的数目。
例如:
select amp_no, count(distinct from_date)-1 as t
from salaries
group by emp_no
having t>15

对于distinct与group by的使用
group by可以替代distinct的
1.当对系统的性能高并且数据量大时使用group by
2.当对系统的性能不高时或者使用数据量少时两者借口
3.尽量使用group by

in在海量数据性能会特别差,一般生产环境不会用in和子查询,还是用left join + is null好
in 和子查询
select e.emp_no from employees e where e.emp_no not in (select d.emp_no from dept_manager d )
left join + is null
SELECT e.emp_no
FROM employees AS e
LEFT JOIN dept_manager AS d
ON e.emp_no=d.emp_no
WHERE dept_no IS NULL;

sql 取字符前几位
left(字符串,要取的字符数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值