MySQL常用命令和函数的讲解以及表之间的联结

Mysql的中一些语句的用法:

有表:

CREATE TABLE `book`  (`id` int(20) NOT NULL,`book_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '书名',`press` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '出版社',`book_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '书籍类型',`time` datetime NULL DEFAULT NULL COMMENT '时间',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO `book` VALUES (1, '西游记', '国家图书馆出版社', '中国文学', '2020-09-18 10:24:20');
INSERT INTO `book` VALUES (2, '西游记', '人民教育出版社', '中国文学', '2020-09-18 10:24:20');
INSERT INTO `book` VALUES (3, '西游记', '北京大学出版社', '中国文学', '2020-09-18 10:24:20');
INSERT INTO `book` VALUES (4, '第四世界', '国家图书馆出版社', '哲学类', '2020-11-30 17:22:53');
INSERT INTO `book` VALUES (5, '第五世界', '人民教育出版社', '科幻', '2020-11-30 17:25:34');
INSERT INTO `book` VALUES (7, '第7世界', '北京出版社', '科幻', '2020-11-30 17:47:11');
INSERT INTO `book` VALUES (9, '第9世界', '人民教育出版社', '科幻', '2020-11-30 17:50:56');
INSERT INTO `book` VALUES (10, '唐诗三百首', '北京出版社', '文化教育', '2020-09-18 10:24:20');
INSERT INTO `book` VALUES (11, '灵魂只能独行', '江苏教育出版社', '哲学类', '2020-09-18 10:24:20');
INSERT INTO `book` VALUES (12, '神雕侠侣', '江苏教育出版社', '小说', '2020-09-18 10:24:20');
INSERT INTO `book` VALUES (13, 'old-book', '人民教育出版社', '哲学类', '2020-09-18 10:24:20');
INSERT INTO `book` VALUES (14, '三国演义', '国家图书馆出版社', '中国文学', '2020-12-04 15:31:47');SET FOREIGN_KEY_CHECKS = 1;

在这里插入图片描述

一、有关LIMIT的用法:

  • limit使用一个参数:表示返回前3行数据
select * from book limit 3;

在这里插入图片描述

  • limit使用两个参数:第一个参数表示从第几行开始查,第二个参数表示取第几个条数据
LIMIT的下标是从0开始的:
limit 1 offset 1;--跳过一条数据,获取第一条数据
limit 1,1;--从第一行开始查,查一条数据
SELECT * FROM book LIMIT 1 OFFSET 1;

在这里插入图片描述

二、有关count的用法:

  1. count(*),count(1):相当于统计表的行数,不会忽略列值为null的记录。
select count(*from book;
select count(1from book;

在这里插入图片描述

  1. count(column_name):返回指定列的列数,会忽略列值为NULL的记录(不包括空字符串和0)
select count(boook_name) from table_name ;

在这里插入图片描述

  1. count(distinct column_name):会对这列的数据去重后再统计数目
select count(distinct column_name) from table_name ;

在这里插入图片描述

三、order by 的用法:

  1. ORDER BY 关键字可以使查询返回的「结果集」按照指定的列进行排序,可以按照某「一列」排序或者同时按照「多列」进行排序,排序的顺序可以是「升序ASC」或者「降序DESC」。
select * from book order by id;--升序排

在这里插入图片描述

select * from book order by id desc;--降序排

在这里插入图片描述

  1. 当ORDER BY 后有两列时,先根据第一列进行排序,当第一列相同时,再根据第二列排序:
SELECT * FROM book ORDER BY book_name,press

在这里插入图片描述

四、group by的用法:

  • group by 关键字可以根据一个或多个字段对查询结果进行分组
  • group by 一般都会结合Mysql聚合函数来使用
  • 在 Group By 中指定的列可以是表达式或函数,但在 Select 子句中必须使用别名来引用这些列。
  • 如果需要指定条件来过滤分组后的结果集,需要结合 having 关键字;原因:where不能与聚合函数联合使用 并且 where 是在 group by 之前执行的
  1. Group By 是一种 SQL 查询语句,常用于根据一个或多个列对查询结果进行分组。在 Group By 子句中指定的列将成为分组依据,而在 Select 子句中指定的列必须是聚合函数(例如 SUM、AVG、COUNT 等)或分组列。
SELECT COUNT(1) num,book_type FROM book GROUP BY book_type

在这里插入图片描述

  1. 结合group by 结合 having使用:
  • Having 子句中的条件是基于聚合函数计算的结果进行过滤的。
  • 如果在 Select 子句中没有使用聚合函数,则必须在 Group By 子句中包含该列。
  • 如果条件中只涉及到一个聚合函数,可以使用 WHERE 子句代替 Having 子句。
SELECT COUNT(1) num,book_type FROM book GROUP BY book_type HAVING num >1

在这里插入图片描述

  1. 经常结合group by 使用的聚合函数
AVG(col)--返回指定列的平均值
COUNT(col)--返回指定列中非NULL值的个数
MIN(col)--返回指定列的最小值
MAX(col)--返回指定列的最大值
SUM(col)--返回指定列的所有值之和
GROUP_CONCAT(col) --返回由属于一组的列值连接组合而成的结果

五、表之间的联结(inner join、left join、right join…)

  • Inner join…on…:即内连接,同时将两表作为参考对象,根据ON后给出的两表的条件将两表连接起来。结果则是两表同时满足ON后的条件的部分才会列出。
    在这里插入图片描述

  • Left join…on…:即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。
    在这里插入图片描述

  • Right join…on….:即右连接,是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。
    在这里插入图片描述

  • unionunion all:

    • 使用UNION必须有两条或者两条以上的SELECT语句组成,语句之间用UNION关键字分割
    • 使用UNION关联的每个子查询必须包含相同的检索列、表达式或这聚集函数(次序可以不一样)
    • 列数据类型必须兼容;类型不必完全相同,但必须是DBMS可以隐含转换的类型(不同的数值类型或者不同的日期类型)
    • UNION几乎总是完成与多个WHERE条件相同的工作,UNION ALL是UNION的一种形式,它完成WHERE子句完成不了的工作,因为他将返回每个条件的匹配行(包括重复行)
    • 使用组合查询,当需要对结果进行排序是,只能指定一条Order By语句,这条语句只能放在最后一天SELECT语句的后面
    • UNION会对结果进行去重 UNION ALL 将子查询的结果全部合并
      在这里插入图片描述
--好友申请:谁有最多的朋友
select ids id,count(1) num from
(select requester_id as ids from RequestAccepted
union all
select accepter_id from RequestAccepted
) a1
group by ids 
order by num desc
limit 1

六、Mysql常用函数

不同数据库的函数往往各不相同,因此不可移植。本节主要以 MySQL 的函数为例。

1. 文本处理

函数说明
LEFT()、RIGHT()左边或者右边的字符
LOWER()、UPPER()转换为小写或者大写
LTRIM()、RTRIM()去除左边或者右边的空格
LENGTH()长度,以字节为单位
SOUNDEX()转换为语音值

其中, SOUNDEX() 可以将一个字符串转换为描述其语音表示的字母数字模式。

SELECT *
FROM mytable
WHERE SOUNDEX(col1) = SOUNDEX('apple')

2. 日期和时间处理

  • 日期格式:YYYY-MM-DD
  • 时间格式:HH:MM:SS
函 数说 明
AddDate()增加一个日期(天、周等)
AddTime()增加一个时间(时、分等)
CurDate()返回当前日期
CurTime()返回当前时间
Date()返回日期时间的日期部分
DateDiff()计算两个日期之差
Date_Add()高度灵活的日期运算函数
Date_Format()返回一个格式化的日期或时间串
Day()返回一个日期的天数部分
DayOfWeek()对于一个日期,返回对应的星期几
Hour()返回一个时间的小时部分
Minute()返回一个时间的分钟部分
Month()返回一个日期的月份部分
Now()返回当前日期和时间
Second()返回一个时间的秒部分
Time()返回一个日期时间的时间部分
Year()返回一个日期的年份部分

3. 数值处理

函数说明
SIN()正弦
COS()余弦
TAN()正切
ABS()绝对值
SQRT()平方根
MOD()余数
EXP()指数
PI()圆周率
RAND()随机数

4. 汇总

函 数说 明
AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列值之和
AVG()会忽略 NULL 行。

使用 DISTINCT 可以让汇总函数值汇总不同的值。

SELECT AVG(DISTINCT col1) AS avg_col
FROM mytable

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

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

相关文章

pymavlink 解析自定义mavlink消息。

1.下载mavlink_master包,用于将xml 文件生成对应的py文件。地址是 https://codeload.github.com/mavlink/mavlink/zip/refs/heads/master 进入目录运行python .\mavgenerate.py 呈现gui程序 2.根据发送端的消息定义格式修改接收解析段的pymavlink有关库。 可修改……

基于大数据的手机销售数据分析可视化系统,爬取京东和淘宝的的手机商品数据进行分析,Flask,Python,数据可视化

介绍 该系统主要是通过爬取京东和淘宝的的手机商品数据进行分析。爬虫python脚本通过打开浏览器授权登录后按照搜索“手机”关键字后出现的商品列表进行爬取,获取标题名,解析付款人数,品牌,评论人数,发货地&#xff0…

算法学习——LeetCode力扣补充篇14(179. 最大数、43. 字符串相乘、32. 最长有效括号、543. 二叉树的直径、113. 路径总和 II)

算法学习——LeetCode力扣补充篇14 179. 最大数 179. 最大数 - 力扣(LeetCode) 描述 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大&…

吴恩达2022机器学习专项课程(一) 第二周课程实验:特征缩放和学习率(多元)(Lab_03)

备注:笔者只对个人认为的重点代码做笔记,其它详细内容请参考吴恩达老师实验里的笔记。 1.多元特征的训练集 调用load_house_data()函数,将训练集数据保存到数组中。 X,y分别存储所有训练样本的前四列,所有训练样本的…

python中的列表、元组、字典、集合(集合篇)

数据类型定义符号访问元素是否可变是否重复是否有序列表 [ ]索引可变可重复有序元组()索引不可变可重复有序字典{key:value}键可变可重复无序集合{ }可变不可重复无序 基本概念 python语言中的集合是无序的、可变的容器类对象,所…

4.16作业

1.总结keil5下载代码和编译代码需要注意的事项 一、在编译代码时需要先点击魔术棒点击 修改flash Downlond 和pack 二、可以通过F12转跳到对应的函数中,查看函数的原型 三、注释出现乱码通过 Edit中的中的来修改 四、要先bulid在load 2.总结STM32Cubemx的使用方…

NLP学习(1)-搭建环境

前言 仅记录学习笔记,如有错误欢迎指正。 环境搭建 一、环境软件安装: 1、Anaconda安装(一款可以同时创建和管理多个python环境的软件) (1) 安装链接: https://blog.csdn.net/m0_61531676/article/details/126290…

【python】描述性统计计算偏斜度和峭度

文章目录 1.编写计算偏斜度和峭度的函数。并用自己编写的函数计算课本23页的习题1.5数据的偏斜度和峭度。2.从1.5数据中随机抽取2个容量为20的样本,分别计算它们的平均数和标准差3.请绘制给定数据的频率分布直方图,计算数据的均值、标准差、偏斜度和峭度…

Ribbon 添加右侧区域菜单项

效果图如下所示: 类似与上图效果所示,代码如下: RibbonPage* pageHome1 ribbonBar()->addPage(tr("Home")); //实现代码: { QMenu* menuOptions ribbonBar()->addMenu(tr("Options"))…

古籍数字化平台:精校功能介绍

一、平台介绍 古籍数字化平台,本着公益性、低成本、合作共赢的三大原则,功能涵盖古籍OCR识别、族谱县志OCR识别、民国报纸OCR识别、图文逐字校对、数据著录、智能标点分段、精编排版、智能白话译文等,是一站式线上整理全流程平台。 平台集成…

C语言 【基础语法】

一、编程环境搭建 编译器:gcc 集成开发环境:vscode 1.1 安装vscode 1.2 设置中文包 插件 1.3 设置C/C扩展 安装 C/C Compile Run extension 和 C/C Extension Pack 扩展 二、基础语法 2.1 第一个c语言程序 2.2 数据类型 2.2.1 变量的语法(重点) …

漏洞及漏洞管理

01 漏洞基础 原则上,漏洞是指系统或网络中的一个脆弱点,其可能会被网络犯罪分子利用,以获得未经 授权的访问,从而造成破坏。漏洞利用之后会发生什么呢,谁也说不准——安装恶意软件、 窃取敏感数据、利用恶意代码造成…

【QT进阶】Qt Web混合编程之QWebEngineView基本用法

往期回顾 【QT入门】Qt自定义控件与样式设计之自定义QTabWidget实现tab在左,文本水平的效果-CSDN博客【QT进阶】Qt Web混合编程之CEF、QCefView简单介绍-CSDN博客 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用-CSDN博客 【QT进阶】Qt Web混合编程之QWebEngi…

node.js-fs模块、path模块

fs模块-读写文件 模块:类似插件,封装了方法/属性 fs模块:封装了与本机文件系统进行交互的,方法/属性 语法: 1)加载fs模块对象 const fsrequire(fs)//fs 是模块标识符:模块的名字 2&#x…

文献学习-38-用于增量组织病理学分类的内存高效提示调整

​ Memory-Efficient Prompt Tuning for Incremental Histopathology Classification Authors: Yu Zhu, Kang Li, Lequan Yu, Pheng-Ann Heng Source: The Thirty-Eighth AAAI Conference on Artificial Intelligence (AAAI-24) ​​ Abstract 最近的研究在组织病理学分类方面…

Python教学入门:流程控制

条件语句(if 语句): 条件语句用于根据条件的真假执行不同的代码块。 x 10if x > 0: # 如果 x 大于 0print("x 是正数") # 输出:x 是正数 elif x 0: # 如果 x 等于 0print("x 是零") else: # 如果以…

Python基于Django的旅游城市关键词分析和提取,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【Linux系统编程】第五弹---基本指令(三)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、grep指令 2、zip/unzip指令 3、tar指令 4、bc指令 5、uname指令 6、重要的几个热键 7、拓展指令 总结 1、grep指令 …

大屏-flex布局

<div class"container"><div class"title">标题</div><div class"content"><div class"item"></div><div class"item" style"width: calc((100% - 30) / 3 * 2)"><…

C# Solidworks二次开发:程序工具界面和选项相关API详解

大家好&#xff0c;今天要讲的是关于程序工具相关的API介绍。 下面是要介绍的API: (1)第一个为GetAutoPartSimplification&#xff0c;这个API的含义为获取简化配置的指针&#xff0c;下面是官方具体解释&#xff1a; 其输入参数的类型在上一篇文章中已经介绍过了gtError_e&a…