zoukankan      html  css  js  c++  java
  • 表相关的几个基本概念

    1. 数据的完整性

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

    1)       实体完整性约束

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

    2)       域完整性约束

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

    通过数据类型等约束

    3)       引用完整性约束

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

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

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

    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

    姓名         nameusername    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 ‘%@%’  

  • 相关阅读:
    PHP 使用 GET 传递数组变量
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 二进制数数
    Java实现 蓝桥杯 算法训练 二进制数数
    Java实现 蓝桥杯 算法训练 二进制数数
  • 原文地址:https://www.cnblogs.com/QiliPING9/p/8259575.html
Copyright © 2011-2022 走看看