MySQL的数据表中的约束有以下5种_数据库增加约束条件

MySQL的数据表中的约束有以下5种_数据库增加约束条件MySQL数据库中数据表的约束条件

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

        

目录

1.primary key :主键约束,用于唯一标识对应的记录  

1.单字段主键

2. 复合主键

2.foreign key:外键约束

1.创建表时添加外键约束

 2.为已存在的表添加外键约束

 3.删除外键约束

3.not  null 非空约束

1.创建表时添加非空约束

 2.为已经存在的表添加非空约束

 3.删除非空约束

4.UNIQUE:唯一性约束

创建表时添加唯一约束

为已经存在的表添加唯一约束

删除唯一约束

5.default:默认值约束

创建表时添加默认约束

 为已存在的表添加默认约束

删除默认约束

拓展:创建表时指定字段值自动增加

1.创建表时指定字段值自动增加

2.为已存在的表设置字段值自动增加  

3.删除字段的自动增长

语法格式:alter table 表名 modify 字段名 数据类型;


        为了防止数据表中插入错误的数据,MySQL定义了一些维护数据库完整性的规则,即表的约束。

        约束用来确保数据的准确性和一致性,数据的完整性就是对数据的准备性和一致性的一种保证。

常见的约束条件有:

1.primary key :主键约束,用于唯一标识对应的记录  

        主键,又称主码,由表中的一个字段或多个字段组成,能够唯一地表示表中地一条记录。主键约束要求主键字段的数据唯一,并且不允许为空。

主键分为两种类型:单字段主键和复合主键。

每个数据表中最多只能有一个主键。

1.单字段主键

①创建表时指定主键

    语法格式为:字段名 数据类型 primary key; //primary :主要的

例:创建books表,并设置bookid字段为主键。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

 查询:describe books4;

MySQL的数据表中的约束有以下5种_数据库增加约束条件

②为已存在的表添加主键约束

语法格式:

alter table 表名 modify 字段名 数据类型 primary key;

例:将books3中的bookname字段修改为主键。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

③删除主键约束

语法格式:alter table 表名 drop primary key;

例:删除books3表的bookname字段的主键约束。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

2. 复合主键

复合主键指主键由多个字段组成。

①创建表时指定复合主键

其语法格式为为:primary key (字段名1,字段名2,….字段名n);

例:创建books5表,设置product_id,region_code为复合主键。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

 ②为已存在的表添加复合主键

语法格式如下:

alter tale 表名 add primary key (字段名1,字段名2,…..字段名n)

MySQL的数据表中的约束有以下5种_数据库增加约束条件

2.foreign key:外键约束

外键在两个表的数剧之间建立关联,它可以是一个阻断或者多个字段。

一个表可以由一个或者多个外键。一个表的外键可以为空值,若不为空值,则每一个外键指必须等于另一个表中主键的某个值。

注意:关联值得是在关系数据库中,相关表之间的联系。它可以通过相同或者相容的字段或字段组来表示的

子表的外键必须关联父表的主键.且关联字段的数据类型必须匹配。

定义外键后,不允许在主表中删除与子表具有关联关系的记录。

主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的哪个表即主表

从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的哪个表即主表

1.创建表时添加外键约束

语法格式:

constraint   外键名 foreign key (从表的外键字段名) references 主表名 (主表的主键字段名) //references :查询// constraint:限制,约束

例:创建一个数据表books6;在books6表上创建外键约束,其中books4为主表,books6表为从表。

让books6的键borrowbookid作为外键关联到books4的主键bookid。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

 2.为已存在的表添加外键约束

语法格式:alter table 从表名 add constraint 外键名 foreign key (从表的外键字段名) references 主表名(主表的主键关键字段名); //constraint :约束 foreign:外交的 references:涉及

其中,”外键名”是指从表创建的外键约束的名字。

例:创建图书表books和借阅表borrow,为借阅表borrow创建外键。  

MySQL的数据表中的约束有以下5种_数据库增加约束条件

Alter table borrow add constraint bks foreign key(Borrowbookid) rederences books(bookid)

MySQL的数据表中的约束有以下5种_数据库增加约束条件

 通过select*from information_schema.KEY_COLUMN_USAGE;这条命令查询数据库中所有表的外键和主键

MySQL的数据表中的约束有以下5种_数据库增加约束条件

 3.删除外键约束

语法格式:alter table 从表名 drop foreign key 外键名;

例:删除books6表Borrowbookid字段的外键约束,外键约束名为fk_bks_brw.

MySQL的数据表中的约束有以下5种_数据库增加约束条件

3.not  null 非空约束

非空约束(Not null Constraint)指字段的值不能为空。

对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错

1.创建表时添加非空约束

语法格式:字段名 数据类型 NOT NULL;

例:创建commpany表,并设置commpany_id字段为主键,commpany_address为非空主键。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

 2.为已经存在的表添加非空约束

语法格式:alter table 表名 modify 字段名 新数据类型 not null;

例:为已存在的commpany表中的commpany_name添加一个非空约束

MySQL的数据表中的约束有以下5种_数据库增加约束条件

 3.删除非空约束

语法格式:alter table 表名 modify 字段名 数据类型

例:删除从commpany表中的commpany字段的非空约束。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

4.UNIQUE:唯一性约束

唯一约束要求该列值唯一,允许为空,不允许重复

唯一约束可以确保一列或者几列不出现重复值

  • 创建表时添加唯一约束

    语法格式:字段名 数据类型 UNIQUE

例:创建数据表commpany,并将commpany_id字段设置为主键,commpany_address为非空约束,commpany_name字段设置为唯一约束。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

  • 为已经存在的表添加唯一约束

语法格式:alter table 表名 modify 字段名 新数据类型 unique;

