一、数据库测试表

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

链接: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. 手写Spring,定义标记类型Aware接口,实现感知容器对象

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 同事写的代码,我竟丝毫看不懂! 大佬的代码,就像 "赖蛤蟆泡青蛙,张的丑玩 ...

  2. js笔记14

    1.作用域面试题 画图分析 2.DOM document object model 节点树状图 document>documentElement>body>tagname 3.我们常 ...

  3. kube-controller-manager源码分析-PV controller分析

    kubernetes ceph-csi分析目录导航 概述 kube-controller-manager组件中,有两个controller与存储相关,分别是PV controller与AD contr ...

  4. 测试开发:推荐一款阿里最新 Python 自动化开源工具!

    大家好,我是麦小米,是狂师老师全栈测开训练营中的一名学员. 如果之前做过iOS自动化的同学相信都知道,一直以来,iOS自动化的实现&执行都必须依赖 Mac 系统,其主要原因是因为需要通过 xc ...

  5. 第2章:Kubernetes核心概念

    Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S. Kubernetes用于容器化应用程序的部署,扩展和管理,目标是让部署容器化应用简单高效. ...

  6. 解决List遍历删除元素提示ConcurrentModificationException

    JDK1.8提供新的API  ===>  removeIf public static void main(String[] args) { List<String> list = ...

  7. 精尽Spring Boot源码分析 - 配置加载

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  8. Java核心基础第3篇-Java流程控制

    Java流程控制 本章一起来探讨下Java的流程控制语句.主要从以下几个方面展开: Java分支语句 Java循环语句 Java其实和其他任何的开发语言一样,分支语句和循环语句是必不可少的,有个这两个 ...

  9. mysql中的条件语句case when/if函数

    主要知识点为case函数,if函数,ifnull函数,elt函数几部分,主要用于mysql语句中的逻辑判断 待操作的表如下: p.p1 { margin: 0; font: 16px Menlo; c ...

  10. vsftpd配置 (转)

      # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a b ...