MySQL数据库的约束限制详解

 更新时间:2022年08月03日 09:06:46   作者:面屏思过​​​​​​​  
这篇文章主要介绍了MySQL数据库的约束限制详解,数据库的约束是对表中数据进行的一种限制,为了保证数据的正确性、有效性、完整性,下文简单介绍需要的朋友可以参考一下

一、介绍

数据库的约束是对表中数据进行的一种限制,为了保证数据的正确性、有效性、完整性。

无论是在添加数据还是在删除数据的时候,都能提供帮助。所有的关系型数据库都支持对数据表的约束。

  • 主键:唯一标识一条记录,不能重复,不允许为空。主要用来保证数据的完整性。
  • 外键: 表的外键是另一表的主键,外键可以有重复,可以为控制。主要用来和其他表建立联系。

二、操作

添加

添加主键:

// 一般设置id为主键
CREATE TABLE student(
	id INT PRIMARY KEY,
	NAME VARCHAR(30),
	age INT
);

添加自增主键:

CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(30),
	age INT
);

创建唯一约束:

// 这里age为唯一约束
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(30),
	age INT UNIQUE
);

创建非空约束:

// 这里 NAME 属性为非空约束
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(30) NOT NULL,
	age INT UNIQUE
);

建表时添加外键约束:

// 这里是指orderlist这个表的uid是USER表id主键的外键约束 
CREATE TABLE orderlist(
	id INT PRIMARY KEY AUTO_INCREMENT,    -- id
	number VARCHAR(20) NOT NULL,          -- 订单编号
	uid INT,			      -- 外键列
	CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id)
);

建表后单独添加主键约束:

ALTER TABLE student MODIFY id INT PRIMARY KEY;

建表后单独添加非空约束:

ALTER TABLE student MODIFY NAME VARCHAR(30) NOT NULL;

建表后单独添加唯一约束:

ALTER TABLE student MODIFY age INT UNIQUE;

建表后单独添加外键约束:

ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id);

删除

删除主键:

LTER TABLE student DROP PRIMARY KEY;

删除自增约束:

ALTER TABLE student MODIFY id INT;

删除唯一约束:

ALTER TABLE student DROP INDEX age;

删除非空约束:

ALTER TABLE student MODIFY NAME VARCHAR(30);

删除外键约束:

ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1;

外键联级操作

	添加外键约束,同时添加级联更新  标准语法:
	ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) 
	ON UPDATE CASCADE;
	
	添加外键约束,同时添加级联删除  标准语法:
	ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) 
	ON DELETE CASCADE;
	
	添加外键约束,同时添加级联更新和级联删除  标准语法:
	ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) 
	ON UPDATE CASCADE ON DELETE CASCADE;

到此这篇关于MySQL数据库的约束限制详解的文章就介绍到这了,更多相关MySQL 约束内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mysql5.7.11绿色版安装教程图文详解

    Mysql5.7.11绿色版安装教程图文详解

    本文通过图文并茂的形式给大家展示Mysql5.7.11绿色版安装教程,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-01-01
  • mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)

    mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)

    最近需要用mysql获取一个时间段中的所有月份,网上查都是要设置存储过程或者加一个日期表的,不满足我的需求,翻墙找资料加上自己试验,如下代码分享给大家
    2021-06-06
  • MySQL数据库表约束讲解

    MySQL数据库表约束讲解

    这篇文章主要介绍了MySQL数据库表约束讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Mysql主从复制(master-slave)实际操作案例

    Mysql主从复制(master-slave)实际操作案例

    这篇文章主要介绍了Mysql主从复制(master-slave)实际操作案例,同时介绍了Mysql grant 用户授权的相关内容,需要的朋友可以参考下
    2014-06-06
  • linux/mac安装mysql忘记密码的解决办法

    linux/mac安装mysql忘记密码的解决办法

    这篇文章主要给大家介绍了关于linux/mac安装mysql忘记密码的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • 一个简单的MySQL备份Shell脚本

    一个简单的MySQL备份Shell脚本

    这篇文章主要介绍了一个简单的MySQL备份Shell脚本,本文直接给出代码实例,需要的朋友可以参考下
    2015-07-07
  • MySQL一次性创建表格存储过程实战

    MySQL一次性创建表格存储过程实战

    这篇文章主要介绍了MySQL一次性创建表格存储过程实战,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • MySQL5.7.21解压版安装详细教程图解

    MySQL5.7.21解压版安装详细教程图解

    对于小编来说安装系统软件是常干的事情,今天小编抽空给大家整理了MySQL5.7.21解压版安装详细教程图解,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-09-09
  • MySQL备份和还原操作小结

    MySQL备份和还原操作小结

    备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件,这篇文章主要介绍了MySQL备份和还原操作小结,需要的朋友可以参考下
    2024-08-08
  • 解读mysql的for update用法

    解读mysql的for update用法

    这篇文章主要介绍了解读mysql的for update用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论