MySQL —— 约束

本文详细介绍了MySQL数据库中的约束类型,包括主键约束(单列与联合主键)、自增长约束及其特点、非空约束、唯一约束和默认约束。主键约束用于唯一标识表中每一行,自增长约束则自动为字段赋值,非空约束确保字段不为空,唯一约束保证字段值不重复。
摘要由CSDN通过智能技术生成

概念

约束英文:constraint
约束实际上就是表中数据的限制条件

作用

表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如用户表有些列的值(手机号)不能为空,有些列的值(身份证号)不能重复

分类

  • 主键约束(primary key)
  • 自增长约束(auto_increment)
  • 非空约束(not null)
  • 唯一性约束(unique)
  • 默认约束(default)
  • 零填充约束(zerofill)
  • 外键约束(foreign key)

1 主键约束

1.1 概念

  • MySQL主键约束是一个列或者多个列的组合,其值能唯一地标识表中的每一行,方便在数据库中尽快的找到某一行
  • 主键约束相当于唯一约束 + 非空约束的组合,主键约束列不允许重复,也不允许出现空值
  • 每个表最多只允许一个主键
  • 主键约束的关键字是:primary key
  • 当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引

1.2 操作

1.2.1 添加单列主键

创建单例主键有两种方式,一种是在定义字段的同时指定主键,一种是定义完字段之后指定主键
方式-1-语法:

#在create table语句中,通过primary key关键字来指定主键
create table 表名(
	...
	<字段名> <数据类型> primary key
	...
)

实现:

create table emp(
	eid int primary key,
	name varchar(20),
	deptId int,
	salary double
)

方式-2-语法:

#在定义字段之后再指定主键
create table 表名(
	...
	[constraint<约束名>] primary key [字段名]
)

实现:

create table emp(
	eid int,
	name varchar(20),
	deptId int,
	salary double,
	constraint pk primary key(id)
)

主键约束: 主键约束的列非空且唯一

1.2.2 添加多列联合主键

所谓的联合主键,就是这个主键是由一张表中多个字段组成的
注意:

  • 当主键是由多个字段组成时,不能直接在字段名后面声明主键约束
  • 一张表只能有一个主键,联合主键也是一个主键
    语法:
create table 表名(
	...
	primary key
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:在MySQL中,可以使用约束来确保表中的数据满足特定的条件。其中,唯一性约束是一种常见的约束类型。唯一性约束可以保证某个列的值在表中是唯一的。在创建表时,可以使用列级约束或表级约束来实现唯一性约束。列级约束是在列定义时指定的,而表级约束是在表定义的末尾指定的。例如,可以使用UNIQUE关键字来创建唯一性约束。引用\[2\]:另外,还可以使用联合约束来实现多个列的唯一性约束。联合约束表示多个字段的组合必须在表中是唯一的。在创建表时,可以使用UNIQUE关键字并指定多个字段来创建联合约束。引用\[3\]:此外,约束还可以命名,以便以后可以通过名称来引用和删除约束。在创建约束时,可以使用CONSTRAINT关键字并指定约束的名称。例如,可以使用UNIQUE关键字和CONSTRAINT关键字来创建具有名称的唯一性约束。在MySQL中,还可以使用NOT NULL约束来确保某个列的值不为空。在创建表时,可以在列定义时指定NOT NULL关键字来创建非空约束。如果插入数据时未提供非空列的值,则会引发错误。 #### 引用[.reference_title] - *1* *2* *3* [MySQL——约束(constraint)详解](https://blog.csdn.net/w_linux/article/details/79655073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值