SQL基础-过滤数据
一、过滤数据
1、使用WHERE子句
过滤数据:关键字WHERE SELECT 字段列表 FROM 表名 WHERE 过滤条件; 过滤条件一般由要过滤的字段、操作符、限定值三部分组成; 如:
SELECT student_id,student_name FROM student WHERE gender = '男';
2、常用操作符

3、过滤单个值
#age 不等于10
SELECT 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子句时,尽量都使用括号消除歧义;
SQL基础-过滤数据的更多相关文章
- SQL Server 迁移数据到MySQL
一.背景 由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL:由于涉及的表比较多,所以想在MySQL中生成对应 ...
- SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)[转]
--====================================================== --SQL基础-->层次化查询(START BY ... CONNECT BY ...
- SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)
--====================================================== --SQL基础-->层次化查询(START BY ... CONNECT BY ...
- SQL语句(一)基础查询与过滤数据
目录 一.数据库测试表 二.基础查询 1. 获得需要的记录的特定字段 2. 查询常量值 3. 查询表达式 4. 查询函数 5. 起别名 6. 去重 7. CONCAT函数的简单使用 三.过滤数据 大纲 ...
- (大数据工程师学习路径)第四步 SQL基础课程----select详解
准备 在正式开始本内容之前,需要先从github下载相关代码,搭建好一个名为mysql_shiyan的数据库(有三张表:department,employee,project),并向其中插入数据. 具 ...
- [SQL基础教程] 4-3 数据的更新(UPDATE)
[SQL基础教程] C4 数据更新 4-3 数据的更新(UPDATE) UPDATE UPDATE <表名> SET <列名> = <表达式>; UPDATE &l ...
- [SQL基础教程] 4-2 数据删除(DELETE)
[SQL基础教程] C4 数据更新 4-2 数据删除(DELETE) DROP TABLE / DELETE DROP TABLE - 完全删除表 DELETE - 仅删除数据,保留表容器 DELET ...
- [SQL基础教程] 4-1 数据的插入(INSERT)
[SQL基础教程] C4 数据更新 4-1 数据的插入(INSERT) INSERT INSERT INTO <表名>(列1,列2...) VALUES(值1,值2...); 清单 用() ...
- SQL语句检索数据排序及过滤
阅读目录 一:排序检索数据 二:过滤数据 三:高级数据过滤 四:用通配符进行过滤 回到顶部 一:排序检索数据 1.1 排序数据 比如查询数据库中表数据的时候,我们使用如下语句: select * fr ...
随机推荐
- ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topic filebeat.prospectors: - input_type: log encoding: GB2312 # fields_under_root: ...
- 定时任务-Windows任务
定时任务-Windows任务 什么是windows任务 windows系统自带一个任务管理组件.可以执行自己写的程序,发送电子邮件(需要邮件服务器),显示消息(就是桌面弹出一个窗口).用的最多的就 ...
- java基础 Arrays
package cn.mantishell.day08.demo04; import java.util.Arrays; /** * java.util.Arrays是一个与数组相关的工具类,里面提供 ...
- 无法生成服务引用(添加WebService)
参考地址:http://www.52study.org/bencandy-120-1076-1.html 问题场景:.在工程中添加WebService,报错: 解决办法: 1.配置该服务引用 将下面 ...
- 2019 拼多多java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.拼多多等公司offer,岗位是Java后端开发,最终选择去了拼多多. 面试了很多家公司,感觉大部分公司考察的点都差 ...
- 【转载】C#中Convert.ToDecimal方法将字符串转换为decimal类型
在C#编程过程中,可以使用Convert.ToDecimal方法将字符串或者其他可转换为数字的对象变量转换为十进制decimal类型,Convert.ToDecimal方法有多个重载方法,最常使用的一 ...
- Flask 和 Django 框架的区别
1)Flask Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过 Flask自由.灵活,可扩展性强,第三方库的选 ...
- 模仿jquery--offset方法。原生JS获取任意元素到文档document顶部的距离
1.通过遍历目标节点.目标节点的父节点,依次溯源. 然后累加这些节点到其最近可定位的祖先节点的距离.向上直到document. 其中,需要使用到节点的offsetTop/offsetLeft属性,来获 ...
- 英语wacche腕表
手表 (戴在手腕上的计时仪器) 手表,或称为腕表,是指戴在手腕上,用以计时/显示时间的仪器,手表在英语里watch源自中世纪wacche这一词汇. 手表通常是利用皮革.橡胶.尼龙布.不锈钢等材料,制成 ...
- SpringCloud之服务注册与发现Eureka+客户端Feign
前言 SpringCloud 是微服务中的翘楚,最佳的落地方案. Eureka 作为注册中心,是 SpringCloud 体系中最重要最核心的组件之一. Feign 使用接口加注解的方式调用服务,配合 ...