MySQL数据增删改操作详解(DML)

【MySQL高级篇】到底如何增删改数据库中的数据?一文带你吃透数据的操作之DML 前面说到,SQL分为四类,这篇文章将详细的讲解对数据的一些操作,主要涉及到数据的增删改查。 阅读详情

本章主要讲解MySQL的增删改操作

外键

  • 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键
  • 由此可见,外键表示了两个关系之间的相关联系
    • 以另一个关系的外键作主关键字的表被称为主表
    • 具有此外键的表被称为主表的从表

外键创建的方式

  • 删除具有主外键关系的表时,要先删子表,后删主表

创建子表同时创建外键

-- 年级表
create TABLE `grade` (
	`gradeid` INT(10) not NULL auto_increment COMMENT '年级id',
	`gradename` varchar(20) not null COMMENT '年级名称',
  PRIMARY KEY(`gradeid`)
)	ENGINE=INNODB DEFAULT charset=utf8

-- 学生信息表 (学号,姓名,性别,年级,手机,地址,出生日期,邮箱,身份证号),外键gradeid
create table `student` (
	`studentno` int(4) not NULL auto_increment COMMENT '学号',
	`studentname` VARCHAR(20) not NULL DEFAULT '匿名' COMMENT '姓名',
	`sex` VARCHAR(2) not NULL DEFAULT '男' COMMENT '性别',
	`stugradeid` INT(10) DEFAULT NULL COMMENT '年级id',
	`phone` VARCHAR(50) not NULL COMMENT '手机',
	`address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
	`borndate` datetime DEFAULT NULL COMMENT '出生日期'	,
	`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
	`idcard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
	PRIMARY KEY(`studentno`),
	KEY `FK_gradeid`(`gradeid`),
	CONSTRAINT `FK_gradeid` FOREIGN KEY(`stugradeid`) REFERENCES `grade`(`gradeid`)
)	ENGINE=INNODB DEFAULT charset=utf8

创建子表完毕,修改子表添加外键

-- 年级表
create TABLE `grade` (
	`gradeid` INT(10) not NULL auto_increment COMMENT '年级id',
	`gradename` varchar(20) not null COMMENT '年级名称',
  PRIMARY KEY(`gradeid`)
)	ENGINE=INNODB DEFAULT charset=utf8

-- 学生信息表 (学号,姓名,性别,年级,手机,地址,出生日期,邮箱,身份证号),外键gradeid
create table `student` (
	`studentno` int(4) not NULL auto_increment COMMENT '学号',
	`studentname` VARCHAR(20) not NULL DEFAULT '匿名' COMMENT '姓名',
	`sex` VARCHAR(2) not NULL DEFAULT '男' COMMENT '性别',
	`stugradeid` INT(10) DEFAULT NULL COMMENT '年级id',
	`phone` VARCHAR(50) not NULL COMMENT '手机',
	`address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
	`borndate` datetime DEFAULT NULL COMMENT '出生日期'	,
	`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
	`idcard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
	PRIMARY KEY(`studentno`)
)	ENGINE=INNODB DEFAULT charset=utf8

-- 添加外键
ALTER TABLE `student`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`stugradeid`) REFERENCES `grade`(`gradeid`)

在这里插入图片描述

添加数据

INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')
  • 字段或值之间用英文逗号隔开
  • ’ 字段1,字段2…’ 该部分可省略,但添加的值务必与表结构,数据列顺序相对应,且数量一致
  • 可同时插入多条数据,values 后用英文逗号隔开
INSERT INTO `grade`(`gradename`) VALUES ('大一');

-- INSERT INTO `grade` VALUES ('大二'); X 添加的值务必与表结构,数据列顺序相对应,且数量一致
INSERT INTO `grade`(`gradeid`,`gradename`) VALUES (2,'大二');

-- 一次插入多条数据
INSERT INTO `grade`(`gradename`) VALUES ('大三'),('大四'); 

修改数据

UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];
  • column_name 为要更改的数据列
  • value为修改后的数据,可以为变量,具体指表达式或者嵌套的SELECT结果
  • condition为筛选条件,如不指定则修改该表的所有列数据
-- 先添三条学生信息数据
INSERT INTO `student`(`studentname`,`stugradeid`,`sex`,`phone`); 
VALUES ('张三','1','男','15336774423'),('李四','2','男','15336774333'),('王五','4','女','15336774428');
-- 不指定条件下会改变所有的表
-- UPDATE `student` SET `studentname`='赵六';

-- 修改年级信息(单条)
UPDATE `grade` SET `gradename`='高中' WHERE gradeid=1;
-- 修改学生信息(多条)
UPDATE `student` SET `phone`='13736774423',`sex`='女' WHERE `studentname`='张三';

