mysql添加,删除约束,修改各种constraint

MySQL中的约束,添加约束,删除约束,以及一些其他修饰 MySQL中的约束,添加约束,删除约束,以及其他的一些修饰:一.NOT NULL(非空约束) 添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) NOT NULL); 2)通过ALTER 语句 ALTER TABLE t_user MODIFY user_id INT(10) NOT NULL; ALTER ... 阅读详情
AI摘要

本文详细介绍了MySQL中的各种约束,包括非空约束、唯一约束、主键约束、外键约束及检查约束的添加与删除方法,同时还涵盖了自增长、零填充、默认值、无符号等修饰符的使用。

MySQL中的约束,添加约束,删除约束,以及其他的一些修饰:
一.NOT NULL(非空约束)

添加非空约束

1)建表时直接添加

CREATE TABLE t_user(user_id INT(10) NOT NULL);

2)通过ALTER 语句

ALTER TABLE t_user MODIFY user_id INT(10) NOT NULL;

ALTER TABLE t_user CHANGE user_id user_id INT(10) NOT NULL;

删除非空约束

1)ALTER TABLE t_user MODIFY user_id INT(10);

2)ALTER TABLE t_user CHANGE user_id user_id INT(10);


二.UNIQUE(唯一约束)

添加唯一约束

1)建表时直接添加

CREATE TABLE t_user(user_id INT(10) UNIQUE);

CREATE TABLE t_user(

user_id INT(10),

user_name VARCHAR(30),

CONSTRAINT UN_PHONE_EMAIL UNIQUE(user_id,user_name)#复合约束

);

CREATE TABLE t_user(

user_id INT(10),

UNIQUE KEY(user_id)

);

2)通过ALTER语句

ALTER TABLE t_user MODIFY user_id INT(10) UNIQUE;

ALTER TABLE t_user CHANGE user_id user_id INT(10) UNIQUE;

ALTER TABLE t_user ADD UNIQUE(user_id);

ALTER TABLE t_user ADD UNIQUE KEY(user_id);

ALTER TABLE t_user ADD CONSTRAINT UN_ID UNIQUE(user_id);

ALTER TABLE t_user ADD CONSTRAINT UN_ID UNIQUE KEY(user_id);

删除唯一性约束

          ALTER TABLE t_user DROP INDEX user_id;

注:唯一但是可以为空(空和空不相等)


三.PRIMARY KEY(主键约束)

添加主键约束

1)建表时直接添加

CREATE TABLE t_user(user_id INT(10) PRIMARY KEY);

CREATE TABLE t_user(

user_id INT(10),

user_name VARCHAR(30),

CONSTRAINT PK_ID_NAME PRIMARY KEY(user_id,user_name)#复合约束

);

CREATE TABLE t_user(

user_id INT(10),

PRIMARY KEY(user_id)

);

2)通过ALTER语句

ALTER TABLE t_user MODIFY user_id INT(10) PRIMARY KEY;

ALTER TABLE t_user CHANGE user_id user_id INT(10) PRIMARY KEY;

ALTER TABLE t_user ADD PRIMARY KEY(user_id);

ALTER TABLE t_user ADD CONSTRAINT PK_ID PRIMARY KEY(user_id);

删除主键约束

1)ALTER TABLE t_user DROP PRIMARY KEY;

注:主键约束相当于(唯一约束+非空约束)

一张表中最多有一个主键约束,如果设置多个主键,就会出现如下提示:

Multiple primary key defined!!!

删除主键约束前,如果有自增长需要先删除自增长,如果不删除自增长就无法删除主键约束


四.FOREIGN KEY(外键约束,对应的字段只能是主键或者唯一约束修饰的字段)

首先创建两张表:class,students

主表:

CREATE TABLE class(

cla_id INT(6) AUTO_INCREMENT PRIMARY KEY,

cla_name VARCHAR(30) NOT NULL UNIQUE

);

从表:

CREATE TABLE students(

stu_id INT(10) AUTO_INCREMENT PRIMARY KEY,

stu_name VARCHAR(30) NOT NULL,

stu_score FLOAT(5,2) DEFAULT 0.0,

cla_id INT(10),

CONSTRAINT FK_CLA_ID FOREIGN KEY(cla_id) REFERENCES class(cla_id)#添加外键约束

);

也可以这样添加:

ALTER TABLE students ADD CONSTRAINT FK_CLA_ID FROEIGN KEY(cla_id) REFERENCES class(cla_id);

删除外键约束

ALTER TABLE students DROP FOREIGN KEY FK_CLA_ID;

#外键中的级联关系有以下几种情况:

#ON DELETE CASCADE 删除主表中的数据时,从表中的数据随之删除

