数据库基础理论与实践笔记整理

(一)数据库设置列属性和约束

1.概念

· 名称:列的名称
· 数据类型:是指列的数据类型。
· 长度:当指定数据类型为nvarchar时,还要在其后的括号中指定一个数字来指示在该列中输入的最大字符数,入nvarchar(10),长度属性只用于包含恩本的数据类型,如char和varchar。
· 允许空值:如果允许列为null,则表明列值可以为全空,不含任何内容。
· 主键:该属性设置列时否时该表主键的一部分。设置某列作为主键,由列名叛变的要是图标表示。
· (是标识):表示列为表示列并将具有自动递增的值。
· 标识种子:设置表中所输入的第一行的值。其默认值为1。
· 表示增量:设置给表中最近创建的行的标识列所增加的增值量,以生成即将创建的新行的表示列的下一个值。其默认值为1。(在默认情况下,表中创建的第一行所自动生成的整数列将被设置为1,那么第二行设置为2,第三行设置为3,以此类推。如果将表示种子设置为10,标识增量设置为2,那么第一行相应列值僵尸10,第二行是12,第三行是14,以此类推。)

在这里插入图片描述

2.关系

如果表中含有的记录相互之间存在某种关联,则称表中存在关系。

  1. “一对一”关系: 当一个表中的一行只能与另一个表中的某一行相关,并且第二个表中的一行也只能与第一个表的某一行相关时,则这两个表之间存在“一对一”关系。
  2. “一对多”关系:当一个表中的单行可与另一个表中的多行关联,但是第二个表中的单行只能与第一个表中单行关联是,将得到“一对多”(1:n)关系。
  3. “多对多”关系:当一个表中的行可与另一个表中的多行关联,同时另一个表中的行有可与第一个表中的多行关联时,这两个表之间存在“多对多”(m:n)关系。

3.外键和外键约束

若要对三种表间关系着的任何一种建模,应在一个表中创建值包含另一个表中的主键值的列。(外键是引用另一个表中的主键值的列)
外键约束:通过将这一类型的约束应用于所设计的两列,可以明确设计当从包含某种表间关系的主键的表中删除某项是,数据库将如何反应。外键允许约束定义一下3种特定问题:

  • 那些列是逐渐,那些列是外键
  • 数据库是否应对找语文书检查新输入的数据
  • 当修改或删除数据所在列时,数据库是否应实施此约束。如果回答是肯定的,数据库应如何进行实施。

4. 其他 SQL Server 2008 数据库对象

1. 视图
在大多数情况下,获得一个查询结果需要查询多个表,试图可以被视作虚拟表或者已存储的查询。从试图中获取的数据在数据库中并不作为单独对象存储。存储在数据库中的是一个SELECT查询语句。SELECT查询语句的结果构成了视图所返回的虚拟表。对于那些经常需要查询的结果,可以建立视图,以便访问。用户可以像用表一样在T-SQL语句中使用视图的名字。譬如,卡拉OK热歌排行榜就是一个近似于视图的例子,可以从歌曲库的诸多取自中选出来被挑选的前100首,显示歌手和歌曲名字。这是一张虚拟表,其中的数据也是动态变化中的。
2. 索引
索引是一种表或者视图的磁盘存储结构,可以加速表或视图的存取。索引包含关键字,关键字从表或者视图中的一列或多列获得。这些关键字按B树结构存储(在B-树中查找给定关键字的方法是,首先把根结点取来,在根结点所包含的关键字K1,…,Kn查找给定的关键字(可用顺序查找或二分查找法),若找到等于给定值的关键字,则查找成功;否则,一定可以确定要查找的关键字在Ki与Ki+1之间,Pi为指向子树根节点的指针,此时取指针Pi所指的结点继续查找,直至找到,或指针Pi为空时查找失败。),可以使得SQL Server快速有效地找到行或和关键字值匹配的行。索引分为聚集索引和非聚集索引。譬如,在在一个图书馆中书籍的编排,如果书籍仅仅是按买进的时间排放,那么要在豪乳沿海的书退中找到自己的书实在是很困难的,所以图书馆一般都按书名排序,或者按书内容分类,或者先按书内容分类再按书名顺序建立卡片。读者翻阅卡片可以很容易找到自己要的那本书,这就是一种索引。
3. 约束
约束的主要任务是在一个数据库中强制规则。同样的,数据库中的约束维护数据库的完整性。譬如,有一个外键约束用户确保所有订单都指向现有产品,那么不肯输入一个订单订购位置的产品,维持完整性对于数据库来说是很重要的,如此重要的是因为我们不能新人用户和应用程序可以自己实施这种强制,一旦失去了完整性,就可能导致客户付两次钱,或者购买不存在的产品,甚至失去信誉。
4. 规则
规则定义了一个列中国可以接受和插入的值。
5. 存储
存储过程就是利用SQL 语言将常用的或复杂的工作预先编写成一个程序,将其存储起来,以后只需调用它即可自动完成工作。SQL Server中的存储过程和编程语言中的过程有点相似。可以接受输入、以参数形式返回多个值。存储过程包含在数据库中执行操作的语句,包括调用其他存储过程。向调用它的存储过程和批处理返回值表示成功或失败(含失败原因)。可以使用T-SQL的EXECUTE语句来运行存储过程。存储过程和函数不同,不能直接用在表达式中,对于一些经常进行的数据库操作,可以编写成为存储过程,这样就使得编写代码更为简单,执行小笼包也更好。
6. 触发器
触发器是一种附着在表上的数据库对象。触发器在很多方面像存储过程。从某种角度来看,触发器就像是“特种存储过程”。触发器和存储过程的主要区别是,它附着在表上,并且仅在INSERT、UPDATE或DELETE发生时触发。用户可以在触发器建立时指定引发出发的修改。

猜你喜欢

转载自blog.csdn.net/weixin_42676530/article/details/107210030
今日推荐