数据库的基本查询(二)

目录

    • 一、简单查询
    • 二、高级查询
      • 2.1 分页
      • 2.3 结果集排序
      • 2.4 去重
    • 三、条件查询
      • 3.1 算术运算符
      • 3.2 比较运算符
      • 3.3 逻辑运算符
      • 3.4 按位运算符
      • 3.5 WHERE子句的注意事项

一、简单查询

# 查询t_emp表的所有字段
SELECT * FROM t_emp;# 查询t_emp表的指定字段
SELECT ename, empno FROM t_emp;# 为sal*12列名起一个名字叫incom
SELECT empno, sal*12 AS "incom" FROM t_emp;

执行顺序: 词法分析与优化->FROM->SELECT

二、高级查询

2.1 分页

看朋友圈,只会加载少量的部分的信息,不用一次性加载全部的朋友圈,那样会浪费CPU、时间,内存和网络带宽

如果结果集很多,则可以使用LIMIT关键字限定结果集的数量。

# 分页处理
# SELECT ... FROM ... LIMIT 起始位置,偏移量;
# 起始位置不写,默认是0
SELECT empno, ename FROM t_emp LIMIT 0, 5;

执行顺序: FROM->SELECT->LIMIT

2.3 结果集排序

# 查出来的结果排序, ORDER BY 字段名称,默认升序
SELECT empno, ename, sal, deptno FROM t_emp ORDER BY sal;
# 降序排列  DESC   升序:ASC
SELECT empno, ename, sal, deptno FROM t_emp ORDER BY sal DESC;

多字段排序:

# 当指定的排序字段一致时,默认再按照主键的升序排序
# 但是可以指定多关键字排序
SELECT empno, ename, sal, hiredate FROM t_emp ORDER BY sal DESC, hiredate ASC;

排序+分页

# 例子:查出公司工资前5的员工
SELECT empno, ename, sal FROM t_emp ORDER BY sal DESC LIMIT 0, 5;

执行顺序: FROM->SELECT->ORDER BY->LIMIT

2.4 去重

DISTINCT的使用: 结果集中的重复记录 ——>去除重复记录

  1. DISTINCT只能有一个字段,当查询有多个字段时,DISTINCT会失效
  2. DISTINCT关键字只能在SELECT子句中使用一次
  3. DISTINCT关键字必须加在第一关键字前面,也只能有一个关键字

例子: 想要看看员工一共有哪几种工作,这时要求不重复显示

SELECT DISTINCT job FROM t_emp;

三、条件查询

SELECT empno, ename, sal FROM t_emp WHERE (deptno=10 OR deptno=20) AND sal >= 2000;

例子:找出部门为10, 年收入(sal+comm)超过15000并且工龄超过20年的员工

SELECT empno, ename, sal, hiredate 
FROM t_emp
WHERE deptno=10 AND (sal + IFNULL(comm,0))*12>=15000 AND DATEDIFF(NOW(),hiredate)/365>=20;

注意:

  1. 任何值与NULL加减乘除之后依然时NULL

  2. IFNULL()函数,如果第一个参数为NULL,返回第二个参数

  3. DATEDIFF()两个日期参数,返回天数

  4. NOW()函数返回当前的日期和时间

3.1 算术运算符

+ - * / %

3.2 比较运算符

>, <, >=, <=, =, !=, IN

IN为包含

表达式意义例子
IS NULL为空comm IS NULL
IS NOT NULL不为空comm IS NOT NULL
BETWEEN AND范围sal BETWEEN 2000 AND 3000
LIKE模糊查询ename LIKE “A%”
REGEXP正则表达式ename REGEXP “[a-zA-Z]{4}”

注释: LIKE“A%” 指的是以A开头,“%A”表示以A结尾,“%A%”表示字段中包含A

# 在部门10,20,30中查找工作不是销售,入职日期在1985-01-10之前的
SELECT empno, ename, sal, deptno, hiredate
FROM t_emp
WHERE deptno IN(10, 20, 30) AND job != "SALESMAN" AND hiredate<"1985-01-10";

例子: 查找佣金不为空的员工,并且底薪是2000到3000,并且名字以A开头的员工

