MySQL数据库笔记(二)

第一章 单行函数

1.1 什么是函数

函数的作用是把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在SQL中使用函数,极大地提高了用户对数据库的管理效率。

1.2 定义

操作数据对象。

接受参数返回一个结果。

只对一行进行变换。

每行返回一个结果。

可以嵌套。

参数可以是一列或一个值。

1.3 函数分类

1.3.1 数值函数

1.3.2 角度与弧度互换函数

1.3.3 三角函数

1.3.4 指数与对数

1.3.5 进制间的转换

1.3.6 字符串函数

注意:字符串的位置是从1开始的。

1.3.7 日期和时间函数

获取日期、时间:

日期与时间戳:

获取月份、星期、星期数、天数等函数:

时间和秒钟转换的函数:

计算日期和时间的函数:

日期的格式化与解析:

1.3.8 流程控制函数

1.3.9 加密与解密

第二章 聚合函数

2.1 什么是聚合函数

聚合函数作用于一组数据,并对一组数据返回一个值。

2.2 聚合函数类型

AVG(),SUM(),MAX(),MIN(),COUNT()

聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用。

2.3 GROUP BY

SELECT column,group_function(column)
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY column];

2.4 GROUP BY中使用WITH ROLLUP

使用WITH ROLLUP关键字字后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量。

SELECT department_id,AVG(salary)
FROM employee
WHERE department_id>80
GROUP BY department_id WITH ROLLUP;

注意:当使用ROLLUP时,不能同时使用ORDER BY 子句进行结果排序,即ROLLUP和ORDER BY是互相排斥的。

2.4 HAVING

过滤分组:HAVING子句

1、行已经被分组

2、使用聚合函数

3、满足HAVING子句中条件的分组将被显示。

4、HAVING不能单独使用,必须要跟GROUP BY一起使用。

SELECT column,group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];

非法使用聚合函数:不能在WHERE子句中使用聚合函数。

 WHERE和HAVING的对比

区别1:WHERE可以直接使用表中的字段作为筛选条件,但不能使用分组中的计算函数作为筛选条件;HAVING必须要与GROUP BY配合使用,可以把分组计算的函数和分组字段作为筛选条件。

区别2:如果需要通过连接从关联表中获取需要的数据,WHERE是先筛选后连接,而HAVING是先连接后筛选。

2.5 SELECT的执行过程

2.5.1 查询结构

SELECT
FROM
WHERE 多表的连接条件
AND 不包含组函数的过滤条件
GROUP BY
HAVING 包含组函数的过滤条件
ORDER BY ASE/DESC
LIMIT
#其中:
#1、from:从哪些表中筛选
#2、where:从表中筛选的条件
#3、group by:分组依据
#4、having:在统计结果中再次筛选
#5、order by:排序
#6、limit:分页

2.5.2 SELECT执行顺序

1.关键字的顺序是不能颠倒的:

SELECT...FROM...WHERE...GROUP BY...HAVING...ORDER BY...LIMIT...

2.SELECT语句的执行顺序:

FROM->WHERE->GROUP BY->SELECT->ORDER BY->LIMIT

第三章 子查询

3.1 定义

子查询指一个查询语句嵌套在另一个查询语句内部的查询。

3.2 子查询基本使用

语法结构:

SELECT select_list
FROM table
WHERE expr operator(SELECT select_listFROM table);

子查询(内查询)在主查询之前一次执行完成。

子查询的结果被主查询(外查询)使用。

注意事项:

子查询要包含在括号内

将子查询放在比较条件的右侧

单行操作符对应单行子查询,多行操作符对应多行子查询

3.3 子查询的分类

单行子查询:

单行子查询操作符:

多行子查询:

多行子查询操作符࿱

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

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

相关文章

【React】AntD组件的使用--极客园--02.登录模块

基本结构搭建 实现步骤 在 Login/index.js 中创建登录页面基本结构在 Login 目录中创建 index.scss 文件,指定组件样式将 logo.png 和 login.png 拷贝到 assets 目录中 代码实现 pages/Login/index.js import ./index.scss import { Card, Form, Input, Button }…

pandas.frame输出parquet

代码 import pandas as pd import pyarrow._parquet as pqdata pd.read_parquet("0000.parquet") total_rows len(data) half_row_num total_rows//2 print(half_row_num) first_half data.iloc[:20000] second_half data.iloc[20000:20000] # print(first_hal…

Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)

目录 Nginx 开始 概述 安装(非 Docker) 配置环境变量 常用命令 配置文件概述 location 路径匹配方式 配置反向代理 实现效果 准备工作 具体配置 效果演示 配置负载均衡 实现效果 准备工作 具体配置 实现效果 其他负载均衡策略 配置动…

VUE3脚手架工具cli配置搭建及创建VUE工程

1、VUE的脚手架工具(CLI) 开发大型vue的时候,不能通过html编写一个大型的项目,这个时候需要用到vue的脚手架工具 通过vue的脚手架,可以快速的生成vue工程 1.1、安装nodejs和npm 【下载nodejs】 https://nodejs.org/en 【安装…

代码随想录算法训练营刷题复习8 :回溯算法——子集、排列、棋盘问题

回溯算法 子集问题 ①res,path; backtracking函数 ②无递归终止条件判断,直接path存入res; ③递归需要startIndex; ④(补充)“有重复元素、不能包含重复的解集” 在for循环多加判断条件:i>0 && used[i-1]false &…

IDEA快速入门06-插件

六、插件 6.1 IDEA插件介绍和管理 手动演示IDEA中怎么下载插件,管理插件等。 File -> Settings -> Plugins 6.2 Alibaba Java Coding Guidelines 6.2.1 实时检查 6.2.2 主动检查 选中【项目名称】或者【某一个具体类】,右键点击【编码规约扫…

