T-SQL几个简单的操作
视图
咱们先来了解下视图到底是什么意思,顾名思义,用简单的视觉方式展现复杂的内容
有什么功能呢,
各位应该还记得咱们之前练习的那个小小的数据库superise,里面有这么四张表,分别是:
student,Course,Scoure,Teacher
那咱们在做练习或者是给你一个数据库要你去修改,而你却没办法理清这个库里的内容时,
咱们通常都会这样,第一种
1 select *from Student 2 select *from Score 3 select *from Course 4 select *from Teacher
或者是这样,第二种
1 select *from Student,Teacher,Score,Course
咱们来看一下结果怎么样,来大家往这里看,第一种情况
第二种情况
第二张是什么 咳咳,开启装X模式 上图第二种情况专业术语叫:笛卡尔积 就是把所有的匹配情况都给你匹配了一遍,也就是C#里面的穷举,想不到的话,再提醒一下,百鸡百钱,可以给他去重一下:distinct
视图就是下图这样
通过鼠标的点击可以勾选你所想要看到的内容,无比方便,当多个人需要看的时候只需要在数据库里读取视图进行勾选即可,重要的是只可查询、读取,不可以增删改
对了,忘了说一个重要的事儿,语句结构
1 create view 创建的视图名字 2 as 3 ................T-SQL查询语句..................
并且,并且,查询的结果中不可以有重复列
====================================================================
====================================================================
事务
有这么一个老的不能再老的梗,能简单的解释这个意思
渣男去ATM去存钱,遇上了一个美女要取钱,渣男随即有了一个美妙的想法:搭讪,今儿晚上有的玩儿了! 恰巧这美女也不是什么善茬儿,说:帅哥,你看,前面排队的那么多,你存钱,我取钱,你把钱存进银行,我也是从银行取钱,你直接把钱给我,咱俩互补一下呗。渣男一阵兴奋,寻思这姑娘挺开放啊,想也没想立马答应了,随手把钱给了美女,美女转身就走,渣男一看到手的肉要飞,立马喊住,说跟美女有缘分,要跟美女要电话,美女说:可以,但是我有一个条件“离我20cm,给你两分钟时间,不动手动脚不动嘴能碰到我我现在就跟你走”,渣男急火攻心也没相处什么办法,美女随机消失在人流中............
咳咳,所以,提醒各位帅哥们,不要光看段子.....................
用程序员的逻辑思维来讲,以上条件是不成立的,因为银行在这个段子中虽然是第三方,但是毕竟他们两个人的账户不同,所以以上条件是不许执行的,那现在咱们开始正题
在你修改表格输入内容的时候很有可能是输入多句,比方说A转账给B,A的钱是先提取到银行后台,再由银行后台把钱转入的B的账户中,那如果B的账户输入有误,就不会转进去,但是用咱们先前的方式是可以把A的钱提取到银行的,但是转入不到B的账户中,那钱去哪儿了?所以,咱们需要这么一个叫事务的语句
像下图这样,假如A要赚钱给B10000,B需要接收的钱是10000,而工作人员却把B的帐号输入错误了,那钱就落入了银行而不是B的账户里
如果咱们用事务这个功能呢?
咱们查询下当前表格A
当前是空的
现在咱们就当工作人员大意了,把A的钱取出来要转给B,但是B的账户或者是钱输入错了,不用事务就会出现下面一种情况
现在这种情况就是第一行写进去了,但是第二行没写进去,那就出现了上述的情况 银行人员把A的钱取出来,但是由于B的帐号输入错误,并没有把钱给B转到账户上去,所以,钱落入了银行的口袋,你懂得
那咱们用事务的方法来进行一遍还会出现上述情况么?
现在咱们把table_A中的内容清空 重新用 事务这个方法写入上面的语句
现在清空
现在执行 事务 方法写入代码
咱们再来查看下是不是想以前那样单纯的写入句子,对的执行,错的不执行
很显然,两句都没有写入进去,这样用了事务这个方法就不会出现A转账的金钱流失了
现在开始解释下这个方法为什么这个有意思
1 begin tran --开始事务监控 2 被监控的代码 3 ... 4 ... 5 if @@ERROR > 0 -- 记录上面代码的出错次数,默认值是0 6 begin 7 rollback tran; --如果有错,执行这一句,回滚事务,返回到begin tran的位置,当做什么事都没发生 8 end 9 else 10 begin 11 commit tran; --没错,一把将所有代码的执行结果提交 12 end
上述内容总结:保证流程的完整执行
后续还会涉猎有关的SQL中的 锁 或者是 死锁,当然肯定也是一丢丢基本的东西,有关锁的东西,会更新的很慢,大家不必着急
据说有隐藏内容哦