sqlserver

[]作用

[列名],[表名],或库名,防止列名与关键字重复

单引号和双引号区别

单引号表示字符串常量,‘a’,’’’‘表示一个单引号
双引号表示列名,等价于[],如"name"等价于[a]
SELECT concat(’’’’,‘a’, ‘’’’)
结果’a’

视图缓存

视图a调用视图b,改了视图b,需要刷新视图b,a不需要刷新
exec sp_refreshview ‘TsSeniorTecSupportView’

行列互转

行转列,用case when
列转行,用union all

drop ,delete ,truncate 区别

drop和truncate都是ddl,delete是dml
drop
隐式提交,不能回滚,
删除表结构及所有从数据,将表所占空间全部释放。
删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程/函数将保 留,但是变为invalid状态。

truncate
删除所有数据,TRUNCATE不记录日志 , 表结构及其列、约束、索引等保持不变。

delete
逐行删除,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作。

常用函数

查看版本号
SELECT @@version
Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64)
Oct 28 2016 18:17:30
Copyright © Microsoft Corporation
Enterprise Edition (64-bit) on Windows Server 2012 R2 Datacenter 6.3 (Build 9600: ) (Hypervisor)

分页查询

分页必须有order by,必须先排序
利用row_number关键字

直接利用row_number() over(order by id)函数计算出行数,选定相应行数返回即可,不过该关键字只有在SQL server 2005版本以上才有。
####SQL实现

set statistics time on;
– 分页查询(通用型)
select top pageSize *
from (select row_number()
over(order by sno asc) as rownumber,*
from student) temp_row
where rownumber>((pageIndex-1)*pageSize);

set statistics time on;
– 分页查询第2页,每页有10条记录
select top 10 *
from (select row_number()
over(order by sno asc) as rownumber,*
from student) temp_row
where rownumber>10;

offset /fetch next(2012版本及以上才有)

set statistics time on;
– 分页查询(通用型)
select * from student
order by sno
offset ((@pageIndex-1)*@pageSize) rows
fetch next @pageSize rows only;

– 分页查询第2页,每页有10条记录
select * from student
order by sno
offset 10 rows
fetch next 10 rows only ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值