本专栏代码部分使用到的head.h

本专栏代码部分使用到的head.h 存放路径在根目录下的 /usr/include/head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <s…

atcoder abc 358

A welcome to AtCoder Land 题目&#xff1a; 思路&#xff1a;字符串比较 代码&#xff1a; #include <bits/stdc.h>using namespace std;int main() {string a, b;cin >> a >> b;if(a "AtCoder" && b "Land") cout <&…

汽车OTA--Flash RWW属性为什么这么重要

目录 1. OTA与RWW 1.1 FOTA需求解读 1.2 什么是RWW 2.主流OTA方案 2.1 单Bank升级 2.2 基于硬件A\B SWAP的FOTA方案 2.3 基于软件实现的FOTA方案 3.小结 1. OTA与RWW 1.1 FOTA需求解读 CP AUTOSAR R19-11首次提出了FOTA的概念&#xff0c;针对FOTA Target ECU提出了多…

状态压缩DP——AcWing 291. 蒙德里安的梦想

状态压缩DP 定义 状态压缩DP是一种利用二进制数来表示状态的动态规划算法。它通过将状态压缩成一个整数&#xff0c;从而减少状态数量&#xff0c;提高算法效率。 运用情况 状态压缩DP通常用于解决具有状态转移和最优解性质的问题&#xff0c;例如组合优化、图论、游戏等问…

AI大眼萌探索 AI 新世界:Ollama 使用指南【1】

在人工智能的浪潮中&#xff0c;Ollama 的出现无疑为 Windows 用户带来了一场革命。这款工具平台以其开创性的功能&#xff0c;简化了 AI 模型的开发与应用&#xff0c;让每一位爱好者都能轻松驾驭 AI 的强大力量。大家好&#xff0c;我是AI大眼萌&#xff0c;今天我们将带大家…

GPT-4o一夜被赶超,Claude 3.5一夜封王|快手可灵大模型推出图生视频功能|“纯血”鸿蒙大战苹果AI|智谱AI“钱途”黯淡|月之暗面被曝进军美国

快手可灵大模型推出图生视频功能“纯血”鸿蒙大战苹果AI&#xff0c;华为成败在此一举大模型低价火拼间&#xff0c;智谱AI“钱途”黯淡手握新“王者”&#xff0c;腾讯又跟渠道干上了“美食荒漠”杭州&#xff0c;走出一个餐饮IPOGPT-4o一夜被赶超&#xff0c;Anthropic推出Cl…

力扣SQL50 查询结果的质量和占比 AVG(条件)

Problem: 1211. 查询结果的质量和占比 &#x1f468;‍&#x1f3eb; 参考题解 Code select query_name,round(avg(rating/position),2) as quality,round(100 * avg(rating < 3), 2) as poor_query_percentage from Queries group by query_name -- 到此结束过不了最后一…

PHP发送HTML邮件的步骤?设置模板的技巧?

PHP发送HTML邮件怎么设置模板&#xff1f;如何用PHP群发邮件&#xff1f; PHP提供了强大的功能来发送HTML格式的电子邮件&#xff0c;这在需要发送格式化内容的邮件时特别有用。AokSend将详细介绍PHP发送HTML邮件的步骤&#xff0c;涵盖了必要的准备工作和实际操作过程。 PHP…

MySQL操作语句练习【经典20题】

emp 表视图 dept 表视图 题目 1.请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。 2.请在EMP表中查找部门号在10&#xff0d;30之间的雇员的姓名、部门号、工资、工作。 3.请从表EMP中查找姓名以J开头所有雇员的姓名、工资、职位。 4.请从表EMP中查找工资低…

Selenium 获取请求响应

Python 3.7 selenium3.141.0 urllib31.26.2 Chromium 109.0.5405.0 &#xff08;32 位&#xff09; import json from selenium import webdriver from selenium.common.exceptions import WebDriverException import timeoptions webdriver.ChromeOptions() # 谷歌浏览器位置…

ffmpeg音视频开发从入门到精通——ffmpeg日志及目录操作

文章目录 FFMPEG1. 操作日志2. 文件移动和删除3. 操作目录重要函数 FFMPEG 1. 操作日志 日志级别 AV LOG ERROR AV LOG WARNING AV LOG INFO AV LOG DEBUG cmake_minimum_required(VERSION 3.27) project(FFmpeg_exercise) set(CMAKE_CXX_STANDARD 14)# 定义FFmpeg的安装路…

Java之Hutool/Guava/Apache Commons工具包项目实践

概述 Hutool是一个Java工具包,提供了丰富的工具类和方法,目的是简化开发任务提高开发效率;适用于需要快速开发和实现多种功能的场景,适合项目需要处理字符串、日期、文件等常见任务时~ toBeBetterJavaer/docs/common-tool/StringUtils.md at master itwanger/toBeBetterJavae…

转--Hadoop集群部署案例

模块简介 本模块主要练习Hadoop集群部署。 模块知识 ● 使用Linux基础命令 ● Hadoop集群搭建部署知识 环境准备 三台CentOS7操作系统的虚拟机 可以是3个Docker容器&#xff0c;也可以是三个VMWare/VirtualBox的虚拟机。三台虚拟机的最低配置为1核1G 20G。如果是虚拟机中…

pytorch把图片打成patches

我以图片shape[3,308,644]&#xff0c;kernel 16*16为例。 1 首先先pad一下图片保证能被kernel完整分开。 先pad图片 C,H,Wt_img.shape pad_h (16 - H % 16) % 16 pad_w (16 - W % 16) % 16t_img F.pad(t_img, (0, pad_w, 0, pad_h))变成了[3,320,656] 那么320//1620 ,…