数据库单表查询 - 简单筛选查询

写在前面:博主是一只通过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,老是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,现在终有小成,愿将昔日所获与你们交流一二,但愿对学习路上的你有所助益。同时,博主也想经过这次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎你们经过各类方式提供素材。数据库

  • 对于文章中出现的任何错误请你们批评指出,必定及时修改。微信

  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。学习

  • 发布文章的风格因专栏而异,均自成体系,不足之处请你们指正。测试

数据库单表查询 - 简单筛选查询

本文关键字:数据库、数据查询语言、DQL大数据

以前咱们已经了解了SQL语言的分类,能够划分为:DDL(数据定义语言)、DML(数据操纵语言)、DQL(数据查询语言)、DCL(数据控制语言)、TPL(事务处理语言)、CCL(指针控制语言),本文将介绍DQL。

1、单表查询

单表查询指的是所须要查询的数据都包含在一个表中,咱们只须要对一张表进行操做就能够完成查询,属于比较简单的查询。本文使用的测试数据表结构以下:动画

1. 语法结构

在进行查询时,须要用到的主要关键字包括:SELECT、FROM、WHERE。spa

  • SELECT:指定要查询的列,会直接影响结果表的列的个数.net

  • FROM:指定要查询的表3d

  • WHERE:[可选],在须要进行数据筛选时使用,用于引导查询条件指针

在使用表名和列名时,为了防止和关键字冲突,可使用反引号,语法结构以下:

SELECT `列名`,`列名`,... FROM `表名` WHERE 查询条件;

2. 全字段查询

全字段查询表明直接查询出表中全部的列,咱们能够直接用*号表明,会按照定义数据表时指定的字段顺序,顺次罗列出数据表的全部列,咱们也能够手动写出每一个列的名称来进行顺序的调整。

SELECT * FROM student;

3. 部分列查询

部分列查询指的是只须要显示表中的某几列,此时须要罗列出每一个列的名称,用逗号隔开,所声明的列的名称必须与表中已经定义的列名相同。

SELECT S_no,S_name,S_sex FROM Student;

4. 别称的使用

若是在进行数据查询时,咱们想要自定义结果表所显示的列名(表头),可使用AS关键字(多数状况下可省略)。同时,别称还能方便的代替表名或某些表达式(避免重复计算)。

SELECT S_no AS `学号`,S_name AS `姓名`,S_sex AS `性别` FROM Student;

2、简单筛选

若是说SELECT后面的字段个数影响了查询结果的列,那么数据筛选(或称条件查询)就会影响到查询结果的行,有不少不符合条件的数据会被过滤掉。在进行数据筛选时,会直接用某个列的列名来作为参照,该列下的每一个数据都会和给定的条件进行比较,若是知足就会被取出,在进行比较时必定要注意数据类型的匹配

1. 简单运算符

最简单的运算符其实就是和是否相等,是否大于或小于相关的符号:

  • 等于(=)

SELECT S_no AS `学号`,S_name AS `姓名`,S_sex AS `性别`
FROM Student
WHERE S_sex = '男';

  • 不等于(<>)

SELECT S_no AS `学号`,S_name AS `姓名`,S_sex AS `性别`
FROM Student
WHERE S_sex <> '男';

  • 大于

SELECT * FROM Choice
WHERE Score > 80;

  • 小于

SELECT * FROM Choice
WHERE Score > 80;

  • 小于等于

SELECT * FROM Course
WHERE Course_score <= 5;

  • 大于等于

SELECT * FROM Course
WHERE Course_score >= 3;

2. 范围查询

若是咱们须要查找的数据在某一个区间内,而且两边都是闭区间,这个时候可使用BETWEENxxx AND xxx。

SELECT * FROM Course
WHERE Course_score BETWEEN 5 AND 8;

3. 空值判断

在数据库中存在一个特殊的数据类型,用于标记未存入任何数据,用NULL表示。须要注意的是空字符串并不等同于NULL

  • IS NULL:为空判断

SELECT * FROM Choice
WHERE Score IS NULL;

  • IS NOT NULL:非空判断

SELECT * FROM Choice
WHERE Score IS NOT NULL;

4. 模糊查询

在有些时候咱们只模糊记得数据的部分信息,或在商城中须要作根据部分名称来查询商品的功能,这个时候据须要使用LIKE关键字。使用LIKE时,须要和通配符一同使用,常常与LIKE搭配的通配符以下:

  • %:任意个数的任意字符,包括0个字符

  • _:任意的单个字符

SELECT * FROM Teacher
WHERE T_name LIKE '王%';

SELECT * FROM Teacher
WHERE T_name LIKE '%一%';

5. 去重查询

在进行数据查询时,若是某一列存在重复的数据,而咱们只须要知道都有哪些数据出现过,这个时候就可使用去重,将重复的数据过滤掉。须要注意的是:去重查询至关因而一种查询模式,与具体的列无关。默认查询时,在SELECT关键字省略了ALL,意为全量数据查询模式,在使用DISTINCT时要紧跟SELECT关键字。

  • 查询单列

若是只查询一列的数据,获得的就是这一列去重后的结果:

SELECT DISTINCT Course_no
FROM Choice;

  • 查询多列

若是查询的列有多个,将会显示这两个列的惟一组合,也就是说若是单独看某一列数据,颇有可能会有重复数据,但这些列的数据的组合必定是惟一的。

SELECT DISTINCT Course_no,S_no
FROM Choice;

6. 多值匹配

若是想要表达某个值多是一组值中的一个,这样的逻辑,可使用关键字IN。在IN以后使用一对括号,其中罗列多个值,若是列中的数据在这些值中出现,则表明匹配。

SELECT S_no,Class_no,S_name,S_sex
FROM Student
WHERE Class_no IN ('js0001','js0002');

3、条件运算

1. AND

在WHERE中可使用AND链接两个条件,表明同时成立。

2. OR

在WHERE中可使用OR链接两个条件,表明成立其一即取出数据。

3. NOT

在WHERE中可使用NOT(条件)来表达反向的逻辑。

 

 

 

本文分享自微信公众号 - 微光点亮星辰(SandTower)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索