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

news2024/9/29 23:26:19

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 表外连接 

 

 

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

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

相关文章

面试总结之JVM入门

文章目录 &#x1f412;个人主页&#x1f3c5;JavaEE系列专栏&#x1f4d6;前言&#xff1a;&#x1f380;你为什么要学习JVM&#xff1f;&#x1f380;JVM的作用 &#x1f380;JVM的构成&#xff08;5大类&#xff09;&#x1f3e8;1.类加载系统&#x1f415;类什么时候会被加…

《Docker 简易速速上手小册》第2章 容器和镜像(2024 最新版)

文章目录 2.1 理解 Docker 容器2.1.1 重点基础知识2.1.2 重点案例&#xff1a;使用 Docker 运行 Python 应用2.1.3 拓展案例 1&#xff1a;Docker 中的 Flask 应用2.1.4 拓展案例 2&#xff1a;Docker 容器中的数据分析 2.2 创建与管理 Docker 镜像2.2.1 重点基础知识2.2.2 重点…

k8s(5)

目录 使用Kubeadm安装k8s集群&#xff1a; 初始化操作&#xff1a; 每台主从节点&#xff1a; 升级内核&#xff1a; 所有节点安装docker &#xff1a; 所有节点安装kubeadm&#xff0c;kubelet和kubectl&#xff1a; 修改了 kubeadm-config.yaml&#xff0c;将其传输给…

网络攻防之网络扫描

目录 1、进行ping扫描 2、进行TCP SYN扫描 3、进行TCP全连接扫描 4、进行FIN扫描 5、进行UDP扫描 6、进行操作系统扫描 7、进行主机全面扫描 8、对网络号进行扫描 环境配置拓扑图&#xff1a; 实验前准备 查看kali和靶机的ip地址信息&#xff1a; 查看两台主机是否能互…

vue中循环多个li(表格)并获取对应的ref

有种场景是这样的 <ul><li v-for"(item,index) in data" :key"index" ref"???">{{item}}</li> </ul> //key值在项目中别直接用index&#xff0c;最好用id或其它关键值const data [1,2,3,4,5,6]我想要获取每一个循环并…

数据结构知识点总结-线性表(3)-双向链表定义、循环单链表、、循环双向链表、静态链表、顺序表与链表的比较

双向链表定义 单链表结点中只有一个指向其后继的指针&#xff0c;这使得单链表只能从头结点依次顺序地向后遍历。若要访问某个结点的前驱结点&#xff08;插入、删除操作时&#xff09;&#xff0c;只能从头开始遍历&#xff0c;访问后继结点的时间复杂度为 O(1) &#xff0c; …

详解java类型转换

✨✨ 所属专栏&#xff1a; Java基石&#xff1a;深入探索Java核心基础✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 引言 在Java编程中&#xff0c;类型转换是将一个数据类型的值转换为另一个数据类型的过程。Java中的类型转换主…

Django学习笔记-ModelForm使用(完全依赖)

1.创建模型 ,code,name,sex,entrydate 2.模型映射 python manage.py makemigrations myapp01,python manage.py migrate 3.创建模型表单,继承forms.ModelForm,Meta:元数据,models需引入,fields填写引用的模型变量 4.创建testModelForm.html,添加urls 5.views编写testmodelfo…

前端sql条件拼接js工具

因为项目原因&#xff0c;需要前端写sql&#xff0c;所以弄了一套sql条件拼接的js工具 ​ /*常量 LT : " < ", LE : " < ", GT : " > ", GE : " > ", NE : " ! ", EQ : " ", LIKE : " like &qu…

字典树入门

//本题是一道字典树的模板题 //字典树是一种高效率存储多个字符串的数据结构 //其每个结点的权值代表以该结点结尾的字符串的数量,每条边存储一个字符 //从根结点开始,按某一路径遍历到某一结点,即得到一种字符串,其个数等于当前结点存储的数值 //如从根结点开始,依次走过abc三…

【iOS ARKit】ARWorldMap

