广告
返回顶部
首页 > 资讯 > 数据库 >mysql中restrict的含义是什么
  • 394
分享到

mysql中restrict的含义是什么

mysqlrestrict 2023-04-19 05:04:26 394人浏览 八月长安
摘要

本篇内容介绍了“Mysql中restrict的含义是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“Mysql中restrict的含义是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

mysql中,restrict是约束的意思,是指对表中数据的一种限制,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性、有效性和完整性。Mysql支持6种约束:主键约束、外键约束、唯一约束、检查约束、非空约束和默认值约束。

MySQL中什么是约束?

restrict(约束)是指对表中数据的一种限制,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性、有效性和完整性。

例如,在数据表中存放年龄的值时,如果存入 200、300 这些无效的值就毫无意义了。因此,使用约束来限定表中的数据范围是很有必要的。

MySQL中的约束就是用来检测数据正确性和合理性的,一般的错误有:1,存在相同重复的数据;2,错误的数据;3,数据丢失错误(空数据);4,指代不明确的错误(表之间无法准确联系起来)等。

MySQL的约束就是用来解决上述问题的,比如身份证号不能重复,收货地址不能空。如果违反了约束,则数据操作行为被制止。

在 MySQL 中,主要支持以下 6 种约束:

1)主键约束

主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。

主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。例如,学生信息表中的学号是唯一的。

2)外键约束

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

例如,一个水果摊,只有苹果、桃子、李子、西瓜 4 种水果,那么,你来到水果摊要买水果只能选择苹果、桃子、李子和西瓜,不能购买其它的水果。

3)唯一约束

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

例如,在用户信息表中,要避免表中的用户名重名,就可以把用户名列设置为唯一约束。

4)检查约束

检查约束是用来检查数据表中,字段值是否有效的一个手段。

例如,学生信息表中的年龄字段是没有负数的,并且数值也是有限制的。如果是大学生,年龄一般应该在 18~30 岁之间。在设置字段的检查约束时要根据实际情况进行设置,这样能够减少无效数据的输入。

5)非空约束

非空约束用来约束表中的字段不能为空。例如,在学生信息表中,如果不添加学生姓名,那么这条记录是没有用的。

6)默认值约束

默认值约束用来约束当数据表中某个字段不输入值时,自动为其添加一个已经设置好的值。

例如,在注册学生信息时,如果不输入学生的性别,那么会默认设置一个性别或者输入一个“未知”。

默认值约束通常用在已经设置了非空约束的列,这样能够防止数据表在录入数据时出现错误。

以上 6 种约束中,一个数据表中只能有一个主键约束,其它约束可以有多个。

操作表的约束

1、给一张表添加主键约束

一张表的只能有一个主键,添加主键有两种方式。

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

       联合主键:使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。指的是:使用多个列的组合形式来确定主键,当出现组合重复就无效,如00,01,10,11,12,22这样的组合形式。

使用DDL语句添加主键约束。示例:

ALTER TABLE 表名 ADD PRIMARY KEY(列名);
alter table emp add primary key(employee_id);//选取employee_id作为主键
alter table emp add primary key(employee_id,shenfen_id);//联合主键

2、给一张表添加自增长主键约束

auto_increment。数据库管理系统自动维护表时自动加上的主键,利用自然数自增的方式确定主键。同样的,自增长主键也是把某一列用作主键。当表中添加了主键的字段增加了数据,则主键自动加1。

自增长主键和一般主键约束可以相互转化。

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

       注意点:如果之前给某个字段添加了自增长属性,则删除这个字段时要先删除自增长属性。

alter table 表名 modify 主键 类型 auto_increment;
alter table emp modify employee_id int auto_increment;

或者在Navicat中添加主键:

mysql中restrict的含义是什么

3、删除一张表中的主键约束

使用DDL语句删除主键。

ALTER TABLE 表名 DROP PRIMARY KEY;
alter table emp drop primary key;

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

alter table emp modify employee_id int;//去掉自增长,与添加自增长代码地区别就是没有auto_increament
alter table emp drop primary key;

4、给一张表添加外键约束

使用DDL语句添加外键约束。可以给一张表设置多个外键。

ALTER  TABLE 表名 ADD CONSTRaiNT 约束名 FOREIGN  KEY(列名) REFERENCES 参照的表名(参照的列名);
alter table emp add constraint emp_fk
foreign key(dept_id) references
departments(department_id);

或在在Navicat中添加外键。外键名称常使用:表名_fk,表名_fk1表示。

mysql中restrict的含义是什么

5、删除一张表的外键约束

       使用DDL 语句删除外键约束。或者在Navicat中主动删除外键。

ALTER TABLE 表名 DROP FOREIGN KEY 约束名;
alter table emp drop foreign key emp_fk;

mysql中restrict的含义是什么

6、给表中某字段添加唯一性约束

使用DDL语句添加唯一性约束。或在在Navicat中添加唯一性约束。

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名);
alter table emp add constraint emp_uk unique(name);

