Oracle数据库中,约束具体包括非空(NOT NULL)约束、唯一键(UNIQUE)约束、主键(PRIMARY KEY)约束、外键(FOREIGN KEY)约束和检查(CHECK)约束五种。
1:主键(PRIMARY KEY)约束
什么是主键?在一张表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(或主码),这里说"字段集"是因为主键可能用一个字段或者多个字段来表示。主键唯一确定每一条记录的完整性,其值不能重复,不能空值。可以由一列或者多列构成。举例来看:学生表(学号, 姓名, 性别,邮箱,专业编号),这里学号是主键,一个学号id就可以唯一标识一个学生的信息。另一个表:学生选课表(学号, 课程号, 成绩),这里(学号, 课程号)是主键,因为一个学号(即一个学生)可以选择多门课程,一个课程号(即一个课程)可以被多个学生选择,无法用一个字段来标识一条学生选课的信息记录,而使用(学号, 课程号)这两个字段作为关键字就可以唯一标识学生的选课信息。
2:外键(FOREIGN KEY)约束
什么是外键?一张表的非主属性是另一个表的主属性就是这个表的外键。这里有两个分别为: 学生表(学号, 姓名, 性别,邮箱,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。学生表中主键是学号,专业信息表中主键是专业编号。学生表中的非主属性专业编号恰好是专业信息表中的主键。我们就称这个专业编号是学生表的外键。像这样,一个表的非主属性是另一个表的主属性,该非主属性就是外键
拓展概念:父表和子表
什么是父表和子表?有两张表A表和B表,表A中的一个字段id是外键,表B中的一个字段id是主键,那么称B为父表,A为子表。就是说一个表中外键字段(相当于这里的A表)是另一个表中(相当于这里的B表)的主键。 还是上面的两个表来举例理解:学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。这里学生表是子表,专业信息表是父表。
设置表的外键的作用在于建立与父表的联系,比如在专业信息表中某个专业编号的id为'1001',删除这个id后,则学生表中的专业编号id为'1001'的记录也随着删除,这样做的目的在于保证表的完整性。
3、非空约束(not null):
什么是非空约束?就是约束的字段,不能为NULL值,必须给定具体的数据,以保证该字段不为空。我们在创建表,给字段添加非空约束,设置后就不能给该字段定义为空值,此约束为列级约束(在建表说明约束时,只能跟在列级定义后)比如:创建学生表,可以设置姓名为非空约束,则姓名都是非空值,不能为空值。
4、唯一约束(unique):防止输入重复信息,约束的字段具有唯一性,不可重复【列级约束】 字段后加unique。比如我们创建学生表,则邮箱是唯一的,可以添加唯一性约束。
5、检查约束,对输入的值进行检查,限制输入的值。对该列数据的范围、格式的限制(如:年龄需要比0大、性别只能有两种等),【目前MYSQL不支持,oracle数据库支持】
表、字段、记录、属性、列、元组定义(自己看论坛学习的,可能有不对的地方,请大家指教)
一、字段:某一个事物的一个特征,或者说是属性,学生表中,的学号,姓名,性别等就是一个个属性。
二、记录(元组):事物特征的组合,可以描述一个具体的事物。比如学生表中,学号为1的那一整行,这一整行可以描述张三这个人的特征这样的一个具体事物。元组是记录的另个一称呼。
三、表:记录的组合 表示同一类事物的组合,表,相当于具有相似特征事物的一个集合。比如学生表,这就是一个表格,还可以由公司员工表,学校的教师表等。
四、列:字段的另一种称谓,比如学生表中的学号,姓名,性别等等。
五、元组:记录的另一种称谓,详见上面的记录。
参考:
https://www.cnblogs.com/myseries/p/5222659.html
https://www.cnblogs.com/seven7seven/p/3730825.html
https://blog.csdn.net/njyr21/article/details/79351818
https://blog.csdn.net/qq_40329222/article/details/79513301
https://blog.csdn.net/aiming66/article/details/51426263