Linux_MySQL表的基本操作 DML操作(表的插入,替换,查询数据,更新数据)

1.表的增删查改

表数据的插入

大致上表的操作如下:表的创建,读取,更新,删除

首先创建一张表:
在这里插入图片描述

插入语句:
insert [into] table_name (列属性) values (对应列属性的值)[,(对应列属性的值)][]内部的语句可以省略

eg:
在这里插入图片描述
在这里插入图片描述
如果不指明插入的列明,这时需要values后需要把每一列的值都写出来。(全列插入)
在这里插入图片描述

对于主键和唯一键来讲,可能因为冲突导致插入失败,这时应该更新对应键值的值

insert into table_name (col_name) values (col_value) on Duplicate key update col_name= new_colval;
-- 不存在主键或唯一键冲突时插入,否则更新主键对应行的值
-- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等
-- 1 row affected: 表中没有冲突数据,数据被插入 
-- 2 row affected: 表中有冲突数据,并且数据已经被更新

eg:
在这里插入图片描述

表数据的替换

-- 主键 或者 唯一键 没有冲突,则直接插入;
-- 主键 或者 唯一键 如果冲突,则删除后再插入
--语义上和上一条相同
replace into table_name (col_name...) values (col_value...);
-- 1 row affected: 表中没有冲突数据,数据被插入 
-- 2 row affected: 表中有冲突数据,删除后重新插入

eg:
在这里插入图片描述

表数据的查询

select
  	[distinct] {* | {column [, column] ...} ---需要查询的列
	[from table_name] ---查询表名
	[where ...] 筛选条件
	[order by column [ASC | DESC], ...] ---升序排列或降序排列
	limit ...;

首先创建表:
在这里插入图片描述
在这里插入图片描述


全列查询

select * from table_name;

在这里插入图片描述

通常不使用全列查询。

  • 查询的列越多,意味着需要传输的数据量越大。
  • 可能会影响索引的使用。

全列查询最好限制显示行数:

select * from table_name limit row_num;

在这里插入图片描述


指定列名查询

select [distinct (去重)] col_name1,col_name2,[col_name1+col_name2(表达式) as new_name]... from table_name;
--显示的列顺序与查找的顺序有关。

在这里插入图片描述

select具有计算表达式的能力,使用as来将计算的结果进行重命名
在这里插入图片描述
去重搜索:
在这里插入图片描述


①where条件查询

比较运算符:
在这里插入图片描述

逻辑运算符:级联多个where条件
在这里插入图片描述

下面是练习:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

筛选数学成绩是98,99,58,59分的同学。
在这里插入图片描述

模糊匹配MySQL中所有环境变量带character的字段:
在这里插入图片描述
筛选结果排序显示:(默认升序 asc)

按照数学成绩升序排列:
在这里插入图片描述
降序显示desc
在这里插入图片描述

依次按照数学降序,语文和英语成绩升序排列:
在这里插入图片描述
当数学成绩相同时看语文成绩,如果语文成绩还相同再看英语成绩。

表数据的更新

update table_name set col_name=col_value
      [where ...] 
      [order by ...] 
      [limit ...];

在这里插入图片描述
eg:将倒数三名学生的英语成绩+30分:
在这里插入图片描述
注意:MySQL中不支持+=和*=符号,需要写成math=math+30

表数据的删除

delete from table_name 
			[where ...]
			[order by ...]
			[limit ...];--后跟筛选条件

找到数据并删除。
在这里插入图片描述

删除倒数三名学生
在这里插入图片描述

在这里插入图片描述
注意:删除表后自增长序列号不会清空。
在这里插入图片描述
可以看到id自增长序列是从6开始而不是从0开始。

truncate [table] table_name

注意:

  1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
  2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚
  3. 会重置 AUTO_INCREMENT 项
    在这里插入图片描述

2.插入查询结果

删除表中重复数据:
在这里插入图片描述
思路:将去重的结果插入到另一个空表中。
在这里插入图片描述
注意:对于原表需要先进行备份,再对新表进行重命名。
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NUC_Dodamce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值