#ON UPDATE CASCADE 更新主表中的数据时,从表中的数据随之更新

#ON DELETE SET NULL 删除主表中的数据时,从表中的数据置为空

#默认 删除主表中的数据前需先删除从表中的数据,否则主表数据不会被删除

CREATE TABLE students(

stu_id INT(10) AUTO_INCREMENT PRIMARY KEY,

stu_name VARCHAR(30) NOT NULL,

stu_score FLOAT(5,2) DEFAULT 0.0,

cla_id INT(10),

CONSTRAINT FK_CLA_ID FOREIGN KEY(cla_id) REFERENCES class(cla_id) ON DELETE CASCADE

);

CREATE TABLE students(

stu_id INT(10) AUTO_INCREMENT PRIMARY KEY,

stu_name VARCHAR(30) NOT NULL,

stu_score FLOAT(5,2) DEFAULT 0.0,

cla_id INT(10),

CONSTRAINT FK_CLA_ID FOREIGN KEY(cla_id) REFERENCES class(cla_id) ON UPDATE CASCADE

);

CREATE TABLE students(

stu_id INT(10) AUTO_INCREMENT PRIMARY KEY,

stu_name VARCHAR(30) NOT NULL,

stu_score FLOAT(5,2) DEFAULT 0.0,

cla_id INT(10),

CONSTRAINT FK_CLA_ID FOREIGN KEY(cla_id) REFERENCES class(cla_id) ON DELETE SET NULL

);

注:插入数据时,先插入主表中的数据,再插入从表中的数据。

    删除数据时,先删除从表中的数据,再删除主表中的数据。


五.CHECK(检查约束)

CREATE TABLE class(

cla_id INT(6) AUTO_INCREMENT PRIMARY KEY,

cla_name VARCHAR(30) NOT NULL UNIQUE,

CHECK(cla_id>0)

);

注:mysql不支持检查约束,但是写上检查约束不会报错


其他:

一.AUTO_INCREMENT(自增长)

添加自增长

1)在创建表的时候添加

CREATE TABLE t_user(user_id INT(10) AUTO_INCREMENT PRIMARY KEY);

2)通过ALTER语句

ALTER TABLE t_user MODIFY user_id INT(10) AUTO_INCREMENT;

ALTER TABLE t_user CHANGE user_id user_id INT(10) AUTO_INCREMENT;

删除自增长

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

注:There can be only one auto column and it must be defined as a key.

一张表只能有一个自增长列,并且该列必须定义了约束(可以是主键约束,也可以是唯一约束,也可以是外键约束,但是不可以是非空和检查约束)

不过自增长一般配合主键使用,并且只能在数字类型中使用


二.ZEROFILL(零填充)

添加零填充

1)在创建表的时候添加

CREATE TABLE t_user(user_id INT(10) ZEROFILL);

2)通过ALTER语句

ALTER TABLE t_user MODIFY user_id INT(10) ZEROFILL;

ALTER TABLE t_user CHANGE user_id user_id INT(10) ZEROFILL;

删除零填充

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

注:零填充会将未将有效位以外的位用零来显示,比如某字段数据类型为INT(5),而插入的值为2,那么零填充会显示00002

但是,这个效果在Navicat for MySQL中显示不出来,只有在DOS窗口下才能显示


三.DEFAULT(默认)

添加默认约束

1)在创建表的时候添加

CREATE TABLE t_user(user_id INT(10) DEFAULT  3);

2)通过ALTER语句

ALTER TABLE t_user MODIFY user_id INT(10) DEFAULT  2;

ALTER TABLE t_user CHANGE user_id user_id INT(10) DEFAULT  2;

删除默认约束

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);


四.UNSIGNED(无符号位)

添加无符号

1)在创建表的时候添加

CREATE TABLE t_user(user_id INT(10) UNSIGNED);

2)通过ALTER语句

ALTER TABLE t_user MODIFY user_id INT(10) UNSIGNED;

ALTER TABLE t_user CHANGE user_id user_id INT(10) UNSIGNED;

删除无符号

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

注:无符号作用于数值类型


#从查询information_schema中查询指定表中的约束

USE INFORMATION_SCHEMA;

SELECT CONSTRAINT_NAME FROM TABLE_CONSTRAINTS WHERE TABLE_NAME='student';

MySQL中的检查约束(CHECK Constraint)讲解 CHECK约束用于限制列中的数据值。例如,确保某一列的值在某个特定的范围内,或满足某个逻辑表达式。通常用于保证数据输入的合理性和一致性。 阅读详情

相关推荐

【一个表中可以有多个自增列吗?】

【一个表中可以有多个自增列吗?】

学无止境 1354

MySQL约束constraint

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

weixin_45856470的博客 5284

超详细网安学习路线(Day1-Day2)

