Mysql常见函数和用法(重点)

目录

where子句中经常使用的运算符

order by 子句排序查询结果 

合计 (count)

 统计函数(sum)

求平均值函数(avg) 

最大值(max)和最小值(min)

groupby子句对列进行分组

 字符串相关函数​编辑

数学相关函数 

时间日期相关函数 

加密和系统函数 

流程控制函数 

 自连接

合并查询

mysql 表外连接 


where子句中经常使用的运算符

-- 查询总分大于200分的所有同学

select * from student2 where (chinese+english+math)>200;

 -- 查询math大于60 并且(and)id大于4的学生成绩

select * from student2 where math>60 and id>4;

-- 查询英语成绩大于语文成绩的同学

select * from student2 where english > chinese;

--查询总分大于200分 并且 数学成绩小于语文成绩,的姓赵的学生.

-- 赵% 表示 名字以韩开头的就可以 

 select * from student2 where (chinese+english+math)>200 and math<chinese and name like '赵%';  

查询英语分数在 80-90之间的同学。

-- between .. and .. 是 闭区间

select * from student2 where english between 80 and 90 ; 

-- 查询数学分数为89,90,91的同学。

select * from student2 where math in (89,90,91); 

order by 子句排序查询结果 

 对数学成绩排序后输出(升序)

select * from student2 order by math;

对总分按从高到低的顺序输出 [降序]-- 使用别名排序

select `name`,(math+chinese+english) as total from student2 order by total  DESC;

合计 (count)

-- 统计数学成绩大于90的学生有多少个?


SELECT COUNT(*)  FROM student2  WHERE math>90


-- 统计总分大于250的人数有多少?


SELECT COUNT(*)  FROM student2 WHERE (math + english + chinese) > 250

-- count(*) 和 count(列) 的区别

-- 解释 :count(*) 返回满足条件的记录的行数

-- count(列): 统计满足条件的某列有多少个,但是会排除 为null的情况

 统计函数(sum)

-- 统计一个班级数学总成绩?

SELECT SUM(math)  FROM  student2;

-- 统计一个班级语文、英语、数学各科的总成绩

SELECT SUM(math) AS  math_total_score,SUM(english),SUM(chinese) FROM student2;

--统计一个班级语文、英语、数学的成绩总和

SELECT SUM(math+english+chinese) FROMs tudent2;

--统计一个班级语文成绩平均分

SELECT SUM(chinese)/COUNT(*) FROM student2; 

求平均值函数(avg) 

--求一个班级数学平均分?

SELECT AVG(math) FROM student2;

--求一个班级总分平均分

SELECT AVG(math+english+chinese) FROM student2;

最大值(max)和最小值(min)

--求班级最高分和最低分(数值范围在统计中特别有用)

SELECT MAX(math+english+chinese),MIN(math+english+chinese) FROM student2;

--求出班级数学最高分和最低分

SELECT MAX(math) AS math_high_socre,MIN(math) AS math_low_socre FROM student2; 

groupby子句对列进行分组

创建部门表

 /*部门表*/
 CREATE TABLE dept(
 deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
 dname VARCHAR(20) NOT NULL DEFAULT "",
 loc VARCHAR(13) NOT NULL DEFAULT "");

导入数据

INSERT INTO dept VALUES ( 10, 'ACCOUNTING', 'NEWYORK' ),( 20, 'RESEARCH', 'DALLAS' ),( 30, 'SALES', 'CHICAGO' ),
( 40, 'OPERATIONS', 'BOSTON' ); 

创建员工表

CREATE TABLE emp (

/*编号*/
    empno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
/*名字*/
    ename VARCHAR ( 20 ) NOT NULL DEFAULT "",
/*工作*/
    job VARCHAR ( 9 ) NOT NULL DEFAULT "",
/*上级编号*/
    mgr MEDIUMINT UNSIGNED,
/*入职时间*/
    hiredate DATE NOT NULL,
/*薪水*/
    sal DECIMAL ( 7, 2 ) NOT NULL,
/*红利 奖金*/
    comm DECIMAL ( 7, 2 ),

/*部门编号*/
deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0
); 

导入数据

