数据库——怎样实现数据完整性

来源:窦孟园 发布时间:2018-12-05 11:41:24 阅读量:911

一:可以使用约束实现数据完整性


二:可以使用规则和默认值


三:在此之前先了解创建数据表的基本知识


建立一个名字为student的数据库


然后在student 的下边建立一个名字为student1的表


要求如下


属性名


数据类型


可否为空


约束要求


学号


Char



主键


姓名


varchar



 


性别


Char



 


年龄


Tinyint



 


所在系


Char



 


 


建立数据库和数据表有两种方式,一种是在企业管理器(2000的低版本里)用设计完成,另一种是通过(查询分析器2000)新建查询完成,sql2008没有明显的企业管理器和查询分析器,他们都在一个窗体,这样很方便了,由于通过新建查询写代码的方式要简便的多,尽量使用写代码来实现吧


建立数据库




建立数据表student1




查看数据表有没有建成




学会了建库建表,已经迈出了第一步,然而建表不能随便建表,我们需要限制,来实现数据的完整性,开始奔入主题。


【约束】


下边通过一个总体说明约束怎样保证数据完整性的


名称


作用


体现的完整性


Primary key


定义外键,保证被设定的列内不出现重复值


实体完整性


Unique


不出现重复


实体完整性


Foreign key


定义外键,保证表和表之间的一致性


参照完整性


Check


定义列中数据的范围


自定义完整性


default


为列的数据设定默认值


自定义完整性


 


 


 


 


1:主键    一个表中只能有一个主键   定义主键可以设定,也可以在代码中需要的时候加在相应的字段


2:unique    数据表中非主键列在各行记录中不能出现相同的非空值,这时就需要有unique的特性,用法和主键一样


3:外键   是不同的表之间的关系,当其中有一些数据存在关系是可以建立外键,(可以避免出错)


[constraint 约束名] foreign key (列名)   reference 表名(列名)


4:check   限定列之间数据的参照关系   比如一个表中包含学生的“出生日期”和“入校日期”,入校日期肯定要晚于出生日期,这个时候可以用check来限定


[constraint 约束名]  check  (关系式)


5:default  当有非常多的相同数据要输入到数据表中的时候,可以设定一个默认值,这样减少工作量


[constraint 约束名]  default 常量表达式    for   字段名


说明::在没有单独拿出定义约束的时候可以省略[constraint  约束名]


【规则和默认值】


1:规则


规则可以做:验证数据的值是否处于一定的范围内


                                是否和特定格式相匹配   是否与制定列表中的输入相匹配(想到了学生信息管理系统一些东西我们都可以在数据库里设定,比如时间的格式)


创建规则:create  rule  规则名 as   规则的表达式(如果表达式中含有参数要加上@)


使用规则:sp_bindrule   规则名, ‘表名.列名’


查看规则:sp_helptext  规则名


解除规则: sp_unbindrule  规则名, ‘表名.列名’


删除规则:drop rule  规则名组


2:默认值


创建默认值:create default  默认名  as   表达式


使用默认值:sp_bindefault  默认名, ‘表名.列名’(注意在敲代码的时候注意必须是英文)


查看默认值:sp_helpconstraint  表名


解除默认值:sp_unbindefault  默认名, ‘表名.列名’


删除默认值:drop_default   默认值名


四:【总结】


规则和约束都可以保证数据完整性,二者的区别


1:约束是基于表的操作


规则和默认值在创建了以后,他不属于某个表,只有在绑定了命令了以后才会发生关系


2:一个约束只能对一个表的一个列产生作用,


规则和默认值可以绑定到多个表多个列中。

--------------------- 



标签: 数据库
分享:
评论:
你还没有登录,请先