视图

咱们先来了解下视图到底是什么意思,顾名思义,用简单的视觉方式展现复杂的内容

有什么功能呢,

各位应该还记得咱们之前练习的那个小小的数据库superise,里面有这么四张表,分别是:

student,Course,Scoure,Teacher

那咱们在做练习或者是给你一个数据库要你去修改,而你却没办法理清这个库里的内容时,

咱们通常都会这样,第一种

 select *from Student
select *from Score
select *from Course
select *from Teacher

或者是这样,第二种

 select *from Student,Teacher,Score,Course

咱们来看一下结果怎么样,来大家往这里看,第一种情况

第二种情况

第二张是什么  咳咳,开启装X模式   上图第二种情况专业术语叫:笛卡尔积  就是把所有的匹配情况都给你匹配了一遍,也就是C#里面的穷举,想不到的话,再提醒一下,百鸡百钱,可以给他去重一下:distinct

视图就是下图这样

通过鼠标的点击可以勾选你所想要看到的内容,无比方便,当多个人需要看的时候只需要在数据库里读取视图进行勾选即可,重要的是只可查询、读取,不可以增删改

对了,忘了说一个重要的事儿,语句结构

 create view 创建的视图名字
as
................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转账的金钱流失了

现在开始解释下这个方法为什么这个有意思

 begin tran --开始事务监控
被监控的代码
...
...
if @@ERROR > 0 -- 记录上面代码的出错次数,默认值是0
begin
rollback tran; --如果有错,执行这一句,回滚事务,返回到begin tran的位置,当做什么事都没发生
end
else
begin
commit tran; --没错,一把将所有代码的执行结果提交
end

上述内容总结:保证流程的完整执行

后续还会涉猎有关的SQL中的    锁    或者是  死锁,当然肯定也是一丢丢基本的东西,有关锁的东西,会更新的很慢,大家不必着急

据说有隐藏内容哦

T-SQL几个简单的操作的更多相关文章

  1. SqlServer简单的操作XML以及SQl的 try catch等统一格式

    1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...

  2. salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesforce中的数据库使用的是Force.com 平台的数据库,数据表一行数据可以理解成一个sObject变量 ...

  3. 下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作

    下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...

  4. Phoenix(sql on hbase)简单介绍

    Phoenix(sql on hbase)简单介绍 介绍: Phoenix is a SQL skin over HBase delivered as a client-embedded JDBC d ...

  5. 对于超大型SQL SERVER数据库执行DBCC操作

    原文:对于超大型SQL SERVER数据库执行DBCC操作 对于数据库维护,主要使用DBCC CHECKDB来实现,以下是对大型数据库的使用说明,小型数据库一般直接使用就可以了: 1.2008(200 ...

  6. MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题

    1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...

  7. ado.net的简单数据库操作(二)之封装SqlHelperl类

    今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...

  8. ado.net的简单数据库操作(一)

    摘要:接下来的几篇博客将要讲到如何使用ado.net实现简单的数据库操作,包括增删改等内容.首先会介绍基础的数据库操作,然后以一个实例来进行讲解,这个实例会把一个数据表读取到winform上,然后在w ...

  9. SQL_DML简单的操作

    ***********************************************声明*************************************************** ...

  10. 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)   salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...

随机推荐

  1. [Selenium With C#学习笔记] Lesson-06 单选按钮

    作者:Surpassme 来源:http://www.jianshu.com/p/08ee1929875f 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 单选按钮通常用在需要 ...

  2. Android布局管理详解(1)—— LinearLayout 线性布局

    Android的布局方式共有6种,分别是LinearLayout(线性布局).TableLayout(表格布局).FrameLayout(帧布局).RelativeLayout(相对布局).GridL ...

  3. 从零开始学JavaWeb

    引言   记得上学时,有位导师说过一句很经典的话:"编程语言只是工具,最重要的是掌握思想." 笔者一直主要从事.net领域的开发工作.随着工作阅历的丰富,越来越深刻的理解当年导师说 ...

  4. 3433: [Usaco2014 Jan]Recording the Moolympics

    3433: [Usaco2014 Jan]Recording the Moolympics Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 137  S ...

  5. 1634: [Usaco2007 Jan]Protecting the Flowers 护花

    1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 493  So ...

  6. 注册登录系统项目思路 -- javaweb

    功能:   > 注册   > 登录   ---------------------------------   JSP:   * login.jsp  --> 登录表单   * re ...

  7. c# 将匿名类或者集合转Json格式数据一些方法

    要说写这个功能呢也是因为工作需要,白天呢上班写个Web页面需要ajax请求后台并将数据以Json格式传会前端,由于公司特殊性吧,不能连外网(很苦比).所以只有等到晚上回家上网边查边写! public ...

  8. ps-抠图

    1-    图层区—复制背景图层            防止原图修改失败后无法还原 2-    工具栏——磁性套索工具                    可以有效的对色彩边线较为明显的图片进行抠图 ...

  9. (17)IO中的异常处理

    public static void copyImage() throws IOException { //找到目标文件 File inFile = new File("D:\\1.jpg& ...

  10. 【转】并行类加载——让tomcat玩转双十一 @双十一实战

    原文:https://yq.aliyun.com/articles/4227?spm=5176.100239.yqblog1.20.cfRztB 摘要: 今年双十一,是应用容器的最新版本Ali-tom ...