1.数据完整性(指
数据库的数据能够正确地反映实际情况)(通过数据库表的设计和约束实现)
?
1.实体完整性约束(表中每一行数据反映不同的实体 即不存在相同的数据行)
?
2.域完整性约束(指给定列输入的有效性)
?
3.引用完整性约束(对于两张表而言保持表之间已定义的关系)
?
4.自定义完整性约束()
?
2.主键和外键
?
主键(Primary Key):
?
用来唯一标识表中的每一行的列,称为该表的主键(用于强制表的实体完整性)
?
注意:
?
一个表只能有一个主键,且不允许有空值(null),若表中没有主键,则强行给表设置一个Id作为该表的主键
?
复合主键:两列或多列组合起来唯一标识表中的每一行的主键称为复合主键
?
外键(Foreign Key):
?
在一张表A(Student)中存在一个主键(StudentNo),在一张表B(Result)中存在一列(StudentNo),那么表B中的改键就称为表A的外键。
?
外键是用来强制引用完整性的。一个表可以有多个外键。
| 二进制数据类型 |
存储非字符和文本的数据 |
image |
存储图像 |
| 文本数据类型 |
字符数据(任意字母、符号或数字字符的组合) |
char(固定程度非Unicode字符最长为8000个字符) varchar(可变长度的非Unicode字符) nchar(固定长度的Unicode字符) nvarchar(可变长度的Unicode字符) text=nvarchar(max)(存储长文本信息) ntext(存储可变长度的长文本) |
? |
| 日期和时间数据类型 |
存储日期和时间 |
datetime |
? |
| 数字数据类型 |
该数据仅包含数字,包括正数、负数及分数 |
int? 及smalliint存储整数 |
? |
| 货币数据类型 |
用于十进制货币值 |
money decimal(18,0) |
? |
| bit数据类型 |
只表示两种选择? 用0和1表示? 1代表是? 0代表否 |
bit |
存储布尔类型数据 |
3.如何完善表的设计结构
?
1.是否允许为空值
?
2.建立主键
?
3.默认值
?
4.标识列
?
有标识种子,标识增值设为标识列的一列不可自行赋值,
系统自动生成。前提:必须是int数据类型
?
设为标识列的一列,如果输入错误一次,该值就会被占用,会出现值断续的情况
?
5.通配符:
?
“—”:表示任意的任意一个字符
?
“%”:表示任意多个任意字符
?
两者皆用like ’ ‘
?
4.建立表间关系
?
建立表间关系实际上就是实施引用完整性约束、建立主表和从表关系。
?
5.建立数据关系图
?
6.建立检查约束
?
或者:or
?
并且:AND
?
通配符的应用
?
7.删除数据库表
?
注意:删除有主从表关系的数据库表,若要删除主表,则首先要删除相关的从表以保证数据的引用完整性