MySQL-DML【数据操作语言】(图码结合)

目录

🚩DML的定义

👉DML-添加数据

🎓给指定的字段添加数据

🕶️查询表数据的方式

[❗疑惑点一【Affecter rows:行数】](#❗疑惑点一【Affecter rows:行数】)

❗疑惑点二【字符集问题】

🎓给全部字段添加数据

🎓批量添加数据

👉DML---修改数据

👉DML---删除数据


🚩DML的定义

DML(Data Manipulation Language):数据操作语言,用来对数据库表中的数据进行增删改

  • insert 增加
  • update修改
  • delete删除

我们将之前的一篇DDL中的建立表操作,继续用这个表来进行数据的调整。

我们可以看到,我们形成的表中只有数据类型,建立的表结构,而数据库是存储数据的仓库,DDL给我们建立框架,接下来我们要真正的操作DML,对数据库表中的数据进行增删查改。


👉DML-添加数据

🎓给指定的字段添加数据

复制代码
INSERT INTO 表名 (字段1,字段2,...)VALUES (值1,值2,值3,....);

注意😲:

  1. 插入数据的时候,指定的字段顺序需要与值的顺序是一一对应的。
  2. 字符串和日期型数据应该包含在引号中。
  3. 插入的数据大小,应该在字段的规定范围内。

我们根据语法的规则,每个字段/值之间都用逗号隔开,指定字段顺序与值一一对应,字符串和日期型数据应该包含在引号中。

🕶️查询表数据的方式

接下来就是查询表数据。查询表数据的方式有俩种:

第一种:

复制代码
SELECT FROM * 表名;

第二种:

我们在所在的数据库中的表中查找,当前test表在cl数据库中,所以我们去cl数据库中

❗疑惑点一【Affecter rows:行数】

这里的Affecter rows:行数,表示你的代码是运行成功的,没有出错,行数1,2,3,4....表示的是进行对数据的操作了几行。添加字段(编号,姓名,年龄/.....)都是一行的,所以对数据的操作就进行一行。

这里显示的rows是5,表明对数据的操作是5行。上面的代码不清楚的,下面会详细解答。


❗疑惑点二【字符集问题】

复制代码
Incorrect string value: '\xE7\x94\xB7' for column 'gender' at row 1

Incorrect string value(字符串值不正确): '\xE7\x94\xB7' for column 'gender' at row 1

相信在初次使用的时候,可能会遇到这样的报错。我就是,所以我搜索材料。进行修改归纳总结 ,出现的问题:字符集对应不上,性别"男"为中文字符串,需要使用到utf-8字符集,而默认是使用的是latin1字符集。

复制代码
CREATE table test(
id int COMMENT'编号',
worknumber varchar(10) COMMENT'员工工号',
workname VARCHAR(10) COMMENT'员工姓名',
gender char(1) COMMENT'员工性别',
age TINYINT UNSIGNED COMMENT'员工年龄',
idcard char(18) COMMENT'员工身份证号',
entrydate date COMMENT'入职时间'
)COMMENT'员工信息';

解决方案:此时应该根据报错的内容修改对应的数据库、表或者字段的字符集

代码如下:

1、修改数据库字符集

复制代码
alter database db_new(数据库名) charset utf8mb4;

2、修改表字符集

复制代码
alter table tb(表名) charset=utf8mb4;

3、修改表字符集和校验规则

复制代码
alter table tb(表名)charset=utf8mb4 collate=utf8mb4_general_ci;

4、修改表字段的字符集和校验规则

复制代码
alter table tb(表名)modify gender char(1)(字段名+字段数据类型) character set utf8 collate utf8_general_ci;

🎓给全部字段添加数据

复制代码
INSERT INTO 表名 VALUES(值1,值2...);

🎓批量添加数据

复制代码
//INSERT INTO 表名 (字段1,字段2,...)VALUES (值1,值2,值3,....),(值1,值2,值3,....);
//INSERT INTO 表名 VALUES (值1,值2,值3,....),(值1,值2,值3,....),(值1,值2,值3,....);

👉DML---修改数据

复制代码
UPDATE 表名 SET 字段1=值1,字段2=值2,...[WHERE 条件];

注意😲:

修改的条件可以有,也可以没有,如果没有条件,则会修改整张表的数据。

**案例1:**修改id为1的数据,将workname修改为cl

**案例2:**修改id为1的数据,将name修改为cll,gender修改为女

**案例3:**将所有的员工入职日期改为2008-01-01

没有前提条件就是修改整个表的对应字段的数据。


👉DML---删除数据

复制代码
DELETE FROM 表名 [WHERE 条件]

注意😲:

DELECT语句的条件可以有,也可以没有,如果没有,则删除整张表的所有数据

DELECT语句不能删除某一个字段的值(可以使用UPDATE)

先给出原表的数据,后面删除数据好对应。

案例1:删除gender为女的员工

**案例2:**删除所有的员工

再原来基础删除女员工的基础上,剩下俩行,删除整个表格,就对应的操作数据俩行。


好了,一切为空,从最开始的添加数据,到后来的修改数据,最后删除数据,最后成了空表。

希望你的每一步都走的有意义。

相关推荐
镜舟科技5 分钟前
时序数据库、实时数据库与实时数仓:如何为实时数据场景选择最佳解决方案?
数据库·物联网·数据分析·时序数据库·olap·实时数仓·实时数据库
麻雀无能为力38 分钟前
CAU数据库class2 SQL语言
数据库·sql·oracle
夜松云1 小时前
Qt框架核心组件完全指南:从按钮交互到定时器实现
数据库·qt·交互·信号与槽·ui组件·容器类·定时器机制
计算机学姐1 小时前
基于SpringBoot的小型民营加油站管理系统
java·vue.js·spring boot·后端·mysql·spring·tomcat
Elastic 中国社区官方博客1 小时前
JavaScript 中使用 Elasticsearch 的正确方式,第一部分
大数据·开发语言·javascript·数据库·elasticsearch·搜索引擎·全文检索
vvilkim2 小时前
深度解析:Redis 性能优化全方位指南
数据库·redis·性能优化
小光学长2 小时前
基于vue框架的东莞市二手相机交易管理系统5yz0u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
双层木屋2 小时前
使用GoLang版MySQLDiff对比表结构
mysql·golang
Freedom℡2 小时前
Spark,SparkSQL操作Mysql, 创建数据库和表
数据库·spark
羊羊羊i2 小时前
Redis进阶知识
数据库·redis·缓存