S1/C#语言和数据库技术基础/07-用表组织数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了S1/C#语言和数据库技术基础/07-用表组织数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4083字,纯文字阅读大概需要6分钟。
内容图文
![S1/C#语言和数据库技术基础/07-用表组织数据](/upload/InfoBanner/zyjiaocheng/469/0cc6cfb1fd984a8db827c47c44a489ad.jpg)
1、实体完整性约束
实体完整性要求表中的每一行数据都反映不同的实体,不能存在相同的数据行。
通过索引、唯一约束、主键约束或标识列属性,可以实现表的实体完整性。这些方法的实现将在后面说明。
2、域完整性约束
域完整性指的是给定列输入的有效性。
通过限制数据类型、检查约束、输入格式、外键约束、默认值、非空约束等多种方法,可以实现表的域完整性。
3、引用完整性约束
在输入或删除数据行时,引用完整性约束用来保持表之间已定义的关系。
例如,在管理学生信息的时候,一个表用来存储学生的信息,另一个表用来存储考试成绩的详细情况,并且考试成绩表中的一列数值就是学生信息表中的编号,用来表示学生的信息。
在强制引用完整性约束时,SQL Server禁止用户进行下列操作。
- 当主表中没有关联的记录时,将记录添加到从表中,也就是说学生成绩表中不能够出现在学生信息表中不存在的学号。
- 更改主表中的值导致相关表中的记录孤立。如果学生信息表中的学号改变了,学生成绩表中的学号也应当随之改变。
- 从主表中删除记录,但在相关表中仍存在与该记录匹配的相关记录。如果把学生信息表中的学生信息删除了,则该学生的学号不能出现在学生成绩表中。
引用完整性通过主键和外键之间的引用关系来实现。
4、自定义完整性约束(检查约束)
用户自定义完整性用来定义特定的规则。例如,在向用户信息表中插入一个用户记录时,要求通过身份证编号来检查在另外一个数据库中是否存在该用户,并且该用户的信誉度是否满足要求,等等。若不满足要求,则不能够插入,这个时候就需要使用数据库的规则、存储过程等方法来进行约束。
主键
有一个列,这个列的值用来唯一标识表中的每一行,用于强制表的实体完整性,这样的列定义为表的主键。
一个表只能有一个主键,并且主键列不允许出现空值(Null),尽管有的表中允许没有主键,但是通常情况下建议为表设置一列为主键。
提示:如果两列或多列组合起来唯一的标识表中的每一行,则该主键也叫作“复合主键”。
外键
外检就是相对主键而言的,就是“从表”中对应于“主表”的列,在从表中称为外键或者引用键,它的值要求与主表的主键或者唯一键相对应,外键用来强制引用完整性。一个表可以有多个外键。
创建数据库表实际上就是实施不同的约束,实现完整性规则的过程。
SQL Server数据类型
|
分类 |
数据类型 |
说明 |
二进制数据类型 |
用来存储非字符和文本的数据 |
Binary |
固定长度的二进制数据 |
|
|
Varbinary |
可变长度的二进制数据 |
|
|
Image |
可用来存储图像 |
文本数据类型 |
字符数据包括任意字母、符号或数字字符的组合 |
Char |
固定长度的非Unicode字符数据,最大长度为8000个字符 |
|
|
Varchar |
可变长度的非Unicode字符数据 |
|
|
Nchar |
固定长度的Unicode字符数据 |
|
|
Nvarchar |
可变长度的Unicode字符数据 |
|
|
Text |
存储长文本信息 |
|
|
Ntext |
存储可变长度的长文本 |
日期和时间数据类型 |
用于存储日期和时间 |
Datetime |
从1753年1月1日到9999年12月31日,准确度为三百分之一秒或3.33毫秒 |
数字数据类型 |
该数据仅包含数字,包括正数、负数及分数 |
Int,smallint,tinyint,bigint |
整数 |
|
|
Float,real |
浮点数 |
货币数据类型 |
货币数据类型用于十进制货币值,并且精确到小数点后面4位数 |
Money |
|
Bit数据类型 |
表示是/否的数据,只有两种选择,如婚否、是否定购等。在SQL Server中用1和0表示,一般1表示是,0表示否 |
Bit |
存储布尔数据类型 |
Unicode是一种在计算机上使用的字符编码,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
在创建表的时候,选择字符数据类型,还需要输入长度信息,如varchar(50)指长度为50的字符型数据,其中长度可以改变。选择数字数据类型不需要输入长度信息,以你为长度是固定的。
标识列
在很多情况下,存储的信息中很难找到不重复的信息作为列的主键。就拿学生信息来说,以姓名作为主键的话,一个班上就不允许有同名的学生,如果一张表存储整个学校的学生信息,那么整个学校都不允许重名,这显然要带来麻烦。
SQL Server提供了一个“标识列”,标识列本身没有具体的意义,不反映学生诸如地址、性别这样的信息,只是用来区别不同的学生。
标识列的实现方式如下:
- 如果一列的数据属于数字类型(如整数),那么可以把该列定义为标识列。
- 定义成标识列之后,还需要分别指定“标识种子”和“标识增量”,默认值都是1.
- 定义了表之列之后,在以后每次输入数据的时候,该列随数据行的增加而自动增加数值,并且不会重复,第一次的数字就是“标识种子”值,以后每次按照“标识增量”增加数值。
标识列通常也被定义为主键,通常所说的“自动编号”就是指标识列的数字自动增加。
标识列中的数据是自动生成的,不能在该列上输入数据,后续章节将要学习的使用SQL语句插入数据时,也不允许为标识列指定值。
建立检查约束
检查约束也叫作CHECK约束,用于定义列中可接受的数据值或者格式。其中,%代表任意多个字符。
S1/C#语言和数据库技术基础/07-用表组织数据
标签:
本文系统来源:http://www.cnblogs.com/water5832/p/5858473.html
内容总结
以上是互联网集市为您收集整理的S1/C#语言和数据库技术基础/07-用表组织数据全部内容,希望文章能够帮你解决S1/C#语言和数据库技术基础/07-用表组织数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。