INSERT INTO emp
VALUES
    ( 7369, 'SMITH', 'CLERK', 7902, '1990-12-17', 800.00, NULL, 20 ),
    ( 7499, 'ALLEN', 'SALESMAN', 7698, '1991-2-20', 1600.00, 300.00, 30 ),
    ( 7521, 'WARD', 'SALESMAN', 7698, '1991-2-22', 1250.00, 500.00, 30 ),
    ( 7566, 'JONES', 'MANAGER', 7839, '1991-4-2', 2975.00, NULL, 20 ),
    ( 7654, 'MARTIN', 'SALESMAN', 7698, '1991-9-28', 1250.00, 1400.00, 30 ),
    ( 7698, 'BLAKE', 'MANAGER', 7839, '1991-5-1', 2850.00, NULL, 30 ),
    ( 7782, 'CLARK', 'MANAGER', 7839, '1991-6-9', 2450.00, NULL, 10 ),
    ( 7788, 'SCOTT', 'ANALYST', 7566, '1997-4-19', 3000.00, NULL, 20 ),
    ( 7839, 'KING', 'PRESIDENT', NULL, '1991-11-17', 5000.00, NULL, 10 ),
    ( 7844, 'TURNER', 'SALESMAN', 7698, '1991-9-8', 1500.00, NULL, 30 ),
    ( 7900, 'JAMES', 'CLERK', 7698, '1991-12-3', 950.00, NULL, 30 ),
    ( 7902, 'FORD', 'ANALYST', 7566, '1991-12-3', 3000.00, NULL, 20 ),
    ( 7934, 'MILLER', 'CLERK', 7782, '1992-1-23', 1300.00, NULL, 10 );

#工资级别表

CREATE TABLE salgrade (

/*工资级别*/
    grade MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
/* 该级别的最低工资 */
    losal DECIMAL ( 17, 2 ) NOT NULL,
/* 该级别的最高工资*/
    hisal DECIMAL ( 17, 2 ) NOT NULL
)

  INSERT INTO salgrade VALUES (1,700,1200);
 INSERT INTO salgrade VALUES (2,1201,1400);
 INSERT INTO salgrade VALUES (3,1401,2000);
 INSERT INTO salgrade VALUES (4,2001,3000);
 INSERT INTO salgrade VALUES (5,3001,9999);

如何显示每个部门的平均工资和最高工

-- having 子句用于限制分组显示结果.

-- 分析:avg(sal) max(sal)

-- 按照部分来分组查询

SELECT AVG(sal), MAX(sal) , deptno FROM emp GROU PBY deptno;

-- 使用数学方法,对小数点进行处理 

 SELECT FORMAT(AVG(sal),2), MAX(sal) , deptno FROM emp GROUP BY deptno;  

显示每个部门的每种岗位的平均工资和最低工资

SELECT AVG(sal), deptno FROM emp GROUP BY deptno HAVINGAVG(sal) < 2000; 

 字符串相关函数

-- CHARSET(str) 返回字串字符集

SELECT CHARSET(ename)  FROM emp;

-- CONCAT(string2 [,... ]) 连接字串, 将多个列拼接成一列

SELECT CONCAT(ename, ' 工作是 ', job) FROM emp; 

 ......

数学相关函数 

时间日期相关函数 

 

加密和系统函数 

流程控制函数 

 自连接

合并查询

mysql 表外连接 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为ipv6 over ipv4 GRE隧道配置

思路&#xff1a; PC1访问PC2时&#xff0c;会先构造源ipv6为2001:1::2&#xff0c;目的IPV6为2001:2::2的ipv6报文&#xff0c;然后查看PC1的路由表&#xff0c;发送到R1&#xff0c;r1接收后&#xff0c;以目的IPV6地址2001:2::2查询IPV6路由表&#xff0c;出接口为tun0/0/0…

jQuery引入及下载方法

jQuery引入及下载方法 目录 jQuery引入及下载方法【方法1】cdn引入【方法2】下载本地文件 【方法1】cdn引入 直接在head引入jq <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title>&…

面试redis篇-13Redis为什么那么快

Redis是纯内存操作,执行速度非常快采用单线程,避免不必要的上下文切换可竞争条件,多线程还要考虑线程安全问题使用I/O多路复用模型,非阻塞IOI/O多路复用模型 Redis是纯内存操作,执行速度非常快,它的性能瓶颈是网络延迟而不是执行速度, I/O多路复用模型主要就是实现了高效…

消息中间件篇之Kafka-消息不丢失

一、 正常工作流程 生产者发送消息到kafka集群&#xff0c;然后由集群发送到消费者。 但是可能中途会出现消息的丢失。下面是解决方案。 二、 生产者发送消息到Brocker丢失 1. 设置异步发送 //同步发送RecordMetadata recordMetadata kafkaProducer.send(record).get();//异…

python Matplotlib Tkinter-->tab切换1

环境 python:python-3.12.0-amd64 包: matplotlib 3.8.2 pillow 10.1.0 import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk import tkinter as tk import tkinter.messagebox as messagebox import …

Unity发布webgl获取浏览器的URL

Unity发布webgl获取浏览器的URL Unity发布webgl之后获取浏览器的url 在unity中创建文件夹Plugins&#xff0c;然后添加添加文件UnityGetBrowserURL.jslib var GetUrlFunc {//获取地址栏的URLStringReturnValueFunction: function () {var returnStr window.top.location.hre…

软件无线电SDR加人工智能算法实现无人机频谱探测

通用软件无线电接收机作为传感器实时接收探测无线电信号&#xff0c;加上深度学习算法实现频谱识别&#xff0c;(https://img-blog.csdnimg.cn/5a6c4d89a047453a94f763f4e67aeb17.png)

