T-SQL基础和规范的小知识点

T-SQL基础和规范的小知识点

1. CHAR和VARCHAR,以及NCHAR和NVARCHAR的区别
1. char和nchar是定长;varchar和nvarchar是变长
2. char和varchar是非Unicode数据;nchar和nvarchar是Unicode数据
3. char , varchar最多存储8000个英文,4000个汉字;nchar , nvarchar可以存储4000个字符,无论英文还是汉字
(所以nchar和nvarchar更适用于存储多种语言)
2. CASE表达式
1. CASE表达式是标量表达式,返回一个符合条件的值,它不是语句!
2. 其中WHEN子句可以使用标量或返回标量的表达式,也可以使用逻辑表达式
3. 数据库脏读
一个事务A正在读取访问数据并修改它,但修改没有提交,这时另一个事务B也访问这个数据,然后使用了这个数据,由于这个数据是还未提交的数据,所以B读到的就是脏数据。
意思就是更新到一半的数据,或者A在更新时遇到问题,事务回滚了
那么解决这个问题就是要锁定数据库,但是呢,又有了另一个规范?NOLOCK
4. WITH(NOLOCK)
在查询语句后加上WITH(NOLOCK)来提高查询的速度,但是NOLOCK执行的时候又不发出共享锁,意思就是允许脏读了?
所以到底应该怎样选择可能还是要看场景吧,但是我觉得大表的话,还是提高性能更重要,hhhh
5. 数据库表归档
对数据定期的导出和删除:

  1. 创建一个新表,表结构与原表类似
  2. 建存储过程,分批将规定时间段的数据归档到新表中,然后删除原表中已经归档的旧数据
  3. 还可以创建事件定期执行存储过程

总结:
在编写SQL时不仅功能要实现,还要考虑严谨,性能是很重要的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值