数据库——怎样实现数据完整性
一:可以使用约束实现数据完整性
二:可以使用规则和默认值
三:在此之前先了解创建数据表的基本知识
建立一个名字为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:一个约束只能对一个表的一个列产生作用,
规则和默认值可以绑定到多个表多个列中。
数据库——怎样实现数据完整性相关推荐
- Oracle基础知识之synonym(同义词)、database link(数据库链接)、数据完整性
Oracle基础知识之同义词.数据库链接.数据完整性 一.同义词 (一)概念 (二)分类 1.私有同义词 2.公共同义词 3.远程同义词 (三)作用 二.数据库链接 (一)概念 (二)分类 1.私有数 ...
- 数据库中的数据完整性(实体完整性、域完整性、引用完整性)
作用:保证用户输入的数据保存到数据库中是正确的. 确保数据的完整性 = 在创建表时给表中添加约束 完整性的分类: 实体完整性: 域完整性: 引用完整性: 4.1 实体完整性 实体:即表中的一行(一条记 ...
- Oracle数据库学习笔记——数据完整性(下)
参照完整性 表的一列或几列的组合的值在表中唯一地指定一行记录,选择这样的一列或多列的组合作为主键可实现表的实体完整性,通过定义PRIMARY KEY约束来创建主键. 外键约束定义了表与表之间的关系,通 ...
- 关系型数据库保证数据完整性和一致性的方法
对于数据库来说,关系型数据库对于保证数据完整性和一致性方面表现是最好的! 数据的完整性 完整性分类 具体描述 如何保证 实体完整性 每个实体都是独一无二的 主键 / 唯一索引(唯一约束) 参照完整性( ...
- 湖北大学829数据库原理与c语言程序设计,2017年湖北大学教育学院829数据库原理与C语言程序设计考研强化模拟题...
一.选择题 1. 关于分布式数据库,下列说法错误的是( ). A. 在分布式数据库系统中,分片透明性主要是指数据分片的分配位置对用户是透明的,用户无需关注每个分片被分配的场地 B. 对于用户而言,一个 ...
- 数据库知识点补充::约束
一.什么是约束? 数据库-由若干张数据表组成(理解为一个类库) 数据表-由行和列组成的一个二维数组(理解为一个类) 列 - 字段(理解为表中对象的一个属性) 行 - 理解为表中的一个对象 约束是数据库 ...
- Oracle数据库设计要做到五戒
众所周知,数据库设计的好坏直接关系到数据库运行的效率.根据笔者的经验,对于提升数据库性能来说,合理的数据库设计,比升级服务器的硬件配置,还要来的有效.但是,笔者无论是在跟同事合作,又或者是在论坛上跟相 ...
- 使用t-sql语句修改表中的某些数据及数据类型。_数据库基本理论详细介绍
1.数据库范式 第一范式:列不可分,eg:[联系人](姓名,性别,电话),一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF: 第二范式:有主键,保证完全依赖.eg:订单明细表[Or ...
- PowerDesiGner数据库设计
原文地址:http://hi.baidu.com/shunkunl/blog/item/871c75ef8596faeace1b3e00.html PowerDesign:PowerDesign是 S ...
- python访问数据库如何解决高并发_使用 Python 和 Oracle 数据库实现高并发性
随着趋势发展的核心转向更多而不是更快发展,最大限度地提高并发性的重要性日益凸显.并发性使得编程模式发生了新的转变,可以编写异步代码,从而将多个任务分散到一组线程或进程中并行工作.如果您不是编程新手并且 ...
最新文章
- elasticsearch系列五:搜索详解(查询建议介绍、Suggester 介绍)
- 如何从单个服务器扩展到百万用户的系统?
- [leetcode]36. Valid Sudoku c语言
- NUC1177 排序【排序】
- html5绘制警告牌,2.10 创建自定义图形:绘制扑克牌花色 - HTML5 Canvas 实战
- 地铁上读完《UNIX环境高级编程》是一种怎样的体验
- 安全用电技能实训装置
- android 串口调试助手源码,GitHub - Michelle0716/SerialPortHelper: Android 串口调试助手
- Sql Server 2012 Enterprise Edition 企业版 迅雷 下载地址
- R语言解决安装rgl包问题:ERROR: compilation failed for package ‘rgl‘
- web端如何获取笔压 web端获取笔压的js库
- 代码粘贴至word后,黑色背景处理
- Zend与PHP之间到底是什么关系
- 为什么要推销自己_推销自己:为什么? 如何!
- 【商业模型UV规范】自学的进来看看吧,UV到底是什么?
- 一键修改计算机名(无需重启)
- [ABC200F]Minflip Summation
- 易语言编译和c语言,易语言独立编译的EXE文件问题
- sourcetree的日常使用
- 生信学习笔记:fastp质控处理生成的report结果解读