数据库(mysql)-基本查询语句(DQL)

news2024/12/27 13:58:02

查询语句

这边查询是给予一定表格,这边先做个解释

教师表包括(name(姓名),gender(性别),salary(工资),title(职位),subject_id(课程的编号),comm(奖金))

学生表包括(姓名(name),gender(性别),job(职位),生日(birth))

模版

SELECT 字段名 FROM 查询表 WHERE 查询语句

或与非

AND 查询语句条件必须同时满足才能返回true,      满足true就返回查询相应的值

OR 查询语句条件只要满足其一就返回true,            满足true就返回查询相应的值

NOT 与查询条件相反就返回true,                             满足true就返回查询相应的值

 实例

#查看工资高于5000的女老师都有谁?
SELECT name,age,gender,salary
FROM teacher
WHERE salary>5000 AND gender='女'; 

#查看工资高于5000的男老师或所有女老师的工资?
SELECT name,gender,salary
FROM teacher
WHERE salary>5000 AND gender='男'
OR gender='女';
6.查看工资在4000到8000以外的老师及具体工资?
SELECT name,salary
FROM teacher
WHERE salary NOT BETWEEN 4000 AND 8000;

需要注意是或与且具有优先级,AND级别比OR级别高,会优先执行AND的代码

用于在一个范围内筛选值(一般数字范围,含头含尾)

BETWEEN  最小值 AND 最大值 

实例 

#查看工资在4000到8000以外的老师及具体工资?
SELECT name,salary
FROM teacher
WHERE salary NOT BETWEEN 4000 AND 8000;

指定多个可能的值来过滤结果集

IN(value1,value2,...) 多个值有,分割

#查看一级讲师和二级讲师的奖金(comm)是多少?
SELECT name,comm
FROM teacher
WHERE title IN ('一级讲师','二级讲师');

用于从结果集中删除重复的行

SELECT  DINSTINCT 字段名 FROM 查询表名

#查看所有女老师的职称都是什么?
SELECT DISTINCT title
FROM teacher
WHERE gender='女';

模糊查询

LIKE 关键字 ,用于在 WHERE 子句中搜索列中的指定模式

通配符

 % :匹配0,1个 多个字符

_  :  匹配单一字符

#举例
1.某字段后模糊查询
# 查询名字姓"李"的学生姓名
  SELECT name,gender,age
  FROM student
  WHERE name LIKE '李%';
2.某字段前模糊查询
# 查询名字以"郭"结尾的学生姓名
  SELECT name,age,gender
  FROM student
  WHERE name LIKE '%郭';
3.包含某字符的模糊查询
# 查询名字中包含"江"的学生姓名
  SELECT name,age,gender
  FROM student
  WHERE name LIKE '%江%';
_ 举例
1.一个_模糊匹配
# 查询名字第二个字是"苗"的学生信息
  SELECT name,age,gender
  FROM student
  WHERE name LIKE '_苗%';
2. 多个_模糊匹配
#查询名字中第3个字是'杰'的学生信息
  SELECT name,age,gender
  FROM student
  WHERE name LIKE '__杰%' ; 

NULL值判断

区别  NULL是一种状态 不是数值 和 java中定义的不一样

IS  是一个比较操作符,它主要用于与NULL 值进行比较

因为标准的比较操作符(如 =<> 等)不能用于 NULL 值,所以需要使用 IS或 IS NOT 来检查 NULL 值

实例

1.查询某字段状态为null
#查询奖金为null的老师
SELECT name, comm FROM teacher WHERE comm IS NULL;
2.查询某字段状态不为为null
#查询奖金为null的老师
SELECT name, comm FROM teacher WHERE comm IS NOT NULL;

 排序

 ORDER BY  用于对查询结果集中的记录进行排序,默认升序

 实例

1.升序
#查看老师的奖金排名,奖金由少到多(默认升序)
SELECT name, comm FROM teacher ORDER BY comm ASC(可写可不写);
2.降序
#查看老师的奖金排名,奖金由少到多(默认升序)
SELECT name, comm FROM teacher ORDER BY comm DESC(必须写);

 这边用学生表举例

特殊情况 日期排列 (远小近大) 是以现在时间为判断基准

#查看学生的生日,按照远小近大的升序(年龄由大到小)
SELECT name,birth From student ORDER BY birth ;
#查看学生的生日,按照远小近大的升序(年龄由小到大)
SELECT name,birth From student ORDER BY birth DESC;

 多字段排序

ORDER BY 字段名1,字段名2...  

优先结果集以第一个字段排序,当第一个字段有重复的值就以第二个字段排序,依次类推

当一个字段排序没有重复的值,不会用第二个字段排序

 实例

#查看老师的奖金和工资 首先按照奖金升序,再以工资降序
SELECT comm,salary From teacher ORDER BY comm,salary DESC;

注意的是null是状态,它可能是无限大或者无限小,这边是无限小 

 分页

