MySQL约束constraint

这篇具有很好参考价值的文章主要介绍了MySQL约束constraint。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

约束canstraint,约束实际上就是表中数据的限制条件。表在设置的时候加入约束的目的是为了保证表中的记录完整性和有效性,比如用户的某些数据不能为空。

常用约束:

MySQL约束constraint

添加约束的两种方法:

  1. 在创建表的时候添加 create
  2. 在修改标的时候添加 alter

MySQL约束constraint

一:主键约束 primary key

MySQL约束constraint

注意:

  1. 主键约束的列非空且唯一,不能是null,不能重复
    2.联合主键的每一列都不能为null

1.添加单列主键

创建单列主键有两种方式,一种是在定义字段的同时指定主键,一种是定义完字段之后指定主键。

MySQL约束constraint

use name;
create table emp1(
	eid int primary key,
	name varchar(20),
	edptId int,
	salary double
);

MySQL约束constraint

constraint <约束名> 可以省略(相当于给约束起一个名字)

create table emp2(
	eid int,
	name varchar(20),
	deptId int,
	salary double,
	constraint pk1 primary key(eid)   -- constraint pk1  可以省略

);

2.添加多列主键(联合主键)

MySQL约束constraint

-- 联合主键,就是由多个字段组成一个主键约束
create table emp3(
	name varchar(20),
	deptId int,
	salary double,
	constraint pk2 primary key(name,deptId)
);
--   空字符串不等于null
insert into emp3 values("",20,30);
-- 主键不能为空,
insert into emp3 values(null,29,32);
	

3.通过修改表结构添加主键

MySQL约束constraint

use name;
-- 添加单列主键
create table emp4(
	eid int,
	name varchar(20),
	deptId int,
	salary double
);
	
alter table emp4 add primary key(eid);
-- 添加多列主键
create table emp5(
	eid int,
	name varchar(20),
	deptId int,
	salary double
);

alter table emp5 add primary key(name,deptId);

4.删除主键约束

MySQL约束constraint

-- 删除主键
-- 1.删除单列主键
alter table emp1 drop primary key;
-- 2.删除多列主键
alter table emp5 drop primary key;
	

二:自增长约束 auto_increment

在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。通过给字段添加 auto_increment 属性来实现主键自增长

 默认情况下,auto_increment的初始值是 1,每新增一条记录,字段值自动加 1。
 一个表中只能有一个字段使用 auto_increment约束,且该字段必须有唯一索引,以避免序号重复(即为主键或主键的一部分)。
 auto_increment约束的字段必须具备 NOT NULL 属性。
 auto_increment约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT 等。
 auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,auto_increment就会失效。

1.添加自增长约束

MySQL约束constraint

create table t_user1(
	id int primary key auto_increment,
	name varchar(20)
);

2. 指定自增字段初始值

如果第一条记录设置了该字段的初始值,那么新增加的记录就从这个初始值开始自增。例如,如果表中插入的第一条记录的 id 值设置为 5,那么再插入记录时,id 值就会从 5 开始往上增加

MySQL约束constraint

-- 方式一:创建表的时候指定
create table t_user2(
	id int primary key auto_increment,
	name varchar(20)
)auto_increment = 100;

insert into t_user2 values (null,"张三");

MySQL约束constraint

-- 方式二:创建表之后指定
create table t_user3(
	id int primary key auto_increment,
	name varchar(20)
);
alter table t_user3 auto_increment = 200;

MySQL约束constraint

三:非空约束 not null

MySQL 非空约束(not null)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。

注意:
MySQL约束constraint

1.添加非空约束

MySQL约束constraint

-- 1.创建表时指定非空约束
create table t_user6(
	id int,
	name varchar(20) not null,
	address varchar(20) not null

);


insert into t_user6(id) values (1007);  -- 不可以
insert into t_user6(id,name,address) values(1001,null,null); --不可以
insert into t_user6(id,name,address) values(1001,'NULL','NULL');  --可以(字符串null)
insert into t_user6(id,name,address) values(1001,'','');  -- 可以(空串)

MySQL约束constraint


-- 2.创建非空约束,创建表之后指定
create table t_user7(
	id int,
	name varchar(20),  -- 指定非空约束
	address varchar(20)

);
alter table t_user7 modify name varchar(20) not null;

2.删除非空约束

MySQL约束constraint文章来源地址https://www.toymoban.com/news/detail-419021.html

-- 删除非空约束
alter table t_user7 modify name varchar(20);
alter table t_user7 modify address varchar(20);

四: 唯一性约束 unique

默认约束 default

零填充约束 zerosfill

