首页 > 其他分享 >约束

约束

时间:2022-10-26 19:23:27浏览次数:51  
标签:父表 外键 约束 key cno 子表

创建表的时候可以给字段添加相应的约束,约束的目的:保证表中数据的合法性,唯一性,有效性。

非空约束(not null):约束字段不能为NULL

唯一约束(unique):约束字段不能重复

主键约束(primary key):约束字段既不能为NULL也不能重复

外键约束(foreign key):阿里巴巴手册,已经禁止使用外键了

检查f约束(check):Oracle数据库有check约束,但是Mysql没有。

注意:我们主要还是记住英文,平时使用的都是英文!

1.非空约束 not null

CREATE TABLE mytable(
   id  INT(10),
   username VARCHAR(30) NOT NULL,    #添加非空约束
   PASSWORD VARCHAR(30)
);

测试

insert into mytable(id,password) values(1,'123') ;  #由于我们的的用户字段要求非空,所以会执行失败
ERROR 1364(HY000) : Filed 'username' doesn't have a default value

2.唯一约束(unique)

列级约束

表级约束

测试

 

3.主键约束(primary key) *
必须记住:一张表的主键约束只有一个 ;最好与别的字段不相关,仅仅代表唯一标识 !

CREATE TABLE mytable(
   id  INT(10) PRIMARY KEY,       #添加主键约束【属于列级约束】
   username VARCHAR(30), 
   email VARCHAR(30)
);

测试

 

【表级约束】

主键值自增:在primary key后面添加auto_increment(从1开始,递增);

了解:Oracle也提供一个自增序列叫做序列(sequence);

4.外键约束(foreign key)
关于外键约束的相关术语

  • 外键约束:foreign key
  • 外键字段:添加有外键约束的字段
  • 外键值:外键字段中的每一个值。

t_student中的classno字段引用t_class表中的cno字段,此时t_student表叫做子表。t_class表叫做父表。

顺序要求:

  • 删除数据的时候,先删除子表,再删除父表。
  • 添加数据的时候,先添加父表,在添加子表。
  • 创建表的时候,先创建父表,再创建子表。
  • 删除表的时候,先删除子表,在删除父表。

使用外键【Alibaba规范不推荐使用】

create table t_class(
    cno int ,
    cname varchar(255) , #被引用:父表     primary key(cno) ); create table t_student(     sno int ,     sname varchar(255) , #子表     classno int ,     foreign key(classno) reference t_class(cno) ); #t_student中的classno字段引用t_class表中的cno字段,此时t_student表叫做子表。t_class表叫做父表

 

  • reference是引用;
  • 外键可以为NULL;
  • 此时classno中的数据来自cno;
  • 外键引用的字段不一定是主键,但是起码是被unique约束;

标签:父表,外键,约束,key,cno,子表
From: https://www.cnblogs.com/wyh518/p/16829705.html

相关文章

  • Odoo-----计算字段、depnds,onchange 机制、模型约束
    1计算字段和默认值问题​字段通过调用模型的方法的实时计算获得,一般都是compute属性为主的方法,这个计算方法通过计算self每条记录设置的的值,self是一个有记录......
  • 时序约束 input_delay, output_delay
    https://zhuanlan.zhihu.com/p/150534875https://blog.csdn.net/qq_39507748/article/details/114746186https://blog.csdn.net/zyn1347806/article/details/108649518......
  • 多个数据库表建立外键约束的相关理解
    一、知识准备所谓“外键约束”,就是一个表中的FOREIGNKEY与另一个表中的UNIQUEKEY(唯一约束的建,一般为主键)通俗一些的话,就是将单独的没有啥关系的表利用一些共同点结合......
  • 约束-外键约束
    外键约束:foreignkey 让表于表产生关系从而保证数据的正确性数据表的创建和数据添加sql语句--创建emp表CREATETABLEemp(idintPRIMARYKEYauto_inc......
  • 约束-主键约束-自动增长
    自动增长1、概念:如果某一列是数值类型的,使用auto_increment可以来完成值得自动增长2、在创建表时,添加主键约束,并且完成主键自增长createtablestu(--给id......
  • 约束-概述、非空约束
    约束-概述概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性分类:1、主键约束:primarykey2、非空约束:notnull3、唯一约束:unique4、外键约束:foreignkey......
  • 骨骼跟随路径:IK样条线约束
    骨骼跟随路径: 创建没有IK链的骨骼结构。选择解算器开始位置的骨骼或对象。选择“动画”菜单>“IK解算器”>“样条线IK解算器”。在视口中,将光标移动......
  • 刚体模拟1-无约束刚体动力学 Rigid Body Simulation I—Unconstrained Rigid Body Dyn
    介绍这部分课程笔记涉及刚体动力学问题。为了帮助您开始模拟刚体运动,我们提供了实现这些笔记中讨论的大多数概念的代码片段。这部分课程笔记分为两部分。第一部分涵盖了......
  • 数据库(六)约束
    sql约束概念对表中的数据进行进一步的限制保证数据的正确性、有效性、完整性违反约束的不正确数据无法插入到表中常见约束主键:PRIMARYKEY非空:NOTNULL......
  • POJ 1201 Intervals 差分约束
    ​​http://poj.org/problem?id=1201​​TLE了很久,因为用了cin.....思路和其他差分约束差不多,​​http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html​​......