Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据库表的约束条件[通俗易懂]

数据库表的约束条件[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-11-08 06:37:03
发布于 2022-11-08 06:37:03
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

文章目录

1.主键约束

主键约束可以用两种方式定义:列级主键约束和表级主键约束

列级主键约束演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table dept_htlwk(
deptno varchar(20) primary key, --列级约束条件 
dname varchar(20),
location varchar(40)
);

表级主键约束演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table dept_htlwk( 
deptno varchar(20) ,
dname varchar(20) ,
location varchar(40) ,
constraint dept_htlwk_deptno_pk primary key (deptno) );

2.非空约束

非空约束只有列级定义方式,即非空约束只能定义在列级

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table dept_htlwk_bak1(
deptno varchar(20) primary key,
dname varchar(30) not null,//非空约束
location varchar(50));

非空约束如何命名?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table dept_htlwk_bak1(
deptno varchar(20) primary key,
dname varchar(30) constraint dept_htlwk_bak1_dname_nn not null,//非空约束
location varchar(50));

3.唯一约束

唯一约束可以用两种方式定义:列级唯一约束和表级唯一约束

列级唯一约束演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table student(
student_id bigint(20) primary key,
student_name varchar(30) not null,
email varchar(30) unique,
student_age tinyint(3));

表级唯一约束演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 create table student(
student_id bigint(20),
student_name varchar(30) not null,
email varchar(30),
age tinyint(3),
constraint student_id_pk primary key(student_id),//表级主键约束
constraint student_email_uk unique(email) );//表级唯一约束

4.检查约束

检查约束可以用两种方式定义:列级检查约束和表级检查约束

列级检查约束演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table student(
student_id bigint(20) primary key,
student_name varchar(30) not null,
email varchar(30) unique,
age tinyint(3) check(age > 10),
gender char(1) check(gender in('F', 'M') ) --'F'代表女生 ;'M'代表男生
);

表级检查约束演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table student( 
student_id bigint(20),
student_name varchar(10) not null,
email varchar(30),
age tinyint(3),
gender char(1), --'F'代表女生 ;'M'代表男生
constraint student_id_pk primary key(student_id),
constraint student_email_uk unique(email),
constraint student_age_ck check(age > 10),
constraint student_gender_ck check(gender in('F', 'M', 'f', 'm'))
);

MySQL关于check约束无效的解决办法

5.外键约束

外键约束只有表级定义方式,即外键约束只能定义在表级

外键约束演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table student( 
student_id bigint(20),
student_name varchar(20) not null, 
email varchar(30) unique,
gender char(1),
age tinyint(3),
major_id bigint(20),
constraint student_id_pk primary key(student_id),
constraint student_gender_ck check (gender in ('F','M','f','m')),
constraint student_major_id_fk foreign key (major_id) references major(major_id) on delete set null);

解释: on delete set null 一旦主表数据删除,从表关联数据置为null on delete cascade 级联删除,主表数据删除,从表关联数据也删除

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182418.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL数据查询之多表查询[通俗易懂]
注意: 如果不加条件直接进行查询,则会出现以下效果,这种结果我们称之为 笛卡尔乘积
全栈程序员站长
2022/07/21
8.4K0
MySQL数据查询之多表查询[通俗易懂]
MySQL(五)之DDL(数据定义语言)与六大约束
前言 前面在数据库的讲解中,其实很多东西都非常的细节,在以前的学习过程中我都是没有注意到的。可能在以后的工作中会碰到所以都是做了记录的。 接下来,我将分享的是MySQL的DDL用来对数据库及表进行操作的。   mysql中保存了很多数据库、一个数据库中可以保存很多表。   对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。  注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)   前提:表是在数据库下的,所以要先确实使用哪个数据库。 一、DDL之
用户1195962
2018/01/18
2.1K0
MySQL(五)之DDL(数据定义语言)与六大约束
6-数据类型与常见约束
添加外键时在最后加上ON UPDATE CASCADE , ONDELETE CASCADE
Ywrby
2022/10/27
7310
MySQL常见约束条件「建议收藏」
约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败! 约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件
全栈程序员站长
2022/11/04
1.7K0
一篇文章带你彻底了解MySQL各种约束
MySQL约束 <1> 概念 是一种限制,它是对表的行和列的数据做出约束,确保表中数据的完整性和唯一性。 <2> 使用场景 创建表的时候,添加约束 <3> 分类 default: 默认约束, 域完整性 not null: 非空约束,域完整性 unique: 唯一约束,实体完整性 primary key: 主键约束,实体完整性 foreign key: 外键约束,参照完整性 check: 检查约束(MySQL不支持),域完整性 auto_increment: 自增长约束 unsigned: 无符号约束 zer
ruochen
2021/02/14
1K0
一篇文章带你彻底了解MySQL各种约束
oracle 表操作
本文记录 oracle 环境下对表的创建、字段处理(增、删、改、重命名)、删除、重命名操作,其中包含了在创建表时常用的约束条件及数据类型。
我与梦想有个约会
2023/10/20
2200
oracle 表操作
MySQL之多表查询
阅读目录 一 多表联合查询 二 多表连接查询 三 复杂条件多表查询 四 子语句查询 五 其他方式查询 六 SQL逻辑查询语句执行顺序(重点) 七 外键约束 八 其他约束类型 九 表与表之间的关系 一.多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment PRIMARY KEY, dname VARCHAR(50) not null COMMENT '部门名称' )ENG
人生不如戏
2018/04/10
8.7K0
MySQL之多表查询
操作数据表
打开数据库    use 数据库 ---- use mydata 查看数据库    show databases 显示当前用户打开的数据库   SELECT DATABASE(); 创建数据表 语法:CREATE TABLE [IF NOT EXISTS] table_name(             column_name data_type             ) 例子:创建student数据表             CREATE TABLE student(              
用户1624346
2018/04/18
8790
超详细的MySQL三万字总结[通俗易懂]
Java 中创建对象: Student s = new Student(1, “张三”) 存在内存中 学习了 Java IO 流:把数据保存到文件中。
全栈程序员站长
2022/08/27
3.5K0
超详细的MySQL三万字总结[通俗易懂]
Oracle用户操作、数据类型、表格修改、约束设置详解
b) 表级别简化版定义主键约束, 省略约束名 create table student (
时间静止不是简史
2020/07/27
7950
MySQL数据库基础:约束
如果已经手动指定了null的话,就按照手动指定的,用户指定的优先级高于默认的优先级
2的n次方
2024/10/15
1490
MySQL数据库基础:约束
MySQL数据库,从入门到精通:第十三篇——MySQL数据表约束详解
在MySQL数据库中,约束是一种对数据表中数据进行限制和检查的方法,可以保证数据表中数据的完整性和一致性。本文将深入剖析MySQL中的各种约束,包括非空约束、唯一性约束、主键约束、自增列、外键约束、默认值约束以及CHECK约束等等,同时结合开发场景给出约束使用和实践的技巧和方法,帮助读者更好地掌握MySQL中数据表相关操作的技巧和方法。
默 语
2024/11/20
3790
MySQL数据库,从入门到精通:第十三篇——MySQL数据表约束详解
第13章_约束
数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
程序员Leo
2023/08/07
5200
第13章_约束
SQL语句汇总(一)——数据库与表的操作以及创建约束
首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉。  
_DIY
2020/05/29
1.1K0
SQL语句汇总(一)——数据库与表的操作以及创建约束
关系型数据库 MySQL 常见的几种约束
对于关系型数据库 MySQL 前面一节已经讲过表相关操作,如感兴趣戳此直达[关系型数据库 MySQL 表相关操作],对于已经创建好的表,虽然字段的数据类型决定了所能存储的数据类型,但是表中所存储的数据是否合法并没有进行检查,想要对这些数据进行检查时,就可以通过约束来完成。
JiekeXu之路
2019/08/15
2.8K0
【MySql】表的约束
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过技术收到逼迫程序员插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。约束的最终目标:保证数据的完整性和可预期性所以需要更多的约束。 表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primarykey,auto_increment,unique key 。
平凡的人1
2023/10/15
4100
【MySql】表的约束
MySql基础之约束
给某个字段/某列指定默认值,一旦设置默认值,在插入数据时,如果此字段没有显式赋值,则赋值为默认值。
冬天vs不冷
2025/01/21
2070
MySql基础之约束
SQL 基础(二)数据表的创建、约束、修改、查看、删除
定义约束名称后(若不定义,系统将自动创建),若数据录入错误,系统将提示报错信息,无 NOT NULL 约束下,系统缺省值为 NULL
攻城狮杰森
2022/06/03
1.3K0
SQL 基础(二)数据表的创建、约束、修改、查看、删除
day05_MySQL学习笔记_02
    注:每个表中至少要有一个主键。 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。 
黑泽君
2018/10/11
2.2K0
day05_MySQL学习笔记_02
MySQL | 数据库表字段约束
数据定义语言:字段约束 数据库的范式 构造数据库必须遵循一定的规则,这种规则就是范式 目前关系数据库有 6 种范式,一般情况下,只满足第三范式即可 第一范式:原子性 第一范式是数据库的基本要求,不满足这一点就不是关系数据库 数据表的每一列都是不可分割的基本数据项,同一列中不能有多个值,也不能存在重复的属性。 第二范式:唯一性 数据表中的每条记录必须是唯一的。为了实现区分,通常要为表上加一个列用来存储唯一标识,这个唯一属性列被称作主键列 第三范式:关联性 每列都与主键有直接关系,不存在传递依赖 依
Zkeq
2022/05/18
6K0
MySQL | 数据库表字段约束
相关推荐
MySQL数据查询之多表查询[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验