每天一点数据库之-----Day 5 过滤查询

每天一点数据库之-----Day 5 过滤查询

----转载请注明出处:coder-pig

本节引言:

上一节我们学习了基本的数据检索,这节我们来学习高级一点的

过滤查询~

1.单字符过滤:

就是使用"_"这个下划线来替代一个字符,比如,我们想检索出:

door,book,cool,took这类字符串的话,我们可以使用"_oo_"

比如我们使用下述SQL语句:

SELECT * FROM T_Worker WHERE FName LIKE ‘_a_y‘

运行后:

如果你的DBMS支持中文的话

SELECT * FROM T_Worker WHERE FDName LIKE ‘__ 部 ‘

运行后:

2.多字符过滤:

当然有的时候,字符的个数可能是不定的,比如:

①我们查询表中姓名是以字符"J"开头的字符串

这个时候就要用到"%"这个通配符

SQL语句如下:

SELECT * FROM T_Worker WHERE FName LIKE ‘J%‘

运行结果如下:

②当然,你可以同时用多个%,比如我们使用下面的SQL语句:

SELECT * FROM T_Worker WHERE FName LIKE ‘%a%y‘

运行结果如下:

③你也可以搭配着单字符的"_"那个使用

比如:取出表中名字含有‘a‘且是倒数第二个字母的记录:

SELECT * FROM T_Worker WHERE FName LIKE ‘%a_‘

运行结果:

另外,还有一个用法,例子:

不是以J开头的记录:

SELECT * FROM T_Worker WHERE NOT ( FName LIKE ‘J%‘ )

3.空值检测:

有时可能需要我们对表中的空值进行检测,比如检测工人表中工资为空的人员的信息:

如果直接WHERE FSalary = null是不行的,必须得使用"IS NULL"这个关键字

如下面的SQL语句:

SELECT * FROM T_Worker WHERE FSalary IS NULL

运行后:

当然你也可以判断不为空,改成IS
NOT NULL就可以了!

4.反义运算符

就是不等于,不小于,不大于,某些DBMS是可以直接使用"!"符号,又或者

<>表示等于,<=不大于,>=不小于

当然,为了适应不同的数据库,我们可以变通下使用NOT运算符,使用下述SQL来完成:

比如以下这条SQL语句:

SELECT * FROM T_Worker

WHERE NOT( FAge = 22) AND NOT ( FSalary < 3000 )

运行结果:

分析:这个SQL语句很简单,就是筛选年龄不为22,以及工资不小于3000元的员工信息~

5.多个值的筛选

从上面我们知道可以通过运算符OR,NOT,AND来筛选多个值,

假如有多个值,比如我们需要查询表中年龄为:18,20,22,24,26的员工的信息

我们可以写多个OR来完成,但假如,不止五个值呢?10个或者更多,这个时候

不但写起来麻烦,维护起来也难,而且一不小心就可能引起数据错误!对于这种情况

SQL为我们提供了IN语句

上面查询年龄的SQL可以这样写:

SELECT * FROM T_Worker

WHERE FAge IN(18 , 20, 22 ,24 , 26)

运行SQL:

6.范围值的筛选

上面这种情况适合于特定值筛选的部分,假如是一个范围值呢?比如我要筛选

18-25,30-50的员工呢?当然,可以直接用上面的IN关键字,不过写起来有点麻烦

假如我们筛选的是工资呢?有小数,你怎么玩,这个时候就要用到SQL为我们提供的

另一个语句:BETWEEN AND语句了!

上述这个问题的SQL语句如下:

SELECT * FROM T_Worker

WHERE (FAge   BETWEEN 18 AND 20)

OR ( FAge  BETWEEN 30 AND 50 )

运行SQL:

另外,从查询结果我们也知道了BETWEEN AND查询范围是包括边界值的

比如上面的18!

关于本节内容,到此结束~谢谢

时间: 2024-10-08 11:59:23

每天一点数据库之-----Day 5 过滤查询的相关文章

每天一点数据库之-----Day 4 数据的简单查询

