【MySQL篇】约束语法及演示总结(全)

news2024/12/25 16:46:47

目录

理解约束:

约束语法及添加、删除约束语法:

约束总览:

​1、非空约束

2、唯一约束

3、主键约束

4、默认约束

5、外键约束

案例演示:

 加深格式记忆:


理解约束:

        约束实际上就是我们对表中数据的添加某种限制条件,就好比QQ密码不能是空的,或者不能只是单一的数字等;通俗的说:就是让数据库表中的数据不出现逻辑上的错误

        约束的存在保证了数据库中数据的正确性、有效性和完整性。添加约束可以在添加数据的时候就限制不正确的数据,年龄大于120岁,考试成绩是负数等这样无效的数据,继而保障数据的完整性。

约束语法及添加、删除约束语法:

        添加约束有两种方法:一、在创建表时就添加语法;二、在创建表之后,另外添加约束;

约束总览:

 1、非空约束

描述:非空约束用于保证列中所有数据不能有null值

语法:

创建表时添加约束:CREATE TABLE 表名( 字段名 数据类型 NOT NULL, … );

建完表后添加非空约束:alter table 表名 modify 字段名 数据类型 not null;

删除非空约束:alter table 表名 modify 字段名 数据类型;

2、唯一约束

描述:唯一约束用于保证列中所有数据各不相同

语法:

创建表时添加唯一约束:CREATE TABLE 表名( 列名 数据类型 UNIQUE [AUTO_INCREMENT],

-- AUTO_INCREMENT: 当不指定具体值时,该值会自动增长 … );

CREATE TABLE 表名( 列名 数据类型, … [CONSTRAINT] [约束名称] UNIQUE(列名) );

创建表后添加唯一约束:alter table 表名 modify 字段名 数据类型 unique;

删除唯一约束:alter table 表名 drop index 字段名;

3、主键约束

描述:主键是一行数据的唯一标识,要求非空且唯一,且一张表只能有一个主键;

语法:

创建表时添加约束:CREATE TABLE 表名( 列名 数据类型 PRIMARY KEY [AUTO_INCREMENT], … );

创建表后添加主键约束:alter table 表名 add primary key 列名;

删除主键约束:alter table 表名 drop primary key;

4、默认约束

描述:保存数据时,未指定值时则保存默认值;

语法:

创建表时添加默认约束:CREATE TABLE 表名( 列名 数据类型 DEFAULT 默认值, … );

建完表后添加默认约束:alter table 表名 alter  列名 set default 默认值;

删除约束:alter table 表名 alter 列名 drop default;

5、外键约束

描述:外键用来让两个表的数据之间进行连接,保证数据的一致性和完整性。

语法:

创建表时添加外键约束:CREATE TABLE 表名( 列名 数据类型, … [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名) );

创建表后添加外键约束:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

删除外键约束:alter table 表名 drop foreign key 外键名称;

案例演示:

 加深格式记忆:

 为对比记忆格式下面我们将所有的格式写在一起,对比记忆;

-- 对比记忆
1.主键约束
添加:alter table  table_name add primary key (字段);
删除:alter table table_name drop primary key;
2.非空约束
添加:alter  table table_name modify 列名 数据类型  not null ;
删除:alter table table_name modify 列名 数据类型 null;
3.唯一约束
添加:alter table table_name add unique 约束名(字段);
删除:alter table table_name drop key 约束名;
4.自动增长
添加:alter table table_name  modify 列名 int  auto_increment;
删除:alter table table_name modify 列名 int;
5.外键约束
添加:alter table table_name add constraint约束名foreign key(外键列) references 主键表(主键列);
删除:alter table table_name drop foreign key 约束名;
6.默认约束
添加:alter table table_name alter 列名  set default '值';
删除:alter table table_name alter 列名  drop default;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis命令及原理学习(一)

redis介绍 redis 是 Remote Dictionary Service 的简称;也是远程字典服务; 节点 通过tcp与redis建立连接交互请求回应模型 redis是一种内存数据库:数据都在内存中。redis是一种kv数据库: 存储方式操作方式 redis是一种数据结构数…

【访谈】Eotalk Vol.05: API 全生命周期管理,如何解决企业 API 安全问题

Eotalk 是由 Eolink 和各合作方一起发起的泛技术聊天活动,每期我们会邀请一些技术圈内的大牛聊聊天,聊一下关于技术、创业工作、投融资等热点话题。 本期 Eotalk 我们邀请到的嘉宾是来自星阑科技的 CTO 徐越~ 👏👏 徐越是一位 90…

红黑树(4万字文章超详细,只为一个目的)

我写这篇文章的主要目的其次才是积累知识,主要是因为我想打一个同学的脸. 事情是这样的.我现在中学嘛,我们班上有一个同学他学了红黑树啊,就一副"不可一世"的样子.在我面前炫耀啊.当时我就想立马打他的脸,可是我有没有实力,所以才学习红黑树学到深夜,写了篇博客.言归…

深度解析:会用Excel,还有必要学Python吗?

前言 某站上有个问题: 我都会用Excel了,还有必要学Python吗? (文末送读者福利) 这个问题大概率可以说明问这个问题的这位同学目前还没有遇到非Python不可的场景,之所以产生了学Python的念头是因为这两年P…

今日分享:文字转语音软件哪个好

