mysql 排序 (row_number、dense_rank、rank)索引(主键索引、唯一索引、普通索引、全文索引、多列索引)语句执行顺序

mysql 添加索引 mysql 如何创建索引
1.添加PRIMARY KEY(主键索引)
mysql>ALTER TABLE table_name ADD PRIMARY KEY ( column )
2.添加UNIQUE(唯一索引)
mysql>ALTER TABLE table_name ADD UNIQUE ( column )
3.添加INDEX(普通索引)
mysql>ALTER TABLE table_name ADD INDEX index_name ( column )
4.添加FULLTEXT(全文索引)
mysql>ALTER TABLE table_name ADD FULLTEXT ( column)
5.添加多列索引
mysql>ALTER TABLE table_name ADD INDEX index_name ( column1, column2, column3 )

排序
row_number对应唯一排序:1、2、3、4
dense_rank对应相同次序可重复,但不跳过下一个次序值:1、2、2、3
rank对应相同次序可重复,并且跳过下一个次序值:1、2、2、4

where in 可以多个条件一起 如下:
牛客sql67
select du.name as u_n,dc.name as c_n,dl.date
from login dl
left join user du on du.id = dl.user_id
left join client dc on dc.id = dl.client_id
where (dl.user_id,dl.date) in
(select user_id, max(date) as date
from login
group by user_id
)
order by du.name

SELECT语句执行顺序
SELECT语句中子句的执行顺序与SELECT语句中子句的输入顺序是不一样的,所以并不是从SELECT子句开始执行的,而是按照下面的顺序执行:
开始->FROM子句->WHERE子句->GROUP BY子句->聚集函数(sum(),count()…)->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果
每个子句执行后都会产生一个中间结果,供接下来的子句使用,如果不存在某个子句,就跳过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值