数据完整性:要求数据库中数据的准确性,而准确性是通过数据表的设计和约束来实现的。
SQL Server提供四种类型数据完整性:
实体完整性:即每行数据不能相同。约束方法:唯一性约束、主键约束、标识列属性
域完整性:即每列数据输入的有效性。约束方法:限制类型、检查约束、外键约束、默认值、非空约束
引用完整性:即表与表之间关系的引用以影响某些删除修改操作。约束方法:主、外键
自定义完整性:即用户可以自定义特定的规则。约束方法:规则、存储过程、触发器。
主键(Primary Key):能够唯一标识表中每一行的某一列或多列的组合(组合键)。作用:可以使表中不存在重复的数据行或重复的实体。一个表只能有一个主键,通常应为表设置一列为主键(依据最少性和稳定性原则)。主键标识:PK_表名(如:PK_StuInfo)。
外键(Foreign Key):“子表”中对应“主表”的列,在“子表”中称为~,该值要求必须与主表的主键或唯一键相对应。作用:多表强制引用完整性,使子表和主表实现数据的同步。一个表可以有多个外键。
外键标识:FK_子表名_主表名(如:PK_StuInfo_classInfo)。
约束五大类型:主键约束、检查约束、默认约束、唯一性约束、引用完整性约束。
主键约束:
如果我们在某个表的列中实在找不到一列作为主键,但又想唯一标识每行的记录。可以创建一个自动增长的标识列。如将stuId作为标识列,可以在列属性面板中标识规范中设置一下内容:
外键约束:
假设我们建立了两个表:学生表(stuInfo)和班级表(classInfo),这两个表之间关于班级编号(class)有主外键的关系。其中classInfo是主表,stuInfo是子表。
【注意】一对多关系:一是主表,多是子表。即一个班级对应多个学生。
点确定->关闭后即完成主外键的关联。
【注意】在建立了主外键引用关系后:(1)在删除外键表之前,不能删除主键表;(2)在外键表(子表)插入数据时,外键列必须事先存在于主表的被引用列中;(3)当主表中被引用的列值发生改变时,则引用它的外表中的对应值也会同时发生变化。
唯一性约束:
使表中数据除主键外的某个列值也具有唯一性。(即除主键外的其他列没有重复值)
非空约束:
来源:(http://blog.sina.com.cn/s/blog_5f84d3a30100fplr.html) - SQL Server数据库技术(下)_蜗牛_新浪博客
限定表中插入数据时,某个或某些列必须输入数据。在表设计视图中将数据字段后面的“允许空”选项清除。
默认值约束:
如果表中的数据不填写,则使用默认的设置。
检查约束:
用于定义列中可接受的数据值或者格式,比如学生信息表中学生年龄应当在<30岁的学生。如果不满足条件则为不合法的数据,不允许输入。
【注意】约束表达式是一个逻辑表达式,例如我们可以用这条表达式判断姓名是否为空:
LEN(stuName)>0 或者判断电子邮件中是否包含@符号:StuEmail LIKE '% @ %'.
8.SQL语句应用:
SQL:结构化查询语言(Structured Query Language),它是高级的非过程化编程语言。
SQL分三大类:
数据定义语言(DDL,Data Description Language)——定义数据库模式的语句,包括创建语句、去除语句、修改结构语句和声明语句等,如CREATE\ALTER\DROP\DECLARE等。
数据操纵语言(DML,Data Manipulation Language)——用于完成数据库增删改查操作的语言,如INSERT,DELETE,UPDATE,SELECT。
数据控制语言(DCL,Data Control Language)——用于管理数据库的语言,包含管理权限及数据更改,如GRANT,REVOKE,COMMIT,ROLLBACK。
·SQL Server数据库中使用SQL语言:
新建一个SQL查询窗口,在窗口中输入SQL语句后,点击
按钮后,可以运行并执行SQL语句。
·数据定义语言(DDL):
作用:描述数据库中要存储的现实世界实体的语言,通过它我们可以创建数据库和数据表。
作为普通的软件开发者来说我们只需掌握下面的方法来生成数据库和数据表DDL语句即可:
--创建数据库SQL语句:
用我们已建好的数据库的DDL语句拷贝到SQL文件中:
SQL文件:
同理,在我们建立的数据表上右击->编写表脚本为->Create到->新查询编辑器窗口->将窗口中的代码复制粘贴到刚才创建数据库代码的下面,组织在一起并保存为SQL文件。以后,如果人家要使用你的数据库和表进行操作,你除了可以用备份文件,还可以用你保存过的SQL文件,这样人家可以不必建数据库和表而直接在SQL语句上操作数据。