用表组织数据

表相关的几个基本概念
⦁ 数据的完整性
数据库需要做两方面的工作:检验每行或每列数据是否符合要求

⦁ 实体完整性约束
实体完整性要求表中的每一行数据都反应不同的实体,不能存在相同的数据,通过索引、唯一约束、主键约束或标识列属性
⦁ 域完整性约束
域完整性是指给定列输入的有效性
通过数据类型等约束
⦁ 引用完整性约束
在输入或删除时引用完整性约束来保持表之间已定义的关系
学生表(主表id\name\scoreid)中的id编号对应成绩表(从表id\score)中的成绩,删除一名学生,先删除成绩中的数据,在删除学生表中的数据
引用完整性约束通过主键和外键之间的引用关系来实现
⦁ 自定义完整性约束
用户自定义完整性约束用来定义特定的规则


主键和外键
主键(Primary key)
什么是主键?
是一个或多个字段,他的值用于唯一地表示表中的某一条记录。
在两个表的关系中,主关键字用来在一个表中的引用来自另一个表中的特定记录,主关键字是一种唯一的关键字(是表定义的一部分)主键列不能包含空值

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

我怎么知道选择谁当主键?
需要两个原则:最少性和稳定性
⦁ 最少性:列数最少的键
⦁ 稳定性:指列中的数据特征,因为主键通常用来建立两个表之间的联系,所以主键数据不需要更新,理想状态下,永久不变

外键(foreign key)
什么是外键:外键就是指另外表中的主键
作用:保持数据的一致性,完整性,主要目的是控制存储在外键表中的数据

使用原则:
⦁ 为关联字段或创建外键
⦁ 所有的键都必须唯一
⦁ 避免使用复合键
⦁ 外键总是关联唯一字段

操作:建库、建表

创建数据库表
⦁ 确定列的数据类型
分类 数据类型 说明
二进制数据类型:存储非字符型文本或数据 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):长度

 


⦁ 设置主键

主键不能为空

3)默认值得设置

当前列中的列属性

4)标识列
自动增长的列(自动添加编号;默认值为1)
不能在该列上添加数据

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


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



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

实际:用户----(找)-----成绩
数据库:成绩为主-----用户为次

 

 

建立检查约束

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

成绩或年龄:score >= 0 and score <= 150
性别:sex = ‘男’ or sex =’女’
Id >= 0
Email: Semail like ‘%@%’

 

posted @ 2018-01-05 14:40  H丶  阅读(241)  评论(0编辑  收藏  举报