当前位置: 首页 > news >正文

(1-7-3)数据库的基本查询

目录

1. 数据库的基本查询

1.1 简单的记录查询

1.2 使用列别名

2.  数据分页查询

(1)查询前五行数据

(2)查询 11 ~  15 行数据

3. 结果集排序

3.1 单关键字排序

(1)升序排列

(2)降序排列

(3)按照名字降序排列

3.2 多关键字排序

(1)按照 薪资降序 + 入职日期升序  查询

(2)部门升序 + 薪资降序 查询

3.3 排序 + 分页

(1)薪资 默认升序排列 1 ~ 5 行数据

4. 去除重复记录

4.1 去除 job 的相同行数据

4.2 去除 job与其他关键字联合 的相同行数据

5. 条件查询

(1)查询部门编号为20  且薪资大于1500 的员工信息

(2)查询部门编号为20 或 30, 且薪资大于 1300 的员工信息

(3)查询部门编号为 10 或 30,且年收入大于17000, 且工龄超过20年

(4)查询部门编号为 10、20、30, 且 工作不是(salesman 或 president),且入职年月早于“1995-01-01”

(5) 查询奖金(comm)为空 的员工信息(带小节)

(6)查询奖金(comm)不为空 的员工信息

(7)查询奖金(comm)不为空 薪资在1500与2500之前 的员工信息

(8) 查询奖金(comm)不为空 且薪资在1500与3000之前 姓名中包含A 的员工信息

(9)查询姓名为“__RD”的员工

(10)通过正则表达式查询  长度为2~4个字的汉字字符

(11) 逻辑运算符

(12)查询 员工编号不为10、20 的员工信息

(13)查询 (员工编号不为10、20) 异或 (薪资大于1800) 的员工信息 

(14) 按位运算符

(15) where 子句的注意事项

6. 各种子句的执行顺序


前置知识总结:


示例数据库文件:

通过网盘分享的文件:demo.sql
链接: https://pan.baidu.com/s/1iUKSMScC1PXtbOFFaKm-vQ 提取码: i5hb 复制这段内容后打开百度网盘手机App,操作更方便哦




1. 数据库的基本查询

1.1 简单的记录查询

select * from t_emp;

select empno, ename, sal, deptno from t_emp;

1.2 使用列别名

select empno, ename, sal*14 as "year-income" from t_emp;

2.  数据分页查询

(1)查询前五行数据

方式一:

# 查询 1 ~ 5 行数据
select empno, ename, sal, deptno from t_emp limit 0,5;

 方式二:

# 查询 1 ~ 5 行数据
select empno, ename, sal, deptno from t_emp limit 5;

(2)查询 11 ~  15 行数据

# 查询 11 ~ 15 行数据
select empno, ename, sal, deptno from t_emp limit 10,5;

3. 结果集排序

3.1 单关键字排序

(1)升序排列

select empno, ename, sal from t_emp order by sal;select empno, ename, sal from t_emp order by sal asc;
(2)降序排列

# 按照薪资 降序排列
select empno, ename, sal from t_emp order by sal desc;
(3)按照名字降序排列

3.2 多关键字排序

(1)按照 薪资降序 + 入职日期升序  查询

# 按照 薪资降序 + 入职日期升序  查询
select empno, ename, sal, hiredate 
from t_emp 
order by sal desc, hiredate asc;
(2)部门升序 + 薪资降序 查询

# 按照 部门升序 + 薪资降序 查询
select empno, ename, sal, deptno
from t_emp 
order by deptno asc, sal desc;

3.3 排序 + 分页

(1)薪资 默认升序排列 1 ~ 5 行数据

# 按照薪资 默认升序排列 1 ~ 5 行数据
select empno, ename, sal from t_emp order by sal limit 5;

4. 去除重复记录

4.1 去除 job 的相同行数据

select job from t_emp;
# 去除 job 的相同行数据
select distinct job from t_emp;

4.2 去除 job与其他关键字联合 的相同行数据

select job, sal from t_emp;
# 去除 job与其他关键字联合 的相同行数据
select distinct job, sal from t_emp;

5. 条件查询

(1)查询部门编号为20  且薪资大于1500 的员工信息

# 查询部门编号为20  且薪资大于1500 的员工信息
select empno, ename, sal, job from t_emp
where deptno = 20 and sal >= 1500;

(2)查询部门编号为20 或 30, 且薪资大于 1300 的员工信息

# 查询部门编号为20 或 30, 且薪资大于 1300 的员工信息
select empno, ename, sal, jobfrom t_emp 
where (deptno = 20 or deptno = 30) and sal >= 1300;

(3)查询部门编号为 10 或 30,且年收入大于17000, 且工龄超过20年

