mysql增删改后续

前言

那,如果是从前文来的话,肯定就不能一知半解啦,因为数据统计或者说拉数据作图已经差不多够用了。

添加语句

首先用一个新建的表单整理一下格式,表设计如下
在这里插入图片描述

-- insert into tongji(bookstore) values (2)
select * from tongji
-- 添加格式为insert into 表名(添加的列名) vlaues(对应添加的数据)
-- 添加要求即不能为null的列需要全部赋值

在这里插入图片描述
那么回到资料的表,我们来做一下资料统计,看一下某类书籍分别在隆华书店售出多少本

这里选择的是
BK-83021	《计算机基础及MS Office应用》
BK-83022	《计算机基础及Photoshop应用》
首先做一下查询
select count(*) from `订单明细表` where `图书编号` = 'BK-83021'
select count(*) from `订单明细表` where `图书编号` = 'BK-83022'
结果是021共29本,022共计47本,语句没有问题,和添加语句写在一起

可见,添加成功,一般来说如果库的字段很烂或者没必要进一步操作的情况下存在中文编写比较麻烦,非Navicat有时会出现中英文空格不统一的报错,可以分开先跑一次,然后直接赋予数据或者出于教学目的嵌合语句。我这里都写一次。

insert into `统计报告`(`统计项目`,`销售额`) values('《计算机基础及MS Office应用》',29)
insert into `统计报告`(`统计项目`,`销售额`) values('《计算机基础及Photoshop应用》',47)

在这里插入图片描述
接下来看一下嵌合,不同于上述语法,采用的是:insert into 表名 set 列名1 = 数据a1,set 列名2 = 数据b,如下示范,采用表达式需要打括号。

insert into `统计报告` set `统计项目` = '《计算机基础及MS Office应用》测试2',`销售额` = (select count(*) from `订单明细表` where `图书编号` = 'BK-83021')
insert into `统计报告` set `统计项目` = '《计算机基础及Photoshop应用》测试2',`销售额` = (select count(*) from `订单明细表` where `图书编号` = 'BK-83022')

在这里插入图片描述

删除语句

这个好说,先说了(不是)。如题目,delete嘛,语法为:delete from 表名 条件语句。我们用刚才的测试数据举个例子。

delete from `统计报告` where `统计项目` = '《计算机基础及MS Office应用》测试2'
delete from `统计报告` where `统计项目` = '《计算机基础及Photoshop应用》测试2'

如果你的程序没报错,刷新页面就可以看到数据已经消除掉啦
在这里插入图片描述

扩展一下

这个语句类似查询语句,也就是只要语句本身没有错误,就不会产生任何异常,因为是依靠后面条件语句来执行的命令,比如我再次执行刚才删除的命令并不会报错,会当做搜索条件不存在,即执行对象也不存在,仅此而已。
最后,你执行这个命令如果没有备份数据库就真的已经消失了一条数据,非测试数据慎用,如果出现删除失败但是语法逻辑未出错的情况应该优先考虑是否存在外键关联。

更新语句

呐,我们看到统计报告里还有四个数据没有填上,我们稍后来操作一下,一个例子一个例子来。首先是语法:update 表名 set 列1=数值a, 列2=数值b。更新不需要全部更新,你可以一次性更新多个字段或者某个特定字段。

所有订单的总销售金额

这个数据量与不大,但是操作比较繁琐,这里改为:《MS Office高级应用》图书的总销售额。
首先分析一下,总销售额度即所有售出量乘上对应的价格之和。

select `定价` from `编号对照` where `图书名称` = '《MS Office高级应用》'
-- 获取数据39元一本
select `图书编号` from `编号对照` where `图书名称` = '《MS Office高级应用》'
-- 获取图书编号为BK-83028
select count(*) from `订单明细表` where `图书编号` = 'BK-83028'
-- 获取数据总计31本
-- 最后把数据填上
update `统计报告` set `销售额` = (39*31) where `统计项目` = '《MS Office高级应用》图书的总销售额'

在这里插入图片描述
在这里插入图片描述
如图所示,添加成功。

《MS Office高级应用》图书在2012年的总销售额

select count(*) from `订单明细表` where `图书编号` = 'BK-83028' and `日期` like '2012%'
-- 可得数据13
-- 更改一下更新语句的指向条件和书本量
update `统计报告` set `销售额` = (39*13) where `统计项目` = '《MS Office高级应用》图书在2012年的总销售额'

和改后的第一框内容较像,我们直接改一部分代码即可。解释一下这个代码这么写的原因,这个数据是excel插入的,字符型varchar,题目要求2012年,那该年份范围模糊查找即可。
在这里插入图片描述
在这里插入图片描述

隆华书店在2011年第3季度(7月1日~9月30日)的总销售额

这个也是改一下,按理说这块儿其实用excel更快,用命令会消耗大量时间编程时间去写一次性重复代码。当然,不用excel的原因是因为在以前电脑配置不够且数据庞大的情况下,一定几率会导致电脑或者软件卡死,相比之下用数据库操作更急稳定性。
言归正传,改为:隆华书店在2011年第3季度(7月1日~9月30日)的总销售量。
下一行改为:隆华书店在2011年的每月平均销售量(保留2位小数)

select count(*) from `订单明细表` where `书店名称` = '隆华书店' and `日期` between '2011-07%' and '2011-08%' and '2011-09%'
-- 添加一下数据
update `统计报告` set `销售额` = 10 where `统计项目` = '隆华书店在2011年第3季度(7月1日~9月30日)的总销售量'

在这里插入图片描述
在这里插入图片描述

隆华书店在2011年的每月平均销售量(保留2位小数)

还是先做一下统计

select count(*) from `订单明细表` where `书店名称` = '隆华书店' and `日期` like '2011%'

在这里插入图片描述
那么这一问题的唯一买点就剩下保留小数了,如果你用过其他编程语言,除了默认取整运算的/,应该明白如果存储的变量和参加运算的变量都是浮点数时,结果大多都会是浮点数(小数),所以我们这里更改一下字段的类型,右击表选择设计表,改其类型为float,这个精度足够了。
在这里插入图片描述
然后我们再进行运算

update `统计报告` set `销售额` = 105/12 where `统计项目` = '隆华书店在2011年的每月平均销售量(保留2位小数)'

可以看到保留成功了
在这里插入图片描述

尾声

那,看到这里其实你已经大致了解了这个增删改查时怎么一回事,在面对众多数据或者非严谨的练手项目时也不会太麻木了,写这个的本意是以前的初级笔记丢了,哈哈哈,怕会有一阵子用不到会忘,就补上了一篇文,谢谢观看哦。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值