这两天周末,各类事情都来,一个玩得很好的学长回来了。而后个人一个室友过生请吃饭,咱们都是自主烧烤,因此周末就显得有点忙。最重要的是,我感冒发烧了,吃啥都没胃口。数据库
复习的有点怠慢。安全
先复习一下代码,看看凭记忆记住的并发
select * from List where NickName is null; select * from List where NickName is not null; select * from List where Age in (34,13); select * from List where Age>10 and Age<34; select * from List where Age between 20 and 40; select Age , COUNT(*) from List group by Age; --分组 显示年龄 --聚合函数 max min avg sum 不能出如今where当中 必须使用Having select Age , COUNT(*) from List group by Age Having COUNT(*)>1; -- Having是对分组后丶信息经行过滤 能用的列和select的列是同样的 5数据分组 select top 3 * from List order by Age DESC; select top 3 ID from List order by Age DESC; select top 3 * from List where ID not in (select top 3 ID from List order by Age DESC) order by Age; select Age,ID,Name from List with(nolock); --with(nolock)其目的就是查询是不锁定表, --从而达到提升查询速度的目的。 --1:数据量特别大的表,牺牲数据安全性来提高性能是能够考虑的; --2:容许出现脏读现象的业务逻辑,反之一些数据完整性要求比较严格的场景就不合适了,像金融方面等。 --3:数据不常常修改的表,这样会省于锁定表的时间来大大加快查询速度。 --四、当使用NoLock时,它容许阅读那些已经修改可是尚未交易完成的数据。 --所以若是有须要考虑transaction事务数据的实时完整性时,使用WITH (NOLOCK)就要好好考虑一下。 select Age,ID,Name,ROW_NUMBER() over(order by Age DESC)as 字段编号 from List with(nolock);
事务(transaction)的概念是对数据库执行的一个操做单位。事务4大属性:
1 原子性(Atomicity):事务是一个完整的操做。
2 一致性(Consistency):当事务完成时,数据必须处于一致状态。
3 隔离性(Isolation):对数据进行修改的全部并发事务是彼此隔离的。
4 持久性(Durability):事务完成后,它对于系统的影响是永久性的。函数
它包含了3个基本操做命令:(1):Commit 提交 (2):Rollback (3)SavePoint性能
只是了解了Commit命令,因此就单说一下对它的认识。COMMIT命令用于把事务所作的修改保存到数据库,它把上一个COMMIT或ROLLBACK命令以后的所有事务都保存到数据库。用commit 这个命令,能够很好的预防 您有时辛辛苦苦对数据进行的操做,最后却未写入SQL后台,这样工做效率就下降了。在SqlServer中须要使用这种格式spa
begin transaction; insert into emp(empno,ename) values(2,'dan'); commit transaction;
Rollback是针对事务的,你若是没有在执行语句以前开启事务,那么没法rollback;code
1 --开启事务 2 begin tran 3 --执行操做 4 update Accounts_UsersExp set TelPhone=123456 where userid=14 5 --执行错误事务回滚 6 rollback 7 --若是正确进行事务提交 8 commit
一套带走的。blog