当前位置: 首页 > 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;

相关文章:

  • K8sGPT 的使用
  • 03、全文检索 -- Solr -- Solr 身份验证配置(给 Solr 启动身份验证、添加用户、删除用户)
  • 速盾:海外服务器用了cdn还是卡怎么办
  • 【FTP讲解】
  • 安卓价值1-如何在电脑上运行ADB
  • 【Linux学习】生产者-消费者模型
  • Day 44 | 动态规划 完全背包、518. 零钱兑换 II 、 377. 组合总和 Ⅳ
  • 使用Xdisplay将ipad作为扩展显示器Agent闪退问题
  • openstack(T版)公有云--Dashboard服务
  • whisperspeech 英文TTS的实现
  • Python学习之路-爬虫进阶:爬虫框架
  • 11.JavaScript 中如何进行隐式类型转换?
  • 2024年华为OD机试真题-计算面积-Python-OD统一考试(C卷)
  • C语言静态库深入剖析
  • Apache Kafka: 强大消息队列系统的介绍与使用
  • 《Java编程思想》读书笔记-对象导论
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • codis proxy处理流程
  • gops —— Go 程序诊断分析工具
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java的Interrupt与线程中断
  • MySQL数据库运维之数据恢复
  • SQLServer插入数据
  • 编写符合Python风格的对象
  • 测试如何在敏捷团队中工作?
  • 使用 @font-face
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 微服务框架lagom
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 用mpvue开发微信小程序
  • 怎么将电脑中的声音录制成WAV格式
  • - 转 Ext2.0 form使用实例
  • 1.Ext JS 建立web开发工程
  • ​​​​​​​​​​​​​​Γ函数
  • ​Linux·i2c驱动架构​
  • #include<初见C语言之指针(5)>
  • (TOJ2804)Even? Odd?
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (六)c52学习之旅-独立按键
  • (七)c52学习之旅-中断
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)JAVA中的堆栈
  • (转载)PyTorch代码规范最佳实践和样式指南
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET 反射 Reflect
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET4.0并行计算技术基础(1)
  • .NET单元测试
  • @selector(..)警告提示
  • []C/C++读取串口接收到的数据程序
  • [Android] Amazon 的 android 音视频开发文档
  • [Android]竖直滑动选择器WheelView的实现
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试