mysql正在加载_mysql 数据库基本操作

CREATE TABLE classes(

id INT PRIMARY KEY AUTO_INCREMENT COMMENT'班级表id',

name VARCHAR(20) COMMENT'班级名称'

);

运行DESCRIBE classes;

+-------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | varchar(20) | YES | | NULL | |

+-------+-------------+------+-----+---------+----------------+

CREATE TABLE student(

id INT PRIMARY KEY AUTO_INCREMENT COMMENT'学生表id',

name VARCHAR(20) COMMENT'学生姓名',

class_id int COMMENT'教室id,这张表中的class_id是classes表中id的值',

FOREIGN KEY (class_id) REFERENCES classes(id)

);

//FOREIGN :外来 REFERENCES:应用,参考

运行DESCRIBE student;

+----------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+-------------+------+-----+---------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | varchar(20) | YES | | NULL | |

| class_id | int(11) | YES | MUL | NULL | |

+----------+-------------+------+-----+---------+----------------+

班级插入数据:

INSERT INTO CLASSES (name) VALUES ('一班');

INSERT INTO CLASSES (name) VALUES ('二班');

INSERT INTO CLASSES (name) VALUES ('三班');

INSERT INTO CLASSES (name) VALUES ('四班');

查看数据 SELECT * FROM classes;

+----+------+

| id | name |

+----+------+

| 1 | 一班 |

| 2 | 二班 |

| 3 | 三班 |

| 4 | 四班 |

+----+------+

学生插入数据:

INSERT INTO student (name,class_id) VALUES ('小赵',1);

INSERT INTO student (name,class_id) VALUES ('小钱',2);

INSERT INTO student (name,class_id) VALUES ('小孙',3);

INSERT INTO student (name,class_id) VALUES ('小李',4);

查看数据 SELECT * FROM student;

+----+------+----------+

| id | name | class_id |

+----+------+----------+

| 1 | 小赵 | 1 |

| 2 | 小钱 | 2 |

| 3 | 小孙 | 3 |

| 4 | 小李 | 4 |

+----+------+----------+

若是像插入班级为5的数据 如:

INSERT INTO student (name,class_id) VALUES ('小周',5);

报错: Cannot add or update a child row

我们删除正在被学生表引用的'四班'试试:

DELETE classes WHERE name = '四班';

出现:Cannot delete or update a parent row:不能删除主表中的行

我们先删除学生表中的 '小李'从而解除班级中'四班'的外键约束,再来删除'四班'(因为小李引用了四班)

DELETE FROM student WHERE name = '小李';

再次删除classes表中的'四班';

DELETE FROM classes WHERE name = '四班';

最后: SELECT * FROM classes;

+----+------+

| id | name |

+----+------+

| 1 | 一班 |

| 2 | 二班 |

| 3 | 三班 |

+----+------+

'四班'被成功删除!

总结:

1.主表中没有的数据,在附表中,是不可以使用的.

2.主表中记录的数据现在正在被附表所引用,那么主表中正在被引用的数据不可以被删除

3.若要想删除,先将附表中的数据删除在删除主表数据

4.对于外键约束大家可以联想 省,市 来进行联想 (市必须要依赖于省,只要省还有一个市在引用,那么就不可以删除省,要不然市就没有省了. 那么我们想删除省,必须要将该省下所有的市全部删除之后,才可以删除这个省)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CPU和GPU的区别是什么?

CPU是一种微处理器,用于执行程序根据操作(如算术、逻辑、控制和输入-输出)给出的指令。相反,GPU最初设计用于在电脑游戏中渲染图像。CPU强调低延迟,而GPU则强调高吞吐量。 CPU Vs GPU 内容 比较表格定义区别关键不同结论 1. 比较表格 从上…

乌班图配置mysql Java_Ubuntu准备+MySQL+Java

Linux服务器准备1 . 安装Ubuntu系统2 . 修改root用户密码sudo passwd root #修改root账户密码logout # 退出当前账号并重新登录#如果需要关机使用 halt 命令3 . 更新所有Linux的开发包apt-get update4 . 配置相关的编译包apt-get install gcc libpcre3 libpcrecpp* libpcre3-de…

java截取指定字符串中的某段字符

利用字符串的substring函数来进行截取。 其中,substring函数有两个参数: 1、第一个参数是开始截取的字符位置。(从0开始) 2、第二个参数是结束字符的位置1。(从0开始) indexof函数的作用是查找该字符串中…

JSON中的JSON.parseArray()、JSON.parseObject()、JSON.tojsonString()

1、JSON.parseObject和JSON.toJSONString JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。在前后台的传输过程中,JSON字符串是相当常用的,这里就不多介绍其功能了,直…

mysql是gplv3,Affero-GPL和GPLv3之间的区别

解决方案Assume the following:You are developing a server side application in GPL. Now this application serves HTML and not an executable which is directly executed on your machine. That means that another guy could take the GPL code, adapt it and does not …

