本篇会加入个人的所谓鱼式疯言
❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!
前言
在上一篇文章中,我们主要学习了认识 CRUD
的概念,以及如何在表中 新增数据 ,然后对表中已有的数据进行一系列的 指定列查询 , 表达式查询,别名查询 ,去重查询 。
小伙伴们可以慢慢回忆下哦,而在本篇文章中,重点将围绕着对指定的 表 中已有的数据进行 查询
,修改
, 删除
的。
目录
-
排序查询
-
条件查询
-
修改数据
-
删除数据
一. 排序查询
1. SQL语句
<1>. 降序排序
select 指定列名 from 表名 order by 列名 desc ;
<2>. 升序排序
select 指定列名 from 表名 order by [asc] 字段名;
2. 语句分析
- 对于 排序查询的标识关键字 就是后面
order by desc / asc
- 当我们需要指定一个表中的数据,按照某个字段的 大小顺序 进行
排序
时,需要升序就用 order by 字段名 asc 或者 order by 字段名 即可, 而降序就需要 order by 字段名 desc .。
3. 注意事项
当我们使用
order by
进行排序的时候,是要指明好某个字段
的,而且这个字段的数据类型最好是 整型 ,虽然我们可以对名字进行排序,但这种排序是 没有意义 的。 (下图)
当我们对
null
排序时,默认为0
二. 条件查询
提及条件查询, 小伙伴一定会回忆到我们 C语言
和 Java
中学过的 条件语句 吧 ! ! !
那我们 SQL
的条件语句 是不是有异同呢 ,答案是 肯定 的 。
1. 指定查询
<1>. SQL语句
1). 指定单数据查询
select 指定列名 from 表名 where 列名 = 目标单个字段数据 ;
2) . 指定多数据查询
select 指定列 from stu where 列名 in( 数据1,数据2 ...);
<2>. 语句分析
对于 单点查询
的标识关键字就是 where 字段= 指定数据;
而对于多点查询 的标识关键字就是 where 列名 in( 数据1, 数据2,数据3) ;
所以小伙伴们注意区分哦
<3>. 注意事项
小伙伴们一定要注意在单数据查询 这里
判断某个数据
,我们值需要一个等号即可, 不允许 用 两个等号 。
2. 范围查询
<1>. SQL语句
1). 单范围查询
select 指定列名 from 表名 where 字段 >/>=/</<= 数据 ;
2). 否定查询
select 指定列名 from 表名 where 字段 != 数据 ;
select 指定列名 from 表名 where not 字段 = 数据 ;
3). 联合范围查询
SQL语句一 :
select 字段名 from stu where 字段名 <= 数据1 && 字段名 >= 数据2
&& / and 字段名 >= 数据2 ;
SQL 语句二 :
select 字段名 from stu where 字段名 <= 数据1 || / or 字段名 >= 数据2
SQL语句三 :
select 字段名 from stu where 字段名
between 左边界数据范围 and 右边界数据范围 ;
语句分析
当我们需要用范围查询时,要明白的就是
我们可以用
&&
或者and
来连接两个 相交 的范围
用
||
或者or
来连接两个 不相交 的范围 (和我们Java
或者C语言
的逻辑运算符的使用是 相同的 )
另外就是我们
between A and B
的 关键字 ,他代表的含义就是在 两端都是闭区间 中查找符合的数据 ==> [A,B] 。
注意事项
在我们用 between… and… 时,我们就需要注意的是 : A 不能比 B 大,否则查出来的是 空值
主要原因:
between... and...
本质上就是 A && B 这种情况才会出现 空集 。
关于是用符号
&& / ||
还是用英文单词and / or
, 小编个人觉得还是用 and / or , 因为英文单词 更简单明了直接告诉我们是 逻辑非 还是 逻辑与
3. null查询
<1>. SQL 语句
SQL 语句一 :
对于为 null
字段的查询
select 列名 from 表名 where 字段名 <=> / is null ;
SQL 语句二 :
对于 非null
字段查询
select 字段名 from 表名 where 列名 not is null ;
<2>. 语句分析
这里当 需要判断某列中 哪几行中 哪些为 null
, 就可以带上 <=> null 或者 is null 这样的 关键字
来判断。
而当我们需要判断不为 null
时,我们就可以带上 is not null
这样的关键字来进行判断筛选 。
<3>. 注意事项
- 判断 非null 时, 我们不可以用
<> null
来判断
否则就会出现空集(下图)
- 判断
null
时,要注意的是不能够直接用 等号 来判断
否则也是 空集
(下图)
鱼式疯言
小编额外扩展
其实这里的 <>
和 <=>
可以相当于我们等号来查找某个单一的数据来用 (如下图)
<=> 等效于 =
<> 等效于 !=
4. 模糊查询
<1>. SQL语句
SQL语句一:
select 列名 from 表名 where 列名 like ...%... ;
SQL语句二:
select 列名 from 表名 where 列名 like ..._... ;
<2>. 语句分析
在SQL中,我们的模糊查询的标识关键字就是 like % / _
like 不必多说,至少一个简单的关键字,这里小编重点解释 % 和 _
‘%’ 主要是泛指 零个字符 或者
一个或多个字符
, 所以%A
就代表A前面有零个或多个字符 , %A% 就代表A前面
和后面
都有 零个或多个字符 ,但前提
是一定是要含有这个 A字符
‘_’ 主要泛指单纯的一个字符,每出现一个 _ 就代表一个一个字符 ,所以我们的 假如写成 _ _ _ A_ _ _ _ 就代表A前面有
三个字符
,A后面有 四个字符,但同样也要包含A
同时也可以 %和 _ 结合起来 写
<3>. 注意事项
- 这里的 模糊查询 ,我们一般只是对 字符串 这样的类型进行查询,像整型 类型
SQL
中是不支持 ,否则会 报错 (见下图)
- 我们只针对
字符串进行模糊查询
的时候,小伙伴一定别忘了 带上引号 来标识哦
鱼式疯言
对于以上 查询的真正实质 在于
我们
MySQL
背后会遍历整个数据表中的数据 ,只要 满足where
后面条件的 就留下
,不满足 的就跳过
, 最终把 满足的结果 都显示到我们的 新的列表 中。
三. 修改数据
1. 全行修改
<1>. SQL语句
update 表名 set 字段名 = 修改后的值;
2.指定行修改
update 表名 set 列名 = 修改后的数据 where 条件 ;
3. 表达式修改
update 表名 set 列名 = 列名 + / - 需要增加或减少的数据 [where 条件] ;
<2>. 语句分析
修改操作 的标识关键字就是
update
和set
一个用来 指定表 ,一个用来操作修改数据。
当我们需要指定 特殊的行 ,就可以使用
where
进行 条件的筛选 并且要进行 运算多少数据 ,就可以利用好我们的表达式修改
来操作哦 💞 💞 💞 💞。
<3>. 注意事项
当小伙伴们看到 第一个操作是不是 很危险, 是的,如果我们没有用 where 指定对应的条件,就会一不小心把所有的该列的
数据都改掉
,就有可能造成不可挽回
的后果
所以小伙伴在修改数据表中的数据时, 一定千万要 慎重再慎重 哦 💥 💥 💥 💥
四. 删除数据
1. 全行删除
<1>. SQL语句
delete from 表名;
2. 指定行删除
delete from 表名 where 条件;
<2>. 语句分析
数据表的删除操作的标识关键字就是
delete
from
。
如果需要 删除指定行 时,就需要对用
where
来筛选出我们需要的 特点行 ,然后进行删除
。
<3>. 注意事项
像我们第一种 删除操作 ,当我们不指定
where
时, 就是一种非常危险的操作,就会把 数据表 中所有
的数据进行删除
,我们就需要加上where
来进行筛选
哦。
对于 数据库删表 的操作本身就是一种非常 危险操作 , 所以小伙伴们一定要
慎重再慎重
哦。
总结
在本篇文章中,我们总共收获了
-
排序查询
-
升序排序
select 列名 from 表名 order by 列名 [asc] ;
- 降序排序
select 列名 from 表名 order by 列名 desc ;
-
条件查询
-
指定查询
select 列名 from 表名 where 列名= 数据 ;
- 范围查询
select 列名 from 表名 where 列名 <= / < 数据
&&/ and / || / or 列名 >= / > 数据 ;
select 列名 from 表名 where 列名 between 数据1 and 数据2 ;
- 是否null 查询
- null 查询
select 列名 from 表名 where 列名 <=> / is null ;
- 非null查询
select 列名 from 表名 where 列名 is not null ;
- 模糊查询
- % 查询
select 列名 from 表名 where 列名 like %A%;
- _ 查询
select 列名 from 表名 where 列名 like _ A _;
- 修改数据
update 表名 set 列名 = 修改后的数据 [where 条件] ;
- 删除数据
delete from 表名 [where 条件] ;
如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正
希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