where 运算符

  • BETWEEN 5 AND 10 = [2 , 5]
  • LIKE 结合使用的通配符:% (代表0到任意个字符) _ (一个字符)
whereoperator

删除数据

DELETE命令

DELETE FROM 表名 [WHERE condition];
  • condition为筛选条件,如不指定则删除该表的所有列数据
-- 删除gradeid=3的该行数据
DELETE FROM `grade` WHERE gradeid=3;

-- 因为刚刚在student表中引用了grade表中gradeid=4的这行数据,所以该行数据在grade表中不能被删除(外键被引用不能删除)
-- DELETE FROM `grade` WHERE gradeid=4; X 
-- DELETE FROM `grade` WHERE gradename='大四'; X

TRUNCATE命令

  • 用于完全清空表数据 , 但表结构 , 索引 , 约束等不变
TRUNCATE [TABLE] table_name;

DELETE 与TRUNCATE的区别

  • 两者都能删除数据,不删除表结构,但TRUNCATE速度更快
  • TRUNCATE 在清空表数据的后,重新设置AUTO_INCREMENT计数器,且TRUNCATE 不会对事务有影响
  • DELETE 在清空表数据之后,会继续删除之前的自增量
-- 创建一个测试表 
CREATE TABLE `test` (
  `id` INT(4) NOT NULL AUTO_INCREMENT,
  `coll` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
-- 插入几个测试数据
INSERT INTO test(coll) VALUES('row1'),('row2'),('row3');
-- 输出结果:
1	row1
2	row2
3	row3

DELETE FROM test;
INSERT INTO test(coll) VALUES('row4'),('row5'),('row6');
-- 输出结果:
4	row4
5	row5
6	row6

-- 删除test测试表,重新创建再插入数据
INSERT INTO test(coll) VALUES('row1'),('row2'),('row3');
TRUNCATE TABLE test;
INSERT INTO test(coll) VALUES('row4'),('row5'),('row6');
-- 输出结果:
1	row4
2	row5
3	row6

Hi, welcome to JasperのBlog!

GT-suite v2016的下载和安装 1 写在前面 GT-suite 是一款用来做内燃机仿真的软件。在安装过程中遇到很多问题,网上的安装教程也大都抄来抄去,试着安装了几遍都没有成功。最终在贴吧一个老哥的帖子里找到了解决办法,但是老哥的帖子也不是很详细,所以做了这个详细版本的教程。 GT-suite v2016安装包: 链接:https://pan.baidu.com/s/1JZPgJ8_-J-L8rV84-eHedQ 提取码:uj... 阅读详情

相关推荐

告别GUI点点点:Formality形式化验证的TCL脚本自动化实战(附完整脚本)

本文详细介绍了如何通过TCL脚本实现Formality形式化验证的全流程自动化,显著提升验证效率并降低错误率。内容涵盖脚本框架解析、参数化设计、验证报告生成及团队协作策略,特别适合芯片设计工程师摆脱传统GUI操作,实现300%以上的效率提升。

weixin_33737134的博客 283

Oracle 数据库(下)

表连接 当我们获取的数据不是来自于同一张表而是来自于多张表时就需要使用到表连接 表连接(92) select * from emp , dept; select ename , dname from emp , dept; select ename, dname, e.deptno from emp e, dept d; 表连接(99) 交叉连接 cross join --->笛卡尔积 自然连接(主外键、同名列) natural join -->等值连接 oin using连接(

weixin_61399281的博客 307

hspice2016安装教程

试装系统:win10 64bit 安装包路径和安装路径最好都不要出现中文,一般选择默认安装在C盘。 1.解压安装包压缩文件。 2.以管理员身份运行hspice_vL-2016.03-2_win.exe。 3.点击“Next”。 4.选择“I accept”,然后点击“Next”。 5.点击“Next”。 6.一般默认安装路径即可,然后点击“Next”。 7.点击“Next”. 8.点击“Next”。 9.正...

谢谢关注“小鱼教你模数电”,各平台同号 1万+

一篇文章搞定数据库所有增删改查操作!!

数据库的增删改查操作,一看就会,简单易懂

Dong's Blog 1345

CISSP背书三次失败后的终极解决方案

本文分享了作者CISSP认证三次线上背书审核失败的经历与终极解决方案。针对(ISC)²官方审核的严格性,文章详细剖析了使用公积金证明、工作证明盖章签字等常见材料的误区,并最终提出了通过构建“官方邮件往来”证据链的核心策略,以动态、可验证的方式成功通过审核,为后来者提供了详实的避坑指南和实操清单。

weixin_29219539的博客 153

YOLOv8改进策略【卷积层】| CVPR-2023 部分卷积 PConv 轻量化卷积,降低内存占用

本文记录的是利用优化的目标检测方法研究。深度可分离卷积可以减少FLOPs,但会导致更高的内存访问,引起延迟并减慢整体计算。部分卷积利用逐点卷积处理通道冗余,减少模型计算量和内存访问量。Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks及其改进的实现代码如下: 四、创新模块 4.1 改进点⭐ 模块改进方法:直接加入(第五节讲解添加步骤)。模块加入如下:模块改进方法:基于的(第五节讲解添加步骤)。第二种改进方法是对中的进行改进,并将

Limiiiing的博客 1016

学生信息管理系统设计

1、问题描述 学生信息包括:学号、姓名、性别、年龄、班级等信息。 小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。 中学生除了包括小学生所有信息外,还包括地理、历史成绩、家庭住址等信息。 大学生除了包括学生所有信息外,还包括专业、家庭地址、联系方式等信息。 2、功能要求 (1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加...

weixin_44324433的博客 4527

1 硬件工程师笔面试高频知识考点真题及解析——电阻

本文系统介绍了电阻的基础知识、选型要点及各类特殊电阻的应用。主要内容包括:1. 电阻选型需考虑阻值、封装、功率、精度、耐压等参数;2. 高频信号优先选用小封装电阻以减小寄生参数;3. 采样电阻需高精度、低温漂以保证测量准确性;4. 详细解析了上拉/下拉电阻、0欧电阻、磁珠等元件的特性与区别;5. 介绍了压敏电阻、热敏电阻等特殊电阻的工作原理及应用场景;6. 阐述了阻抗匹配的重要性及常见匹配方法。文章为电子工程师提供了全面的电阻选型与应用指南。

XU157303764的博客 2857

【MySQL】数据处理之增删改详解

文章目录1 插入数据1.1 实际问题1.2 方式一:value的方式添加(白手起家)1.2.1 情况一:① 没有指明添加的字段1.2.2 情况二:② 指明要添加的字段 (推荐)1.2.3 情况三:③ 同时插入多条记录 (推荐)1.3 方式二:将查询的结果插入到表中2 更新数据2.1 更新employees2.1.1 使用updown更新数据2.1.2 使用where子句更新数据2.1.3 省略where子句2.2 更新中的个数据完整性错误3 删除数据3.1 删除departments 中的一条记录3.2 删

patrick的博客 906

华为OD机试 - 压缩日志查询(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某设备需要记录每分钟检测到的指标值。为了节约存储空间,将连续相同指标值的记录合并。压缩之前:202411231000,11 202411231001,11 202411231002,12 202411231003,12 202411231004,

学Java,找哪吒 1880

Python爬取公交线路信息及站点shp数据 文末附数据下载地址

三、现在已经获取到了各个线路名称、链接,以及所途径的上下行站点,那么接下来就应该对开始对第三页url进行信息采集,即本次爬虫的最终目的:爬取所有站点的GPS坐标数据。但坑就坑在,二环一号线属于环线,所以只有左侧有站点数据,而其他非环线车次的站点数据分有上下行,如果用正则匹配,则分不清楚到底哪些是上行站点哪些是下行站点。以前爬过百度地图,当时用的是API平台,加上网站比较规范,所以标签节点什么的都比较清晰,但这次由于特殊原因所选择的网站为公交网,废话不多说直接开始吧。checi=二环一号线。

J_Giser的博客 1316

MySQL数据处理之增删改

一、插入数据 1、方式一:VALUES的方式添加 使用这种语法一次只能向表中插入一条数据。 (1)为表的所有字段按默认顺序插入数据,语法格式: INSERT INTO 表名 VALUES (value1,value2,....); 值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。 举例: # 建表语句 USE atguigudb; CREATE TABLE IF NOT EXISTS emp1( id INT, `name` VARCHAR(15), hire_dat

qq_44111805的博客 788

FP16、BF16、INT8、INT4精度模型加载所需显存以及硬件适配的分析

本文主要介绍了FP16、INT8、INT4精度模型加载占用显存大小的分析,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 模型加载显存占用大小 3. 不同精度是否与硬件适配

herosunly的博客 23万+

MySQL数据操作全攻略:DML增删改与DQL高级查询实战指南

MySQL DML/DQL 数据增删改 条件查询 模糊匹配 正则表达式

2401_87244387的博客 1773

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

MySQL DML 数据操作语言 增删改操作

MySQL 数据操作语言 基本操作

东边的山坡的博客 227

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【MySQL】DML——数据的增删改操作

DML,全称Data Manipulation Language,中文名为数据操作语言,主要用于对数据库中的数据进行增加、修改和删除的操作,其主要包括: INSERT:增加数据 UPDATE:修改数据 DELETE:删除数据

hold_on_qlc的博客 499

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL-DDL(操作数据库、表) -DML(增删改表中数据)-DQL(查询表中的记录)

文章目录数据库的基本概念MySQL数据库软件SQLDDL:操作数据库、表DML:增删改表中数据DQL:查询表中的记录 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓库。 3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL 4. 常见的数据库软件 * 参见《MySQL基础.pdf》 MySQL数据库软件 1. 安装

29岁的裴野永远爱你 434

MySQL-DML操作:数据的增删改

#MySQL DML:数据操作 添加数据,修改数据,删除数据 1.添加数据 命令: insert into 表名[(字段列表)] values(值列表…); -- 标准添加(指定所有字段,给定所有的值) mysql> insert into stu(id,name,age,sex,classid) values(1,'zhangsan',20,'m','lamp138'); Query OK, 1 row affected (0.13 sec) mysql> -- 指定部分字段添加值 m

weixin_43811679的博客 173

MySQL DML(数据操作语言——增删改查)总结

今天,重新整理一下MySQL的增删改查数据操作,希望可以给初学者一些帮助。 一、增加数据INSERT 语法:INSERT INTO [(列名1,列名2...)] VALUES (列值1,列值2...); 示例: SELECT *FROM student; #1.全列插入(列值对应表中的每一个列名) INSERT INTO student VALUES (103,'张三','22','女'...

布克思轶的博客 369

mysql记录所有dml操作_MySQL 数据操作 DML(增删改查)

MySQL 数据操作 DMLDML(Data Manipulation Language 数据操纵语言)DML是用来对数据库里的数据进行操作的语言。DML需要 commit。当使用 mysql 客户端操作数据库时,这些语句都会自动提交,不用执行 commit。插入数据(增加)基础语法注意按“行”插入“字段”和“值”之间,一一对应值的形式:数字直接写,字符串和时间加单引号,但如果是函数值,则不能加引...

weixin_34308696的博客 576

SQL教学:掌握MySQL数据操作核心技能--DML语句基本操作之“增删改查“

本文详细介绍了MySQL中的“增删改查”四种基本数据操作。通过插入数据,我们可以向数据库表中添加新的记录;通过查询数据,我们可以从数据库表中检索需要的信息;通过更新数据,我们可以修改数据库表中已有的记录;通过删除数据,我们可以从数据库表中移除不需要的记录。这些操作是数据库管理的基石,掌握它们对于每个MySQL用户来说都是至关重要的。希望这篇文章能够帮助你更好地理解这些基本操作,并在实践中不断提高自己的技能水平。

工作内容分享 1234

MySQL 数据操作语言 DML (增删改)

MySQL 数据操作 DML DML 数据的DML操作:添加数据,修改数据,删除数据 添加数据 格式: insert into 表名[(字段列表)] values(值列表…); --标准添加(指定所有字段,给定所有的值) mysql> insert into stu(id,name,age,sex,classid) values(1,'zhangsan',20,'m','lamp138'); Query OK, 1 row affected (0.13 sec) mysql> -

程序员小章的博客 189

mysql数据库的DML操作(增删改查)

【代码】mysql数据库的DML操作(增删改查)

m0_64505752的博客 168

MYSQL数据库-DML数据操作(增删改)

DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 等。(增添改)DML就是对表中的数据进行增删改的语句语法非常重要。熟练掌握添加数据insert, 修改数据update, 删除数据delete语句语法。TRUNCATE语句是清空表, 原理是将原来的表销毁再重新按照原来表结构创建表, 速度比delete语句删除表中所有数据更快。

关注我!带你一路 "狂飙" 到底! 1871

Mysql基础操作(DML数据的增删改查)

DML:Mysql数据操作语言,即对表中的数据进行增删改查 一、查询语句: 1、基础查询 (1)查询表中单个字段数据 select 查询字段 from 表名 ex:select name from student (2)查询表中所有数据 select * from 表名 ex:select * from student 2、条件查询 (1)单条件查询 select * from 表名 where 条件表达式 ** 如果查询的内容为字符串类型,必须加引号 ex:select * fr

zhaowz123456的博客 653

MySQL库和表的操作(DDL) 和 数据增删改(DML)

一条数据存储的过程 标识符命名规则 MySQL中的数据类型 清空表 重命名表 修改表 创建表 创建和管理数据库

gh_xiaohe的博客 3820
上一篇: 学会定义和管理MySQL数据对象(DDL)
I'm Jasper
博客等级 码龄8年 4粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值