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

  • 相关阅读:
    Java过滤器与SpringMVC拦截器的差异学习笔记
    java拦截器(Interceptor)学习笔记
    java监听器(Listener)学习笔记
    java过滤器Filter笔记
    java反射学习笔记
    程序员大佬推荐的java学习路线
    jmeter java请求
    java代码实现rabbitMQ请求
    fatjar eclipse4.4 java项目的jar包一起打包 net.sf.fjep.fatjar_0.0.32.jar
    jmeter参数化之CSV Data Set Config
  • 原文地址:https://www.cnblogs.com/QiliPING9/p/8259575.html
Copyright © 2011-2022 走看看