一、数据库测试表

首先这里给出需要使用到的数据库表:

链接:https://pan.baidu.com/s/17woahG6lupK9FYb3vFNJAg

提取码:gbb4

里面是一个.sql文件,直接运行即可得到如下几个测试表:

二、基础查询

1. 获得需要的记录的特定字段

语法:SELECT后加上需要的结果映射到的字段,若为*则为选取所有字段。

#单个字段查询
SELECT last_name
FROM employees;

#多个字段
SELECT last_name, salary, email
FROM employees;

#所有字段
SELECT *
FROM employees;

2. 查询常量值

#查询常量值
SELECT 100;
SELECT "john";

3. 查询表达式

例:

SELECT 	100%98;

4. 查询函数

例:

SELECT 	VERSION();

5. 起别名

为查询结果的列起一个新的名字,语法:

SELECT 	表中的列名 AS 自己起的新名字
FROM 表名;

或者省略AS

SELECT 	表中的列名 自己起的新名字
FROM 表名;

例:

SELECT 	last_name AS 姓, first_name AS 名
FROM employees; SELECT last_name 姓, first_name 名
FROM employees;

6. 去重

SELECT 	DISTINCT 字段名
FROM 表名;

实际过程:

  1. 查询到对应的记录
  2. 映射到对应的字段
  3. 最终结果去重

例:

SELECT 	DISTINCT department_id
FROM employees;

7. CONCAT函数的简单使用

SELECT 	CONCAT( last_name, first_name ) AS 姓名
FROM employees;

实际过程:

  1. 到表中没有这个字段,然后为所有的记录添加这个新字段,内容为last_name字段和first_name字段的链接
  2. 查出相应的记录
  3. 将所有记录映射到姓名字段中

运行结果:

三、过滤数据

主要语法:

SELECT	查询列表
FROM 表名
WHERE 条件;

大纲

  • 按条件表达式筛选:

    • 简单条件运算符: > < = != <> >= <=
  • 逻辑表达式:
    • && || !
    • AND OR NOT
  • 模糊查询:
    • LIKE

      • 一般和通配符搭配使用
      • 通配符:
        • % 任意多个字符,包含0个字符
        • _ 任意单个字符
    • BETWEEN AND
      • 简洁
      • 闭区间
      • 不可调换顺序
    • IN
      • 简洁
      • IN列表的值类型必须统一或兼容
    • IS NULL
      • 可用IS NULLIS NOT NULL来判断是否为空

1. 按条件表达式筛选

查询工资>12000的员工信息

SELECT 	*
FROM employees
WHERE salary > 12000;

查询部门编号不等于90号的员工名和部门编号

SELECT 	last_name, department_id
FROM employees
WHERE department_id <> 90
ORDER BY department_id; #排序

2. 使用逻辑表达式

查询工资在10000~20000之间的员工的员工名,工资及奖金

SELECT  last_name, salary, commission_pct
FROM employees
WHERE salary>=10000 AND salary<=20000;

部门编号不在90到110之间,或者工资高于15000的员工信息:

SELECT 	*
FROM employees
WHERE department_id<90
OR department_id>110
OR salary>15000

SELECT  *
FROM employees
WHERE NOT(department_id>=90 AND department_id<=110)
OR salary>15000

3. 模糊查询

LIKE

员工名中包含字符a的员工信息:

SELECT 	last_name
FROM employees
WHERE last_name LIKE '%a%';



员工名中第三个字符为n,第五个字符为t的员工名和工资:

SELECT 	last_name, salary
FROM employees
WHERE last_name LIKE '__n_t%';



员工名中第二个字符为_的员工名:

SELECT 	last_name
FROM employees
WHERE last_name LIKE '_$_%' ESCAPE '$';# 转义

BETWEEN AND

员工编号在100到120之间的员工信息

SELECT 	*
FROM employees
WHERE employee_id >= 100 AND employee_id <= 120;
#================使用BETWEEN AND================
SELECT *
FROM employees
WHERE employee_id BETWEEN 100 AND 120;

IN

查询员工的工种编号是IT_PROGAD_VPAD_PRES中的一个的员工名和工种编号

SELECT 	last_name, job_id
FROM employees
WHERE job_id IN ('IT_PROG','AD_VP','AD_PRES');

IS NULL

查询没有奖金的员工名和奖金律

SELECT 	last_name, commission_pct
FROM employees
WHERE commission_pct IS NULL;

查询有奖金的员工名和奖金律

SELECT 	last_name, commission_pct
FROM employees
WHERE commission_pct IS NOT NULL;

安全等于 <=>

