mysql 约束 索引

约束

约束是用来对数据业务规则和数据完整性进行实施、维护。约束的作用范围仅限在当前数据库,约束可以被当做数据库对象来处理,它们具有名称和关联模式,是逻辑约束,不会因为设置约束而额外占用空间。
1.数据完整性(Data lntegrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
数据的完整性要从以下四个方面考虑:
实体完整性(Entity Integrity):例如,同一个表中,不能存在两条完全相同无法区分的记录。
域完整性(Domain Integrity):例如:年龄范围0-120,性别范围“男/女”。
引用完整性(Referential Integrity):例如:员工所在部门,在部门表中要能找到这个部门。
用户自定义完整性(User-defined Inteqrity):例如:用户名唯一、密码不能为空等,本部门经理的工资不得高于本部门职工的平均工资的5倍。
2.根据约束的特点,分为几种:
键约束:主键约束、外键约束、唯一键约束
Not NULL约束:非空约束
Check约束:检查约束
Default约束:默认值约束
自增约束

SELECT * FROM information_schema.table_constraints WHERE table_name ='表名称';
SHOW CREATE TABLE 表名;

索引

索引是一个单独、物理的存储在数据页上的数据库结构,它是表中一列或若干列值的集合和相应的指向表中数据值的物理标识数据页的逻辑指针清单(类似于新华字典的目录索引页)。索引的存在会增加数据库的存储空间,也会使插入、修改数据的时间开销变多(因为插入和修改数据时,索引也要随之变动),但是可以大大提高査询速度。因此应该在键列、或其他经常要查询、排序、按范围查找的列上建立索引,而对于在查询中很少使用和参考的列、修改非常频繁的列,值很少的列(例如性别只有男和女)等列上不应该创建索引。
Mysql会在主键、唯一键、外键列上自动创建索引,其他列需要建立索引的话,需要手动创建。
其中主键删除,对应的索引也会删除
删除唯一键的方式是通过删除对应的索引来实现的
删除外键,外键列上的索引还在,如果需要删除,需要单独删除索引

SHOW INDEX FROM 表名称;

主键 特点

唯一并且非空,即如果给一个字段设置了主键约束,就不用再设置唯一和非空约束了
一个表最多只能有一个主键约束
创建主键会自动创建对应的索引,同样删除主键对应的索引也会删除
添加主键
一:创建表格的时候,就指定好主键约束,

主键的特点:
/*
1.主键自带非空约束和唯一约束,联合 主键的话,任意一个都不能为null
2.一个表里只能有一个主键
3.int类型的主键,通常会配置自增约束
4.可以使用联合主键
5.主键会默认添加索引
*/
create table ddl_primary
(
id int primary key auto_increment,--创建表的同时,指定id 为主键,并且自增
name varchar(32)
);
c

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

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

相关文章

AI技术在金融领域/银行业的应用和风险

前言 随着科技的不断发展,人工智能(AI)技术已经在各行各业得到了广泛的应用,其中包括银行业。银行业作为经济的重要组成部分,一直在不断地探索和应用新技术,以提升服务效率、风险管理和客户体验。然而&…

SpringBoot + Vue + Nginx前后端分离项目本地部署(Win)

SpringBoot Vue Nginx前后端分离项目本地部署步骤 本地部署所需步骤 将后端打包好的jar文件和前端生成的静态资源文件放入同一目录启动Spring Boot应用配置Nginx并重启访问 http://your_domain 查看部署效果 前端Vue项目部署 将写好的vue代码的目录下运行 npm run build …

【MATLAB源码-第32期】基于matlab的通信及雷达中常用伪随机码m序列的仿真。

操作环境: MATLAB 2022a 1、算法描述 M序列,也称为最大长度序列或者伪随机序列,是一种特殊的二进制序列。它的特点是在有限的长度内,尽管它是伪随机的,但它会在特定的周期内不重复地循环。 在数学上,M序…

蓝桥杯B组C++省赛——飞机降落(DFS)

题目连接:https://www.lanqiao.cn/problems/3511/learning/ 思路:由于数据范围很小,所有选择用DFS枚举所有飞机的所有的降落顺序,看哪个顺序可以让所有飞机顺利降落,有的话就算成功方案,输出了“YES”。 …

C#基础之类的详解

类 类是自定义数据类型的蓝图,对现实生活中一类具有共同特征的事物的抽象。它是面向对象中的概念,是面向对象编程的基础。 类是一种数据结构,包含了数据成员(字段、常量)和函数成员(方法、属性、索引器、事件、运算符、…

设计模式——建造者模式03

工厂模式注重直接生产一个对象,而建造者模式 注重一个复杂对象是如何组成的(过程),在生产每个组件时,满足单一原则,实现了业务拆分。 设计模式,一定要敲代码理解 组件抽象 public interface …

腾讯云4核8G服务器多少钱?4C8G可以干啥?

腾讯云4核8G服务器多少钱?腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月,活动页面 txybk.com/go/txy 活动链接打开如下图所示: 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器,详细配置为:轻量4核…

鸿蒙系统:华为打造的全新智能生态

在当今的数字化时代,智能手机操作系统的重要性不言而喻。而在这个领域,华为推出的鸿蒙系统无疑是一个引人注目的新星。作为华为自主研发的操作系统,鸿蒙系统不仅承载着华为对于智能生态的雄心壮志,更是中国科技创新实力的体现。 …

JRT简化开发环境

JRT是完全前后端分离的项目,实际工程是逻辑上完全前后端分离,代码层级和工程是不离的。这样就可以做到一键启动,同时又有分离的好处。开始页面后缀都沿用aspx,最开始考虑过修改后缀为html,当时觉得搞aspx也不错&#x…

Mysql安装(命令方式安装)

下载mysql压缩包 Mysql可以使用界面安装,也可以使用命令的方式安装,今天我们使用命令的方式安装mysql。首先下载mysql压缩包(下载地址:https://dev.mysql.com/downloads/mysql/),解压到你想要安装的目录。 …

Shell脚本教程

Shell脚本教程 1. Shell是什么 shell 是一种命令解释器,用户与操作系统内核之间的交互界面,当你登录了Linux后,看到的就是shell shell其实这个脚本语言是使用C语言开发编写的 而我们通常所讲的bash ,其实是Shell的一种具体实现…

算法实验二 矩阵最小路径和 LIS

算法实验课二 矩阵最小路径和 leetcode裸题 最小路径和 给定一个包含非负整数的 *m* x *n* 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入&…

算法 - 符号表-上

🏠个人主页:尘觉主页 文章目录 算法 - 符号表前言初级实现1. 链表实现无序符号表2. 二分查找实现有序符号表 二叉查找树1. get()2. put()3. 分析4. floor()5. rank()6. min()7. deleteMin()8. delete()9. keys()10. 分析 算法 - 符号表 前言 符号表&am…

intellij idea 使用git撤销(取消)commit

git撤销(取消) 未 push的 commit Git,选择分支后,右键 Undo Commit ,会把这个 commit 撤销。 git撤销(取消) 已经 push 的 commit 备份分支内容: 选中分支, 新建 分支,避免后续因为操作不当,导…

iOS-App:App Store新的审核政策,在应用隐私清单中声明和解释使用特定API的原因

App Store新的审核政策,在应用隐私清单中声明和解释使用特定API的原因 设备/引擎:Mac(11.6)/Mac Mini 开发工具:终端 开发需求:苹果官方邮件通知, App Store新的审核政策,在应用隐…

【Java笔记】多线程0:JVM线程是用户态还是内核态?Java 线程与OS线程的联系

文章目录 JVM线程是用户态线程还是内核态线程什么是用户态线程与内核态线程绿色线程绿色线程的缺点 线程映射稍微回顾下线程映射模型JVM线程映射 线程状态操作系统的线程状态JVM的线程状态JVM线程与OS线程的状态关系 Reference 今天复盘一下Java中,JVM线程与实际操作…

CCIE-08-BGP-Listen

目录 实验条件网络拓朴实验目的 开始配置配置动态路由协议配置BGP检查邻居配置 实验条件 网络拓朴 实验目的 将R1配置成Listen状态,自动接收来自其它路由器的建邻居请求、建立邻居 开始配置 配置动态路由协议 这里用EIGRP来配置,保证网络的可达性&a…

替代 Redis 和 Memcached:25 倍吞吐量! | 开源日报 No.213

dragonflydb/dragonfly Stars: 22.4k License: NOASSERTION Dragonfly 是一个内存数据存储,适用于现代应用工作负载,可替代 Redis 和 Memcached。与传统的内存数据存储相比,Dragonfly 提供了 25 倍的吞吐量、更高的缓存命中率和更低尾部延…

基于springboot的粮仓管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

java数组.day16(冒泡排序,稀疏数组)

冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序! 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。 我们看到嵌套循环,应该立马就可以得出这个算法的时…