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

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

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

相关文章

数据结构之二叉搜索树底层实现洞若观火!

目录 题外话 正题 二叉搜索树 底层实现 二叉搜索树查找操作 查找操作思路 查找代码实现详解 二叉搜索树插入操作 插入操作思路 插入代码详解 二叉搜索树删除操作 删除操作思路 删除代码详解 小结 题外话 我的一切都是党给的,都是人民给的,都是家人们给的!! 十分感…

IDEA使用中, 设置平展软件包。使用IDEA遇到的问题:src里为什么创建包为什么不在包里面

使用IDEA遇到的问题:src里为什么创建包为什么不在包里面 如下图所示 : 点击齿轮设置 如何搞回来? 看下面的Flatten Packages(平展软件包)取消掉。

C++学习之C++11标准

目录 一,列表初始化 二,initializer_list 三,auto与decltype 1)auto 2)decltype 四,nullptr 五,范围for 六,新加容器 1)array 2)forward_list 3&a…

Zabbix 监控系统:监控Windows端

目录 前言 1、zabbix Windows客户端安装包下载 2、安装zabbix Windows客户端 3、 查看zabbix.Agent是否正在运行 4、Zabbix Web 界面配置 5、模拟故障(关闭Windows 10机器) 6、Zabbix Web 界面验证故障信息 前言 Zabbix是一种开源的网络监控系统…

小扎万字深度访谈:最强开源大模型Llama 3发布,Meta的AGI路径和开源哲学

今天Meta发布了史上最强开源大模型Llama 3,一口气发布了 8B 和 70B 2个预训练和指令微调模型,对比同级别的参数模型,性能上均达到了最佳。 此外,Meta还发布了基于Llama 3的AI助手Meta AI,可以在Facebook、Instagram、W…

优化器与优化策略的搭配

在深度学习中不同的optimizer 通常会选择不同 优化策略 lr_sheduler 与之搭配; 1. SGD 与 Adam 优化器 Adam 与经典 SGD 的不同之处在于, Adam 执行局部参数更新(即在参数级别进行更改),而不是全局执行此操作的 SGD…

非计算机专业考软考高项有必要吗?

我认为这非常重要。 看了你的介绍,如果你已经考取了会计证书,而且想要考取计算机专业的证书,或者你的职业规划涉及到计算机岗位,又或者你对计算机感兴趣,我建议你优先考虑软考,因为这个证书的含金量是有保…

冯喜运:4.22晚间欧市支撑阻力:现货黄金+美原油走势及操作建议

【黄金消息面解析 】:周一(4月20日)欧市早盘,现货黄金短线加速跳水,金价目前跌向2350美元/盎司关口,日内崩跌逾40美元。美国定于周五公布的个人消费支出(PCE)物价指数预计将显示,3月PCE物价指数同比增幅将从2月份的2.5…

Linux 安装 Docker +Docker Compose + cucker/get_command_4_run_container

TIP:下面演示的 Linux 系统为 CentOS 7.9。 Docker 更新你的系统并安装必要的依赖项: sudo yum update -y sudo yum install -y yum-utils device-mapper-persistent-data lvm2添加 Docker 的官方仓库: sudo yum-config-manager --add-rep…

什么是 PCIe 及其工作原理?

什么是外围组件互连 Express (PCIe)? 外围组件互连 Express (PCIe) 是一种高速串行计算机扩展总线标准,可将设备连接到主板。 它于 2004 年首次推出,作为以前 PCI 和 AGP 方式的替代。 PCIe 允许处理器和各种扩展卡(例如显卡、声…

上市公司数字化转型速度测-含代码及原始数据(2000-2022年)

数据来源:Wind数据库、企业年报时间跨度:2000-2022年 其中吴非、赵宸宇版本的数据是从2000到2022年;袁淳版本和李瑛玫版本的数据均是从2001-2022年。数据范围:上市公司数据指标:计算了三份测算数字化转型速度的数据。其…

关系抽取与属性补全

文章目录 实体关系抽取的任务定义机器学习框架属性补全 实体关系抽取的任务定义 从文本中抽取出两个或者多个实体之间的语义关系;从文本获取知识图谱三元组的主要技术手段,通常被用于知识图谱的补全。美丽的西湖坐落于浙江省的省会城市杭州的西南面。&am…

基于SSM+Jsp+Mysql的文物管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

可视化大屏可不是花架子,绝对有实用价值。

Hello,我是大千UI工场,不少老铁觉得可视化大屏就是花架子,是取悦领导的,那真是不懂可视化大屏的价值。欢迎友友们关注、评论,如果有订单可私信。 可视化大屏并不是花架子,而是一种实际有效的工具&#xff0…

实战|哈尔滨等保2.0 Linux主机测评过程之身份鉴别

一、身份鉴别 a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。 输入 more /etc/shadow,得知系统所有用户,此语句字段格式有九段。 第一字段:用户名(也被称为登录名…

Webpack-

定义 静态模块:指的是编写代码过程中的html,css,js,图片等固定内容的文件 打包:把静态模块内容压缩、整合、翻译等(前端工程化) 1)把less/sass转成css代码 2)把ES6降级…

C语言本身不难,难得是应用场景很多

你学了C语言多半是要做项目的,这个过程中C语言是远远不够的,你把这部分难度加到C语言上,自然就难了在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」, 点个关注在评论区…

基于51单片机智能窗帘仿真设计( proteus仿真+程序+设计报告+讲解视频)

基于51单片机智能窗帘仿真设计( proteus仿真程序设计报告讲解视频) 基于51单片机智能窗帘仿真设计 1. 主要功能:2. 讲解视频:3. 仿真设计4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单资料下载链接: 仿真图proteus8.9及以上…

一线实战,一次底层超融合故障导致的Oracle异常恢复

背景概述 某客户数据由于底层超融合故障导致数据库产生有大量的坏块,最终导致数据库宕机,通过数据抢救,恢复了全部的数据。下面是详细的故障分析诊断过程,以及详细的解决方案描述: 故障现象 数据库宕机之后&#xff0c…

Shell和Linux权限

目录 shell Liunx权限 用户 sudo Linux的权限管理 文件访问者的分类 文件的属性 文件的权限 文件全权限值的表示方法 1.字符表示 2.八进制数值表示 用户符号 修改文件访问权限 修改文件拥有者 修改拥有者和所属组 修改所属组 文件目录的权限的含义 问题 粘滞…