日思夜想之用表组织数据
用表组织数据
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.删除数据库表
注意:删除有主从表关系的数据库表,若要删除主表,则首先要删除相关的从表以保证数据的引用完整性