外键约束 foreign key

到了这里,关于MySQL约束constraint的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java——它要求用户输入一个整数(实际上是一个字符串),然后计算该整数的平方值,并将结果输出。

    这是一个Java程序,它要求用户输入一个整数(实际上是一个字符串),然后计算该整数的平方值,并将结果输出。程序的基本流程如下: 首先,声明并初始化变量data和result,它们的初始值都为0。 然后,输出提示信息,要求用户输入一个整数。 接下来,使用BufferedReader类从

    2024年02月11日
    浏览(44)
  • Python 中的 TypeError: an integer is required 错误通常是由于我们在代码中使用整数(integer)参数的地方实际上传递

    Python 中的 TypeError: an integer is required 错误通常是由于我们在代码中使用整数(integer)参数的地方实际上传递了非整数类型的参数,例如字符串(string)或浮点数(float)。这个错误可以在编写 Python 程序时遇到,但也可能是在编写 Python 脚本时遇到。 下面是解决 TypeError: an i

    2024年02月15日
    浏览(44)
  • 【错误记录】约束布局报错 ( Missing Constraints in ConstraintLayout. This view is not constrained. It only has )

    约束布局中 , 如果不给组件添加约束 , 就会报如下错误 : Design 界面拖动添加约束操作 : 手动拖动 布局上下左右的 约束按钮 , 添加约束 ; Code 代码添加约束 : 在代码中 , 添加 如下 上下左右的 约束 ; app:layout_constraintBottom_toTopOf=“@+id/guideline3” app:layout_constraintEnd_toEndOf=“parent”

    2024年02月08日
    浏览(44)
  • 双目立体匹配中的极线约束(Epipolar Constraint),基础矩阵(Fundamental Matrix),本质矩阵(Essential Matrix),对极几何(2D-2D)

    考虑一个SLAM中一个常见的问题:如果两个相机在不同位置拍摄同一个物体,或者一个运动的相机在不同时刻拍摄同一物体,我们有理由相信两张图片中各点存在着某种几何关系,这种关系可以用对极几何来描述。对极几何描述了两帧图像中各像素的射影关系(或者说是各匹配

    2024年02月05日
    浏览(41)
  • 通用的改进遗传算法求解带约束的优化问题(MATLAB代码精讲、实际工程经验分享)

    在对多约束、非线性问题的求解上,传统线性规划等方法往往无法有效求解(求解时间过长、无法处理非线性约束等。 进化算法是一类强有力的工具,已经在多个领域有了较为成功的应用。然而,在利用遗传算法、粒子群等等进化算法求解实际的优化问题时,还存在许多困难

    2023年04月19日
    浏览(87)
  • MySQL-13.MySQL约束

    1.1 为什么需要约束 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成的无效操作或错误信息而提出的。 为了保证数据的完整性,SQL规范以约束的方式对 表数据进行额

    2024年01月20日
    浏览(34)
  • [MySQL] MySQL表的约束

      在前面的文章中提到了约束,是通过 数据类型对字段产生的约束。但是数据类型约束很单一,需要有一些额外的约束,更好的 保证数据的合法性 ,从业务逻辑角度保证数据的正确性。于是就引入了表的约束。   表的约束很多,这里主要介绍如下几个: null/not null、defaul

    2024年02月05日
    浏览(31)
  • [MySQL]MySQL表的约束

    数据库通过技术手段限制数据的插入,使得插入的数据一定是符合规则的。 约束是在创建表的时候定义的。 从程序员角度, 约束使得程序员必须得往数据库中插入符合条件的数据。 从数据库角度, 凡是插入进来的数据都是符合预期的。 其实数据类型就是一种约束,举个例

    2024年02月13日
    浏览(34)
  • 【⑪MySQL | 约束(一)】概念 | 非空 | 唯一 | 主键 | 自增长约束

    ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL约束的概念 | 非空约束 | 唯一约束 | 主键约束 | 自增长约束的分享 ✨ 1. 约束(Constraint)概念 1.1 为什么需要约束 对于已经创建好的表,虽然字段的数据类型决定了所能存储的数据类型,但是表中所存储的数据是否合法并没有进行

    2024年02月16日
    浏览(43)
  • 【⑫MySQL | 约束(二)】外键 | 默认值 | 检查约束 — 综合案例

    ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL外键 | 默认值 | 检查约束 以及综合案例的分享 ✨ 6. 外键约束(FOREIGN KEY,FK) 前面介绍的完整性约束都是在单表中进行设置,而外键约束则保证多个表(通常为两个表)之间的参照完整性,即构建于两个表的两个字段之间的参照关

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包