渗透测试(Penetration Testing),就是一种通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。简单来说,就是合法去入侵别人的系统,来帮助其找出漏洞,增强防护能力。

aobulaien001的博客 3389

MySQL----表中的约束(constraint)

- NOT NULL 非空约束,规定某个字段不能为空 - UNIQUE 唯一约束,规定某个字段在整个表中是唯一的 - PRIMARY KEY 主键(非空且唯一)约束 - FOREIGN KEY 外键约束 - CHECK 检查约束 - DEFAULT 默认值约束

sxycylq的博客 1187

Windows 10下三菱PLC控件安装报错Error Number:-119的终极解决方案(附详细步骤)

本文针对Windows 10系统安装三菱PLC控件时常见的Error Number:-119报错,提供了深度分析与终极解决方案。文章剖析了该错误源于oleaut32.dll文件版本冲突,并详细介绍了通过设置兼容性模式、手动注册DLL、直接安装MX Component以及高级系统修复等多种方法,帮助用户彻底解决此安装难题,顺利搭建PLC开发环境。

weixin_29289821的博客 332

旅行青蛙破解汉化教程——蹭个热度

汉化破解版资源(无尽三叶草与点券): https://github.com/wisdombyzf/lxqw/blob/master/lxqw_zf.apk 截图: 破解方法: 工具: 1,APKIDE https://www.pd521.com/thread-818-1-2.html 2,dnspy https://down.52pojie.

github_38838414的博客 3785

MySQL 表约束超详细

在MySQL里,“约束”指的是对表中数据的一种限制约束,它能够确保数据库中数据的准确性和有效性比如有的数据是必填项,就像身份认证的时候,或者填注册信息的时候,手机号身份证这种就不能空着,所以就有了非空约束;又有的数据比如用户的唯一id,不能跟其他人的一样,所以就需要使用唯一约束等等。在MySQL中主要有6种约束:主键约束、外键约束、唯一约束、检查约束、非空约束和默认值约束。在建立数据表的时候,一般情况下,为了方便更快地查找表中的记录,都会要求在表中设置一个“主键”。

qq_57570052的博客 1万+

ANSYS Twin Builder实战:5步搞定数字孪生模型部署(附ROM配置技巧)

本文详细解析了ANSYS Twin Builder在数字孪生模型部署中的实战应用,重点介绍了ROM(降阶模型)配置技巧。通过5个关键步骤,从环境搭建到工业部署,帮助工程师高效实现高精度三维仿真到轻量化数字孪生的转化,提升预测性维护和系统仿真效率。

weixin_27330481的博客 659

MySQL添加约束条件

mysql添加约束

ystzy521的博客 4423

22、云数据中心网络(DCN)部署最佳实践

本文详细介绍了云数据中心网络(DCN)部署的最佳实践,涵盖SDN设计、服务网络规划、管理网络规划等方面。通过合理的架构设计、路由规划和组件协同,提升数据中心的自动化水平、可靠性及安全性,以满足不断增长的业务需求。

d6e7f8的博客 186

CNN+LSTM+Attention+DNN模型实战:pytorch搭建CNN+LSTM+Attention+DNN行车速度预测

CNN+LSTM+Attention+DNN模型实战:pytorch搭建CNN+LSTM+Attention+DNN行车速度预测

6045

mysql alter table drop constraint_MySQL添加,修改,删除表的列,约束等表的定义。

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。查看列:desc 表名;修改表名:alter table t_book rename to bbb;添加列:alter table 表名 add column 列名 varchar(30);删除列:alter table 表名 drop column 列名;修改列名MySQL: alter table bbb change nnnnn...

weixin_36480423的博客 2725

【STK】手把手教你利用STK进行覆盖分析02-生成详细分析报告和图表

这篇文章主要针对上一篇文章中最后的案例1进行进一步的说明,详细介绍我们可以生成哪些结论性的成果。STK的Coverage模块的生成结果包括分析报告和图表两种样式,每种样式还分为动态和静态两种,也就是说,我们做完一个STK覆盖场景的仿真后,一般可以生成静态分析报告、动态分析报告、静态分析图表和动态分析图表这4种形式的分析成果,下面进行详细介绍。我们在选择了想要分析的区域或者点后,就可以利用CovDef生成分析报告了,覆盖定义的分析报告分为静态报告和动态报告两种,下面分析进行介绍: 首先我们先在左侧目标浏览器C

weixin_44184852的博客 3441

SQL之unique约束

目录参考源SQL unique 约束create table时的 SQL not null 约束MySQL / SQL Server / Oracle / MS Accessalter table 时的 SQL not null 约束MySQL / SQL Server / Oracle / MS Access删除 unique 约束MySQLSQL Server / Oracle / MS Ac...

