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 ...
随机推荐
- 如何配置这个maven仓库的源http://mvnrepository.com/repos
http://mvnrepository.com/repos 主要是ID .mirrorof.name 怎么配置,这个网站上有spring5.0的,别的仓库没有,我需要这个源. 原文地址:https: ...
- Linux下which、whereis、locate、find命令作用
1 which 查看可执行文件的位置,也可以找到命令别名 2 whereis 查看文件的位置 3 locate 系统数据库查找文件位置,数据库大约每天更新一次 4 find 根据查找条件,搜寻硬盘查询 ...
- 编辑表格输入内容、根据input输入框输入数字动态生成表格行数、编辑表格内容提交传给后台数据处理
编辑表格输入内容.根据input输入框输入数字动态生成表格行数.编辑表格内容提交传给后台数据处理 记录自己学习做的东西,写的小demo,希望对大家也有帮助! 代码如下: <!DOCTYPE ht ...
- jsonpath_rw操作json
from jsonpath_rw import parse def get_key_from_data(key,data): # 定义匹配规则 json_expr=parse(key) result= ...
- 微信小程序代码开源啦
想学习如何使用mpvue开发微信小程序吗? 想知道微信消息推送如何实现吗? 想知道如何用springboot开发小程序后台吗? 看这里就全都有了.耗时一个月打造的微信小程序:PSN折扣助手前后端所有源 ...
- token jwt配置
1. token jwt配置 1.1. pom <!-- token验证 --> <dependency> <groupId>io.jsonwebtoken< ...
- Jmeter学习笔记(十九)——后置处理器之正则表达式的使用
一.正则表达式提取器的作用 允许用户从服务器的响应中通过使用perl的正则表达式提取值.作为一个后置处理器,该元素会作用在指定范围的取样器,应用正则表达式,提取所需要的值,生成模板字符串,并将结果存储 ...
- GNS3、Wireshark、SecureCRT 环境部署
本次GNS3环境部署教程基于官方推荐的稳定版1.5.4.初次接触此软件,详细的使用方法不是很清楚,所以以此作为学习记录,仅供参考,后期补充. 软件介绍 GNS3 GNS3是一款具有图形化界面可以运行在 ...
- MySQL创建用户和加限权
目录 1.权限管理 1.1对新用户增删改 1.2对当前的用户授权管理 1.权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete ...
- supervisor安装部署文档和管理实例
Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit(关于monit见我的博客:用monit监控系统关键进程),monit和supervisord的一个比较大的差异 ...