一、数据库测试表

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

链接: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. Pytorch项目基本结构

    梳理一下Pytorch项目的基本结构(其实TF的也差不多是这样,这种思路可以迁移到别的深度学习框架中) 结构树 -------checkpoints #存放训练完成的模型文件 ​ ----xxx.pk ...

  2. 玩转STM32MP157- 使用fbtft驱动 lcd st7735r

    什么是fbtft fbtft 在 github 中的介绍是" Linux Framebuffer drivers for small TFT LCD display modules,翻译过来 ...

  3. 什么是DDoS黑洞路由?

    1. 什么是DDoS黑洞路由? DDoS黑洞路由/过滤(有时称为黑孔)是缓解DDoS攻击的一种对策,网络流量将被路由到"黑洞"中并且丢失.如果在没有特定限制条件下实施黑洞过滤,合法 ...

  4. 乘风破浪,Windows11设计和开发指导,全新图标字体和云母材质

    Windows11全新的布局设计 Windows 11全新的布局设计已设计为支持现代应用体验.渐进的圆角.嵌套元素和一致的排水沟相结合,营造出柔和.平静.平易近人的效果,强调目的的统一和易用性. ht ...

  5. win10 共享文件夹设置无需用户名密码访问

    文件夹设置共享,添加Everyone 文件夹右键属性,选择共享,添加Everyone,添加后可设置读写权限. 权限添加Everyone,不然没有权限访问 设置安全策略 Win+R 打开运行,输入 se ...

  6. 01_JVM与Java体系结构

    JVM发展历程 Sun Classic VM Exact VM 为了解决上一个虚拟机问题,jdk1.2时,sun提供了此虚拟机. Exact Memory Management:准确式内存管理 SUN ...

  7. Java:代码高效优化

    本文转自阿里技术站,感谢阿里前辈提供的技术知识,微信关注 "阿里技术" 公众号即可实时学习. 1.常量&变量 1.1.直接赋值常量值,禁止声明新对象 直接赋值常量值,只是创 ...

  8. rosbag 初尝试

    overview ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件.它提供了硬件抽象.设备驱动.函数库.可视化工具. ...

  9. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 方阵旋转(代码填空)

    方阵旋转 对一个方阵转置,就是把原来的行号变列号,原来的列号变行号 例如,如下的方阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 转置后变为: 1 5 9 13 2 ...

  10. buu crackRTF

    一.无壳,拖入ida,静态编译一下 整体逻辑还是很清晰,这里我的盲区是那个加密函数,是md5,没看出来,内存地址看错了,之前用黑盒动调一下,发现猜不出来,看某位wp发现有的老哥,直接sha1爆破的,狠 ...