Mysql — 刷题知识点

一. 功能函数

1. 大小写转换 UCASE/LCASE (列名)

LCASE是将内容转换为小写

UCASE将内容转换为大写

CASE是条件控制语句的关键字

二、join ... on  问题

1. right join ..on

RIGHT JOIN 关键字会返回右表 (t2) 所有的行,即使在左表 (t1) 中没有匹配的行。或者更多。如果右表有某记录与左表多条记录匹配(满足 on 子句条件)则 RIGHT JOIN 结果行数多于右表。

具体来说,如果此题再加一条记录 ('1114', '张三', '2000-08-06', '男'), 则答案会是 5 。 

 4行

2. full join

Mysql(版本8.0.25)不支持full join,使用union连接左连接和右连接,得到全连接

三、排序

1. 最早的日期 + 分区

Rank()函数:为结果集分区中每一行分配一个排名,行等级由一加上前面的等级指定。

RANK() OVER(  PARTITION BY 表达式      ##将结果集划分为分区  ORDER BY 表达式 [ASC|DESC] ##对分区内的进行排序  )

SELECT player_id, device_id

FROM (SELECT *, RANK() OVER (PARTITION BY player_id ORDER BY event_date) AS rank_date FROM gamelist) t

WHERE t.rank_date = 1;

目的是从名为 gamelist 的表中选择每个玩家的第一个事件(按照事件日期排序)。

详细解释:

  1. SELECT player_id, device_id: 这是查询语句的主体部分,指定了要从数据库中检索的列,即玩家ID和设备ID。

  2. FROM (SELECT *, RANK() OVER (PARTITION BY player_id ORDER BY event_date) AS rank_date FROM gamelist) t: 这是一个子查询,它首先对 gamelist 表中的数据进行排名,并根据 player_id 进行分区。RANK() OVER (PARTITION BY player_id ORDER BY event_date) 这部分使用窗口函数 RANK() 对每个玩家的事件按照日期进行排序并分配一个排名。子查询使用别名 t 表示。

  3. WHERE t.rank_date = 1: 这是主查询的过滤条件,它筛选出排名为1的行,即每个玩家的第一个事件。

四、存储

1. 知识点

https://www.cnblogs.com/zhoufangcheng0405/p/8028566.html

1. 创建存储过程

      create procedure  过程名

         @parameter    [as ]  参数类型

         @parameter      [as ]  参数类型   

          。。。

          as 

          begin

          end

执行存储过程:execute 过程名

2. 触发事件

在 SQL 中,"触发器"(Trigger)是一种特殊的存储过程,它会在数据库中的特定事件发生时自动执行。这些事件可以是 INSERT、UPDATE 或 DELETE 操作。

建个存储过程

使用SQL语句建个存储过程proc_stu,然后以student表中的学号Stu_ID为输入参数@s_no,返回学生个人的指定信息。

CREATE PROCEDURE [stu].[proc_student]
@s_no【as】 int
AS
BEGIN
select * from stu.student where Stu_ID=@s_no
END

五、权限

1. 知识点

1.GRANT 赋于权限
常用的系统权限集合有以下三个:
CONNECT(基本的连接),   RESOURCE(程序开发),   DBA(数据库管理)
常用的数据对象权限有以下五个:
ALL   ON   数据对象名,   SELECT   ON   数据对象名,   UPDATE   ON   数据对象名,
DELETE   ON   数据对象名,     INSERT   ON   数据对象名,       ALTER     ON   数据对象名
GRANT   CONNECT,   RESOURCE   TO   用户名;
GRANT   SELECT   ON   表名   TO   用户名;
GRANT   SELECT,   INSERT,   DELETE   ON表名   TO   用户名1,   用户名2;
2.REVOKE   回收权限
REVOKE   CONNECT,   RESOURCE   FROM   用户名;
REVOKE   SELECT   ON   表名   FROM   用户名;
REVOKE   SELECT,   INSERT,   DELETE   ON表名   FROM   用户名1,   用户名2; ...

@'%' :任何主机的通配符,@:划分用户名和主机 , %:代表"任何"

user.*: user数据库的所有表

*.*:所有数据库的所有表

revoke ... on ... from

六、正则表达式

知识点  REGEXP ' '

MySQL 中使用 REGEXP 来操作正则表达式的匹配。

  • ^ 该符号表示匹配输入字符串的开始位置;
  • $表示匹配输入字符串的末尾位置;
  • [...] 表示匹配所包含的任意一个字符;
  • [^...]表示不能匹配括号内的任意单个字符;
  • x|y 这条竖线表示匹配x 或匹配y。

取居住地址Address以'C'或'h'开头 或以 'et' 结尾的所有数据,

SELECT * FROM persons WHERE Address REGEXP '^[Ch]|et$';

七、case when then用法

https://www.cnblogs.com/Richardzhu/p/3571670.html

八、插入

普通插入(全字段):INSERT INTO table_name VALUES (value1, value2, ...)

普通插入(限定字段):INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)

