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

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

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

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

建立一个名字为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:一个约束只能对一个表的一个列产生作用,

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值