例:将commpany表中的commpany_name字段修改为唯一约束。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

  • 删除唯一约束

语法格式:alter table 表名 drop index 唯一字段 //index:索引

例:删除commpany数据表中的commpany_name的唯一字段

MySQL的数据表中的约束有以下5种_数据库增加约束条件

5.default:默认值约束

       若数据表中某列定义为默认约束,在用户插入新的数据行时,如果没有为该列指定数据。那么数据库系统就会自动将默认值赋给该列。默认值也可以是NULL

  • 创建表时添加默认约束

语法格式:字段名 数据类型 default 默认值;

例:创键default1表,并将default1_id 字段设置为主键,default1_name字段设置为唯一性约束,default_address字段设置为非空约束、default1_tel字段的默认值设置为”0371-“。

MySQL的数据表中的约束有以下5种_数据库增加约束条件

  •  为已存在的表添加默认约束

语法格式:alter table 表名 modify 字段名 新数据类型 default 默认值;

例:为default1表中的DEFAULT1_tel字段添加默认约束,默认值为”0731-“;

MySQL的数据表中的约束有以下5种_数据库增加约束条件

  • 删除默认约束

语法格式:alter table 表名 modify 字段名 数据类型;

MySQL的数据表中的约束有以下5种_数据库增加约束条件

拓展:创建表时指定字段值自动增加

       在MySQL中,AUTO_INCREMENT字段的初始值是1,每增加一条记录,字段值自动加1,但一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须设置为主键。AUTO_INCREMENT约束所在字段可以是任何整数类型。(TINYINT,SMALLINT,BIGINT)

1.创建表时指定字段值自动增加

//AUTO_INCREMENT:自动增加

语法格式:字段名 数据类型 primary key AUTO_INCREMENT;

例:创建commpany表,并将commpany_id字段设置为主键,其值自动增加,commpany_address 字段设置为非空约束,commpany_name字段设置为唯一约束,commpany_tel字段的默认值设置为”0371-“

MySQL的数据表中的约束有以下5种_数据库增加约束条件

2.为已存在的表设置字段值自动增加  

语法格式:alter table 表名 modify 字段名 新数据库类型 auto_increment[=n];

参数说明如下:

[IF NOT EXISTS] :可选子句,该子句可防止创建数据库服务器中已存在的新数据库的错误,即不能在MySQL服务器中创建具有相同名称的数据库。

例:设置commpany表中的commpany_id字段值自动增加

MySQL的数据表中的约束有以下5种_数据库增加约束条件

3.删除字段的自动增长

语法格式:alter table 表名 modify 字段名 数据类型;

例:删除commpany表中的commpany_id字段值的自动增加

MySQL的数据表中的约束有以下5种_数据库增加约束条件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183690.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月10日 上午7:00
下一篇 2022年10月10日 上午7:00


相关推荐

  • layui的layer弹出层和form表单

    layui的layer弹出层和form表单文章目录弹出层layerform表单增删改查所有代码如果想用layui来完成增删改查,那么要会用弹出层和form表单这两个组件是必须的,所以今天就来介绍一些如何用layui完成基本的增删改查弹出层layer因为layui的特性,每次不管使用哪个组件,都要先把它的模块加载出来比如我要用layer和form那么就需要先这样定义,你的操作都是在这个里面进行,当然页可以一次性加载所有模块,详情…

    2022年7月13日
    22
  • xshell评估过期解决办法

    xshell评估过期解决办法

    2021年10月17日
    55
  • Eclipse导入Maven工程报异常

    Eclipse导入Maven工程报异常蛋疼的一天,今天刚弄好新机子,迁移项目,导入的时候报如下错误:Couldnotcalculatebuildplan:Pluginorg.apache.maven.plugins:maven-resources-plugin:2.6oroneofitsdependenciescouldnotberesolved:Failedtoreadartifac

    2022年5月18日
    36
  • ftp客户端发起对ftp服务器_ftp登陆命令

    ftp客户端发起对ftp服务器_ftp登陆命令FTP是一个C/S类型的软件,连接服务端需要FTP客户端才能完成,常见的FTP客户端有以下几种:浏览器:可以通过浏览器中输入ftp://ip或者ftp://域名的方式3分钟了解计算机发展历史-组团学来访问FTP自带客户端:命令行下可以使用ftp命令去连接三方客户端:FileZilla8uftp图形软件或者文本界面的lftp等三种方式中,文本界面是比较麻烦的,无法鼠标流。所以我重点给大家讲解一…

    2022年10月21日
    4
  • md文件编辑_第三方编辑器

    md文件编辑_第三方编辑器学长让我写博客学习c语言,写了几篇,但是总觉得文章界面不好看,然后找到一些资料,那就开始新的界面吧!开始你的MD编辑器吧!!(妈的编辑器)复制,直接应用>块引用@[TOC]#二.使用步骤##1.引入库##2.读入数据点一下蓝色的字,到相应的文章段<fontcolor=red>关注</font>这是设置字体颜色,和范围,“`cimportnumpyasnpimportp…

    2026年2月25日
    5
  • 安卓chrome 扫描二维码_付款扫的是条形码还是二维码

    安卓chrome 扫描二维码_付款扫的是条形码还是二维码了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一张图片中扫一下竟然能直接加好友,不可思议啊,那时候还不了解二维码,呵呵,然后做项目的时候,老板说要加上二维码扫描功能,然后自己的屁颠屁颠的去百度,google啥的,发现很多朋友都有介绍二维码扫描的功能,然后我就跟着人家的介绍自己搞起了二维码扫描功能,跟着人家的帖子,很快我的项目就加入了扫描二维码的功能,然后自己还很开

    2025年8月20日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号