欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > MYSQL教程 > MySQL的过滤(极客时间学习笔记)

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:505

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

MySQL的过滤(极客时间学习笔记)

发布时间:2021-05-26  

SQL的数据过滤, 可以减少不必要的数据行, 从而可以达到提升查询效率的效果.

比较运算符

在SQL中, 使用WHERE子句对条件进行筛选, 筛选的时候比较运算符是很重要.

MySQL的过滤(极客时间学习笔记)

上面的比较运算符, 并不是说每个DBMS都支持, 这里主要说MySQL, 不支持(!>)和(!<)等.

WHERE子句的基本格式是:

SELECT .....(列名) FROM ......(表名) WHERE ......(子句条件)

举几个例子:

SELECT name, hp_max FROM heros WHERE hp_max > 6000; // 查询所有最大生命值大于6000的英雄 SELECT name, hp_max FROM heros WHERE hp_max BETWEEN 5399 AND 6811; // 查询所有最大生命值在5399到6811之间的英雄 SELECT name, hp_max FROM heros WHERE hp_max IS NULL; // 对hp_max字段进行空值检查 逻辑运算符

如果存在多个WHERE条件子句, 可以使用逻辑运算符:

MySQL的过滤(极客时间学习笔记)

注意的是WHERE子句中同事存在OR和AND的时候, AND执行的优先级会很高, 也就是说SQL会先处理AND, 再处理OR操作符. 当然, 一种情况除外, 那就是()优先级最高.

SELECT name, hp_max, mp_max FROM heros WHERE hp_max > 6000 AND mp_max > 1700 ORDER BY (hp_max+mp_max) DESC; // 查询最大生命值大于6000, 最大法力值大于1700, 并按照最大生命值 + 最大法力值降序排序 SELECT name, role_main, role_assist, hp_max, mp_max, birthdate FROM heros WHERE (role_main IN ('法师', '射手') OR role_assist IN ('法师', '射手')) AND DATE(birthdate) NOT BETWEEN '2016-01-01' AND '2017-01-01' ORDER BY (hp_max + mp_max) DESC; // 查询主要定位或者次要定位是法师或是射手的英雄, 同时英雄的上线时间不在2016-01-01到2017-01-01之间. 使用通配符进行过滤

上面的条件过滤都是对已知值进行过滤, 如果我们要检索文本中包含某个词的所有数据, 这里就需要使用通配符了, 通配符是我们用来匹配值得一部分的特殊字符, 这里需要使用到LIKE操作符.

想要匹配任意字符串出现的任意次数, 需要使用(%)通配符, 匹配单个字符, 就需要使用下划线(_)通配符. (%)和(_)的区别在于前者代表一个或多个字符, 后者只能代表一个字符.

SELECT name FROM heros WHERE name LIKE '% 太 %'; // 匹配包含"太"字的英雄 SELECT name FROM heros WHERE name LIKE '_% 太 %'; // 匹配除了第一个字符外, 包含"太"字的英雄

同样的, 并不是所有的DBMS都是使用(%) 和(_)来表示多个字符和一个字符的, 具体的DBMS应该查询具体的手册.

MySQL的过滤(极客时间学习笔记)