第4步---MySQL的约束

第4步---MySQL的约束

 

保证表中的数据的完整性和有效性的

不能为空

不能重复

主键

自增

非空

默认约束

0填充约束

外键约束

 

1.约束

1.1主键约束

  • 主键 primary key

  • 自增 auto_increment

  • 非空 not null

  • 默认约束 default

  • 唯一性unique

  • 0填充约束 zerefill

  • 外键约束 foreign key

1.简介:最重要的约束。约束一个列或者是多个列。可以更快的找个对应的行。唯一+非空约束。只能有一个主键。

2.关键字:primary key

3.默认唯一索引

1.2单列索引

-- =================================单列主键=================================
-- 创建新的表
DROP TABLE IF EXISTS student;
CREATE TABLE IF NOT EXISTS student(
id int  PRIMARY key,
name VARCHAR(20),
deptId int
)-- 后面定义主键
DROP TABLE IF EXISTS student2;
CREATE TABLE IF NOT EXISTS student2(
id int  ,
name VARCHAR(20),
deptId int,
CONSTRAINT pk1 PRIMARY KEY(id)
)

主键作用

  • 重复主键

会出现下面的错误。

 不能为空值

 

 1.3联合主键

-- =================================联合主键=================================
-- 创建新的表 不指定外键的名称
DROP TABLE IF EXISTS student3;
CREATE TABLE IF NOT EXISTS student3(
id int ,
deptId int,
name VARCHAR(20),
PRIMARY KEY (id,deptId)
)-- 创建新的表 指定外键的名称
DROP TABLE IF EXISTS student3;
CREATE TABLE IF NOT EXISTS student3(
id int ,
deptId int,
name VARCHAR(20),
CONSTRAINT  pk1  PRIMARY KEY (id,deptId)
)

作用:

  • 可以单个为空

  • 不能全部是重复。可以部分是重复的。

1.4修改表结构添加主键

-- =================================修改表=================================
DROP TABLE IF EXISTS student3;
CREATE TABLE IF NOT EXISTS student3(
id int ,
deptId int,
name VARCHAR(20)
)-- 修改语句
-- 添加单个主键
ALTER TABLE student3 ADD PRIMARY KEY (id);-- 添加多个主键
ALTER TABLE student3 ADD PRIMARY KEY (id,deptId);

1.5删除主键约束


-- =================================删除主键=================================
-- 单列和组合主键都是这个删除的方法
ALTER TABLE student3 DROP PRIMARY KEY;

虽然删除了主键但是不为空的约束还是存在的。

1.6自增长约束

1.设置自增

-- =================================自增长约束=================================
DROP TABLE IF EXISTS student3;
CREATE TABLE IF NOT EXISTS student3(
id int PRIMARY KEY auto_increment,
deptId int,
name VARCHAR(20)
)

 

  • 增长的话增长到这个类型的最大的值

  • 必须是整型

  • 可以执行开始的值和步长

2.设置初始的值

-- 初始值
DROP TABLE IF EXISTS student3;
CREATE TABLE IF NOT EXISTS student3(
id int PRIMARY KEY auto_increment ,
deptId int,
name VARCHAR(20)
) auto_increment =100;-- 采用修改表的形式
-- 采用修改表的形式修改自增的初始值
ALTER TABLE student3 auto_increment =200;

delete删除数据的时候还是从原先的基础上继续进行自增

但是truncate不是从1考试进行自增的。

2.非空约束

设置表的字段不能为空

-- =================================非空约束=================================
-- 创建表的时候设置
DROP TABLE IF EXISTS student3;
CREATE TABLE IF NOT EXISTS student3(
id int PRIMARY KEY auto_increment ,
deptId int  ,
name VARCHAR(20)  NOT NULL
)-- 修改表的时候添加
ALTER TABLE student3  MODIFY deptId VARCHAR(20)  NOT NULL;-- 删除的时候就去掉就行
ALTER TABLE student3  MODIFY name VARCHAR(20)  ;

 

3.默认值约束

-- =================================默认值约束=================================
-- 创建表的时候设置
DROP TABLE IF EXISTS student3;
CREATE TABLE IF NOT EXISTS student3(
id int PRIMARY KEY auto_increment ,
deptId int  UNIQUE,
name VARCHAR(20)  NOT NULL DEFAULT '用户名'
)-- 修改表的时候添加(默认删除重新加)
ALTER TABLE student3  MODIFY name  VARCHAR(20)  NOT NULL   DEFAULT '用户名修改';-- 删除默认值约束
ALTER TABLE student3  MODIFY name  VARCHAR(20)  NOT NULL ;

4.零填充约束

插入数据的时候当前字段的值的长度小于定义的长度的时候,就会在值得前面补上对应得0

zerefill默认为int(10)

默认加了无符号得限制。数值范围是原先得两倍

 