每天一点数据库之-----Day 4 数据的增改删 ----转载请注明出处:coder-pig 本节引言: 本节介绍的是最简单的数据检索(查询),就是SELECT的最基本用法~ 针对本节查询,我们先建立一个工作人员表,以及录入一些几条记录: 包括,人员id,人员姓名,年龄,性别,工资,以及部门名称: 建表SQL: CREATE TABLE T_Worker ( FId INTEGER , FName VARCHAR ( 20), FAge INTEGER , FSex VARCHAR (10),

FMDB使用的一点心得:数据库创建、制表、查询等以及image转换成二进制nsdata保存到数据库中

<span style="font-size:18px;">//首先,获取数据库的路径,(如果不存在,就是我们想要存储的路径),不用担心每次都创建数据库会重复,不会的,如果没有则创建,有了就不会再重复创建: //接下来,我们要制表,首先我们先查看我们的表是否已经存在,方法在下面代码中:如果存在则跳过,不存在则创建</span> -(void)DataBaseInit { //获取Document文件夹下的数据库文件,没有则创建 NSString *dbPath

每天一点数据库之-----Day 6 数据分组与数据分页

每天一点数据库之-----Day 6 数据分组与数据分页 ----转载请注明出处:coder-pig 本节引言: 本节继续来学习SQL中的数据查询中的数据分组~ 先建个表,录几条数据,顺道复习下之前学的内容~ 之前建立的T_Worker都用了几天了,今天就来弄个新的表吧T_Product商品表: 建表SQL: CREATE TABLE T_Product ( PId INTEGER, PName VARCHAR(20), PKind VARCHAR(20), PCity VARCHAR(10),

每天一点数据库之-----Day 9 表连接

每天一点数据库之-----Day 9 表连接 ----转载请注明出处:coder-pig 本节引言: 前面我们学习的都是针对一个表来进行操作的,上一节虽然学了UNION这个可以操作多个表 的关键字,但是又有两个限制(查询字段数目与数据类型要相同),本节就来学习通过表连接 来操作多个表!而表连接又有四种: 内连接,外连接,交叉连接与自连接,那么接下来开始本节学习! 数据准备: 在开始学习前,我们先准备一些数据,建三个表:T_Stu,T_Class,T_Dorm 建T_Stu表: CREATE TA

数据库编程1 Oracle 过滤 函数 分组 外连接 自连接

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程1 Oracle 过滤 函数 分组 外连接 自连接 本文实验基于的数据表: winsows安装好Oracle11g之后,开始实验 SQLplus 登陆 ORacle sqlplus 退出的方式 查看用户之下有什么表 查看表的所有记录,不区分大小写 设置SQLplus行宽,页宽,列宽: 清屏命令 select as 语法 1,as别名的使用 2,没有引号带有空格的别名,无法识别: 3,带有

数据库编程2 Oracle 过滤 函数 分组 外连接 自连接

[本文谢绝转载原文来自http://990487026.blog.51cto.com] 续:数据库编程1 Oracle 过滤 函数 分组 外连接 自连接 where like模糊查询,查询员工姓名是4个字母 SQL> select * from emp where ename like '____';      EMPNO ENAME                JOB                       MGR HIREDATE          SAL       COMM    

数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例 实验所用数据表 子查询,解决一步不能求解 查询工资比scott高的员工信息: 子查询知识体系搭建: 解释3,查询部门是sales的员工信息: 方法1:子查询 [方法2]:多表: 优化考虑: 解释4[select],只能放单行子查询 解释4[from] 考题:显示员工姓名,薪水 解释

WebService和AngularJS实现模糊过滤查询

[概要] 网上看到一个不错的帖子,用WebService获取json,然后在前端使用AngularJs进行过滤搜索,看完文章后,按自己的想法,写了一个demo,给大家讨论参考,本人技术一般,还望大家多加指点. [术语] WebService:是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序 AngularJS:通过为开发者呈现一个更高层次的抽象来简

每天一点数据库之-----Day 7 字段相关与联合结果集

每天一点数据库之-----Day 7 字段相关与联合结果集 ----转载请注明出处:coder-pig 一.字段相关 1.常量字段: 什么是常量字段? 答:就是表中并不存在的字段,但是查询出来的结果看上去上实际存在~如 使用下述SQL: SELECT '小明超市','香洲店',PName,PPrice FROM T_Product 运行SQL: 这里的'小明超市'和'香洲店'就是常量字段!! 2.字段间的计算 字段间还可以进行计算,如计算商品的总价: SELECT PName,FNum,PPri