折腾Chrome插件,让内容脚本与文本交互~

我们要用内容脚本&#xff08;content scripts&#xff09;来给插件装上一双慧眼&#xff0c;让它能在你浏览的页面上跳来跳去&#xff0c;和文字做游戏。这就像给插件喂了一颗智慧豆&#xff0c;让它变得聪明起来&#xff0c;能够直接和网页内容打招呼啦&#xff01; 在本章&…

学成在线_nacos配置_无法连接到nacos上的配置文件

问题 nacos配置完成后启动程序控制台提示无法连接到数据库 问题原因 无法连接到数据库实际上是没能成功找到nacos上的配置。因为自己的bootstrap文件的拓展名为.yml而不是.yaml。 解决方案 确保nacos上、配置文件中以及配置文件本身的拓展名都是yaml nacos, 如果不是重新创…

2024程序员容器化上云之旅-第2集-Ubuntu-WSL2-Windows11版:接近深洞

故事梗概 Java程序员马意浓在互联网公司维护老旧电商后台系统。 渴望学习新技术的他在工作中无缘Docker。 他开始自学Vue3并使用SpringBoot3完成了一个前后端分离的Web应用系统&#xff0c;并打算将其用Docker容器化后用K8s上云。 3 挑选工具 马意浓画好架构图后&#xff…

动态规划-最长公共子串(c)

动态规划 动态规划&#xff08;dynamic programming&#xff09;是一种算法设计方法。基本思想是在对一个问题的多阶段决策中&#xff0c;按照某一顺序&#xff0c;根据每一步所选决策的不同&#xff0c;会引起状态的转移&#xff0c;最后会在变化的状态中获取到一个决策序列。…

JAVA学习笔记11

1.标识符 1.1 标识符的命名规则和规范 1.1.1 标识符概念 ​ 1.Java对各种变量、方法和类等命名时使用的字符序列称为标识符 ​ 2.凡是自己可以起名字的地方都叫标识符 int num1 90。 1.1.2 标识符的命名规则&#xff08;必须遵守&#xff09; ​ 1.由26个英文字母、数字…

golang学习6,glang的web的restful接口传参

1.get传参 //get请求 返回json 接口传参r.GET("/getJson/:id", controller.GetUserInfo) 1.2.接收处理 package controllerimport "github.com/gin-gonic/gin"func GetUserInfo(c *gin.Context) {_ c.Param("id")ReturnSucess(c, 200, &quo…

redis八股

文章目录 数据类型字符串实现使用场景 List 列表实现使用场景 Hash 哈希实现使用场景 Set 集合实现使用场景 ZSet 有序集合实现使用场景 BitMap实现使用场景 Stream使用场景pubsub为什么不能作为消息队列 数据结构机制SDS 简单动态字符串压缩列表哈希表整数集合跳表quicklistli…

Vue3的8大生命周期

查看本专栏目录 关于作者 还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#x…

主从复制实现Redis集群

主从复制实现Redis集群实验 (一主二从): 实验环境: 使用Docker 搭建 Redis 版本 5.0.5 打开一个终端窗口&#xff0c;在其中运行如下命令创建一个名为redis-master的Redis容器。注意&#xff0c;它的端口是6379 (本地的端口:映射到容器的端口) docker run -itd--name redis-m…

Shopify使用元字段对产品和产品变体进行自定义配置

引言 在Shopify上运营电子商务店铺时&#xff0c;有时您可能需要对产品和产品变体进行自定义配置。这可以包括添加额外的属性、规格或其他自定义字段&#xff0c;以满足特定的业务需求。Shopify提供了元字段的功能&#xff0c;使您能够灵活地自定义产品和产品变体的配置。在本…

[Docker 教学] 常用的Docker 命令

Docker是一种流行的容器化技术。使用Docker可以将数据科学应用程序连同代码和所需的依赖关系打包成一个名为镜像的便携式工件。因此&#xff0c;Docker可以简化开发环境的复制&#xff0c;并使本地开发变得轻松。 以下是一些必备的Docker命令列表&#xff0c;这些命令将在你下一…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的动物识别系统(Python+PySide6界面+训练代码)

摘要&#xff1a;本博客文章深入解析了基于深度学习的动物识别系统的完整代码&#xff0c;并展示了采用领先的YOLOv8算法的实现代码。该系统与YOLOv7、YOLOv6、YOLOv5等早期版本的性能进行了比较&#xff0c;可以从静态图像到实时视频流的各种媒介中识别动物的高效性和准确性。…

html中的meta 元信息

html中的meta 元信息 1. 配置字符编码 <meta charset"utf-8">2. 针对 IE 浏览器的兼容性配置。 <meta http-equiv"X-UA-Compatible" content"IEedge">3. 针对移动端的配置 <meta name"viewport" content"widt…