-- =================================默0填充约束=================================
-- 创建表的时候设置
DROP TABLE IF EXISTS student3;
CREATE TABLE IF NOT EXISTS student3(
id int ZEROFILL  auto_increment,
deptId int  UNIQUE,
name VARCHAR(20)  NOT NULL DEFAULT '用户名',
PRIMARY KEY  (id)
)-- 删除
ALTER TABLE student3 MODIFY id INT;

 

 下面是添加得数据

 以上所有的操作都是可以在navicat可视化界面中进行找到并进行设置的。

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

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

相关文章

改进YOLO系列:3.添加SOCA注意力机制

添加SOCA注意力机制 1. SOCA注意力机制论文2. SOCA注意力机制原理3. SOCA注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. SOCA注意力机制论文 暂未找到 2. SOCA注意力机制原理 3. SOCA注意力机制的配置 3.1common.py配置 ./models/common.p…

【3Ds Max】可编辑多边形“点”层级的简单使用

目录 简介 示例 (1)移除 (2)断开 (3)焊接 (4)挤出 (5)切角 (6)目标焊接 (7)连接 简介 在3ds Max中&…

PHP实现轻量级WEB服务器接收HTTP提交的RFID刷卡信息并回应驱动读卡器显示播报语音

本示例使用的读卡器&#xff1a;RFID网络WIFI无线TCP/UDP/HTTP可编程二次开发读卡器POE供电语音-淘宝网 (taobao.com) <?php mb_http_output(utf-8); $port88; $socket socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $bool socket_bind($socket, "0.0.0.0",…

【多维定向滤波器组和表面波】表面变换:用于高效表示多维 s 的多分辨率变换(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

相关搜索引擎常用搜索语法(Google hacking语法和FOFA语法)

一&#xff1a;Google Hack语法 Google Hacking原指利用Google搜索引擎搜索信息来进行入侵的技术和行为&#xff0c;现指利用各种搜索引擎并使用一些高级的搜索语法来搜索信息。既利用搜索引擎强大的搜索功能&#xff0c;在在浩瀚的互联网中搜索到我们需要的信息。 &#xff0…

uniapp scroll-view横向滚动无效,scroll-view子元素flex布局不生效

要素排查&#xff1a; 1.scroll-x属性需要开启&#xff0c;官方类型是Boolean&#xff0c;实际字符串也行。 2scroll-view标签需要给予一个固定宽度&#xff0c;可以是百分百也可以是固定宽度或者100vw。 3.子元素需要设置display: inline-block&#xff08;行内块元素&#x…

【仿写tomcat】二、扫描java文件,获取带有@WebServlet注解的类

tomcat仿写 项目结构扫描文件servlet注解map容器servlet工具类启动类调用 项目结构 扫描文件之前当然要确定一下项目结构了&#xff0c;我这里的方案是tomcat和项目同级 项目的话就仿照我们平时使用的结构就好了&#xff0c;我们规定所有的静态资源文件都在webApp目录下存放…

服务器CPU飚高排查

排查思路 当正在运行的Java服务导致服务器的CPU突然飙高时&#xff0c;我们该如何排查定位到哪个接口的哪行代码导致CPU飙高的问题呢&#xff1f;我主要提供两个方案&#xff1a; jstackarthas 准备工作 代码准备 现在需要准备一段可以让服务器CPU飙高的代码以及把代码部署…

做好产品设计应遵循的5大原则

产品设计原则是产品设计需遵循的基础规则&#xff0c;如果没有遵循设计原则&#xff0c;直接进行产品设计&#xff0c;往往会造成产品设计不稳定、冗杂&#xff0c;不能真正满足用户需求&#xff0c;这为项目带来较大风险&#xff0c;影响项目顺利交付。 一般来说&#xff0c;做…

excel逻辑函数篇2

1、IF(logical_test,[value_if_true],[value_if_false])&#xff1a;判断是否满足某个条件&#xff0c;如果满足返回一个值&#xff0c;如果不满足则返回另一个值 if(条件,条件成立返回的值,条件不成立返回的值) 2、IFS(logical_test1,value_if_true1,…)&#xff1a;检查是否…

数据结构作业——哈夫曼树

/*【基本要求】 &#xff08;1&#xff09; 从文件中读出一篇英文文章&#xff0c;包含字母和空格等字符。 &#xff08;2&#xff09; 统计各个字符出现的频度。 &#xff08;3&#xff09; 根据出现的频度&#xff0c;为每个出现的字符建立一个哈夫曼编码&#xff0c;并输出。…

VMware上搭建的虚拟机突然本地无法连接服务器

长时间没有使用VMware 虚拟机了&#xff0c;今天突然登录上去&#xff0c;启动虚拟服务器后发现本地等不了了&#xff0c; 经过排查发现是开启了&#xff1a;VirtualBox Host-Only Network 关闭之后就本机就可以直连服务器了