SQL语句(一)基础查询与过滤数据
一、数据库测试表
首先这里给出需要使用到的数据库表:
链接: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 表名;
实际过程:
- 查询到对应的记录
- 映射到对应的字段
- 最终结果去重
例:
SELECT DISTINCT department_id
FROM employees;
7. CONCAT函数的简单使用
SELECT CONCAT( last_name, first_name ) AS 姓名
FROM employees;
实际过程:
- 到表中没有这个字段,然后为所有的记录添加这个新字段,内容为last_name字段和first_name字段的链接
- 查出相应的记录
- 将所有记录映射到姓名字段中
运行结果:
三、过滤数据
主要语法:
SELECT 查询列表
FROM 表名
WHERE 条件;
大纲
- 按条件表达式筛选:
- 简单条件运算符:
> < = != <> >= <=
- 简单条件运算符:
- 逻辑表达式:
&& || !
AND OR NOT
- 模糊查询:
LIKE
- 一般和通配符搭配使用
- 通配符:
%
任意多个字符,包含0个字符_
任意单个字符
BETWEEN AND
- 简洁
- 闭区间
- 不可调换顺序
IN
- 简洁
IN
列表的值类型必须统一或兼容
IS NULL
- 可用
IS NULL
和IS 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_PROG
、AD_VP
、AD_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语句(一)基础查询与过滤数据的更多相关文章
- sql语句复习(基础-提升-技巧-经典数据开发案例-sql server配置)
1 基础 1.说明:创建数据库 CREATE DATABASE database-name charset=utf8 2.说明:删除数据库 drop database dbname 3.说明:备份sq ...
- [转]在Excel中使用SQL语句实现精确查询
本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQ ...
- 使用SQL语句清空数据库所有表的数据
使用SQL语句清空数据库所有表的数据 近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进 ...
- 使用传入的总记录数实现一条sql语句完成分页查询
使用传入的总记录数实现一条sql语句完成分页查询 问题:在传统的分页查询的实现中不可避免的需要两条sql语句,一条用于查询数据一条用于查询总记录数.如下面的实际代码所示: Img1 当然如果使 ...
- mongodb 跟踪SQL语句及慢查询收集
有个需求:跟踪mongodb的SQL语句及慢查询收集 第一步:通过mongodb自带函数可以查看在一段时间内DML语句的运行次数. 在bin目录下面运行 ./mongostat -port 端口号 ...
- 【hibernate spring data jpa】执行了save()方法 sql语句也执行了,但是数据并未插入数据库中
执行了save()方法 sql语句也执行了,但是数据并未插入数据库中 解决方法: 是因为执行了save()方法,也执行了sql语句,但是因为使用的是 @Transactional 注解,不是手动去提 ...
- 在JDBC中实现SQL语句的模糊查询
在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...
- oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by
select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的 ...
- 使用SQL语句的子查询批量复制表数据
批量复制表数据这里有两种方法,下面分别来介绍这两种方法: 一.手动创建新表,然后复制数据 如果是要复制整个表的话,可以使用SQL SERVER自动生成CREATE脚本: 然后在脚本中改改表名就可以了, ...
随机推荐
- JS 使用try catch捕获异常
JS 使用try catch捕获异常 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 前端是攻克客户的先锋,需要特别注意到 ...
- win7旗舰版任务栏窗口不合并显示,鼠标移至窗口时可预览应用内容
1.鼠标移至任务栏--右键--属性: 2.选择"当任务栏被占满时合并"或"从不合并",第一个选项更优: 3.右键桌面"计算机"的" ...
- Linux中awk的用法
一.awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是lin ...
- 28、python3.7(windows)将ORACLE11gR2中的数据取出写入excel表
28.1.下载python的离线扩展模块: 1.windows下python的离线扩展模块下载地址为: https://www.lfd.uci.edu/~gohlke/pythonlibs/ 提示: ...
- 19、oracle的启动和关闭过程
19.1.oracle数据库实例的启动分三步: 1.启动oracle例程: startup nomount; #读初始化参数文件,启动实例,但不安装数据库.当数据库以这个模式启动时,参数文件被读取, ...
- centos 8 下解压.tar.gz文件
执行命令 tar 参数 文件名 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令: -t :查看 tarfile 里面的文件: 特别注意,在参数 ...
- 初探 Redis 客户端 Lettuce:真香!
一.Lettuce 是啥? 一次技术讨论会上,大家说起 Redis 的 Java 客户端哪家强,我第一时间毫不犹豫地喊出 "Jedis, YES!" "Jedis 可是官 ...
- Docker:虚拟机挂起后,再启动docker容器连接失败
问题描述 当我们使用VMware15 Pro 创建虚拟机并运行Linux搭建的Docker时,挂起虚拟机后再次运行发现访问Docker容器失败. 解决方式 我们正常的挂起其实是:挂起客户机,博主尝试 ...
- Rust 与 Golang - 何时使用它们?
[转自 Fizer Khan的<Rust Vs Golang - When to use them?>(翻译)] 在过去的十年中,Rust 和 Go 两种新的编程语言主要为企业开发而开发和 ...
- Django基础010--ORM操作
orm返回的数据有两种,QuerySet,object 1.QuerySet支持链式编程,可以在all()后面继续.方法 teachers = models.Teacher.objects.all() ...