MySQL数据库:第十三章:常见约束

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL数据库:第十三章:常见约束

回退至Mysql数据库理论与实战

#常见约束

理解:约束是用于限定表的字段的,为了保证数据表的完整性

常见约束:★

(not null)NOT NULL 非空:用于限定某字段为必填项,比如姓名、id等

(default)DEFAULT 默认:用于限定某字段如果没有显式的插入值,默认存储的选项,比如性别、成绩等

(primary key)PRIMARY KEY主键:用于限定某字段是唯一的、非空的,比如学号

(unique)UNIQUE 唯一:用于限定某字段是唯一的,可以为空,比如:座位号

(check)CHECK检查:用于限定某字段必须满足指定条件,比如

check (gender = ‘男’ or gender =‘女’)

但是:mysql不支持

(foreign key)FOREIGN KEY外键:用于限定两个表的关系,比如学员信息表和专业表通过专业编号关联

【面试题】主键和唯一的对比

主键:唯一、非空、一个表至多有一个主键

唯一:唯一、可以为空、一个表可以有多个唯一键

#一、创建表时添加约束 √

分类:

列级约束:直接放在字段的后面,对当前字段有效

not null、default、unique、primary key

表级约束:放在所有字段的下面,对显式指定的字段有效

primary key、unique、foreign key

二者的区别:

①表级约束可以起名,语法:

【constraint 约束名】 约束类型(字段)

其中主键起名后,也无效!

②列级约束不能起名

语法:

create table 表名(

字段名 字段类型 约束类型,

字段名 字段类型 约束类型,

约束

)

#示例1:主键和唯一放在列级约束上

CREATE TABLE grade(
  id INT PRIMARY KEY,
  gradename VARCHAR(20)
)
CREATE TABLE testTab1(
  id INT PRIMARY KEY,#主键
  tname VARCHAR(20) NOT NULL,#非空
  gender CHAR DEFAULT '男',#默认
  seat INT  UNIQUE NOT NULL,#唯一+非空
  gradeId INT ,
  FOREIGN KEY(gradeid) REFERENCES grade(id)
);

#示例2:主键和唯一放在表级约束上

DROP TABLE IF EXISTS testTab1;
CREATE TABLE testTab1(
  id INT ,#主键
  tname VARCHAR(20) NOT NULL,#非空
  gender CHAR DEFAULT '男',#默认
  seat INT  ,#唯一+非空
  gradeId INT ,
  FOREIGN KEY(gradeid) REFERENCES grade(id),
  PRIMARY KEY(id),
  UNIQUE(seat)
);

#二、修改表时添加约束【了解】

DROP TABLE IF EXISTS testTab1;
CREATE TABLE testTab1(
  id INT ,
  tname VARCHAR(20) ,
  gender CHAR,
  seat INT  ,
  gradeId INT 
);

#1、添加非空

ALTER TABLE testTab1 MODIFY COLUMN tname VARCHAR(20) NOT NULL;

#2、添加默认

ALTER TABLE testTab1 MODIFY COLUMN gender CHAR DEFAULT ‘女’;

#3、添加唯一

#列级约束的方式

#ALTER TABLE testTab1 MODIFY COLUMN seat int unique;

#表级约束的方式

ALTER TABLE testTab1 ADD CONSTRAINT uq UNIQUE(seat);

#4、添加主键

#列级约束的方式

ALTER TABLE testTab1 MODIFY COLUMN id INT PRIMARY KEY;

#表级约束的方式

#ALTER TABLE testTab1 ADD primary key(id);

#5、添加外键

ALTER TABLE testTab1 ADD CONSTRAINT fk_t_g FOREIGN KEY(gradeid) REFERENCES grade(id);

#三、修改表时删除约束【了解】

#1、删除非空
ALTER TABLE testTab1 MODIFY COLUMN tname VARCHAR(20) NULL;
#2、删除默认
ALTER TABLE testtab1 MODIFY COLUMN gender CHAR;
#3、删除唯一(唯一约束的名字默认和字段名一致)
ALTER TABLE testtab1 DROP INDEX seat;
#4、删除主键
ALTER TABLE testtab1 DROP PRIMARY KEY;
#5、删除外键
ALTER TABLE testtab1 DROP FOREIGN KEY fk_t_g;
SHOW INDEX FROM testtab1;
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
NoSQL 关系型数据库 MySQL
2024Mysql And Redis基础与进阶操作系列(4-2)作者——LJS[含MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法]
24MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法(4-2) 学不会你来砍我!!!
|
2月前
|
存储 SQL 关系型数据库
【MySQL基础篇】MySQL约束语法
文章介绍了MySQL中表的约束概念,包括非空、唯一、主键、默认和外键约束,以及如何在创建和修改表时指定这些约束。外键约束用于保持数据的一致性和完整性,文章通过示例展示了添加、删除外键的语法,并讨论了不同的删除/更新行为,如CASCADE和SETNULL。
【MySQL基础篇】MySQL约束语法
|
2月前
|
存储 关系型数据库 MySQL
MySQL(条件约束)
为了校验数据,让数据的正确性能够得到保证,约束,能够引进更多的检查操作,但是也会增加系统的成本开销
|
3月前
|
关系型数据库 MySQL 数据处理
MySQL函数与约束
MySQL 提供了丰富的函数和强大的约束机制,用于数据处理和完整性维护。通过掌握这些工具,可以有效地管理和分析数据库中的数据,确保数据的一致性和准确性。无论是在日常数据查询中使用内置函数,还是在数据库设计中应用各种约束,都是确保数据库系统稳定、高效运行的关键。希望本文对您理解和应用 MySQL 函数与约束有所帮助。
49 1
|
8月前
|
关系型数据库 MySQL
MYSQL-多表操作-外键约束
MYSQL-多表操作-外键约束
|
8月前
|
关系型数据库 MySQL
MYSQL:约束(主键约束)
MYSQL:约束(主键约束)
|
4月前
|
Ubuntu 关系型数据库 MySQL
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
102 4
|
5月前
|
SQL 关系型数据库 MySQL
MySQL中外键的使用及外键约束策略
这篇文章讨论了MySQL中使用外键的重要性,包括外键的概念、不使用外键可能导致的问题、如何设置外键约束以及不同的外键约束策略(如CASCADE和SET NULL),并通过示例演示了这些概念。
MySQL中外键的使用及外键约束策略
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库基础:约束
约束是对数据库表中字段施加的规则,确保数据的正确性、有效性和完整性。主要分为非空约束、唯一约束、默认约束、主键约束和外键约束。非空约束禁止字段值为null;唯一约束确保字段值唯一,允许null值重复;默认约束设定默认值;主键约束结合非空与唯一约束,并可设为自增型;外键约束则通过关联其他表的主键,保证数据一致性。检查约束确保字段值满足特定条件。
94 1
|
6月前
|
数据采集 关系型数据库 MySQL
在 MySQL 中使用约束
【8月更文挑战第11天】
100 0
在 MySQL 中使用约束