运用了大量数据,电商产品

分页是查询的方言,不同数据库sql写法不同

这边以mariadb和mysql举例

SELECT 字段名

FROM 查询表格

WHERE 查询语句

ORDER BY 字段

LIMIT M,N 用于分页查询 

M:跳过结果集中多少条记录

N:从跳过的记录后开始检索出多少条记录

 实例

#查询老师奖金前5名
M :(1-1)*5 这边指的是跳过条目 这边要看前5名,不需要跳过
N:5 显示条目
SELECT name,salary FROM teacher ORDER BY salary DESC LIMIT 0,5;
#查询老师奖金6-10名
M :(2-1)*5=5 这边指的是跳过条目 这边要跳过前5名,5/5是一页,在原本第2页要现在放置到第一页
N:5
SELECT name,salary FROM teacher ORDER BY salary DESC LIMIT 5,5;
#查询老师奖金10-15名
M : 跳过9条,
N: 6  15-10+1=6
SELECT name,salary FROM teacher ORDER BY salary DESC LIMIT 9,6;
#查询老师奖金信息 按照降序排,每页显示3条,显示5页
M:(5-1)*3=12; 这边指的是页数
N:5
SELECT name ,comm FROM teacher ORDER BY comm DESC LIMIT 12,3;

使用表达式 

#查看老师的年薪和月薪
SELECT name ,salary,salary*12 FROM teacher;
#薪资没有空值null

 空值函数

IFNULL(arg1,arg2) 如果arg1不为null,返回arg1,否则返回arg2

#NULL值是状态不能进行计算,这边使用IFNULL,当comm为null替换成0
#查看老师的奖金和薪资的总和
SELECT name, salary,comm ,salary+IFNULL(comm,0) FROM teacher;
#查看老师的奖金和全年的奖金
SELECT name, salary,comm ,IFNULL(comm,0)*12 FROM teacher;

 别名

字段名 AS '别名' 

实例都行 

#字段别名(不写 AS)
SELECT name,salary,salary*12 annusal FROM teacher;
#字段别名(别名单引号)
SELECT name,salary,salary*12 'annusal' FROM teacher;
#字段别名(别名单引号加AS)
SELECT name,salary,salary*12 AS 'annusal' FROM teacher;
#字段别名(别名双引号加AS)
SELECT name,salary,salary*12 "annusal" FROM teacher;
#字段别名(别名双引号加AS)
SELECT name,salary,salary*12 AS "annusal" FROM teacher;

 运行图

 特殊情况 

数据库有关键字或者别名中有空格: 必须加单引号或者写双引号

//这边必须写单引号或者双引号
SELECT name,salary,salary*12 AS "annusal unlock" FROM teacher;
//这边必须写单引号或者双引号
SELECT name,salary,salary*12 AS "FORM" FROM teacher;
不写报语法结构错误

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

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

相关文章

Linux|从 STDIN 读取 Awk 输入

简介 在之前关于 Awk 工具的系列文章中&#xff0c;主要探讨了如何从文件中读取数据。但如果你希望从标准输入&#xff08;STDIN&#xff09;中读取数据&#xff0c;又该如何操作呢&#xff1f; 在本文中&#xff0c;将介绍几个示例&#xff0c;展示如何使用 Awk 来过滤其他命令…

Go语言实战:掌握html/template包的高效开发技巧

Go语言实战&#xff1a;掌握html/template包的高效开发技巧 引言Go标准库html包概览html包的基本用途html/template包的核心功能开始使用html/template应用场景 安全的HTML内容处理防范XSS攻击使用示例内容安全策略&#xff08;CSP&#xff09;小结 操作HTML元素创建和解析HTML…

java数据结构与算法刷题-----LeetCode628. 三个数的最大乘积

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 排序选择线性搜索最值 排序 解题思路&#xff1a;时间复杂度O( …

简介有向无环图DAG

Sui创纪录的每秒交易量部分归功于数学构造&#xff0c;即有向无环图&#xff08;Directed Acyclic Graph&#xff0c;DAG&#xff09;&#xff0c;该构造通过以最高效的方式处理交易来加速网络交易&#xff0c;而不是按照先来先服务的线性进展。 区块链是设计用于确保数据完整…

APx500音频分析仪硬件简介

两通道模拟输出&#xff0c;两通道或以上的模拟输入接口 线性编码数字音频接口&#xff08;AES/EBU,TOSLINK,SPDIF&#xff09;Linear PCM 脉冲密度调制码流&#xff08;需要APx-PDM选件支持&#xff09; Bluetooth蓝牙音频码流&#xff08;需APx-BT选件支持&#xff09; 最…

基于Android的记单词App系统的设计与实现

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

js 求出对应年月的开始日期和结束日期