mysql中restrict的含义是什么

7、删除表中某字段的唯一性约束

使用DDL语句删除唯一性约束。删除之前需要弄清楚删除的约束名是对哪一个字段进行约束的。

ALTER TABLE 表名 DROP KEY 约束名;
alter table emp drop key emp_uk;

8、给表中某个字段添加非空约束

使用DDL语句添加非空约束。或者Navicat。

ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;
alter table emp modify salary float(8,2) not NULL;

mysql中restrict的含义是什么

9、删除表中某个字段的非空约束

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

ALTER TABLE 表名 MODIFY 列名 类型 NULL;
alter table emp modify salary float(8,2) NULL;

mysql中restrict的含义是什么

创建表的时候添加约束

上面介绍了当一张表已经存在之后如何添加约束。下面介绍在一开始新建表的时候如何添加约束。

1、查询表中加了哪些约束?

 SHOW KEYS FROM 表名;

2、创建表时添加约束

       创建 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;
);

“mysql中restrict的含义是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中restrict的含义是什么

本文链接: https://www.lsjlt.com/news/201612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中restrict的含义是什么
    本篇内容介绍了“mysql中restrict的含义是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-04-19
    mysql restrict
  • mysql sakila的含义是什么
    本篇内容介绍了“mysql sakila的含义是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-04-19
    mysql sakila
  • mysql事务的含义是什么
    这篇文章主要介绍了mysql事务的含义是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql事务的含义是什么文章都会有所收获,下面我们一起来看看吧。mysql事务是指对...
    99+
    2023-05-25
    mysql
  • MySQL中performance_schema.threads的线程ID含义是什么
    这篇文章主要介绍“MySQL中performance_schema.threads的线程ID含义是什么”,在日常操作中,相信很多人在MySQL中performance_schema.threads的线程ID...
    99+
    2022-10-18
  • android中stretchcolumns的含义是什么
    在Android中,stretchColumns是TableLayout的一个属性,用于指定哪些列应该被拉伸以填充TableLayo...
    99+
    2023-10-28
    android
  • linux中tmp的含义是什么
    本篇内容主要讲解“linux中tmp的含义是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中tmp的含义是什么”吧! ...
    99+
    2023-03-10
    linux tmp
  • git中staged的含义是什么
    这篇文章主要讲解了“git中staged的含义是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“git中staged的含义是什么”吧!在git中,staged用于表示文件的状态,是暂存状态...
    99+
    2023-06-26
  • ASP中CommandTypeEnum的含义是什么
    CommandTypeEnum是ASP中的一个枚举类型,用于表示数据库操作的类型,包括插入、更新、删除和查询。它定义了以下几个常量:...
    99+
    2023-10-11
    ASP
  • css中translate的含义是什么
    这篇文章主要介绍“css中translate的含义是什么”,在日常操作中,相信很多人在css中translate的含义是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”cs...
    99+
    2022-10-19
  • PHP的中文含义是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP 全称 PHP Hypertext Preprocessor,是“超文本预处理器”的意思。它是一种跨平台的、开源的、服务器端执行的脚本语言,其语法吸收了C语言、J...
    99+
    2017-01-22
    PHP
  • html的中文含义是什么
    这篇文章主要介绍“html的中文含义是什么”,在日常操作中,相信很多人在html的中文含义是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html的中文含义是什么”的疑惑...
    99+
    2022-10-19
  • HTML中input的含义是什么
    本文小编为大家详细介绍“HTML中input的含义是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML中input的含义是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2022-10-19
  • HTML中title的含义是什么
    本文小编为大家详细介绍“HTML中title的含义是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML中title的含义是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2022-10-19
  • CSS中background的含义是什么
    本文小编为大家详细介绍“CSS中background的含义是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS中background的含义是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,...
    99+
    2022-10-19
  • node.js中url的含义是什么
    本篇内容主要讲解“node.js中url的含义是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node.js中url的含义是什么”吧! ...
    99+
    2022-10-19
  • javascript中double的含义是什么
    这篇文章主要讲解了“javascript中double的含义是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中double的含义是什...
    99+
    2022-10-19
  • linux中stream的含义是什么
    这篇文章主要介绍“linux中stream的含义是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux中stream的含义是什么”文章能帮助大家解决问题。 ...
    99+
    2023-03-19
    linux stream
  • internet中url的含义是什么
    这篇文章主要介绍了internet中url的含义是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇internet中url的含义是什么文章都会有所收获,下面我们一起来看看吧。...
    99+
    2023-03-06
    internet url
  • thinkphp中eq的含义是什么
    今天小编给大家分享一下thinkphp中eq的含义是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在thinkphp中,...
    99+
    2023-06-29
  • php中empty的含义是什么
    这篇文章主要介绍“php中empty的含义是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php中empty的含义是什么”文章能帮助大家解决问题。在PHP中,empty是空的意思,是一个内置函数...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作