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种_数据库增加约束条件

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • win10下pytorch-gpu安装以及CUDA详细安装过程

    win10下pytorch-gpu安装以及CUDA详细安装过程win10下pytorch-gpu安装以及CUDA详细安装过程1.Cuda的下载安装及配置首先我们要确定本机是否有独立显卡。在计算机-管理-设备管理器-显示适配器中,查看是否有独立显卡。可以看到本机有一个集成显卡和独立显卡NVIDIAGetForceGTX1050。接下来,测试本机独立显…

  • 改变QLabel背景颜色

    改变QLabel背景颜色在桌面应用程序开发时,需要显示一些状态信息,例如客户端是否掉线,串口是否打开等,我们可以用一些标志显示给用户,例如如果QLabel显示绿色,表示连接成功,显示黑色表示失败。代码如下:ui.label_Status->clear(); QPalettepalette; palette.setColor(QPalette::Background,Q…

  • mysql操作

    mysql操作

  • linux双系统默认进入win10,win10 linux 双系统 默认win10启动

    linux双系统默认进入win10,win10 linux 双系统 默认win10启动双系统怎么设置Win10系统为默认启动系统。Win10一出来,我就去安装尝试了,在自己电脑上安装了Win10双系统。安装后Win10就是默认启动系统了,那么要想让以前的系统为默认系统怎么设置呢,今天我就给大家介绍下Win10双系统怎么设置默认启动系统。1、在Win10系统下同时按下组合键“Win+R”,打开运行工具,输入“msconfig”,然后点击确定,如下图所示。2、在系统设置界面上点击“引导…

  • Python与Pycharm安装包

    Python与Pycharm安装包Python3.6.4与Pycharm安装包

  • netcore无线路由器_netcore路由器怎么设置

    netcore无线路由器_netcore路由器怎么设置IdentityServer里有各种Endpoint,如TokenEndpoint,UserInfoEndpoint,AuthorizeEndpoint,DiscoveryEndpoint等等。E

发表回复

您的电子邮箱地址不会被公开。

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