爱喝水的qdy的博客 1461

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MySQL 添加列,修改列,删除列

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。 查看列:desc 表名;修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb cha

sqguokai的专栏 351

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MySQL修改表时添加和删除约束

【代码】MySQL修改表时添加和删除约束。

学习笔记,人工智能,教程,技术分享! 237

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MySql约束(增加、修改、删除)

一、常见约束 约束的含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确性和可靠性 六大约束分类: not null : 非空 ,用于保证该字段的值不能为空(比如:姓名,学号) default : 默认,用于保证该字段有默认值(比如:性别) primary key : 主键,用于保证该字段的值具有唯一性,并且非空(比如:学号) unique : 唯一,用于保证该字段的值具有唯一性,可以为空(比如:座位号) check : 检查约束 【mysql不支持】 foreign key : 外键,用于限制两个

芒种、的博客 704

MySQL——常见约束

文章目录前言一、分类二、创建表时添加约束1.添加列级约束2.读入数据 前言 含义:一种限制,用于限制表中的数据,为了保证表中数据的准确和可靠性 一、分类 六大约束: NOT NULL:非空,用于保证该字段的值不能为空,比如姓名、学号等 DEFAULT:默认,用于保证该字段有默认值,比如性别 PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空,比如学号、员工编号 UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空,比如座位号 CHECK:检查约束,MySQL中不支持 FOREI

迷路的小绅士之家 317

MySQL8.0添加和删除check约束

在MySQL8.0中,添加了对check约束的操作,我使用的MySQL版本是8.0.17.0,下面我使用navicat for MySQL来演示。 check约束作用效果 使用show create table来查看创建表的语句 | testtable | CREATE TABLE `testtable` ( `ID` varchar(5) NOT NULL, `name` varch...

to_create的博客 1万+

MySQL学习笔记之约束,创建约束、修改约束、删除约束

一、约束的含义与分类 含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确性和可靠性 分类:六大约束 NOT NULL: 非空,用于保证该字段的值不能为空,比如姓名、学号 DEFAULT: 默认,用于保证该字段有默认值 PRIMARY KEY: 主键,用于保证该字段具有唯一性,并且非空 UNIQUE: 唯一,用于保证该字段是唯一的,但是可以为空 CHECK: 检查,【mysql中不支持】,用于检查值 FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表

DongZhaoCheng 7039

MySQL——约束(constraint)

本篇文章总结一下MySQL中的约束,为什么要使用约束?什么是约束以及约束的分类。`数据完整性(Data Integrity`)是指数据的`精确性(Accuracy`)和`可靠性(Reliability)`。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

程邓楠的博客 7300

MySQL 添加约束,修改约束,删除约束

转:http://blog.youkuaiyun.com/lovesomnus/article/details/22934009 ALTER TABLE:添加,修改,删除表的列,约束等表的定义。 · 查看列:desc 表名; · 修改表名:alter table t_book rename to bbb; · 添加列:alter table 表名 add column 列名 varch

bin的主栏 3900

MySQL数据库如何添加和删除约束?如何查看约束名?

MySQL数据库如何添加和删除约束 MySQL中有6种常见的约束:主键约束(primary key)、外键约束(foreign key)、非空约束(not null)、唯一性约束(unique)、默认值约束(default)以及自增约束(auto_increment),以下是添加和删除这几种约束的一些方法。 ALTER语句添加约束时 CONSTRAINT [约束名] 可以省略,如果没有用CONSTRAINT设置约束名, 系统会自动生成一个约束名 我们可以使用 SHOW INDEX IN 表名 来查看

派大猩pp的博客 1万+

Sql增加,删除,修改列及修改约束

查看约束条件 - MySQL: SELECT * FROM information_schema.`TABLE_CONSTRAINTS` where table_name = 'book'; - Oracle: SELECT * where table_name = '表名'; 2. 使约束生效和失效 - Oracle 使约束条件失效: ...

chenjiazhanxiao的博客 7784

MySQL约束总结(CONSTRAINT)

约束的含义 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性。MySQL数据库通过约束(constraints)防止无效的数据进入到表中,以保护数据的实体完整性。 约束的分类 在 MySQL 中,主要有六种约束: 1、NOT NULL:非空约束,用于约束该字段的值不能为空。比如姓名、学号等。 2、DEFAULT:默认值约束,用于约束该字段有默认值,约束当数据表中某个字段不输入值时,自动为其添加一个已经设置好的值。比如性别。 3、PRIMARY KEY:主键约束,用于约束该字段的值具有唯一性,至

Johnny's Lab 2万+
上一篇: Java String原理及源码详解
下一篇: java进阶的100道面试题
大漠穷秋_
博客等级 码龄11年 60粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值