Mysql 零距离-入门(六)数据唯一约束性

在数据记录中我们为保证数据的唯一性,保证用户数据在数据中不出现重复记录。我们需要用到Mysql的主键key,唯一约束。

主键约束 PRIMARY KEY

一张数据表中只能存在一个主键字段。并且类型必须为数字。可是设为float类型,但小数点值必须为0和传入此字段的重复值。它可以很好保证我们记录的唯一性,主键字段自动为NOT NULL

现在,我们来创建一张新的数据表tb3,并设定一个主键字段

CREATE TABLE tb3(id SMALLINT UNSIGNED PRIMARY KEY,name VARCHAR(20),sex ENUM('1','2','3') DEFAULT '3');

图片描述

创建数据表成功,现在我们来插入两段用户数据。

INSERT tb3 VALUES(5,'大毛','1');
INSERT tb3 VALUES(10,'小李','1');

输出记录

SELECT * FROM tb3;

图片描述

可以看到我们刚刚的记录插入成功了,现在我们来入id值5的记录看看会怎么样

INSERT tb3 VALUES(5,'小明','2');

图片描述

mysql报错:主键以存在重复的‘5’值,所以刚刚插入记录失败了。主键保证了我们数据的唯一性。

自动编号AUTO_INCREMENT

每一次都要手动为主键赋值非常不方便,而且当我们数据表中的数据非常多的时候,我们就很容易插入重复的主键值容易引发错误。所以我们这里就要用到自动编号AUTO_INCREMENT来为我们的主键字段进行自动编号赋值了。

  • 自动编号,必须与主键组合使用
  • 默认情况下,起始为1,每次的增量为1

下面我们来创建多一个数据表tb4

CREATE TABLE tb4(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),sex ENUM('1','2','3') DEFAULT '3');

图片描述

数据表创建成功,现在我们来连续插入三段数据。然后把记录打印出来看看主键值

INSERT tb4(name,sex) VALUES('小丽','2');
INSERT tb4(name,sex) VALUES('大理','1');
INSERT tb4(name,sex) VALUES('小明同学','1');
SELECT * FROM tb4;

图片描述

可以看到主键值已经自动编号1~3了。

唯一约束 UNIQUE KEY

唯一约束性在一个数据表中可以存在多个字段,但是每个字段值中的集合不能出现重复值,并且可为NULL。就好像我们网站中的用户名一样。

现在我们来创建一张新的数据表ta5

CREATE TABLE ta5(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,usename VARCHAR(20) NOT NULL UNIQUE KEY,ega TINYINT UNSIGNED
);

插入两断用户数据

INSERT ta5(usename,ega) VALUES('小明',22);
INSERT ta5(usename,ega) VALUES('小明',20);

图片描述

可以看到mysql报错usename字段已经存在小明字段。所以usename已经是具有唯一约束性的字段。

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

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

相关文章

关于 m1 xcode12 编译报错 this target. for architecture arm64等问题解决方案

最近换了 mac m1 开发,xcode12在运行旧项目报错 的问题 xxxx building for iOS Simulator, but linking in object file built for iOS, xxxxx for architecture arm64 上谷歌、百度翻个各种答案,修改 编译结构体、修改pods配置都不行。自己瞎倒腾给解决…

关于 mac m1 xcode12 编译报错 this target. for architecture arm64等问题解决方案

最近换了 mac m1 开发,xcode12在运行旧项目报错 的问题 xxxx building for iOS Simulator, but linking in object file built for iOS, xxxxx for architecture arm64 上谷歌、百度翻个各种答案,修改 编译结构体、修改pods配置都不行。自己瞎倒腾给解…

关于 create-react-app 自定义 eslint文件配置解决方案

create-react-app项目自定义eslitn配置方式 方案一 eject 项目webpack配置进行自定义 这个方案比较low,不建议使用。这里不讲解了。 方案二 在 package.json 中的 script 命令 添加环境变量 EXTEND_ESLINTtreu 开启自定义 react-script4.x版本以下可用这个方案 …

IOS UIWindow 和 UIScreen

通常UIWindow 与 UIScreen 是配合使用的。当我们想自定义window对象或者获取硬件屏幕大小必定会用到 UIWindow 和 UIScreen UIWindow 一个APP只有一个UIWindow 对象,表示当前窗口对象。UIWindow 继承于 UIView。 通常使用Window 自定义根节点的 UIViewController。…

指数随机变量 泊松过程跳_如何深刻的理解随机变量

大多数学校的统计学悲剧在于它是多么愚蠢。老师们花费数小时来研究导数,方程式和定理,当您最终达到最佳效果时(将概念应用于实际数字),就会出现一些无关紧要,没有想象力的示例,例如掷骰子。遗憾…

初中数学分几个模块_北京版初中数学:8大模块,59个必考易错知识点大集合,一定要注意!...

01数与式易错点1有理数、无理数以及实数的有关概念理解错误,相反数、倒数、绝对值的意义概念混淆。弄不清绝对值与数的分类。选择题考得比较多。易错点2关于实数的运算,要掌握好与实数的有关概念、性质,灵活地运用各种运算律,关键…

