学习MySQL的第四天:约束(基础篇)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 下面的那一行虽然会插入失败,但是仍然是从数据库中申请到了主键。

e1cedba801004d75a2a83afea81d4a0f.png


一,概述:


1. 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

2.目的:保证数据库中数据的正确、有效性和完整性。


7893b695c32240f0bdf360893bd36300.png


注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。


二,约束演示:


29af792244284bf4bce71f4a4d9b9d99.png


验证上面的约束!!!


create table user(
    id int primary key auto_increment comment '编号',
    name varchar(10)not null unique comment '姓名',
    age int check ( age>0 &&age<=120 ) comment '年龄',
    status char(1) default '1' comment '状态',
    gender char(1) comment '性别'
) comment '用户表';

0bd26467fda14ce39dab2ce4c9f2076d.png


下面的那一行虽然会插入失败,但是仍然是从数据库中申请到了主键。


也可以通过图形化界面来创建表会更简单,只需勾选选项即可。


三,外键约束:


●概念


外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。


b67893a5b8f546ed9b8dd5ddb678beb0.png

29691bf333544dd2a62563b55c575e39.png


主从表。。  有外键的叫子表,与外键相关联的叫主表。


注意:目前上述的两张表,在数据库层面,并未建立外键关联,所以是无法保证数据的一致性和完整性的。


1.添加外键 :


85761c1da81348ec9d9baf93650435ca.png


2,删除外键:


3782b192292446d1ba4a0167f36a373d.png

 

create table cmp(
    id int auto_increment comment 'ID' primary key,
    name varchar(50) not nuLl comment '姓名',
    age int comment '年龄',
    job varchar(20) comment '职位',
    salary int comment ' 薪资',
    entrydate date comment ' 入职时间',
    managerid int comment '直属领导ID',
    dept_id int comment ' 部门ID'
) comment '员工表';
INSERT INTO cmp (id,name,age, job, salary, entrydate, managerid, dept_id) VALUES
(1, '金庸',66,'总裁' ,20000, '2000-01-01',null,5),(2, '张无忌', 20, '项目经理' ,12500, '2005-12-05', 1,1),
(3, '杨逍',33,'开发',8400, '2000-11-03', 2,1),(4, '韦一笑',48, '开发' ,11000, '2002-02-05', 2,1),
(5, '常遇春',43, '开发' ,10500, '2004-09-07', 3,1),(6, '小昭',19, '程序员鼓励师' ,6600, '2004-10-12', 2,1);
create table dept(
    id int auto_increment comment' ID' primary key,
    name varchar(50) not nuLl comment ' 部门名称'
)comment' 部门表';
INSERT INTO dept (id, name) VALUES (1,'研发部'),(2, '市场部'),(3, '财务部'),(4,'销售部'),(5,'总经办');


3,删除/更新行为:


8c2843dae0a84c7bb4ef372b6de4d42f.png

d200bcb463dd430ab9c88271096c3bfb.png

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
57 3
|
2月前
|
NoSQL 关系型数据库 MySQL
2024Mysql And Redis基础与进阶操作系列(4-2)作者——LJS[含MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法]
24MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法(4-2) 学不会你来砍我!!!
|
9天前
|
存储 SQL 关系型数据库
【MySQL基础篇】MySQL约束语法
文章介绍了MySQL中表的约束概念,包括非空、唯一、主键、默认和外键约束,以及如何在创建和修改表时指定这些约束。外键约束用于保持数据的一致性和完整性,文章通过示例展示了添加、删除外键的语法,并讨论了不同的删除/更新行为,如CASCADE和SETNULL。
【MySQL基础篇】MySQL约束语法
|
9天前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
8天前
|
存储 关系型数据库 MySQL
MySQL(条件约束)
为了校验数据,让数据的正确性能够得到保证,约束,能够引进更多的检查操作,但是也会增加系统的成本开销
|
2月前
|
关系型数据库 MySQL 数据处理
MySQL函数与约束
MySQL 提供了丰富的函数和强大的约束机制,用于数据处理和完整性维护。通过掌握这些工具,可以有效地管理和分析数据库中的数据,确保数据的一致性和准确性。无论是在日常数据查询中使用内置函数,还是在数据库设计中应用各种约束,都是确保数据库系统稳定、高效运行的关键。希望本文对您理解和应用 MySQL 函数与约束有所帮助。
36 1
|
3月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
109 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
3月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
333 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
3月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
118 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
3月前
|
关系型数据库 MySQL 数据库
mysql关系型数据库的学习
mysql关系型数据库的学习
26 0