源视频教程:https://www.bilibili.com/video/BV1rt411C7EF?p=1

一、关于表与表之间的关系

1.1.1-学生表-TblStudnt

image.png

1.1.2-成绩表-TblScore

image.png

1.1.3-地区表-TblArea

image.png

二、左连接和右连接

2.1-连接查询(join)

  • 交叉连接(两种语法cross join 和 ,)
  • 内连接(inner join):多表内连接
    • 无论几张表连接,每次执行的都是两张表进行连接。
  • 外连接
    • 左连接(left outer join)
    • 右连接(right outer join)

2.2-查询练习

2.2.1-请查询出 所有参数了考试同学 的姓名年龄、年龄、英语成绩、数学成绩
—解析:使用内连接
—查询结果:
image.png
2.2.2-请查询出 所有同学 的姓名、年龄、英语成绩、数学成绩(没有参加考试的同学都已也查询出来,没有成绩的同学显示null)
image.png
//使用左外连接查询,会将左表中的数据全部显示,同时对于左表中的数据,在右表中能找到匹配的数据,那么则显示对应右表数据;如果右表要查询字段的值为空,就会显示Null
//左表:出现在Left join 左边的表就叫做左表
//右表:出现在Left join右边的表就叫做右表
image.png

2.2.3-左连接例子:查询左、右表中所有数据image.png

2.2.3-请查询出那些 没有参加考试的同学 的tsid,姓名 和 年龄
//使用子查询
image.png
//使用左外连接查询
image.png
image.png
//记住:当使用连接查询的时候,需要同时要指定查询的条件,那么一定要使用where语句,不要直接在on条件后面跟and来编写其他查询条件。
**

三、自连接

3.1-什么是自连接?

自连接就是自身连接,也就是一个表中的一个属性和另一个属性相关联的情况。

3.2-查询练习

3.2.1-请查询出 市区后面加上省份。
image.png

四、多条件搜索-使用带参数的SQL语句

image.png
image.png
image.png
image.png

五、视图

  • 视图是一张虚拟表,他表示一张表的部分数据或多张表的综合数据。其结构和数据是建立在对表的查询基础上的。
  • 视图在操作上和数据表没有什么区别,但两者的差异是其本质不同:
    • 数据表是实际存储记录的地方
    • 视图并不保存任何记录
  • 相同的数据表,根据不同用户的不同需求,可以建立不同的视图(不同的查询语句)
  • 视图的目的是方便查询,所有一般情况下不会对视图进行增删改。
  • 优点:

    • 筛选表中的行,降低数据库的复杂程度
    • 防止未经许可的用户访问敏感数据、增强一定的安全性。
  • 普通视图

    • 并不存储数据(虚拟表),访问的是真真实表中的数据
  • 使用视的注意事项:
    • 1.视图中的查询不能使用order by ,除非使用了top语句
      • 视图被认为是一个虚拟表,表示一个集合,是不能有顺序的,order by 返回的是一个有顺序的, 是一个游标。
    • 所以查询的列,必须由列明,且列明必须唯一
    • create view vm_name as 后不能跟begin end
  • (*)索引视图
    • 在试图上创建唯一聚集索引
    • 数据保存在数据库中而不是引用表中的数据

六、T-SQL编程

6.1-if else

image.png

6.2-while循环

image.png

6.3-变量种类

image.pngimage.png

七、事务

7.1-为什么需要事务?

image.png

7.2-什么是事务(Transaction)?

image.png

7.3-事务的特性(ACID)

image.png

八、存储过程

8.1-什么是存储过程?

image.png
//存储过程的缺点:如果当你的访问量过大的时候,而存储过程写了过多的逻辑,这时压力全都由数据库来承担。

8.2-系统存储过程

image.png

8.3-创建存储过程

image.png

8.4-问题解决

8.4.1-错误2
image.png
解决:加上go
image.png

8.4.2-错误2
image.png
解决:先执行调用存储过程语句,然后后执行调用存储过程语句;不要同时执行。

8.5-总结

image.png
// adapter.SelectCommand.CommandType = CommandType.StoredProcedure;——这个其实就是在前面加上了exec,如果自行加上了,可以不写这句代码。

九、set 和 select

image.png
image.png