行业知识
【MySQL】对表中数据的操作
本期给大家带来的是MySQL下对表中数据的增删查改操作
目录
一、对表插入数据
1.1 单行数据插入
1.2 多行数据插入
1.3 插入冲突时更新数据
1.4 替换式插入
1.5 插入查询结果
二、对表中数据进行查询
2.1 基本select
2.1.1 使用select查询表中数据
2.1.2 使用select进行计算
2.1.3 在select语句中使用as对列自定义命名
2.1.4 对查询结果进行去重
2.1.5 where条件
2.1.6 对查询结果进行排序
2.1.7 分页显示筛选结果
2.2 分组聚合查询
三、对表中的数据进行修改
四、删除表中的数据
五、截断表
六、聚合函数
一、对表插入数据
我们之前在表的操作中提了一下向表中插入数据,下面我们来详细讲解
1.1 单行数据插入
我们可以使用下面的语句对表做数据插入:
insert into 想要插入的表名(所要插入的列1,所要插入的列2...) values(数据1,数据2...);
上面语句在使用时into关键字可省略
在表名后面我们可以使用()在里面指定要插入的列,下面用这张表来演示一下:
当然表名后面我们也可以省略()进行全列插入:
1.2 多行数据插入
上面的方法每次只能插入一行数据,效率不高,我们可以在values关键字后面多加几个()用来一次插入多行数据:
insert into 表名(列1,列2...) values(数据1,数据2...),(数据1,数据2...), ...;
上面语句在使用时into关键字可省略
下面我们来演示一下,同样还是刚才的表:
多行指定列插入:
多行全列插入:
1.3 插入冲突时更新数据
我们向表中插入数据时,有时会因为主键、唯一建之类的约束发生数据冲突:
这样子我们就不能将数据插入到表中,但是使用下列语法可以在插入数据发生冲突时,更新表中冲突数据所在行:
insert into 表名(列1,...) values (数据1,...) on duplicate key update 列名1=数据1 ,列名2=数据2 ,...;
我们来试试看:
我们可以看到上述语句在插入‘i’这个数据时因为id的主键冲突肯定会失败,但是后面的on duplicate key update语句则意味着插入冲突时,将冲突数据所在行的name列数据改为'i'、telephone列数据改为'12345689'
可以看到修改非常成功,下面我们来看看该语句如果插入时没有发生冲突,系统会干啥:
可以看到当插入语句没有发生冲突时,系统会直接插入数据,不会再执行后面的更新语句
下面我们试试看当发生插入冲突时,但是更新语句更新的数据跟冲突数据一样会怎么样:
我们发现:当发生插入冲突时,但是更新语句更新的数据跟冲突数据一样,系统会什么都不做
所以使用该语句时,我们可以根据系统执行的反馈来确定数据是否做了更改:
-- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,并且数据已经被更新
1.4 替换式插入
replace into 表名 (列名1, 列名2, ...) values (数据1, 数据2, ...);
使用上述语句可以进行替换式插入:主键或唯一键没有冲突,则直接插入;如果冲突,则删除表中原冲突数据后再插入
举例演示:
可以看到插入的数据和表中数据没有冲突,进行了直接插入
下面要插入的数据和表中原数据的id列发生了主键冲突:
可以看到发生冲突的原数据直接全部被替换为插入的数据
1.5 插入查询结果
该内容涉及到下文的select语句,建议看完基本select后再回头来看该部分内容
insert不仅仅可以插入我们自己手动输入的数据,还可以拿取select语句的数据对表进行插入:
INSERT INTO 表名 [(列名1,列名2...)] SELECT ...
光说概念太生涩了,我们实际举例来说明:
对于上面这张表,现在的要求是对其数据内容进行去重
去重?使用distinct关键字不就行了吗?
distinct虽然可以对查询结果进行去重,但是不能修改表中原始数据,所以我们要重新创建一张空表,将去重结果存入空表中,再将空表重命名为原表名称(原表可以改为其他名或者删除),这样子就可以实现对表中数据进行去重了。
下面我们一步步来:
创建空表时,我们可以使用原始的create语句一个个来定义和原表一样的列,不过在这里推荐使用like直接创建结构跟原表一模一样的空表:
再使用select语句来拿到原表的去重数据:
接着将select语句的去重结果使用insert语句插入到空表中:
最后将两个表重命名一下就完成了:
二、对表中数据进行查询
2.1 基本select
我们对表中数据进行查询时少不了select语句,其基本语法为:
SELECT[DISTINCT] [[*] [column , column] ...][FROM table_name][WHERE ...][ORDER BY column [ASC | DESC], ...][LIMIT ...]
可以看到select语句可以跟上很多条件,下面我们来一一举例介绍
我们先创建一个表,再向其插入些数据:
2.1.1 使用select查询表中数据
如果我们想要查询表中全部的数据可以使用下面的语句:
select * from 表名;
上面的*是通配符,表示全部
我们来试试看:
如果我们想要查询表中某几列的数据可以使用下面的语句:
select 列名1,列名2,... from 表名;
例如:
2.1.2 使用select进行计算
select语句不仅仅能查询,还能进行计算:
既然可以进行计算的话,我们拿表中的数据来试试看:
那这样我们就可以打印出每个学生的总分:
2.1.3 在select语句中使用as对列自定义命名
上面的总分列名太长了,我们可以使用as关键字来对打印的列名进行重命名:
当然as也可以省略:
2.1.4 对查询结果进行去重
我们可以在select后面加上distinct关键字来对查询结果去重
例如math列原数据:
有两个85相同数据,现在我们来进行去重:
2.1.5 where条件
我们可以在select后面加上where条件句来筛选符号条件的数据,where后面常用的运算符有:
比较运算符:
| 运算符 | 说明 |
|---|---|
| >, >=, 70 分以上的数学最低分 该篇博客知识点较多,还请大家慢慢反复观看 感谢各位的阅览~我们下期见~ 更多MySQL技能请看:http://t.csdn.cn/W9dQl 博主努力更新中~ |
上一篇:怎么搭载境外服务器?
下一篇:ps怎么做3d字体?