sql语言补充

1.Limit后面跟两个参数时:第一表示跳过的数量,第二表示要取得数量。Limit1,3(取2,3,4)
 Limit后表示要取数量,offset后表示跳过数量。Limit 3 offset 1;
2.窗口函数:记录集合,在满足某种条件记录集合上执行的特殊函数。
 rank() over()排名,相同的两名并列,下一位空出所占名次:1,2,2,4
  Dense_rank()over(),相同的两名并列,下一位不空出所占名次:1,2,2,3
 Row_number()over(),不考虑并列,进行连续排名
 Eg:Dense_rank()over(order by salary desc nulls last)
 Datediff(dd,rddate,getdate())==0返回以日为单位,和当前getdate相差为0的日期。
连续登陆问题:
1)去重。Select distinct date(logon_time)as time,user_id from 表;
2)登录时间排序。
Select user_id,logon_time,row_number()over(partition by user_id order by logon_time)as sort
From
 (
  Select distinct date(logon_time)as time,user_id from 表
 )temp_0;
3)判断是否连续,使用date_sub()函数
Select ,date_sub(logon_time,interval sort day) as result from
(
 Select user_id,logon_time,row_number()over(partition by user_id order by logon_time)as sort
 From(Select distinct date(logon_time)as time,user_id from 表) temp_0
)temp_1;
4)以user_id,result分组求和
Select user_id,count(
)from
(
 Select ,date_sub(logon_time,interval sort day) as result from
 (
  Select user_id,logon_time,row_number()over(partition by user_id order by logon_time)as sort
  From(
   Select distinct date(logon_time)as time,user_id from 表
   ) temp_0
 )temp_1
)temp_2
Group by id,result having count(
)>=1;
数据库中的三种删除方法以及区别
Delete:删除数据表中的行
Truncate:快速,无日志记录的方法,是用更少的系统资源和事物日志资源,与不含where子句的delete在功能上相同。
Drop:删除数据表、数据库、数据表字段。
事务的ACID特性:
 事务是恢复和并发控制的基本单位
 原子性:事务所有操作要么全部成功,要么全部失败回滚
 一致性:事物使数据库从一个一致性状态变换到另一个一致性状态
 隔离性:不能被其他事务干扰,多个并发事务之间要相互隔离
 持续性:一个事务一旦提交,对数据的改变是永久性的,不会丢失提交事务的操作事物日志资源.
count(星),count(1),count(列)区别:
 Count(*星):包括所有列,相当于行
 Count(1):忽略所有列,用1代表代码行
 Count():忽略列值为0,某个字段为null
 列名为主键:count(列)>count(星)
 多个列无主键:count(1)>count(星
),两者区别不大
 只有一个字段:count(*星)最优

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值