# 查询部门编号为 10 或 30,且年收入大于17000, 且工龄超过20年
select empno, ename, sal, jobfrom t_emp 
where (deptno = 10 or deptno = 30) 
and (sal + ifnull(comm, 0)) * 12 >= 17000
and datediff(now(), hiredate)/365 >= 20;

(4)查询部门编号为 10、20、30, 且 工作不是(salesman 或 president),且入职年月早于“1995-01-01”

# 查询部门编号为 10、20、30, 且 工作不是(salesman 或 president),且入职年月早于“1995-01-01”
select *from t_emp
where deptno in(10, 20, 30) 
and (job != "SALESMAN" and job != "PRESIDENT" )
and hiredate < "1982-01-01";

(5) 查询奖金(comm)为空 的员工信息(带小节)

# 查询奖金(comm)为空 的员工信息
select *from t_emp 
where comm is null;

(6)查询奖金(comm)不为空 的员工信息

# 查询奖金(comm)不为空 的员工信息
select *from t_emp 
where comm is not null;

(7)查询奖金(comm)不为空 薪资在1500与2500之前 的员工信息

# 查询奖金(comm)不为空 薪资在1500与2500之前 的员工信息
select *from t_emp 
where comm is not null
and sal between 1500 and 2500;

(8) 查询奖金(comm)不为空 且薪资在1500与3000之前 姓名中包含A 的员工信息

# 查询奖金(comm)不为空 且薪资在1500与3000之前 姓名中包含A 的员工信息
select *from t_emp 
where comm is not null
and sal between 1500 and 3000
and ename like "%A%";

(9)查询姓名为“__RD”的员工

# 查询姓名为“__RD”的员工
select *from t_emp 
where ename like "__RD"

(10)通过正则表达式查询  长度为2~4个字的汉字字符

# 通过正则表达式查询  长度为2~4个字的汉字字符
select *from t_emp 
where ename 
regexp "^[\\u4e00-\\u9fa5]{2,4}$";

(11) 逻辑运算符

(12)查询 员工编号不为10、20 的员工信息

# 查询 员工编号不为10、20 的员工信息
select *
from t_emp 
where not deptno in(10, 20);

(13)查询 (员工编号不为10、20) 异或 (薪资大于1800) 的员工信息 

# 查询 (员工编号不为10、20) 异或 (薪资大于1800) 的员工信息  
select empno, ename, deptno, sal
from t_emp
where not deptno in(10, 20) 
xor sal >= 1800;
(14) 按位运算符

14.1 3&7

14.2 3|7

14.3 ~10

14.4 3^7

14.5  10 << 1

15.6 10>>1

(15) where 子句的注意事项

6. 各种子句的执行顺序

http://www.dtcms.com/a/278415.html

相关文章:

  • 【React Native】Switch、Alert、Dimensions、StatusBar、Image组件
  • 打破数据孤岛!医疗数据如何实现“可用不可见”?
  • OpenVela之开发自测试框架cmocka
  • 深入解析ThreadLocal:线程隔离的奥秘与内存泄漏解决方案
  • HarmonyOS从入门到精通:动画设计与实现之九 - 实用动画案例详解(上)
  • Linux操作系统从入门到实战(八)详细讲解编译器gcc/g++编译步骤与动静态库链接
  • C语言:20250714笔记
  • 更改elementui 图标 css content
  • Docker搭建Redis分片集群
  • kotlin学习笔记
  • Kubernetes Ingress:实现HTTPHTTPS流量管理
  • HarmonyOS应用无响应(AppFreeze)深度解析:从检测原理到问题定位
  • Spring Boot 双数据源配置
  • 基于Python的物联网岗位爬取与可视化系统的设计与实现【海量数据、全网岗位可换】
  • java基础(day07)
  • java基础-1 : 运算符
  • 如何连接 AWS RDS 数据库实例
  • Spark 和 Hadoop MapReduce 的基本概念及区别
  • 2D和3D激光slam的点云去运动畸变
  • autoware激光雷达和相机标定
  • 0-1搭建springboot+vue的教务管理系统(核心源码)
  • 第一次接触自动化监测,需要付费厂家安装服务吗?比人工测量主要区别是啥?
  • 使用 pytest 测试框架构建自动化测试套件之一
  • 各种开发语言主要语法对比
  • Linux:1_Linux下基本指令
  • 【数据结构】基于顺序表的通讯录实现
  • c#进阶之数据结构(动态数组篇)----Queue
  • 基于R语言的极值统计学及其在相关领域中的实践技术应用
  • Android ---【CPU优化】需要优化的原因及优化的地方
  • [Nagios Core] 通知系统 | 事件代理 | NEB模块,事件,回调