冻冻玖  

 

表相关的几个基本概念

  1. 数据的完整性

数据库需要做两方面的工作:检验每行或每列数据是否符合要求

 

1)       实体完整性约束

实体完整性要求表中的每一行数据都反应不同的实体,不能存在相同的数据,通过索引、唯一约束、主键约束或标识列属性

2)       域完整性约束

域完整性是指给定列输入的有效性

通过数据类型等约束

3)       引用完整性约束

在输入或删除时引用完整性约束来保持表之间已定义的关系

学生表(主表id\name\scoreid)中的id编号对应成绩表(从表id\score)中的成绩,删除一名学生,先删除成绩中的数据,在删除学生表中的数据

引用完整性约束通过主键和外键之间的引用关系来实现

4)       自定义完整性约束

用户自定义完整性约束用来定义特定的规则

 

 

主键和外键

主键(Primary key)

什么是主键?

         是一个或多个字段,他的值用于唯一地表示表中的某一条记录。

         在两个表的关系中,主关键字用来在一个表中的引用来自另一个表中的特定记录,主关键字是一种唯一的关键字(是表定义的一部分)主键列不能包含空值

 

注意:如果两个列或者多个列组合起来唯一表示表中的每一行,这叫“复合主键”

 

我怎么知道选择谁当主键?

         需要两个原则:最少性和稳定性

1)  最少性:列数最少的键

2)  稳定性:指列中的数据特征,因为主键通常用来建立两个表之间的联系,所以主键数据不需要更新,理想状态下,永久不变

 

外键(foreign key)

什么是外键:外键就是指另外表中的主键

                   作用:保持数据的一致性,完整性,主要目的是控制存储在外键表中的数据

 

使用原则:

1)  为关联字段或创建外键

2)  所有的键都必须唯一

3)  避免使用复合键

4)  外键总是关联唯一字段

 

操作:建库、建表

 

创建数据库表

1)  确定列的数据类型

分类                                                                                           数据类型                   说明

二进制数据类型:存储非字符型文本或数据              image                          可用来存储图片

 

文本数据类型:字符数据类型包括任意字母              char                             固定长度的非Unicode

                              、字符或数字字符的组合                                        字符数据

                                                                                              Varchar              可变长度的非Unicode数据

                                                                                             Nchar                          固定长度的Unicode数据

                                                                                             Nvarchar                    可变长度的

                                                                                             Text                             储存长度文本信息

                                                                                             Ntxet                           存储可变长度的文本

日期和时间:日期和时间                                          datatime

 

数字类型:该数据仅包含数字                       int、smallint、               整数

                     整数和浮点                                     tinyint、bigint

                                                                                     Float、real                       浮点型

货币数据类型:十进制货币                            money

Bit数据类型:表示是/否的数据                    bit                                       存储布尔类型

 

 

用户表(Users)

编号         id

姓名         name\username    Tom

年龄         age

成绩编号 scoreId            25

 

成绩表(Score)

编号         id                                    25

成绩    score              10

 

完善表的设计结构

1)是否允许为空值

                       

允许当前列为空,不勾就是不允许

 

 

 

Nvarchar(50):长度

 

 

 

 

2)  设置主键

 

主键不能为空

 

3)默认值得设置

 

当前列中的列属性

 

4)标识列

自动增长的列(自动添加编号;默认值为1)

不能在该列上添加数据

 

 

向表中插入数据

右击编辑200行,直接插入数据

 

 

 

建立表之间的关系

建立表间关系实际上就是实施引用完整性约束、建立主表和从表之间的关系

 

 

 

 

 

 

在哪个表上新建当前表就为从表,另一个表就为主表

 

实际:用户----(找)-----成绩

数据库:成绩为主-----用户为次

 

 

 

 

 

建立检查约束

 

Check约束,用于定义列可接受的数据格式(gender:男、女 成绩:0~150)

 

 

成绩或年龄:score >= 0 and score <= 150

性别:sex = ‘男’ or sex =’女’

Id >= 0

Email: Semail like ‘%@%’  

posted on 2018-01-10 16:59  醉里挑灯看码  阅读(242)  评论(0编辑  收藏  举报