当前位置: 首页 > news >正文

MySQL 基础知识(五)之数据增删改

目录

1 插入数据

2 删除数据

3 更改数据


创建 goods 表

drop table if exists goods;
create table goods (
id int(10) primary key auto_increment,
name varchar(14) unique,
stockdate date
)charset=utf8; 

1 插入数据

 当要插入的数据为日期/时间类型时,如果插入数据的格式不为 "%Y-%m-%d" 或 "%Y-%m-%d %h:%i:%s',需要通过 str_to_date(str,fmt); 方法将字符串转为日期/时间数据类型,其中 str 是要插入的字符串,fmt 是插入字符串的格式,具体用法请看代码

#单条数据插入
insert into goods(name,stockdate) values('香蕉','2024-02-13');#多条数据插入
insert into goods(name,stockdate) values
('苹果','2024-02-12'),
('橘子',str_to_date('02-12-2024', '%m-%d-%Y')),
('葡萄',str_to_date('2024/02/14', '%Y/%m/%d'));

将查询结果当作一张表,可完成表的快速复制,但是用这种方法创建的表缺少主键

create table goods_1 as select id, name, stockdate from goods;

 

从上面的图片中可以看出表 goods_1 缺少主键,既然没有主键,加上就好了,用修改表中的 alter modify 或 alter change 方法 进行修改

MySQL 基础知识(四)之表操作icon-default.png?t=N7T8https://blog.csdn.net/zjs246813/article/details/136106989?spm=1001.2014.3001.5502

alter table goods_1 modify id int primary key auto_increment;

将一张表的查询结果插入另一张表中,这种插入数据的方式需要保证两张表的数据类型是一样的

insert into goods_1(name,stockdate) select name, stockdate from goods;

2 删除数据

 通过 delete 进行删除,如果不加 where 条件则删除整张表的数据,但是只是删除数据,表依然存在

delete from goods where id = 4;

 

delete

  • delete 属于数据库操纵语言 DML,可用于删除表中的数据
  • delete 语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作
  • delete 既可以对 table 进行操作也可以对 view 进行操作,可以全部删除,也可以按条件删除

drop

  • drop 属于数据库定义语言 DDL,可用于删除表, 也可以用来删除数据库

truncate

  • truncate 属于数据库定义语言 DDL,用来删除表中所有数据
  • truncate 只能对 table 进行操作,执行速度快
  • truncate 是把整张表销毁,再按照原表的格式、结构创建一张新表

三者区别

  • 执行速度,一般来说:drop > truncate > delete
  • delete 是 DML 语句,不会自动提交,即可以回滚,drop/truncate 都是 DDL 语句,执行后会自动提交,即不能回滚
  • truncate 和 delete 只删除数据,不删除表结构, drop 则删除整个表(结构和数据)
  • 对于由 foreign key 约束的表,不能使用 truncate(因为它是删完表后,再重新建一张结构一样的表,只能先删从表,再删主表),而应使用不带 where 的 delete 语句。由于 truncate 不记录在日志中,所以它不能激活触发器
  • truncate 不能用于参与了索引视图的表

3 更改数据

 通过 update 更新数据,如果不设置 where 条件,则会对该列的数据都进行修改

update goods set name = '脐橙' where id = 4;
update goods set name = '红枣', stockdate = '2024-01-23' where id = 3;

http://www.lryc.cn/news/300189.html

相关文章:

  • 紫微斗数双星组合:廉贞天府在辰戌
  • 人工智能|深度学习——基于全局注意力的改进YOLOv7-AC的水下场景目标检测系统
  • 使用 C++23 从零实现 RISC-V 模拟器(1):最简CPU
  • 顺序表、链表(ArrayList、LinkedList)
  • 第11讲投票创建后端实现
  • SNMP 简单网络管理协议、网络管理
  • 计算机设计大赛 深度学习YOLOv5车辆颜色识别检测 - python opencv
  • OpenCV-36 多边形逼近与凸包
  • transformer中的QKV是如何得到的?
  • console.log导致内存泄露 打包时自动去掉console.log方法
  • 《合成孔径雷达成像算法与实现》FIgure6.20
  • Spring Boot 笔记 015 创建接口_更新文章分类
  • 【Java基础题型】判断是否是回文数
  • Linux paste命令教程:并行合并文件的利器(附案例详解和注意事项)
  • 用163邮箱或者outlook接收国科大邮箱的邮件
  • VitePress-15- 配置- description 的作用详解
  • 寒假学习记录17:包管理器(包管理工具)
  • 【AIGC】Stable Diffusion的常见错误
  • 线段树解决-----P1161 开灯 P1047 [NOIP2005 普及组] 校门外的树 python解法
  • 学习总结16
  • 问题:从完整的问题解决过程来看,( )是首要环节。A.理解问题 B.提出假设C.发现问题 D.检验假设 #学习方法#学习方法
  • 服务器感染了.mallox勒索病毒,如何确保数据文件完整恢复?
  • Android java基础_多态性
  • 面试前的准备
  • 前端架构: 本地调试脚手架的2种方式
  • 现阶段适用于 单一架构 还是 分布式架构 ?
  • 掌握Go并发:Go语言并发编程深度解析
  • 创建一个多进程服务器和多线程服务器
  • 相机图像质量研究(18)常见问题总结:CMOS期间对成像的影响--CFA
  • 18.谈谈你对JSON的理解