对php的感受100字_最新2020个人年终工作总结开头范文100字

有道是“万事开头难”,在进行年终工作总结的时候也是如此,因此,我们在写年终工作总结的时候,要先认真学习。朋友,下面是由出国留学网小编为大家整理提供的“2020个人年终工作总结开头范文100字”,仅供参考&…

abb限位开关已打开drv1_Telemecanique传感器限位开关产品系列

Telemecanique传感器Telemecanique传感器,是施耐德电气旗下专精于传感器产品的知名品牌,已有百年历史。被公认为全球传感器领域的专家。从机电式到电子式产品,从检测到识别再到距离测量,我们拥有覆盖广泛的传感器产品线。我们已成…

关于Vue 3.0 的改进 Proxy 代理实现数据驱动视图

Vue 3.0 中使用了 Proxy 对象代理进行拦截实现了数据绑定视图的驱动操作。弥补了vue2.0中的局限,比如属性删除增加监听、对数组基于下标的修改、长度变化等等。 参考一下网上流传的机制图 Proxy 是什么? 首先我们来了解一下Proxy是什么。Proxy不是简单…

两边双虚线是什么意思_行星减速机生产厂家解析行星减速机双支撑与单支撑

经常会有客户咨询合富源机电小编:行星减速机双支撑和行星减速机单支撑是什么意思?接下来富源机电小编就为大家讲解一下行星减速机双支撑和行星减速机单支撑。1、行星减速机双支撑和行星减速机单支撑的含义行星减速机双支撑和行星减速机单支撑指的是齿轮的…

Xcode11 后Appdelegate自定义UIWindow对象失败详解。

在Xcode11前我们可以在AppDelegate的钩子didFinishLaunchingWithOptions进行自定义UIWindow对象。但是Xcode11后自定义UIWindow会报错无法启动APP。 是因为iOS13中AppDelegate的职责发生了改变: iOS13之前,AppDelegate全权处理App生命周期和UI生命周期&a…

IOS中的事件响应链,事件冒泡机制基本了解

本文主要讲解IOS中事件响应链,即事件冒泡机制。做过web开发的同学应该知道js事件冒泡是从主响应元素一层一层的向父级冒泡事件,在ios亦是如此,但是不同是ios中,如果冒泡链中有一方对事件进行响应处理后会截止后续对冒泡行为不同于…

板子制作_工厂制作风管VS现场制作有什么区别?

一、传统风管与酚醛风管对比中央空调传统送风管道通常内层采用铁皮或玻璃钢,外裹保温材料,最外面用铝箔进行缠绕,这使得送风管重而大、施工安装费工费时、外观差、气密性低、能耗大。传统的风管已不能满足快速增长的市场需求及人们对室内环境…

关于 NODE.js 并行线程 worker_threads 的使用与详解。

javascript 是单线程,那么node.js属于服务端语言改如何实现其他语言中的并发线程执行呢?在node V10只有 child_process,cluster的API来开启多子进程,多进程。进程并不是子线程,无法内存共享。在nodeV10后引入worker_th…

IOS 多层级路由导航控制器 NavigationControoller 实现路由切换

IOS 导航控制器分为多层级导航控制器naviagtionController 和平行分栏控制器 UITabBar(底部切换栏)。IOS导航控制器是什么呢?其实就是我们web的路由切换功能,只不过在app开发切换是ViewController。 什么是导航控制器 NavigationC…

前端性能优化篇——浏览器同域名并发请求对限制

在浏览器同域名并发请求都产生并发数限制,并发限制通常是4~8以内,那么来了解浏览器请求并发限制的原因和优化手段。浏览器并发数量统计 浏览器为什么要请求并发数限制?在了解优化手段之前我们先了解浏览器限制并发请求的原因1.对操…

帧大小超过交换机mtu_交换机的三种交换方式

交换机是一种用于电(光)信号转发的网络设备,它可以为接入交换机的任意两个网络节点提供独享的电信号通路。交换机拥有一条高带宽的背部总线和内部交换矩阵,在同一时刻可进行多个端口对之间的数据传输,交换机的传输模式…

前端性能优化篇——浏览器http同域名并发请求对限制

在浏览器同域名并发请求都产生并发数限制,并发限制通常是4~8以内。那么我们将来了解浏览器请求并发限制的原因和优化手段。 浏览器并发数量统计 浏览器为什么要请求并发数限制? 在了解优化手段之前我们先了解浏览器限制并发请求的原因 1.对操…

rstudio的数据集怎么建立和保存_这个40M的小工具助你在windows下处理数据如虎添翼...

使用windows系统时,如何获取一个大小为1M的文件的行数呢?一般是选择用excel或notepad等软件打开文件,然后查看最后一行的行号,那如果是想快速获取一个大小为1G的文件的行数呢?或是想快速获取100个大小为1M的文件的行数…

mongo 唯一约束索引_Java:MySQL 基础知识+索引相关

阅读本文前,请您先点击上面的蓝色字体,再点击“关注”,这样您就可以继续免费收到最新文章了。每天都有分享。完全是免费订阅,请放心关注。注:本文转载自网络,不代表本平台立场,仅供读者参考&…