SELECT ename, comm, sal
FROM t_emp 
WHERE comm IS NOT NULL 
AND sal BETWEEN 2000 AND 3000 
AND ename LIKE "A%";

3.3 逻辑运算符

AND, OR, NOT, XOR `

例子: 查询不在10,20部门的员工

SELECT ename, deptno
FROM t_emp
WHERE NOT deptno IN(10, 20);

3.4 按位运算符

二进制运算

& | ~ ^ << >>

3.5 WHERE子句的注意事项

  1. WHERE子句中,条件执行的顺序是从左到右的。所以应该把索引条件,或者筛选掉最多的条件写在最左侧
  2. 条件优先级:索引条件、筛选掉最多的记录的条件、普通检索条件

执行顺序: FROM->WHERE->SELECT-> ORDER BY->LIMIT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌Bard:ChatGPT之外的第三选择

2023年年初&#xff0c;为了对应ChatGPT方面的压力&#xff0c;谷歌Bard仓促上线&#xff0c;此后便进入了低调前行。目前为止已经迭代了9个版本&#xff0c;也就是在近期的版本更新中支持了中文&#xff08;简体/繁体&#xff09;语言&#xff0c;对国内用户可以说又友好了一步…

RabbitMQ log 文件过大 解决方案

log文件地址 C:\Users\Administrator\AppData\Roaming\RabbitMQ\log\rabbitlocalhost.log log文件作用 rabbitlocalhost.log MQ启动、连接日志 rabbitlocalhost-sasl.log saal用来记录Erlang相关的信息&#xff0c;例如查看Erlang崩溃的报告 RabbitMQ官网Log相关介绍 Log…

物理层——数据通信基础知识

1.典型的数据通信模型 2.数据通信的相关术语 2.1 三种通讯方式 2.2 数据传输方式 2.3 常用编码方式&#xff08;数字信号&#xff09; 曼彻斯特编码 将一个码元分成两个相等的间隔&#xff1b; 前一个间隔为 低电平 &#xff0c;后一个间隔为 高电平 表示码元1&#xff1b; 码…

el-dialog 添加loading;avue-form 表单插槽

效果: 第一步&#xff1a;custom-class"publishDialog" 新起一个类名 <el-dialog title"发布配置" custom-class"publishDialog" :visible.sync"publishDialogVisible" width"800px" :append-to-body"true":b…

实现高效数据处理的利器:Java Stream API 的妙用与性能优化

Java作为一门强大的编程语言&#xff0c;提供了丰富的工具和库来处理数据。其中&#xff0c;Java Stream API&#xff08;流式API&#xff09;是一项强大而灵活的特性&#xff0c;它能够简化数据处理过程&#xff0c;并提供高效的性能。本文将深入探索Java Stream API的使用方法…

babel兼容低版本游览器

文章目录 1. webpack项目的搭建2. babel 命令行使用3. babel的预设与编译器流程4. babel项目中配置4.1 babel-loader与插件的使用4.2 babel-preset使用 5. 游览器兼容性使用5.1 browserslist工具与编写规则5.2 browserslist配置5.3 优化babel的配置文件 6. polyfill6.1 useBuil…

Flutter——最详细(NavigationRail)使用教程

NavigationRail 简介 一个 Material Design 小部件&#xff0c;旨在显示在应用程序的左侧或右侧&#xff0c;以便在少量视图&#xff08;通常在三到五个视图之间&#xff09;之间导航。 使用场景&#xff1a; 通过Row属性&#xff0c;左侧或右侧菜单栏按钮 属性作用onDestinati…

Halcon机器视觉-15种常用缺陷检测实例

一、Halcon 15种常用缺陷检测实例分享 缺陷检测是一种通过计算机视觉技术来检测产品制造过程中的缺陷的方法。该技术可以检测出产品表面的缺陷&#xff0c;如裂纹、凹陷、划痕、气泡等&#xff0c;并且可以实时监测和诊断制造过程中的问题。在制造业中&#xff0c;机器视觉缺陷…

GRE实验

题目参考&#xff1a; 实验步骤&#xff1a; 第一步&#xff1a;地址规划拓扑设计&#xff0c;配置IP地址 R1配置&#xff1a; <Huawei>system-view [Huawei]sy R1 [R1]int g 0/0/1 [R1-GigabitEthernet0/0/1]ip address 192.168.1.1 24 [R1-GigabitEthernet0/0/1]in…

智能电表数据采集器

智能电表数据采集器是一种用于采集智能电表数据的设备&#xff0c;它可以将智能电表的数据传输到远程服务器上&#xff0c;以便进行数据分析和监控。智能电表数据采集器的主要功能是采集智能电表的实时数据&#xff0c;并将其发送到远程服务器上&#xff0c;从而实现对智能电表…

拷贝class文件内容发生报错(二)

又粘到项目里几个文件&#xff0c;这回报错信息是&#xff1a; 16:29:34.892 [main] INFO org.ansj.util.MyStaticValue - init ambiguity to env value is : dict/ansj/ambiguity.dic 16:29:34.892 [main] INFO org.ansj.util.MyStaticValue - init synonyms to env valu…

【windows测试通过】关于Godot导入外部音频文件的问题

file.open(filepath, file.READ) var buffer file.get_buffer(file.get_len()) #put data into audiostreamsample var stream AudioStreamSample.new() stream.data buffer 代码给出&#xff0c;还没有测试过。(godot3.2测试未通过&#xff09; 在运行时轻松加载外部音频…

业务安全分析第19期 | 今年暑假,博物馆的门票为什么抢不到?

目录 “黄牛”&#xff1a;加价代预约、加价售票、兜售野导游套餐 “黄牛”倒票带来的危害 “黄牛”为什么能够抢到票 博物馆与“黄牛”的门票攻防 “黄牛”使用的作弊软件有什么特征 技术上防范“黄牛”的作弊软件抢票 遏制“黄牛”倒票给博物馆带来的收益 随着暑期参观…

rust版本更新错误记录:Os { code: 5, kind: PermissionDenied }

使用 rustup update 更新 rust 版本时遇到错误&#xff1a; info: cleaning up downloads & tmp directories thread ‘main’ panicked at ‘Unable to clean up C:\Users\GrapeX.rustup\tmp: Os { code: 5, kind: PermissionDenied, message: “拒绝访问。” }’, src\ut…

[nlp] GPT

一、联合训练任务 1.1 NTP(Next Token Prediction) gpt预训练的一个目标函数有两个,第一个是基础的下一个词预测任务,选择一个K窗口,将窗口中的K个词的embedding作为条件去预测下一个词。 1.2 TC(Text Classification) 第二个是一个分类任务,一段话给一个标签,然后去预…

js面试题

js相关面试题 1.js的数据类型及判断及如何强制转换基本数据类型存储区别数据类型的判断如何转化数据类型 2.说说变量提升3.数组的基本方法4.数组去重5.什么是尾递归6.数组扁平化7.12和1-2是什么8.清除字符串前后空格和去除所有空格1.去除字符串首尾的空格2.去除字符串中所有的空…

离线数据仓库

一、数据仓库 1.数据仓库的概念 1)数据仓库的特点: 面向主题的:对数据进行整合、分析和归类的抽象集成的:将不同数据源的数据(业务数据、外部系统数据、埋点日志)经过统一编码、规范命名、字段类型转换等操作,整合到仓库相对稳定的:根据业务场景实时更新、一般会被长…

VIM文本如何复制到系统剪切板?

今天从vim上用鼠标复制代码&#xff0c;发现把VIM当中的行号也复制进去了&#xff0c;就很麻烦&#xff0c;于是简单研究了下&#xff0c;如果vim支持clipboard的话就比较好办&#xff0c;具体支持与否&#xff0c;使用命令查看&#xff1a; vim --version | grep "clipb…

RabbitMQ必会的8个知识点

1.什么是RabbitMQ&#xff1f; RabbitMQ是一个开源的消息中间件&#xff0c;用于在不同应用程序之间传递和存储消息。它实现了AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议&#xff0c;提供了一个可靠的消息传递机制&#xff0c;支持诸如消息持久性、消…

startqueue(模拟实现及底层原理)

目录 容器适配器 STL标准库中stack和queue的底层结构 ​deque deque的原理 deque的缺陷 为什么选择deque作为stack和queue的底层默认容器 stack stack的介绍 stack的函数 stack的模拟实现 queue queue的介绍 queue的函数 queue的模拟实现 priority_queue prior…