概述
一:可以使用约束实现数据完整性
二:可以使用规则和默认值
三:在此之前先了解创建数据表的基本知识
建立一个名字为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:一个约束只能对一个表的一个列产生作用,
规则和默认值可以绑定到多个表多个列中。
最后
以上就是悲凉猫咪为你收集整理的数据库——怎样实现数据完整性的全部内容,希望文章能够帮你解决数据库——怎样实现数据完整性所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复