如今已经进入到了一个短视频时代,大家饭后或者闲暇时都会通过刷视频来消磨时间,而部分小伙伴看到一些有趣的内容,也想试着自己制作一下。但众所周知,视频拍摄容易,后期剪辑制作确实异常困难的,有许多道工序…

从boot引导到loader引导完整运行

此文针对该文章对loader引导进行了完善后的完整运行过程。(具体细节请参见下文) boot引导升级,成功引导运行loader_What’smean的博客-CSDN博客boot引导升级,成功引导运行loaderhttps://blog.csdn.net/weixin_42492218/article/d…

【数据结构】11道LeetCode链表OJ练习

文章目录1. 移除链表元素2. 反转链表3. 链表的中间节点4. 链表中倒数第k个节点5. 合并两个有序链表6. 链表分割7. 链表的回文结构8. 相交链表9. 环形链表10. 环形链表II11. 复制带随机指针的链表补充内容:浅谈顺序表和链表的区别1. 移除链表元素 移除链表元素OJ链接…

扫雷游戏优化详解——c语言实现

文章目录 一、扫雷游戏的简单认识与解释 二、扫雷游戏的代码及思路实现 一、扫雷游戏的思路 1、菜单打印 2、创建扫雷区 3、初始化雷区 4、打印雷区 5、布置雷区 6、排雷 三、扫雷游戏代码的整合 game.h game.c test.c 标题:猜数字小游戏 作者:Ggggg…

你适合考PMP还是软考?两者的区别是否清楚,分别能给你带来什么价值

PMP与软考之间有什么区别,应该考哪个更适合自己? 下面从9个方面给大家简单的介绍做一个对比,希望能帮上忙~ 软考和PMP哪个更适合自己? 01 考试介绍 PMP:PMP是项目管理专业人士资格认证,由美国项目管理协…

腾讯云相同配置8核16G的云服务器和轻量服务器该如何选择?

很多个人或者中小企业用户在选择云服务器的时候,已经确认配置的情况下,去选购的时候发现有出现了轻量应用服务器,那么轻量应用服务器和云服务器又有哪些区别,价格为啥又有那么大的差别,该如何选择呢? 从上边…

SSM框架整合详细教程

目录 1. 什么是SSM? 2. SSM整合的时候容器之间如何访问 3. SSM下面的开发步骤 4. SSM整合时候时容易混乱的知识点 1. 什么是SSM? SSM是对三个框架名字的简写,其中第一个S指的是SpringMVC,第二个S指的是Spring,第三个M指的是M…

项目搭建(七)爱心代码❤网站部署(静态网站)

爱心代码❤网站部署(静态网站)一、环境基础二、修改Tomcat启动配置三、放置静态网站四、启动Tomcat一、环境基础 如果你已经部署了Apache-Tomcat,恭喜你,你已经完成90%的部署工作 如果没有tomcat,那你先部署tomcat吧 …

4_单机优化(确定性算法,优化框架)

优化框架机器学习的优化框架正则化经验风险最小化优化算法的收敛速率假设条件凸函数定义强凸函数定义光滑函数定义优化算法的分类机器学习的优化框架 正则化经验风险最小化 有监督的机器学习问题: 假设输入输出数据 Sn{(xi,yi);i1,...,n}S_n \left\{(x_i, y_i);…

C++与C语言中的字符串

目录 1、关于c语言中的字符串 (1)c语言中字符串与字符指针 (2)字符串结尾 2、关于c中的字符串string (1)从本质上了解string (2)c中的字符串转换与关联 (3&#x…

【MySQL入门指北】MySQL备份及恢复

MySQL备份及恢复 文章目录MySQL备份及恢复1.Percona 介绍2.安装Percona 需要的 MySQL 包3.安装percona-xtrabackup4.完全备份流程5.完全恢复流程6.增量备份流程7.差异备份8.差异恢复流程9.记录的导入和导出10.mysqldumpbinlog11.MySQL恢复数据12.二进制日志恢复13.误删除库的问…

基于51单片机的室内温度可燃气体检测报警系统Proteus仿真

资料编号:133 下面是相关功能视频演示: 133-基于51单片机的室内温度可燃气体检测报警系统Proteus仿真(源码仿真全套资料)功能介绍: 采用51单片机作为主控,LCD1602显示当前温度和可燃气体浓度,…

Netty源码阅读(1)之——客户端源码梗概

目录 准备 开始 NioSocketChannel 的初始化过程 指定 初始化 关于unsafe属性: 关于pipeline的初始化 小结 EventLoopGroup初始化 小结 channel的注册过程 handler的注册过程 客户端连接 总结 准备 源码阅读基于4.1.84.Final版本。从github下载netty项目…

WordPress设置浏览器切换标签网站动态标题

我们在逛别人网站的时候,经常看到,有些网站当我们离开该页面浏览其他页面的时候,离开的页面标题上会显示比如:“你别走吖 Σ(っ Д ;)っ”这样的字样,当我们点回来的时候页面上面的标题又变成了“你又回来啦&#xff0…

[附源码]计算机毕业设计JAVAjsp学生档案管理系统

[附源码]计算机毕业设计JAVAjsp学生档案管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myb…

前端基础向--从项目入手封装公共组件

本文就从 “详情卡片” 业务组件的封装的几个阶段来说明我在编写公共组件的设计思路。 1. 阶段一:基础需求 假设我们现在有这样一个需求:需要满足显示产品的详细信息;需要可以根据不同分辨率适配不同的显示方式(2列,…