前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库基础Ⅱ

数据库基础Ⅱ

作者头像
摸鱼的G
发布2023-02-22 09:54:11
3040
发布2023-02-22 09:54:11
举报
文章被收录于专栏:火属性小虫
数据库基础Ⅱ

LIKE模糊查询

之前我们学习的查询语句都是精准查询,我们都用过搜索引擎,在搜索引擎中我们使用更多的是模糊查 询,SQL语句中的LIKE子句可以达到类似的模糊查询的效果。

结构:

代码语言:javascript
复制
SELECT * FROM table_name WHERE condition LIKE condition;

SQL LIKE 子句中,我们的使用百分号 %字符来表示任意字符,如果我们没有使用任何的%,那此时 LIKE就相当于 =

比如我们查找名字带孙的人

代码语言:javascript
复制
SELECT
  *
FROM
  people
WHERE
  name LIKE '%孙%';

%的位置会决定搜索结果的不同,’%孙%’示这个字符串含孙,’孙%’表示这个字符串以孙开头,’%孙’表 示这个字符串以孙结尾。

除了%的模糊查找,还可以使用 _ 来模糊查找

如:

代码语言:javascript
复制
SELECT
  *
FROM
  timi_adc
WHERE
  hero_name LIKE '_尚香';

与 % 不同的是 %可以代表多个字,而 _ 只能代表一个字,即 %尚香 可以查找出 公孙尚香,而 _尚香 不能

AND和OR

之前我们写的 WHERE 语句都是只有一个条件的,在实际生活中,我们往往会使用多个条件,这个时 候就需要使用 AND 和 OR 关键词。

结构如下

代码语言:javascript
复制
SELECT * FROM table_name WHERE conditionA AND/OR condtionB;

比如我们要查询 timi_adc 表中胜率为百分之 50%-51%或者胜率低于 47%的英雄,那么我们可以这么 写 SQL:

代码语言:javascript
复制
SELECT
  *
FROM
  timi_adc
WHERE
  win_rate > 0.5
  AND win_rate < 0.51
  OR win_rate < 0.47;

同时我们可以使用 () 来分割逻辑如:

代码语言:javascript
复制
SELECT
  *
FROM
  timi_adc
WHERE
  win_rate > 0.5
  OR (
    win_rate < 0.47
    AND win_rate < 0.51
  );

IN/NOT IN

我们使用:

代码语言:javascript
复制
SELECT * FROM table_name WHERE column IN (condtionA,condtionB);

代码语言:javascript
复制
SELECT
  *
FROM
  timi_adc
WHERE
  fever IN ('T0', 'T3');

等价于

代码语言:javascript
复制
SELECT
  *
FROM
  timi_adc
WHERE
  fever = 'T0'
  OR fever = 'T3';

在IN前加上NOT表示非,即除去所选条件如

代码语言:javascript
复制
SELECT
  *
FROM
  timi_adc
WHERE
  fever NOT IN ('T0');

即查询时除去fever为T0的数据。

LIKE也可以加上NOT 。

代码语言:javascript
复制
SELECT
  *
FROM
  timi_adc
WHERE
  hero_name NOT LIKE '%孙%';

效果与NOT IN 类似,不过IN是精确查询,LIKE是模糊查询。

NULL值处理

我们在之前的学习中有涉及到 NULL 值,NULL 对应的是 NOT NULL ,它们是 MySQL 字段的数据类型的 属性,NULL 本身不属于任何数据类型, NULL 值也不等于空值,空值是不占用存储空间的,NULL 占用存储 空间。

MySQL 为处理 NULL 值提供了三种运算符:

1. IS NULL:当列的值是 NULL 时,这个运算符返回 true

2. IS NOT NULL:当列的值不为 NULL,这个运算符返回 true

3. <=>:比较操作符,当比较的两个值都为 NULL 时或者相等时,返回为 true

注意:我们不能使用=NULL 或者!=NULL 来查找 NULL 值 ,NULL = NULL 会返回 NULL

我们可以使用

代码语言:javascript
复制
SELECT field_name1,field_name2
FROM table_name
WHERE field_name2 IS NOT NULL/IS NULL;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据库基础Ⅱ
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档