SELECT 	last_name, commission_pct
FROM employees
WHERE commission_pct <=> NULL;

SQL语句(一)基础查询与过滤数据的更多相关文章

  1. sql语句复习(基础-提升-技巧-经典数据开发案例-sql server配置)

    1 基础 1.说明:创建数据库 CREATE DATABASE database-name charset=utf8 2.说明:删除数据库 drop database dbname 3.说明:备份sq ...

  2. [转]在Excel中使用SQL语句实现精确查询

    本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQ ...

  3. 使用SQL语句清空数据库所有表的数据

    使用SQL语句清空数据库所有表的数据 近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进 ...

  4. 使用传入的总记录数实现一条sql语句完成分页查询

    使用传入的总记录数实现一条sql语句完成分页查询     问题:在传统的分页查询的实现中不可避免的需要两条sql语句,一条用于查询数据一条用于查询总记录数.如下面的实际代码所示: Img1 当然如果使 ...

  5. mongodb 跟踪SQL语句及慢查询收集

    有个需求:跟踪mongodb的SQL语句及慢查询收集 第一步:通过mongodb自带函数可以查看在一段时间内DML语句的运行次数. 在bin目录下面运行  ./mongostat -port 端口号  ...

  6. 【hibernate spring data jpa】执行了save()方法 sql语句也执行了,但是数据并未插入数据库中

    执行了save()方法  sql语句也执行了,但是数据并未插入数据库中 解决方法: 是因为执行了save()方法,也执行了sql语句,但是因为使用的是 @Transactional 注解,不是手动去提 ...

  7. 在JDBC中实现SQL语句的模糊查询

    在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...

  8. oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by

    select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的 ...

  9. 使用SQL语句的子查询批量复制表数据

    批量复制表数据这里有两种方法,下面分别来介绍这两种方法: 一.手动创建新表,然后复制数据 如果是要复制整个表的话,可以使用SQL SERVER自动生成CREATE脚本: 然后在脚本中改改表名就可以了, ...

随机推荐

  1. 百炼3752:走迷宫--栈实现dfs

    3752:走迷宫 总时间限制:  1000ms 内存限制:  65536kB 描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走.给定一个迷宫,求从左上角走到右下角最 ...

  2. Vue(10)表单输入绑定v-model

    v-model v-model指定可以实现表单值与属性的双向绑定.即表单元素中更改了值会自动的更新属性中的值,属性中的值更新了会自动更新表单中的值 绑定的属性和事件 v-model在内部为不同的输入元 ...

  3. 为了提高开发效率,我实现了 uTools 的超级面板

    前言 为了进一步提高开发工作效率,最近我们基于 electron 开发了一款媲美 uTools 的开源工具箱 rubick.该工具箱不仅仅开源,最重要的是可以使用 uTools 生态内所有开源插件!这 ...

  4. 基于HSI和局部同态滤波的彩色图像增强

    简介 在图像采集过程中,由于光照环境或物体表面反光等原因会造成图像光照不均 .图像的光照不均会直接影响图像分析的结果.因此,对光照不均图像进行增强,消除光照的影响是光照不均图像处理中不可缺少的环节 . ...

  5. 35、mysql数据库(ddl)

    35.1.数据库之库操作: 1.创建数据库(在磁盘上创建一个对应的文件夹): create database [if not exists] db_name [character set xxx]; ...

  6. Vue | 路由守卫面试常考

    前言 最近在整理基础,欢迎掘友们一起交流学习 结尾有彩蛋哦! Vue Router 路由守卫 导图目录 路由守卫分类 全局路由守卫 单个路由守卫 组件路由守卫 路由守卫执行的完整过程 路由守卫分类 全 ...

  7. Flask(10)- 标准类视图

    前言 前面文章讲解 Flask 路由的时候,都是将 URL 路径和一个视图函数关联 当 Flask 框架接收到请求后,会根据请求 URL,调用响应的视图函数进行处理 Flask 不仅提供了视图函数来处 ...

  8. ARTS第七周

    补上.瞎忙,看来还是效率的问题. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享 ...

  9. java基础---泛型机制

    从java5 开始增加泛型机制,用于明确集合中可以放入的元素类型,只在编译时期有效,运行时不区分是什么类型. 格式:<数据类型> 泛型的本质是参数化类型,让数据类型作为参数传递,E相当于形 ...

  10. 全面了解Nginx到底能做什么

    最近做项目需要动静分离,便用nginx的反向代理来实现.后来看到一篇好文,记录下. 来自https://www.jianshu.com/p/8bf73d1a758c 前言 本文只针对Nginx在不加载 ...