1.2 了解数据库对象
在上一节中读者已经认识了目前比较流行的6款数据库产品,那么数据库中究竟都有什么呢?本节将讲述SQL Server数据库中一些常用的对象,如表、视图、索引、存储过程、触发器等。
1.2.1 表
表是一个数据库中使用最多的对象,每一个数据库都是由若干个表组成的。数据库中每一张表都是由行和列组成的,这就像常用的Excel表格一样。在数据库中表中的行称为记录,列称为字段。如表1.1所示为存放学生信息的学生信息表。
表1.1 学生信息表
这里,编号、姓名、年龄、学号、班级都是表中的字段名,而其中的“1,张三,20,20001,一班”就是学生信息表中的一条记录。
1.2.2 视图
上一节中已经讲解了什么是数据库中的表,其实视图也是一张表,通常把视图看成是数据库中一张虚拟的表,视图中的数据都是从数据库表中查询出来的数据。也就是说视图中的数据全部来源于数据库中存在的表,也称组成视图的表为基表或源表。视图在数据库中的作用主要是为查询数据提供方便并提高数据库的安全性。假设有学生信息表和班级信息表,如表1.2和表1.3所示。
表1.2 学生信息表
表1.3 班级信息表
如果要得到学生的姓名和学生所在的班级名称,就必须要在学生信息表和班级信息表中查询才能得到,这样就减慢了查询的速度。这时就可以考虑使用视图,把要查询的数据放置到视图中,如表1.4所示。对于怎么实现从表到视图的操作,在本书后面的章节中会讲述。
表1.4 学生班级信息视图表
这样,在查询学生姓名和班级信息时只需要查询表1.4所示的视图即可,此时不仅查询方便,而且可以隐藏学生信息表和班级信息表的字段信息,从而提高数据库操作的安全性。
1.2.3 索引
索引是创建在数据表中的字段上的,相当于图书的目录。在表中设置索引字段可以提高查询速度,可以想象一下如果字典没有目录,那么要查一个汉字需要多长时间呢?同样,在数据表中如果没有设置索引字段,那么在查询时也会减慢速度。在图书中目录只有一个,那么表中的索引有多少呢?在数据表中索引分为聚集索引和非聚集索引两类,但是聚集索引只有一列,那么在检索表中数据时也都是根据聚集索引来检索的。索引的创建和使用可以参考本书后面的章节。
1.2.4 存储过程
存储过程从字面意义上来说,就是用来存储数据表操作的一个过程。实际上,存储过程确实就是把对数据表操作的方法存储到一起的一个对象。存储过程和视图一样能够提高数据库的安全性,通过存储过程可以完成对数据表的增加、删除、修改及查询的操作,并且使用存储过程还能完成数据表的一些判断等复杂操作。存储过程的创建和使用可以参考本书后面的章节。
1.2.5 触发器
触发器可以理解为当执行某一个操作时执行某一个方法,就像设置电脑自动关机一样,当到达了电脑的自动关机时间,电脑就会自动运行关机程序来关闭电脑。触发器是确保数据表数据一致性的重要的数据库对象之一,通过触发器可以完成诸如向一个表插入数据的同时向另一个表插入数据,或者删除另一个表中数据的操作。但是,使用触发器也要慎重,因为数据库中如果存在大量的触发器,在操作时就会影响数据库的效率。触发器的创建和使用可以参考本书后面的章节。