实现效果&#xff1a; 背景&#xff1a; element日期时间选择组件&#xff0c;通过时间选择年-月&#xff0c;求出对应年月的开始日期和结束日期。 核心代码&#xff1a; /*** 返回给定年份和月份的起始和结束日期。* 202403 -> 2024-03-01 2024-03-31* param {number} y…

11-新热文章-实时计算

热点文章-实时计算 1 今日内容 1.1 定时计算与实时计算 1.2 今日内容 kafkaStream 什么是流式计算 kafkaStream概述 kafkaStream入门案例 Springboot集成kafkaStream 实时计算 用户行为发送消息 kafkaStream聚合处理消息 更新文章行为数量 替换热点文章数据 2 实时…

Linux下解决Java输出文件,中文变问号和中文乱码问题

# 启用 zh_CN.UTF-8 字体 echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen # 生成并安装 locale 数据 locale-gen # 更新当前 shell 环境 source /etc/default/locale 相当于以下操作&#xff1a; # Debian sudo apt install locales sudo dpkg-reconfigur…

基于SSM+Jsp+Mysql的超市管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

【第二十四篇】使用Burpsuite实现反射、储存、DOM型XSS(靶场实战案例)

目录 反射性XSS储存型XSSDOM XSS反射性XSS 搜索1后,审查元素: 猜测<font>标签中没有进行XSS特殊字符转义,而在<font>标签内,可使用<script>标签: <script>alert(1)</script>储存型XSS 该模块对姓名、电子邮件、网站做过滤处理,但评论处…

Few-Shot目标检测数据集 | Few-Shot目标检测数据集_已经整理成MS-COCO数据格式_含60000+张图_可直接用于目标检测算法训练

项目应用场景 面向 Few-Shot 目标检测场景&#xff0c;项目提供 6000 张图&#xff0c;已经整理成 MS-COCO 数据格式&#xff0c;可用于 Few-Shot 目标检测的训练数据集&#xff0c;或作为 Few-Shot 目标检测数据集的补充。 数据集展示 数据集下载 > 具体参见项目 README.m…

【算法详解】二分查找

1. 二分查找算法介绍 「二分查找算法&#xff08;Binary Search Algorithm&#xff09;」&#xff1a;也叫做 「折半查找算法」、「对数查找算法」。是一种在有序数组中查找某一特定元素的搜索算法。 基本算法思想&#xff1a;先确定待查找元素所在的区间范围&#xff0c;在逐步…

SSM党员管理系统

一、系统介绍 党员管理系统: 可以方便管理人员对党员管理系统的管理&#xff0c;提高信息管理工作效率及查询效率&#xff0c;有利于更好的为用户提供服务。 主要的模块包括&#xff1a; 1、后台功能&#xff1a; 管理员角色&#xff1a;首页、个人中心&#xff0c;党员管理…

MySQL高级(索引结构B + Tree)

以一颗最大度数&#xff08;max - degree&#xff09;为 4 &#xff08;4阶&#xff09;的 b tree 为例&#xff1a; 绿色框框起来的部分&#xff0c;是索引部分&#xff0c;仅仅起到索引数据的作用&#xff0c;不存储数据。红色框框起来的部分&#xff0c;是数据存储部分&…

PostgreSQL入门到实战-第七弹

PostgreSQL入门到实战 PostgreSQL查询语句(四)官网地址PostgreSQL概述PostgreSQL中DISTINCT 语句介绍PostgreSQL中DISTINCT 语句实操更新计划 PostgreSQL查询语句(四) 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https:…

【运输层】TCP 的可靠传输是如何实现的?

目录 1、发送和接收窗口&#xff08;滑动窗口&#xff09; &#xff08;1&#xff09;滑动窗口的工作流程 &#xff08;2&#xff09;滑动窗口和缓存的关系 &#xff08;3&#xff09;滑动窗口的注意事项 2、如何选择超时重传时间 &#xff08;1&#xff09;加权平均往返…

React面试

React渲染流程(重点) jsx描述界面 jsx babel render function>vdom vdom fiber 在进行渲染 vdom 转换fiber reconcile 转换过程创建dom commit 到domvdom React Element 对象, 只记录了子节点, 没有记录兄弟节点, 因为渲染不可中断 fiber fiberNode 对象, 是一个链表 父节…

lua学习笔记13(一些特殊用法的学习和三目运算符的实现)

print("*****************************一些特殊用法的学习*******************************") print("*****************************多变量赋值*******************************") local a,b,c114514,8848,"凌少" print(a) print(b) print(c) -…

C#操作MySQL从入门到精通(7)——对查询数据进行简单过滤

前言 我们在查询数据库中数据的时候,有时候需要剔除一些我们不想要的数据,这时候就需要对数据进行过滤,比如学生信息中,我只需要年龄等于18的,类似这种操作,本文就是详细介绍如何对查询的数据进行初步的过滤。 1、等于操作符 本次查询student_age 等于20的数据,使用我…