MySQL数据库语言学习之DML

对表结构的增删改?

对于表结构的修改,这里不讲了,大家使用工具完成即可,因为在实际开发中表一旦设计好之后,对表结构的修改是很少的,修改表结构,成本过高!!

修改表结构就是对之前的设计进行了否定,即使需要修改表结构,我们也可以直接使用工具操作。

修改表结构的语句不会出现在Java代码当中。

什么是对表结构的修改?

添加一个字段 ,删除一个字段 ,修改一个字段! ! !

出现在java 代码当中的sql 包括:

insert delete update select (这些都是表中的数据操作。)

数据操作语言(凡是对表中++数据++的增删改均为DML )

Insert 增 delete 删 update 改

  1. 插入数据insert
语法格式:

insert into 表名( 字段名1, 字段名2, 字段名3,....) values( 值1, 值2, 值3,....)

要求:字段的数量和值的数量相同,并且数据类型要对应相同。

需要注意的地方:

当一条insert 语句执行成功之后,表格当中必然会多一行记录。

即使多的这一行记录当中某些字段是NULL ,后期也没有办法再执行

insert 语句插入数据了,只能使用update 进行更新。

// 字段可以省略不写,但是后面的value 对数量和顺序都有要求。

一次插入多行数据:

insert into t_student

(no,name,sex,classno,birth)

values

(3,'rose','1','gaosi2ban','1952-12-14'),

(4,'laotie','1','gaosi2ban','1955-12-14');

插入日期insert

插入数据?

insert into t user(id,name ,birth) values(1, 'zhangsan','01-10-19901'):

// 1990年10月1日

出问题了:

原因是类型不匹配。

数据库birth是date类型,这里给了一个字符串varchar

怎么办?

可以使用str_to_date函数进行类型转换。

str to date函数可以将字符串转换成日期类型date?

语法格式:

str to date('字符串日期',日期格式);

Str_to_date函数可以把字符串varchar转换成日期date类型数据

通常使用在插入insert方面,因为插入的时候需要一个日期类型的数据,

需要通过该函数将字符串转换成date。

但是,

如果你提供的日期字符串是这个格式,str to date数就不需要了!!!

%Y-%m-%d

Mysql中的日期格式:

%Y 年

%m 月

%d 日

%h 时

%i 分

%s 秒

insert into t_user(id,name ,birth) values(1,'zhangsan',str to date('01-10-1990','%d_%m_%Y'));

查询的时候可以以某个特定的日期格式展示吗?

date format( 日期类型数据,' 日期格式') ;

这个函数可以将日期类型转换成特定格式的字符串

date和datetime两个类型的区别?

date是短日期: 只包括年月日信息。

datetime是长日期: 包括年月日时分秘信息。

在mysql当中怎么获取系统当前时间?

now() 函数,并且获取的时间带有: 时分秘信息! !!! 是datetime类型的

  1. 修改数据:update

语法格式:

update 表名 set 字段名1= 值1, 字段名2= 值2... where 条件;

注意:没有条件整张表数据全部更新。

mysql> update t_user set name = 'jack',birth = '2000-1-15',create_time = now() where create_time = '2024-03-21 09:14:41';

  1. 删除数据?

语法格式:

delete from 表名 where 条件;

注意:没有条件全部删除。

mysql> delete from t_user where id = 2;

增删改查有一个术语:CRUD操作

Create(增) Retrieve(检索) Update(修改) Delete(删除)

快速删除表中数据怎么删除大表中的数据?(重点)
  • 删除表?

drop table 表名; // 这个通用。

drop table if exists 表名; // oracle不支持这种写法

  • 删除大表中的数据。

Delete from emp4; //DML语句

缺点:空间不释放,效率较低

优点:后悔可回滚rollback恢复!

  • truncate语句删除数据的原理?

用法: truncate table 表名; //DDL操作

优点:效率比较高,表被一次截断,物理删除,快速。

缺点:不支持回滚

大表非常大,上亿条记录? ? ? ?

删除的时候,使用delete,也许需要执行1个小时才能删除完! 效率较低。

可以选择使用truncate删除表中的数据。只需要不到1秒钟的时间就删除结束。效率较高。

但是!!!使用truncate之前,必须仔细询问客户是否真的要删除,并警告删除之后不可恢复!

truncate table 表名; // 表被截断,不可回滚。永久丢失。

相关推荐
LaughingZhu2 分钟前
Product Hunt 每日热榜 | 2026-10-02
数据库·人工智能·深度学习·神经网络·搜索引擎
m4Rk_25 分钟前
【论文阅读】Agent 记忆机制(92):EMPO²——让 Memory 从经验复用走向主动探索
论文阅读·人工智能·学习·开源·github
天疆说41 分钟前
腾讯会议 Linux 版在 NVIDIA 显卡上看不到画面:EGL 像素配置与窗口视觉不匹配的排查与修复
linux·数据库·腾讯会议
2603_969579281 小时前
中小团队数据库选型:MySQL vs PostgreSQL,业务场景怎么选
数据库·mysql·postgresql
欣欣之王来了1 小时前
前端开发学习路线图:2026年Vue方向最新版
前端·学习·架构·项目·vue3教程
wdfk_prog1 小时前
LWIP教程 00:从网线上的电信号到 lwIP——PHY、MAC、DMA 与 `netif` 的完整边界
运维·网络·笔记·学习·ip
IT大白鼠2 小时前
图数据库系列 · 第 06 篇——避坑汇总:经典生产问题
数据库·nosql·图库数据库
江湖有缘2 小时前
3开源Sqlite数据库管理工具整理合集,可Docker一键部署!
数据库·sqlite·开源
jyOverQ2 小时前
Redis 持久化怎么做?RDB、AOF 与混合持久化
数据库·redis