博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL基础-过滤数据
阅读量:5220 次
发布时间:2019-06-14

本文共 1997 字,大约阅读时间需要 6 分钟。

一、过滤数据

1、使用WHERE子句

过滤数据:关键字WHERESELECT 字段列表 FROM 表名 WHERE 过滤条件;过滤条件一般由要过滤的字段、操作符、限定值三部分组成;如:    SELECT student_id,student_name FROM student  WHERE gender = '男';

2、常用操作符

3、过滤单个值

#age 不等于10SELECT student_id FROM student WHERE age <> 10;SELECT student_id FROM student WHERE student_name = '汪书乔';SELECT * FROM student WHERE birth_day <= '2005-12-31';

4、过滤NULL值

SELECT * FROM student WHERE age IS NOT NULL; SELECT * FROM student WHERE class_id IS NULL;#(错误写法!)SELECT * FROM student WHERE class_id = NULL;

5、过滤集合

###SELECT * FROM student WHERE age BETWEEN 10 AND 15; SELECT * FROM student  WHERE birth_day BETWEEN '2005-01-31' AND '2005-12-31';###SELECT * FROM student WHERE age IN (10,11,15); SELECT * FROM student  WHERE student_name IN ('叶冬星','李佳欣','汪如一');SELECT * FROM student  WHERE student_id NOT IN ('S20160001','S20160002');

二、高级过滤数据

1、使用通配符过滤数据

###使用通配符过滤数据:关键字LIKE百分号 %     -->匹配0~多个任意字符下划线 _     -->匹配1个任意字符方括号 [ ]、[^ ]     -->匹配1个字符集中的字符基本所有的数据库都支持百分号通配符和下划线通配符,但只有很少的数据库支持方括号通配符。如:    SELECT * FROM student WHERE student_name LIKE '陈%';    SELECT * FROM student WHERE student_name LIKE '%慧';    SELECT * FROM student WHERE student_name LIKE '陈_’;    SELECT * FROM student WHERE student_name LIKE '陈_军';但是MySQL不支持:    SELECT * FROM student WHERE student_id LIKE 'S200[678]';    SELECT * FROM student WHERE student_id LIKE 'S200[^678]';使用通配符的注意点:     不要过度使用通配符;     如果确实需要使用,也尽量不要把通配符用在匹配模式的开始处;     要特别注意通配符的位置,否则很有可能返回的结果与预期不一致;

2、组合WHERE子句

###使用逻辑操作符组合WHERE子句:    AND操作符     满足所有条件    OR操作符     满足任一条件比如:    如何取出所有姓陈的男同学?    SELECT * FROM student  WHERE student_name LIKE '陈%' AND gender = '男';    如何取出所有姓陈的同学或男同学?    SELECT * FROM student  WHERE student_name LIKE '陈%' OR gender = '男';比如:    如何取出所有年龄大于15岁并且姓陈或男性同学?    错误写法:    SELECT * FROM student WHERE age > 15 AND student_name LIKE '陈%' OR gender = '男';    正确写法:    SELECT * FROM student WHERE age > 15 AND (student_name LIKE '陈%' OR gender = '男');使用组合WHERE子句时,尽量都使用括号消除歧义;

转载于:https://www.cnblogs.com/weiyiming007/p/11427942.html

你可能感兴趣的文章
ASP.NET MVC5 高级编程-学习日记-第二章 控制器
查看>>
Hibernate中inverse="true"的理解
查看>>
高级滤波
查看>>
使用arcpy添加grb2数据到镶嵌数据集中
查看>>
[转载] MySQL的四种事务隔离级别
查看>>
QT文件读写
查看>>
C语言小项目-火车票订票系统
查看>>
15.210控制台故障分析(解决问题的思路)
查看>>
BS调用本地应用程序的步骤
查看>>
常用到的多种锁(随时可能修改)
查看>>
用UL标签+CSS实现的柱状图
查看>>
mfc Edit控件属性
查看>>
Linq使用Join/在Razor中两次反射取属性值
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>
优秀员工一定要升职吗
查看>>
[LintCode] 462 Total Occurrence of Target
查看>>
springboot---redis缓存的使用
查看>>
架构图-模型
查看>>
sql常见面试题
查看>>