Cascade

MySQL中的外键是什么、有什么作用

瘦欲@ 提交于 2020-10-17 02:57:16
MySQL外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中列的值! 我们来建两个表 CREATE TABLE `example1` ( `stu_id` int(11) NOT NULL DEFAULT '0', `course_id` int(11) NOT NULL DEFAULT '0', `grade` float DEFAULT NULL, PRIMARY KEY (`stu_id`,`course_id`) ); CREATE TABLE `example2` ( `id` int(11) NOT NULL, `stu_id` int(11) DEFAULT NULL, `course_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `f_ck` (`stu_id`,`course_id`), CONSTRAINT `f_ck` FOREIGN KEY (`stu_id`, `course_id`) REFERENCES `example1` (`stu_id`, `course_id`) ); insert into example1 (stu_id,course_id,grade)values(1,1,98.5),(2,2,89); insert

AI大有可为:NAIE平台助力垃圾分类

扶醉桌前 提交于 2020-10-15 01:49:38
摘要: 生活垃圾的分类和处理是目前整个社会都在关注的热点,如何对生活垃圾进行简洁高效的分类与检测对垃圾的运输处理至关重要。AI技术在垃圾分类中的应用成为了关注焦点。 如今AI已经是这个时代智能的代名词了,任何领域都有AI的身影,垃圾分类及监管等场景自然也少不了“AI+”的赋能。 不过,垃圾往往属于商品的极端变形体,情况比较特殊。目前的技术在视觉可见的基础上,是可以做到垃圾分类报警提醒的,比如判断垃圾是否是经过分类整理的。至于是否能够直接进行视觉检测并分类,且达到某种效果,需要更多的数据和实验支撑才能判断这件事情的可行性。针对这些问题,我们或许可以从海华垃圾分类挑战赛中去听听参赛者都是如何用技术来改变世界的。 海华垃圾分类挑战赛数据包括单类垃圾数据集以及多类垃圾数据集。单类垃圾数据集包含80,000张单类生活垃圾图片,每张单类垃圾图片中仅有一个垃圾实例。 多类垃圾数据集包括4998张图像,其中2,998张多类垃圾图片作为训练集数据,A榜和B榜各包含1000张测试图像,每张多类垃圾图片中包含至多20类垃圾实例。我们将对两种数据集分别进行介绍。 一、多类别垃圾 图1 多类垃圾数据类别分布 如图1所示,多类别垃圾涵盖了204类垃圾,但这204类的数据非常不均衡,有一些类别数目非常少甚至没有出现。 图2 多类垃圾数据可视化 图2中两张图是训练集中的两张图像

数据库基本知识点总结(一)[云图智联]

半世苍凉 提交于 2020-10-10 18:16:00
数据库也是计算机类笔试面试中不可避免会遇到的考点,尤其是银行和部分传统软件类公司。这里根据整理的资料,对数据库的相关知识也做个总结吧。希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾,没学过的同学能掌握一些数据库的基础知识。 第一节 一、相关概念 1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。 2. Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。 3. DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学地组织、存储和管理数据、高效地获取和维护数据。 4. DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员(DBA)构成。 5. 数据模型:是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的模拟,是数据库系统的核心和基础;其组成元素有数据结构、数据操作和完整性约束。 6. 概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。 7. 逻辑模型:是按计算机系统的观点对数据建模,用于DBMS实现。 8. 物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。 9. 实体和属性:客观存在并可相互区别的事物称为实体

补12.关于mysql的外键约束

走远了吗. 提交于 2020-10-05 19:24:39
一、什么是mysql中的外键(froeign key) 假如说有两张表,其中一张表的某个字段指向了另一张表的主键,这就可以称之为外键(froeign key)。 在子表中增加一条记录时,需要确定是否有与父表相对应的记录。 如果父表没有对应的记录,那么子表(从表)无法插入这条数据。 下面是一个关于外键的示例: 1.首先创建一个主表,这个主表存放了班级信息。 create table class ( id TINYINT PRIMARY KEY auto_increment, class_name varchar(20)) engine=innodb; 2.在class表中插入五条记录,代表有5个班级。 insert into class (id,class_name)value(1,"class1"), (2,"class2"), (3,"class3"), (4,"class4"), (5,"class5"); 3.创建一个子表,这个子表存放了学生和班级的对应关系,这些学生属于哪个班级? create table student( id int primary key auto_increment, name varchar(20), class_id TINYINT) engine=innodb; 4.插入6条记录,代表了6个学生。 insert into student(id

深入理解 EF Core:使用查询过滤器实现数据软删除

浪尽此生 提交于 2020-10-03 04:01:17
原文: https://bit.ly/2Cy3J5f 作者:Jon P Smith 翻译:王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的。其中可能会去除一些本人实在不知道如何组织但又不影响理解的句子。 这篇文章是关于如何使用 EF Core 实现软删除的,即表面上删除了数据,但数据并没有被物理删除,在需要的时候你还是可以把它读取出来的。软删除有很多好处,但也有一些值得注意的问题。这篇文章会教你使用 EF Core 实现一般的软删除和复杂的级联软删除。在此过程中,我还会介绍如何编写可重用代码来提高软删除解决方案的开发效率。 我假设你对 EF Core 已经有了一定的认识。但在真正讲软删除实现的方案之前,我们先来了解一下如何使用 EF Core 实现删除和软删除的一些基本知识。 本文是“深入理解 EF Core”系列中的第三篇。以下是本系列文章列表: 深入理解 EF Core:当 EF Core 从数据库读取数据时发生了什么? 深入理解 EF Core:当 EF Core 写入数据到数据库时发生了什么? 深入理解 EF Core:使用查询过滤器实现数据软删除(本文) 概要 ∮. 你可以使用全局查询过滤器(现在称为查询过滤器)为你的 EF Core 应用程序添加软删除功能。 ∮. 在应用程序中使用软删除的主要好处是可以恢复无意的删除和保留历史记录。 ∮.

MySQL 基础语法

帅比萌擦擦* 提交于 2020-09-30 06:53:16
MySQL MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。 所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 RDBMS 即关系数据库管理系统(Relational Database Management System)的特点: 数据以表格的形式出现 每行为各种记录名称 每列为记录名称所对应的数据域 许多的行和列组成一张表单 若干的表单组成database RDBMS 术语 数据库: 数据库是一些关联表的集合。 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。 冗余: 存储两倍数据

MYSQL-外键约束(图文)

风流意气都作罢 提交于 2020-09-24 07:27:43
简介 外键的使用条件: 两个表必须是InnoDB表,MyISAM表暂时不支持外键 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以,且被关联字段必须保证唯一 四种外键约束方式 RESTRICT(约束):如果出现在删除时,意思是约束外键主键did记录(主表中的记录)不能直接删除,必须先删除被约束的表(从表)字段中dept_id所有这个外键主键值对应的记录,才能删除外键约束(主表中的记录),测试发现在navicat中不选择默认设置的就是这种 NO ACTION:在MySQL中等同于RESTRICT,原因如下:restrict是在修改或者删除之前去检查从表中是否有对应的数据,如果有,拒绝操作,而no action是来源标准的sql,在有些数据库中,会延迟检查,即在修改或者删除完以后去检查从表中是否有对应的数据,如果有,拒绝操作,但是在MySQL中,外键约束都会立即检查,所以两者等价 CASCADE:删除选择这个时,删除主表中的记录时,主表中的这个主键id关联的从表的这个id值所在的记录也会被删除。建议不选。 SET NULL :删除选择这个时,如果从表(被约束的字段所在的表中)被约束的字段的值设置为可以为空时

MySQL——DML操作(插入、修改、删除、查询数据)

落爺英雄遲暮 提交于 2020-08-20 09:03:38
MySQL——DML操作(插入、修改、删除、查询数据) 知识大纲 DML概念 插入数据 修改数据 删除数据 查询数据 DML[数据操纵语言] DML [Data Manipulation Language] DML 用于插入、修改、删除数据记录,包括如下 SQL 语句: INSERT:添加数据到数据库中 UPDATE:修改数据库中的数据 DELETE:删除数据库中的数据 插入数据 语法 INSERT INTO 表名称 VALUES ( 值 1 ,值 2 ,…… ) ; -- 1:[按建表列顺序]直接插入所有列的数据 INSERT INTO 表名称 VALUES ( 值 1 ,值 2 ,…… ) , ( 值 1 ,值 2 ,…… ) , … ; -- 2:指定列名顺序插入全部或部分数据 INSERT INTO 表名称 ( 字段 1 ,字段 2 ,…… ) VALUES ( 值 1 ,值 2 ,…… ) ; -- 3:批量插入多条数据 INSERT INTO 表名称 ( 字段 1 ,字段 2 ,…… ) VALUES ( 值 1 ,值 2 ,…… ) , ( 值 1 ,值 2 ,…… ) , … . . ; -- 4:[指定列信息]批量插入多条数据 示例 #测试表 DROP TABLE IF EXISTS emps ; CREATE TABLE emps ( e_id VARCHAR