mysql cluster proxy_GitHub - freedaxin/maya: a mysql cluster proxy powered by node.js

maya安装node.js依赖node v0.8最新版,暂不支持更高的node版本,此处以0.8.7版本为例。root安装(官方要求python2.5.2以上)tar -zxf node-v0.8.7.tar.gzcd node-v0.8.7./configure --prefix/usr/local/sinasrv2/makemake install在root环境变量中增加如下两…

常见HTTP状态码(200、301、302、500等)解说

对网站管理工作者来说有个词不陌生,HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码。状态码的第一个数字代表了响应的五种状态之一。 1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处…

linux c语言编写聊天室mysql_Linux平台上用C语言实现与MySQL数据库的连接

测试代码如下://查询操作#include #include #include #define HOST "localhost"#define USERNAME "用户名"#define PASSWORD "密码"#define DATABASE "PublicResourcesDB"int main(void){MYSQL mysql;MYSQL_ROW row;MYSQL_…

java开发安装mysql_从零开始搭建Java开发环境第二篇:如何在windows10里安装MySQL

1 下载安装包1.1 压缩包[外链图片转存失败(img-oesO8K09-1566652568838)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw "点击并拖拽以移动")]1.2 安装包使用安装包安装则无需后续步骤[外链图片转存失败(img-Y3x59iO4-15666525…

java获取json中某个字段

import com.alibaba.fastjson.JSONObject; public class JsonTest {public static void main(String[] args) {// json串(以自己的为准)String str "{"id":"75","shoppingCartItemList":[{"id":"407","num"…

abap数据类型转换_ABAP 中JSON格式的转换与解析

正文RT,JSON是当今十分流行的一种轻量数据格式,广泛地应用于各种数据交换场景中。本文会介绍一种比较简单的将ABAP中的数据转换为JSON格式的方法。(如果你是因为引号的问题搜索到了这篇文章,请直接拉到底部“其它部分”)序列化使用cl_trex_js…

java解析多层嵌套json字符串

java解析多层嵌套json字符串 java分别解析下面两个json字符串 package jansonDemo;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject;public class TestJSON {/*** JSON实际上也是键值对("…

JVM中的五大内存区域划分详解

一、快速扫盲 1. JVM是什么 JVM是Java Virtual Machine的缩写,即咱们经常提到的Java虚拟机。虚拟机是一种抽象化的计算机,有着自己完善的硬件架构,如处理器、堆栈等,具体有什么咱们不做了解。目前我们只需要知道想要运行Java文件…

编写并调试一个单道处理系统的作业调度模拟程序_操作系统系列(2):操作系统发展历史...

用户需求的提升和硬件技术的发展,是操作系统发展的必要条件和基础。计算机的发展经历了4个阶段,电子管计算机(1945-1955)、晶体管计算机(1955-1965)、集成电路计算机(1965-1980)、大规模集成电路计算机(1980-至今)。因此,伴随着计算机硬件的更…

方法区元空间实现之jdk7和8字符串常量池、运行时常量池、静态变量到底在哪?

方法区(落地实现jdk7永久代,jdk8元空间),元空间并不在虚拟机中,而是使用本地内存,它和堆在逻辑上是连续的,但在物理上是不连续的,所以也叫非堆。 1、此区域是线程共享的。储存已加载…

mysql force index报错_新特性解读 | MySQL 8.0 索引特性4-不可见索引

MySQL 8.0 实现了索引的隐藏属性。当然这个特性很多商业数据库早就有了,比如ORACLE,在11g中就实现了。我来介绍下这个小特性。介绍INVISIBLE INDEX,不可见索引或者叫隐藏索引。就是对优化器不可见,查询的时候优化器不会把她作为备…

关于Java成员变量、局部变量、方法,在JVM的内存空间分配

1、变量类型 2、类的结构 下面是一般类的结构 //类体属性状态(即:类体变量方法) public class 类名{ //类名最好首字母大写的英文String name; //在方法体外,所以是成员变量//下面是一个main方法(程序入口的主方法)public static…

python内置函数详解总结篇_Python内置函数详解——总结篇

数学运算(7个)类型转换(24个)序列操作(8个)对象操作(7个)反射操作(8个)变量操作(2个)交互操作(2个)文件操作(1个)编译执行(4个)装饰器(3个)数学运算abs:求数值的绝对值>>> abs(-2)2divmod:返回两个数值的商和余数>>> divmod(5,2)(2, 1…

Java多线程中static变量的使用

Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果? Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果?仅仅是多耗资源还是会引发异常? 不会耗资源 也不会引发异常 而是程序出现逻辑错误,…

scanf 接收 空格 输入_如何允许使用scanf输入空格?

人们(尤其是初学者)不应该使用scanf(“%s”)或gets()或任何其他没有缓冲区溢出保护的函数,除非你确定输入总是一个特定的格式甚至不是)。记住,scanf代表“扫描格式化”,并且珍贵的格式比用户输入的数据少。如果您对输入数据格式具…