ARWorldMap 用于存储 ARSession 检测扫描到的空间信息数据&#xff0c;包括地标&#xff08;Landmark&#xff09;、特征点&#xff08;Feature Point&#xff09;、平面&#xff08;Plane&#xff09;等&#xff0c;以及使用者的操作信息&#xff0c;如使用者添加的 ARAnchor …

【Vue】组件通信组件通信

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;JVM ⛺️稳中求进&#xff0c;晒太阳 组件通信 组件通信&#xff0c;就是指组件与组件之间的数据传递 组件的数据是独立的&#xff0c;无法直接访问其他组件的数据想用其他组件的数据--&…

【深度学习】Pytorch教程(十三):PyTorch数据结构:5、张量的梯度计算:变量(Variable)、自动微分、计算图及其可视化

文章目录 一、前言二、实验环境三、PyTorch数据结构1、Tensor&#xff08;张量&#xff09;1. 维度&#xff08;Dimensions&#xff09;2. 数据类型&#xff08;Data Types&#xff09;3. GPU加速&#xff08;GPU Acceleration&#xff09; 2、张量的数学运算1. 向量运算2. 矩阵…

景联文科技:引领战场数据标注服务,赋能态势感知升级

自21世纪初&#xff0c;信息化战争使战场环境变得更为复杂和难以预测&#xff0c;持续涌入的海量、多样化、多来源和高维度数据&#xff0c;加大了指挥员的认知负担&#xff0c;使其需要具备更强的数据处理能力。 同时&#xff0c;计算机技术和人工智能技术的飞速发展&#xff…

EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成

EMQX Enterprise 5.5.0 版本已正式发布&#xff01; 在这个版本中&#xff0c;我们引入了一系列新的功能和改进&#xff0c;包括对 Elasticsearch 的集成、Apache IoTDB 和 OpenTSDB 数据集成优化、授权缓存支持排除主题等功能。此外&#xff0c;新版本还进行了多项改进以及 B…

Gemma谷歌(google)开源大模型微调实战(fintune gemma-2b)

Gemma-SFT Gemma-SFT(谷歌, Google), gemma-2b/gemma-7b微调(transformers)/LORA(peft)/推理 项目地址 https://github.com/yongzhuo/gemma-sft全部weights要用fp32/tf32, 使用fp16微调十几或几十的步数后大概率lossnan;(即便layer-norm是fp32也不行, LLaMA就没有这个问题, …

SpringBoot/Java中OCR实现,集成Tess4J实现图片文字识别

场景 Tesseract Tesseract是一个开源的光学字符识别&#xff08;OCR&#xff09;引擎&#xff0c;它可以将图像中的文字转换为计算机可读的文本。 支持多种语言和书面语言&#xff0c;并且可以在命令行中执行。它是一个流行的开源OCR工具&#xff0c;可以在许多不同的操作系…

【Vue3】插槽使用和animate使用

插槽使用 插槽slot匿名插槽具名插槽插槽作用域简写 动态插槽transition动画组件自定义过渡class类名如何使用animate动画库组件动画生命周期appear transition- group过渡列表 插槽slot 插槽就是子组件中提供给父组件使用的一个占位符父组件可以在这个占位符智能填充任何模板代…

pytest-配置项目不同环境URL

pytest自动化中&#xff0c;在不同环境进行测试&#xff0c;可以将项目中的url单独抽取出来&#xff0c;通过pytest.ini配置文件实现&#xff08;类似postman中的“Environments”&#xff09; 使用步骤&#xff1a; 1&#xff09;安装pytest-base-url插件 pytest-base-url …

【Flink精讲】Flink状态及Checkpoint调优

RocksDB大状态调优 RocksDB 是基于 LSM Tree 实现的&#xff08;类似 HBase&#xff09; &#xff0c;写数据都是先缓存到内存中&#xff0c; 所以 RocksDB 的写请求效率比较高。 RocksDB 使用内存结合磁盘的方式来存储数据&#xff0c;每 次获取数据时&#xff0c;先从内存中 …