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

查询语句

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

教师表包括(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,ageFROM studentWHERE name LIKE '李%';
2.某字段前模糊查询
# 查询名字以"郭"结尾的学生姓名SELECT name,age,genderFROM studentWHERE name LIKE '%郭';
3.包含某字符的模糊查询
# 查询名字中包含"江"的学生姓名SELECT name,age,genderFROM studentWHERE name LIKE '%江%';
_ 举例
1.一个_模糊匹配
# 查询名字第二个字是"苗"的学生信息SELECT name,age,genderFROM studentWHERE name LIKE '_苗%';
2. 多个_模糊匹配
#查询名字中第3个字是'杰'的学生信息SELECT name,age,genderFROM studentWHERE 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.mzph.cn/news/802240.shtml

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

相关文章

k8s_入门_命令详解

命令详解 kubectl是官方的CLI命令行工具&#xff0c;用于与 apiserver进行通信&#xff0c;将用户在命令行输入的命令&#xff0c;组织并转化为 apiserver能识别的信息&#xff0c;进而实现管理k8s各种资源的一种有效途径 1. 帮助 2. 查看版本信息 3. 查看资源对象等 查看No…

Linux应用开发(3):Linux时间操作(time、mktime、localtime等)

1. 简述 在Linux系统中&#xff0c;时间操作函数是编程中经常使用的一部分&#xff0c;它们允许程序获取和设置系统时间&#xff0c;以及对时间进行各种处理。以下是一些常用的时间操作函数的详细介绍。 2. 时间操作 &#xff08;1&#xff09;time(): 获取1970年1月1日以来的…

Docker使用报错信息dial unix /var/run/docker.sock: connect: permission denied

报错信息dial unix /var/run/docker.sock: connect: permission denied masterlocalhost:~$ docker ps Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/container…

爬虫入门教程(一)

爬虫入门教程 1.什么是爬虫 爬虫是一种自动获取网站数据的程序或脚本。它可以自动模拟人类访问网站,获取网页源代码,解析并提取出所需的数据。 爬虫的工作原理类似于搜索引擎的索引程序&#xff0c;它们会按照预定的规则和算法在互联网上不断地爬取网页&#xff0c;收集信息…

二维相位解包裹理论算法和软件【全文翻译-掩膜切割算法(4.4)】

4.4 掩膜切割算法 在上一节中,我们了解到质量引导路径跟踪算法可以解决一些相位解包问题,而在这些问题上,戈尔茨坦算法会因为分支切割的错位而失败。这是因为质量引导方法采用了更多的信息(质量图)来引导解包路径。在本节中,我们将这一想法与戈尔茨坦算法相结合,产生了…

k8s知识

k8s是用于容器编排和管理的&#xff0c;docker或者ctr是k8s的运行时&#xff0c;k8s通过容器运行时来启动容器&#xff0c;容器启动需要镜像&#xff0c;镜像可以用docker构建&#xff0c;dockerfile就是用于自定义如何构建镜像&#xff0c;所以上面那套流水线就是先用dockerfi…

iperf3使用记录

安装 大部分系统标配工具&#xff1a; yum install -y iperf3参数 常用的参数如下&#xff0c;其他参数请-h Server or Client:-p, --port # server port to listen on/connect to-f, --format [kmgtKMGT] format to report: Kbits, Mbits, Gbits, Tbits-i,…

【Android】java中如何判断设备是否在root状态

前言 客户需求&#xff0c;需要判断设备是否执在root状态。可以理解为是否执行了adb root 设置root状态&#xff0c;已经adb unroot设置unroot状态。 代码分析 分析adb deamon发现&#xff1a;在执行adb root 、adb unroot指令时&#xff0c;系统会更新service.adb.root 变量…

Linux|从 STDIN 读取 Awk 输入

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

即插即用篇 | YOLOv8引入Haar小波下采样 | 一种简单而有效的语义分割下采样模块

本改进已集成到 YOLOv8-Magic 框架。 下采样操作如最大池化或步幅卷积在卷积神经网络(CNNs)中被广泛应用,用于聚合局部特征、扩大感受野并减少计算负担。然而,对于语义分割任务,对局部邻域的特征进行池化可能导致重要的空间信息丢失,这有助于逐像素预测。为了解决这个问题…

mysql 查询变量@i:=@i+1

学习完mysql的查询&#xff1a;基本查询&#xff0c;连接查询和子查询和mysql 正则表达式查询&#xff0c;接下来先学习下变量查询。 mysql中没有oracle序列号那一列。mysql可以使用查询变量的方式去处理。我们先了解下查询变量&#xff0c;后面应用起来就更清晰。 1&#xff0…

vue在鼠标光标指定位置插入文字

1、html <el-button type"primary" click"addScriptParameters(item.name)">{{ item.name }}</el-button> 2、js const addScriptParameters (name) > { if (name) { const text parameter.value.$refs.textarea if (document.selection…

“弱智吧”才是人类面对AI的最后一道堡垒

在 AI 的研究领域中&#xff0c;语言模型的训练数据选择一直是一个关键问题。传统的智慧告诉我们&#xff0c;高质量的数据集应该是由专家精心挑选和校对的文本组成&#xff0c;以确保模型学习到的语言是规范、准确、有文化内涵的。 然而&#xff0c;最近的一项研究颠覆了这一观…

【Java】Java中类的初始化顺序(静态方法,静态块,非静态块,最后有流程图)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 在日常使用Java的时候&#xff0c;我们都接触过new这个关键字&#xff0c;那你是否知道在我们的对象真正创建出来之前都做了哪些事情呢&#xff1f; 实际上要去判断一个类的初始化的顺序&#xff0c;需要分一下情况&…

String 和 StringBuffer、StringBuilder 的区别是什么

不可变性&#xff1a; String类是不可变的&#xff0c;即一旦创建了String对象&#xff0c;就不能修改它的值。每次对String对象的操作都会创建一个新的String对象&#xff0c;导致内存开销较大。 StringBuffer和StringBuilder类是可变的&#xff0c;它们允许修改已有的字符串…

Bean的默认名称

1.使用spring的注解 Component、Repository、Service、Controller 等注解去把一个类配置为bean时&#xff0c;如果不指定bean的名称&#xff0c;那么bean的名称的默认规则是&#xff1a; ①类名的首字母小写&#xff0c;例如&#xff1a;类名称 UserDao &#xff0c;那么默认的…

hadoop中hdfs的fsimage文件与edits文件

hadoop中hdfs的fsimage文件与edits文件的作用 首先&#xff0c;我们抛出fsimage和edits文件的功能描述。 Fsimage文件: HDFS文件系统元数据的一个永久性的检查点&#xff0c;其中包含HDFS文件系统的 所有目录和文件inode的序列化信息。 Edits文件:存放HDFS文件系统的所有更…

C++笔记:STL容器库的使用

前置&#xff1a; 对于stl容器库&#xff0c;我只做了一些常用的笔记&#xff0c;关于更详细的使用可以参考:https://cppreference.com/https://cppreference.com/ 一.string--字符串 对于C中string字符串会比C语言的字符数组使用起来会顺手许多。 命名空间&#xff1a;std 关于…

二分最大值最小化-力扣-打家劫舍4

沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统&#xff0c;所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额 。 给你一个整数数…

蓝桥杯备考随手记: 二分查找

二分查找&#xff08;Binary Search&#xff09;是一种在有序数组中查找目标值的算法&#xff0c;也称为折半查找。它通过将目标值与数组的中间元素进行比较&#xff0c;来确定目标值在数组的哪一部分&#xff0c;然后将搜索范围缩小一半&#xff0c;再次比较&#xff0c;直到找…