当前位置: 首页 > article >正文

OldWang带你了解MySQL(三)

文章目录

    • 🔥MySQL中的约束
    • 🔥添加主键约束(Primary Key)
    • 🔥删除主键约束
    • 🔥添加外键约束(Foreign Key)
    • 🔥删除外键约束
    • 🔥添加唯一性约束(Unique)
    • 🔥删除唯一性约束
    • 🔥非空约束(Not Null)

🔥MySQL中的约束

在这里插入图片描述

约束概述
数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。

1.主键约束(Primary Key) PK

⭐主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。
⭐主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。
⭐例如,学生信息表中的学号是唯一的。

2.外键约束(Foreign Key) FK

⭐外键约束经常和主键约束一起使用,用来确保数据的一致性。

3.唯一性约束(Unique)

⭐唯一约束与主键约束有一个相似的地方,就是它们都能够确保列的唯一性。
⭐与主键约束不同的是,唯一约束在一个表中可以有多个,并且设置唯一约束的列是允许有空值的。

4.非空约束(Not Null)

⭐非空约束用来约束表中的字段不能为空。

5.检查约束(Check)

⭐检查约束也叫用户自定义约束,是用来检查数据表中,
⭐字段值是否有效的一个手段,但目前MySQL 数据库不支持检查约束。

🔥添加主键约束(Primary Key)

1.单一主键

使用一个列作为主键列,当该列的值有重复时,则违反唯一约束。

2.联合主键

使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。

修改表添加主键约束

1.使用DDL语句添加主键约束

ALTER TABLE 表名 ADD PRIMARY KEY(列名)

示例:
将 emp 表中的 employee_id 修改为主键。

alter table emp add primary key(employee_id);

主键自增长
MySQL 中的自动增长类型要求:
⭐一个表中只能有一个列为自动增长。
⭐自动增长的列的类型必须是整数类型。
⭐自动增长只能添加到具备主键约束与唯一性约束的列上。
⭐删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然后在删除约束。

alter table 表名 modify 主键 类型 auto_increment;

示例:
将 emp 表中的 employee_id 主键修改为自增。

alter table emp modify employee_id int auto_increment;
  1. 使用Navicat添加主键约束
    在这里插入图片描述
    在这里插入图片描述

🔥删除主键约束

1.使用DDL语句删除主键

ALTER TABLE 表名 DROP PRIMARY KEY;

注意:

删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除主键。

示例:
删除emp表中的 employee_id 主键约束。
去掉自动增长:

alter table emp modify employee_id int;

删除主键:

alter table emp drop primary key;

2.使用Navicat删除主键
在这里插入图片描述
在这里插入图片描述

🔥添加外键约束(Foreign Key)

1.使用DDL语句添加外键约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY( 列 名 ) REFERENCES 参
照的表名(参照的列名);

示例一:
创建 departments 表包含 department_id 、department_name ,location_id。

create table departments(department_id int,department_name
varchar(30),location_id int);

示例二:
修改departments表,向department_id列添加主键约束与自动递增。

alter table departments add primary key(department_id);
alter table departments modify department_id int auto_increment;

示例三:
修改 emp 表,添加 dept_id 列。

alter table emp add column dept_id int;

示例四:
向 emp 表中的 dept_id 列添加外键约束。

alter table emp add constraint emp_fk foreign key(dept_id) references
departments(department_id);

2.使用Navicat添加外键约束
在这里插入图片描述
在这里插入图片描述

🔥删除外键约束

1.使用DDL语句删除外键约束。

ALTER TABLE 表名 DROP FOREIGN KEY 约束名;

示例:
删除 dept_id 的外键约束。

alter table emp drop foreign key emp_fk;

2.使用Navicat删除外键约束
在这里插入图片描述
在这里插入图片描述

🔥添加唯一性约束(Unique)

修改表添加唯一性约束

1.使用DDL语句添加唯一性约束。

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名);

示例:
向 emp 表中的 name 添加唯一约束。

alter table emp add constraint emp_uk unique(name);

2.使用Navicat添加唯一性约束
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

🔥删除唯一性约束

1.使用DDL语句删除唯一性约束。

ALTER TABLE 表名 DROP KEY 约束名;

示例:
删除 name 的唯一约束。

alter table emp drop key emp_uk;

2.使用Navicat删除唯一性约束。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

🔥非空约束(Not Null)

修改表添加非空约束
1.使用DDL语句添加非空约束。

ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;

示例:
向 emp 表中的 salary 添加非空约束。

alter table emp modify salary float(8,2) not NULL;

2.使用Navicat添加非空约束。
在这里插入图片描述
在这里插入图片描述

删除非空约束
1.使用DDL语句删除非空约束。

ALTER TABLE 表名 MODIFY 列名 类型 NULL;

示例:
删除emp表中salary 的非空约束。

alter table emp modify salary float(8,2) NULL;

2.使用Navicat删除非空约束。
在这里插入图片描述
在这里插入图片描述

创建表时添加约束
查询表中的约束信息:

SHOW KEYS FROM 表名;

示例:
创建 depts 表包含 department_id 该列为主键且自动增长,department_name 列不 允许重复,location_id 列不允含有空值。

create table depts(department_id int primary key auto_increment,department_name
varchar(30) unique,location_id int not null);

http://www.kler.cn/a/9591.html

相关文章:

  • 高效稳定!新加坡服务器托管方案助力企业全球化布局
  • 缓存与数据库不一致的解决方案:深入理解与实践
  • HTTP常见的请求头有哪些?都有什么作用?在 Web 应用中使用这些请求头?
  • 容器技术在DevOps中的应用
  • 排序算法 - 冒泡
  • 数据挖掘(九)
  • 【高危】Apache Linkis Gateway模块存在身份验证绕过漏洞(CVE-2023-27987)
  • 深度学习中,Params参数量和FLOPs计算量分别指什么
  • NoSQL指令笔记
  • vue中将侧边栏隐藏
  • Linux防火墙开放端口
  • 如何使用 Jetpack Compose 创建翻转卡片效果
  • Java基础(五)面向对象编程(基础)
  • Keil 5 安装教程及简单使用【嵌入式系统】
  • JavaScript+Selenium自动化测试
  • 记一次 .NET 某医疗住院系统 崩溃分析
  • 堡垒机主流品牌有哪些?如何选择?
  • 【LeetCode每日一题: 1312. 让字符串成为回文串的最少插入次数 | 暴力递归=>记忆化搜索=>动态规划 | 区间dp 】
  • Maven配置私服
  • 行为型模式-责任链模式
  • this指向问题
  • nginx--基本配置
  • leetcode 917 仅仅反转字母
  • 爱创科技携手“中华老字号”卫岗乳业,携手爱创科技,解码AR营销
  • Linux常见操作命令【二】
  • substr | mysql