多条一次性插入:INSERT INTO table_name (column1, column2, ...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...

从另一个表导入:INSERT INTO table_name SELECT * FROM table_name2 [WHERE key=value

比如:INSERT INTO employees SELECT * FROM new_employees WHERE age >= 30;

表格插入字段不能用table,全字段可以省略字段名

九、模式

https://www.cnblogs.com/ndxsdhy/archive/2010/12/21/1912571.html

外模式是面向数据库用户或应用程序的局部数据视图;

模式并不涉及数据的物理存储细节

模式/内模式映像保证了数据库具有较高的物理独立性。

索引的组织方式是B+树索引,还是Hash索引与数据库的内模式有关

十、其他

null

在sql中若要取得NULL,则必须通过IS NULL或者IS NOT NULL进行获取,无法直接使用等号,SQL中的null不能用于比较

删除

DELETE 可用于删除表中的行数据;

DROP   一般删除表的,视图是虚拟表,本质还是从真实表中获取数据,它是在使用的时候动态的从真实表中查出来的

CLOSE 可用于关闭游标;

REVOKE 可用于收回语句或对象许可。

批处理

不能定义一个check约束后,立即在同一个批处理中使用;

修改一个表中的字段名后,不可以在同一个批处理中引用这个新字段

Create default,Create rule,Create trigger,Create procedure,Create view等语句同一个批处理中只能提交一个;

不能把规则和默认值绑定到表字段或自定义字段上之后,立即在同一个批处理中使用。

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

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

相关文章

【每日刷题】Day22

【每日刷题】Day22 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1669. 合并两个链表 - 力扣(LeetCode) 2. 11. 盛最多水的容器 - 力扣&#…

回归用户本真的业务价值需求,聚焦成本优化与内核能力提升——专访云和恩墨张程伟、金毅...

数据库作为企业核心业务系统的重要基座,其技术架构和性能都将直接影响企业的运营效率与成本。在2024“数据技术嘉年华”大会现场,笔者采访到了云和恩墨本原数据的两位技术合伙人——MogDB数据库研发负责人张程伟、下一代原生HTAP企业级数据库研发负责人金…

NSQ消息队列---总结篇

架构 概念 nsqlookup:存储了nsqd的元数据和服务信息(endpoind),向消费者提供服务发现功能, 向nsqadmin提供数据查询功能。 nsqd: 是接收、队列和传送消息到客户端的守护进程。 nsqadmin:简单的管理界面,展示了topic, channel以及channel上的消费者,也…

【漏洞复现】号卡极团管理系统 index.php SQL注入漏洞

0x01 产品简介 号卡极团管理系统是一款专为号卡行业打造的管理系统,它具备一系列强大的功能,能够满足号卡行业推广人员在业务运营中的各类需求。 0x02 漏洞概述 号卡极团管理系统存在SQL注入漏洞,未授权的攻击者可以通过该漏洞获取数据库敏…

数据库关系模式分解 - 无损连接和保持函数依赖性

文章目录 1 概述1.1 关系模式分解的好坏标准 2 无损连接验证算法 1 概述 1.1 关系模式分解的好坏标准 书上的算法太抽象了,咱不好理解,以下举例说明。一个关系可以有很多种分解方法,如何判断分解的好与坏呢? ① 查询时的连接操作…

类的六个构造函数相关干货

构造函数 特点 1.名字与类名相同 2.无返回值 3.对象实例化的时候编译器自动调用这个函数 4.构造函数可以重载(无参构造函数,拷贝构造等) 5.如果类中没有显式定义构造函数(深拷贝),则编译器会自动生成一个…

抖音阳哥:选品师项目究竟能不能算蓝海项目?

在当今这个信息爆炸的时代,短视频平台如抖音已经成为了人们获取信息、娱乐休闲的重要渠道。抖音上涌现出许多具有影响力的网红,他们不仅分享自己的生活点滴,还常常推荐一些创业项目或商业模式。其中,阳哥分享的选品师项目引起了广…

STM32H750片外QSPI下载算法文件(stldr)生成

STM32H750片外QSPI下载算法文件(stldr)生成 🌿相关篇《STM32H750片外QSPI启动配置简要》📌参考实现资料: https://github.com/lchnu/STM32H750XBH_ARTPIQSPI_W25Q64JV https://gitee.com/wangchief/H750_W25QXX ✨利…

风格迁移adaIN 和iT的adaLN

文章目录 BN、LN、IN、GN的区别![](https://img-blog.csdnimg.cn/direct/d38c005616f145cba2aa1c4c2e046be0.png)图像风格迁移adaINDiT adaLN BN、LN、IN、GN的区别 BatchNorm:batch方向做归一化,算NxHxW的均值,对小batchsize效果不好&#x…

「Kafka」Kafka基础知识入门介绍(三)

「Kafka」Kafka基础知识入门介绍(三) 一、消息主题1. 创建主题 二、生产数据1. 命令行模式2. Java代码模式 三、消费数据1. 命令行模式2. Java代码模式 「Kafka」Kafka理论知识解读(一) 「Kafka」Kafka安装和启动(二&a…

【kotlin】利用by关键字更加方便地实现装饰器模式

关于kotlin中的by关键字的用法,kotlin官方文档属性委托这一节讲得很清楚。 简单来说就是这样的,假设存在一个接口Component如下: interface Component {fun method1(): IntArrayfun method2(a: Int)fun method3(a: Int, str: String) }那么对…

React-性能优化的手段

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-性能优化的手段 目录 React 性能优化的手段有哪些? 一、是什么 二、如何做…

【汇编语言】流程转移和子程序

【汇编语言】流程转移和子程序 文章目录 【汇编语言】流程转移和子程序前言一、“转移”综述二、操作符offset三、jmp指令jmp指令——无条件转移jmp指令:依据位移进行转移两种段内转移远转移:jmp far ptr 标号转移地址在寄存器中的jmp指令转移地址在内存…

Vue3种常用插槽的使用

插槽总结 &#xff1a; 插槽的作用&#xff1a;让父组件可以向子组件指定位置插入html结构&#xff0c;也是一种组件间通信的方式&#xff0c;适用于 父组件 > 子组件 。分类&#xff1a;默认插槽、具名插槽、作用域插槽 1、默认插槽 父组件中&#xff1a; <Category>…

鸿蒙HarmonyOS应用 - ArkUI组件

ArkUI组件 基础组件 Image 声明Image组件并设置图片源 网络权限&#xff1a;ohos.permission.INTERNET Image(scr: string | PixelMap | Resource)// 1. string&#xff1a;用于加载网络图片&#xff0c;需要申请网络权限 Image("https://xxx.png")// 2. PixelMap…

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

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

粤嵌—2024/4/24—删除有序数组中的重复项 ||

代码实现&#xff1a; 方法一&#xff1a;双指针 int removeDuplicates(int *nums, int numsSize) {int l 0, r 0;while (r < numsSize) {if (r > 1 && nums[r] nums[l - 1] && nums[r] nums[l - 2]) {r;} else {nums[l] nums[r];l;r;}}return l; }…

ONES 功能上新|ONES Wiki 新功能一览

支持在 ONES Wiki 页面中使用分栏进行横向排版&#xff0c;丰富排版方式&#xff0c;帮助用户以更丰富的版式展示内容。 应用场景&#xff1a; 页面的布局对内容的阅读有很大的影响。当页面中有图文混排的需求时&#xff0c;可以通过分栏来组织页面结构&#xff0c;以更清晰、更…

Docker容器概念介绍与基本管理

前言 在软件开发和部署环境中&#xff0c;使用 Docker 等容器技术可以帮助团队实现快速、一致、可靠的应用程序部署&#xff0c;提高开发效率和应用程序的可移植性。 目录 一、虚拟化产品介绍 1. 云服务模型 1.1 IaaS 1.2 PaaS 1.3 SaaS 1.4 DaaS 2. 产品介绍 2.1 虚…

14 JavaScript学习:条件语句

JavaScript条件语句 JavaScript中的条件语句主要用于根据条件执行不同的代码块。以下是对JavaScript条件语句概念的详细解释和分类&#xff1a; if语句&#xff1a; 单个if语句&#xff1a;最简单的条件语句&#xff0c;根据条件判断是否执行特定的代码块。if…else语句&#x…