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 ...
随机推荐
- Hyper-V虚拟机配置内部网络固定IP 并且连接外网
2019/10/23 Hyper-V CentOS7 摘要:Hyper-V中的虚拟机CentOS7能固定IP并且连接外网 保证宿主机的Xshell始终只用同一个IP连接到该虚拟机 新建内部网络虚拟交换 ...
- Java自学-数组 复制数组
Java 如何复制数组 数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少 步骤 1 : 复制数组 把一个数组的值,复制到另一个数组中 System.arraycopy(src, ...
- Python进阶(一)----函数
Python进阶(一)----函数初识 一丶函数的初识 什么函数: 函数是以功能为导向.一个函数封装一个功能 函数的优点: 1.减少代码的重复性, 2.增强了代码的可读性 二丶函数的结构 ...
- robotframe添加自定义lib 报Importing test library ‘xxxx’ failed
问题现象:在linux服务器上搭建jenkins 执行robot工程时报:Importing test library ‘xxxx’ failed 问题分析一: 在library 引入非rob ...
- django模板和静态文件
1.为什么要使用模板 在上一篇博文中,提到了HttpReponse,但是HttpReponse只能传送字符串,如果要构建一个网页,那么工作量就会十分巨大.模板是一种方便的标签,存在于HTML文件中,我 ...
- Seata 动态配置订阅与降级实现原理
Seata 的动态降级需要结合配置中心的动态配置订阅功能.动态配置订阅,即通过配置中心监听订阅,根据需要读取已更新的缓存值,ZK.Apollo.Nacos 等第三方配置中心都有现成的监听器可实现动态刷 ...
- MongoDB CPU利用率很高,怎么破(转)
经常有用户咨询:MongoDB CPU 利用率很高,都快跑满了,应该怎么办? 遇到这个问题,99.9999% 的可能性是「用户使用上不合理导致」,本文主要介绍从应用的角度如何排查 MongoDB CP ...
- i++和++i的真正区别
原文:https://blog.csdn.net/c15158032319/article/details/78209740 记得刚开始学编程的时候还是从c语言开始的,还是看的谭浩强写的那本书,上面对 ...
- django项目中使用bootstrap插件的分页功能。
官网下载bootstrap插件放到项目中的static文件中 路由 path('blog-fullwidth/', login.fullwidth,name='fullwidth'), 前端页面引入 ...
- docker学习2-快速搭建centos7-python3.6环境
前言 当我们在一台电脑上搭建了python3.6的环境,下次换了个电脑,或者换成linux的系统了,又得重新搭建一次,设置环境变量.下载pip等操作. 好不容易安装好,一会Scrips目录找不到pip ...