一、关于表与表之间的关系
1.1.1-学生表-TblStudnt
1.1.2-成绩表-TblScore
1.1.3-地区表-TblArea
二、左连接和右连接
2.1-连接查询(join)
- 交叉连接(两种语法cross join 和 ,)
- 内连接(inner join):多表内连接
- 无论几张表连接,每次执行的都是两张表进行连接。
- 外连接
- 左连接(left outer join)
- 右连接(right outer join)
2.2-查询练习
2.2.1-请查询出 所有参数了考试同学 的姓名年龄、年龄、英语成绩、数学成绩
—解析:使用内连接
—查询结果:
2.2.2-请查询出 所有同学 的姓名、年龄、英语成绩、数学成绩(没有参加考试的同学都已也查询出来,没有成绩的同学显示null)
//使用左外连接查询,会将左表中的数据全部显示,同时对于左表中的数据,在右表中能找到匹配的数据,那么则显示对应右表数据;如果右表要查询字段的值为空,就会显示Null
//左表:出现在Left join 左边的表就叫做左表
//右表:出现在Left join右边的表就叫做右表
2.2.3-左连接例子:查询左、右表中所有数据
2.2.3-请查询出那些 没有参加考试的同学 的tsid,姓名 和 年龄
//使用子查询
//使用左外连接查询
//记住:当使用连接查询的时候,需要同时要指定查询的条件,那么一定要使用where语句,不要直接在on条件后面跟and来编写其他查询条件。
**
三、自连接
3.1-什么是自连接?
自连接就是自身连接,也就是一个表中的一个属性和另一个属性相关联的情况。
3.2-查询练习
3.2.1-请查询出 市区后面加上省份。
四、多条件搜索-使用带参数的SQL语句
五、视图
- 视图是一张虚拟表,他表示一张表的部分数据或多张表的综合数据。其结构和数据是建立在对表的查询基础上的。
- 视图在操作上和数据表没有什么区别,但两者的差异是其本质不同:
- 数据表是实际存储记录的地方
- 视图并不保存任何记录
- 相同的数据表,根据不同用户的不同需求,可以建立不同的视图(不同的查询语句)
- 视图的目的是方便查询,所有一般情况下不会对视图进行增删改。
优点:
- 筛选表中的行,降低数据库的复杂程度
- 防止未经许可的用户访问敏感数据、增强一定的安全性。
普通视图
- 并不存储数据(虚拟表),访问的是真真实表中的数据
- 使用视的注意事项:
- 1.视图中的查询不能使用order by ,除非使用了top语句
- 视图被认为是一个虚拟表,表示一个集合,是不能有顺序的,order by 返回的是一个有顺序的, 是一个游标。
- 所以查询的列,必须由列明,且列明必须唯一
- create view vm_name as 后不能跟begin end
- 1.视图中的查询不能使用order by ,除非使用了top语句
- (*)索引视图
- 在试图上创建唯一聚集索引
- 数据保存在数据库中而不是引用表中的数据
六、T-SQL编程
6.1-if else
6.2-while循环
6.3-变量种类
七、事务
7.1-为什么需要事务?
7.2-什么是事务(Transaction)?
7.3-事务的特性(ACID)
八、存储过程
8.1-什么是存储过程?
//存储过程的缺点:如果当你的访问量过大的时候,而存储过程写了过多的逻辑,这时压力全都由数据库来承担。
8.2-系统存储过程
8.3-创建存储过程
8.4-问题解决
8.4.1-错误2
解决:加上go
8.4.2-错误2
解决:先执行调用存储过程语句,然后后执行调用存储过程语句;不要同时执行。
8.5-总结
// adapter.SelectCommand.CommandType = CommandType.StoredProcedure;——这个其实就是在前面加上了exec,如果自行加上了,可以不写这句代码。