mysql数据库表约束模板_MySQL 数据库表的约束

数据库约束的种类

约束名

约束关键字

主键

primary key

唯一

unique

非空

not null

外键

foreign key

检查约束

check 注:mysql 不支持,sql支持

主键约束

创建主键方式

在创建表的时候给字段添加主键

字段名 字段类型 PRIMARY KEY

例1:

CREATE TABLEtb_info (

idINT PRIMARY KEY,

nameVARCHAR(30),

ageINT);

例2:

CREATE TABLEtb_info (

idINT,

nameVARCHAR(30),

ageINT,PRIMARY KEY(id)

);

在已有表中添加主键

ALTER TABLE 表名 ADD PRIMARY KEY(字段名);

例:

ALTER TABLE tb_info ADD PRIMARY KEY(id);

删除主键的方式

删除单表主键约束

ALTER TABLE 表名 DROP PRIMARY KEY;

删除有外键连接的表的主键

第一步:解除外键约束

ALTER TABLE 外键表 DROP FOREIGN KEY 外键名称

第二步:删除主键

ALTER TABLE 主键表 DROP PRIMARY KEY;

如:删除tb1的主键

f450163fc9c4b5e8333d8b6ff46c1777.png

9afa8b6f6a2d73f1047944be7b25e485.png

这里有两个表,tb2的外键连接tb1的主键

第一步:解除与tb2的外键约束

ALTER TABLE tb2 DROP FOREIGN KEY id2;

第二步:删除tb1的主键约束

ALTER TABLE tb1 DROP PRIMARY KEY;

主键自增

--表示自动增长(字段类型必须是整数类型)

AUTO_INCREMENT

如:

CREATE TABLEtb (

idINT PRIMARY KEYAUTO_INCREMENT,

nameVARCHAR(30),

ageINT);

默认地 AUTO_INCREMENT 的开始值是 1

创建表时指定起始值

CREATE TABLE表名 (

列名INT PRIMARY KEYAUTO_INCREMENT

) AUTO_INCREMENT=起始值;

如:指定起始值为5

CREATE TABLEtb (

idINT PRIMARY KEYAUTO_INCREMENT,

nameVARCHAR(30),

ageINT) AUTO_INCREMENT=5;

创建好以后修改起始值

ALTER TABLE 表名 AUTO_INCREMENT=起始值;

备注:DELETE 和 TRUNCATE对自增长的影响DELETE:删除所有的记录之后,自增长没有影响。TRUNCATE:删除以后,自增长又重新开始。

唯一约束

唯一约束: 表中某一列不能出现重复的值

基本格式

字段名 字段类型 UNIQUE

如:tb表中的 name 字段中的记录不能出现重复的

CREATE TABLEtb (

idINT,

nameVARCHAR(30) UNIQUE,

ageINT);

非空约束

非空约束:某一列不能为null

基本语法格式

字段名 字段类型 NOT NULL

如:tb表中的 id 字段不能出现null

CREATE TABLEtb (

idINT NOT NULL,

nameVARCHAR(30),

ageINT);

默认值

基本语法格式

字段名 字段类型 DEFAULT 默认值

如:tb表中的 age 字段的默认值为18

CREATE TABLEtb (

idINT,

nameVARCHAR(30),

ageINT DEFAULT 18);

外键约束

创建外键约束

新建表时增加外键

CONSTRAINT 外键约束名称 FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名)

如:

主表

CREATE TABLEtb1 (

idINT,

nameVARCHAR(30),

ageINT,PRIMARY KEY(id)

);

从表

CREATE TABLEtb2 (

cardINT,

nameVARCHAR(30),

ageINT,CONSTRAINT tb2_card FOREIGN KEY(card) REFERENCEStb1(id)

);

从表的外键card,与主表的主键id关联,从表中外键约束的名为tb2_card。

已有表增加外键

ALTER TABLE 从表 ADD CONSTRAINT 外键约束名称 FOREIGN KEY(外键字段名) REFERENCES 主表(主键字段名);

如:

表1

CREATE TABLEtb1 (

idINT,

nameVARCHAR(30),

ageINT,PRIMARY KEY(id)

);

表2

CREATE TABLEtb2 (

cardINT,

nameVARCHAR(30),

ageINT,

);

在tb2表中添加外键约束,外键字段为card。连接tb1表中的主键,主键字段为id:

ALTER TABLE tb2 ADD CONSTRAINT tb2_card FOREIGN KEY(card) REFERENCES tb1(id);

删除外键约束

ALTER TABLE 从表 DROP FOREIGN KEY 外键名称;

外键的级联

级联操作:在修改和删除主表的主键时,同时更新或删除副表的外键值,称为级联操作。

级联操作语法

描述

ON UPDATE CASCADE

级联更新,只能是创建表的时候创建级联关系。更新主表中的主键,从表中的外键列也自动同步更新

ON DELETE CASCADE

级联删除

举例:

创建tb1表

CREATE TABLEtb1 (

idINT,

nameVARCHAR(30),

ageINT,PRIMARY KEY(id)

);

创建tb2表

--创建 tb2 表,添加级联更新和级联删除

CREATE TABLEtb2 (

cardINT,

nameVARCHAR(30),

ageINT,CONSTRAINT tb2_card FOREIGN KEY(card) REFERENCEStb1(id)ON UPDATE CASCADE

ON DELETE CASCADE);

这个时候,如果我们向tb1表中插入数据:

INSERT INTO tb1 (id, name, age) VALUES (1001, ‘LeeHua‘, 22)

那么,tb2中的card字段也会更新。

这个时候,如果主表执行删除,则会自动删除从表中的相应记录。

原文:https://www.cnblogs.com/liyihua/p/12310525.html

主要内容:本文详细介绍了一种QRBiLSTM(分位数回归双向长短期记忆网络)的时间序列区间预测方法。首先介绍了项目背景以及模型的优势,比如能够有效利用双向的信息,并对未来的趋势上限和下限做出估计。接着从数据生成出发讲述了具体的代码操作过程:数据预处理,搭建模型,进行训练,并最终可视化预测结果与计算分位数回归的边界线。提供的示例代码可以完全运行并且包含了数据生成环节,便于新手快速上手,深入学习。此外还指出了模型未来发展的方向,例如加入额外的输入特性和改善超参数配置等途径提高模型的现。文中强调了时间序列的标准化和平稳检验,在样本划分阶段需要按时间序列顺序进行划分,并在训练阶段采取合适的手段预防过度拟合发生。 适合人群:对于希望学习和应用双向长短时记忆网络解决时序数据预测的初学者和具有一定基础的研究人员。尤其适用于有金融数据分析需求、需要做多一步或多步预测任务的从业者。 使用场景及目标:应用于金融市场波动预报、天气状况变化预测或是物流管理等多个领域内的决策支持。主要目的在于不仅能够提供精确的数值预计还能描绘出相应的区间概率图以增强结论置信程度。 补充说明:本教程通过一个由正弦信号加白噪构造而成的简单实例来指导大家理解和执行QRBiLSTM流程的所有关键步骤,这既方便于初学者跟踪学习,又有利于专业人士作为现有系统的补充参考工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值