MySql数据库基础知识

        大家好,在当今软件世界中,软件测试人员肩负着至关重要的职责,确保软件的质量与稳定性。而对于软件测试工作来说,了解 MySQL 基础知识是一项极具价值的技能。MySQL 作为广泛应用的关系型数据库管理系统,在众多软件项目中都发挥着关键作用。无论是测试数据的管理、查询结果的验证,还是对数据库相关功能的深入探究,MySQL 的知识都能为软件测试人员提供有力的支持。通过深入学习 MySQL 基础知识,软件测试人员将能够更加高效、精准地开展测试工作,洞察潜在的问题,为软件的高质量交付贡献重要力量。接下来,就和大家分享一下关于MySql数据库的基础知识,希望能给大家带来一定的帮助。

关于MySql的安装,大家可以参考:使用Docker安装MySql数据库

一、存储引擎

关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于MySQL来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用MySQL强大的功能,而像SqlServer和Oracle只提供一种存储引擎,InnoDB是MySql中最常用和最通用的存储引擎。

二、Charset和collation

Charset指的是字符集,比如:utf-8、GB2312等等。
Collation指的是排序规则,一个字符集可以用很多个排序规则

比如:
Utf-8字符集有如下排序规则:utf8_general_ci、 utf8_unicode_ci,通常我们使用utf8_unicode_ci

三、常用数据类型

四、函数

字符串位置

# MySql
Select position('c' in 'abcdef')# SqlServer
select CHARINDEX('c','abcdef')

字符串截取

# MySql
Select substring('abcdef',2,3)# SqlServer
Select substring('abcdef',2,3) 

去掉空格

# MySql
Select rtrim(ltrim(' a bcd '))# SqlServer
Select rtrim(ltrim(' a bcd '))

获取字符串长度

# MySql
Select length('abcdef')# SqlServer
Select len('abcdef')

字符串替换

# MySql
select replace('abcdef','c','C')# SqlServer
select replace('abcdef','c','C')

字符串英文大小写

# MySql
select upper(lower('ABC'))# SqlServer
select upper(lower('ABC'))

类型转换

# MySql
select convert('11',SIGNED)
select cast('11' as SIGNED)# SqlServer
select convert(int, '11')
select cast('11' as int)

日期转换

# MySql
select DATE_FORMAT(now(),'%Y-%m-%d')
select DATE_FORMAT(now(),'%Y%m%d')# SqlServer
Select convert(varchar(10),getdate(),120)
Select convert(varchar(10),getdate(),112)

null值判断

# MySql
Select ifnull(1,0)# SqlServer
Select isnull(1,0)

五、流程控制

Mysql (只能在存储过程或者函数中使用)

if then
elseif then
else
end if while 1=1 do
end while

SqlServer(可以任意使用)

if
begin 
end
else if
begin
end
else
begin
endwhile 1=1
beginselect 1
end

六、临时表

MySql:

Create temporary table tmp
(Name varchar(50)
)
Create temporary table tmp
Select * from table

SqlServer:

Create table #t
(name varchar(50)
)Select id 
into #t1 
from table

七、存储过程

Mysql:

delimiter //
create procedure myproc
(a int
)
beginselect a+1;
end;//

SqlServer:

Create procedure myproc
(@a int
)
As
BeginSelect @a+1;
end

八、创建函数

MySql:

delimiter //
Create function myfun()
returns varchar(100)
reads sql data
beginreturn 'aaa';
end;//

SqlServer:

Create function myfun()
Returns varchar(100)
as
BeginReturn ‘aaa’
end

九、注释

MySql:

# select * from table limit 1
-- select * from table
/*select top 1 *
From table limit 1*/

SqlServer:

--select top 1 * from table
/*select top 1 *
From table*/

十、查询前几条

MySql:

Select *
From table
Limit 10

SqlServer:

Select top 10 *
From table

十一、休眠

 MySql:

Select sleep(1000)

SqlServer:

Waitfor time '10:00'
Waitfor delay '1:00'

十二、打印

 MySql:

Select @p

SqlServer:

Print @p

十三、MySql锁

数据库常用到的锁主要有,共享锁、更新锁、排它锁

共享锁默认所有查询语句都会发出共享锁,并且语句执行完就释放了,加上共享锁之后可以查询不允许修改了,例如:

Select * from table where code = 2

更新锁需要在查询的时候加上表提示,例如:

Select * from table where code = 2 for update

更新锁可以查询不能修改保持到事务结束。

排它锁是一般执行update和delete的时候会发出排它锁,加上排它锁之后,别的事务既不能读也不能修改。

经常用到的命令:

查看所有执行中的语句

Show processlist 

查询所有执行中的事务

select * from information_schema.INNODB_TRX;

查询持有锁或等待锁信息

Select * from information_schema.innodb_locks

查询锁等待关系

Select * from information_schema.innodb_lock_waits

尽量使用主键或者唯一索引加锁

避免较慢的查询

避免多表连接查询

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

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

相关文章

万村乐数字乡村综合服务系统如何助力农民收入的腾飞

作为行业领先的数字乡村综合服务系统——“万村乐”,其核心便是基于互联网乡村和物联网乡村的强大信息基石之上。通过幸福民生服务、高效政务服务以及规范的党务服务这三条主线,以手机端平台为承载,借助事件反馈、精准种养数据、精细人员网格…

UEC++ FString做为参数取值时报错error:C4840

问题描述 用来取FString类型的变量时报错: 问题解决 点击错误位置,跳转到代码: void AMyDelegateActor::TwoParamDelegateFunc(int32 param1, FString param2) {UE_LOG(LogTemp, Warning, TEXT("Two Param1:%d Param2:%s"), param…

【全开源】酷柚易汛ERP 源码部署/售后更新/上线维护

一款基于FastAdminThinkPHPLayui开发的ERP管理系统,帮助中小企业实现ERP管理规范化,此系统能为你解决五大方面的经营问题:1.采购管理 2.销售管理 3.仓库管理 4.资金管理 5.生产管理,适用于:服装鞋帽、化妆品、机械机电…

数字型隔离器ISO121x的用法

目录 概述 1 认识ISO121x 1.1 简介 1.2 特性 1.3 应用领域 2 ISO121x芯片结构 2.1 ISO1211引脚介绍 2.2 ISO1211的通用应用电路 2.3 Layout Example 3 应用范例 3.1 TI提供的评估板 3.2 评估板的原理图电路 概述 本文主要介绍ISO121x的相关特性,以及其…

导出QQ好友列表、群列表、群员列表

MENU 准备工作在浏览器地址栏中输入地址使用F12快捷键打开开发者工具(浏览器控制台)点击头像登入网站(推荐)或手机扫码登录获取群列表获取好友列表获取群员列表 准备工作 一台带有浏览器的电脑 在浏览器地址栏中输入地址 https://qun.qq.com/member.html 使用F12快捷键打开开发…

洪水仿真模拟(ArcGIS),水利数字孪生新利器

这两天ArcGIS Pro的官方账号释放了一个名为“Flood Simulation in ArcGIS Pro”的洪水模拟功能视频。根据视频详情页的介绍,该洪水仿真模拟功能会作为新功能出现在ArcGIS Pro 3.3中。 由于我目前从事的主要应用方向都是弱GIS的领域,所以我已经很久没有再…

Panasonic机器人维修|松下机械手维修过程

在我们的科技日新月异的今天,松下机器人已经广泛应用于各个领域,发挥着越来越重要的作用。然而,这些Panasonic机械手维修过程也是一项重要且复杂的工作。 一、准备工作 在进行松下机器人维修前,需要充分了解机器人的构造和工作原理…

头歌实践教学平台:CG1-v1.0-点和直线的绘制

第1关:OpenGL点的绘制 一. 任务描述 根据下面要求,在右侧修改代码,绘制出预期输出的图片。平台会对你编写的代码进行测试。 1.本关任务 熟悉编程环境; 了解光栅图形显示器的特点; 了解计算机绘图的特点&#xff1b…

自动化运维管理工具----------Ansible模块详细解读

目录 一、自动化运维工具有哪些? 1.1Chef 1.2puppet 1.3Saltstack 二、Ansible介绍 2.1Ansible简介 2.2Ansible特点 2.3Ansible工作原理及流程 2.3.1内部流程 2.3.2外部流程 三、Ansible部署 3.1环境准备 3.2管理端安装 ansible 3.3Ansible相关文件 …

图片转pdf的java代码实现

一、实现方式 采用itextpdf和itext包&#xff0c;使用java代码&#xff0c;把图片转换为pdf. 支持文件格式&#xff1a;png&#xff0c;jpg, jpeg,gif 二、java代码实现 1、maven依赖 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependen…

反了!美国假冒邮政服务钓鱼网站访问量竟然超过正规官网

美国邮政是美国主要的包裹信件投递机构之一&#xff0c;长期以来该单位都是网络钓鱼和诈骗的针对目标。对美国公民来说&#xff0c;在假期通常都会收到声称来自美国邮政的诈骗。美国邮政甚至单独建设的网页提醒消费者警惕诈骗信息&#xff1a; 专用提醒网页 Akamai 的研究人员…

Redis是单线程吗?为什么6.0之后引入了多线程?

Redis是单线程吗&#xff1f;为什么6.0之后引入了多线程&#xff1f; Redis 是单线程吗&#xff1f;Redis 单线程模式是怎样的&#xff1f;Redis 采用单线程为什么还这么快&#xff1f;Redis 6.0 之前为什么使用单线程&#xff1f;Redis 6.0 之后为什么引入了多线程&#xff1f…

在拥有多个同名称密码的ap环境中,如何连接到指定信道或mac的ap路由器?

在给客户做ESP32-C3入墙开关项目时&#xff0c;客户问&#xff1a;在拥有多个同名称密码的ap环境中&#xff0c;如何连接到指定信道或mac的ap路由器&#xff1f;针对这个问题&#xff0c;启明云端工程师给出下面解决方法。 1、将wifi_sta_config_t配置中的channel配置为该信道…

视频拼接融合产品的产品与架构设计(二)

视频拼接融合产品的产品与架构设计一 以上是第一期&#xff0c;以前思考的时候还是比较着急&#xff0c;现在思考的更多了&#xff0c;现实世界的拼接更加需要我们沉下心来做&#xff0c;尤其是对于更多画面&#xff0c;画面更加清晰怎么做 本篇章不在于其他功能&#xff0c;在…

认识下MapReduce

&#x1f50d; 什么是MapReduce&#xff1f; MapReduce是一种分布式计算模型&#xff0c;最初由Google提出&#xff0c;用于处理大规模数据集的并行计算。它将数据处理任务分解成独立的Map和Reduce两个阶段&#xff0c;以实现分布式计算和并行化处理。Map阶段负责将输入数据映…

微信畅销榜,就这款游戏玩进去了!太无厘头了

周三的文章《不可要放过&#xff0c;微信畅玩榜啊&#xff01;我发现暗藏的几个惊天大秘》&#xff0c;晓衡扒拉一下微信小游戏畅玩榜上的游戏&#xff0c;就下面这张图&#xff1a; 有老铁不服&#xff0c;说畅玩榜大部分都是休闲小游戏&#xff0c;问我还有没有 Cocos 做的更…

NAND Flash 与 NOR Flash间的区别

非易失性存储器是一种即使未通电也能保持其内容的存储器。非易失性存储器可以有不同的形式: ROM – 只读存储器&#xff0c;数据写入一次&#xff0c;允许多次读取访问。 PROM – 可编程只读存储器&#xff0c;数据写入一次&#xff08;不是在制造过程中&#xff0c;而是以后的…

webjars学习

webjars介绍 官网&#xff1a;WebJars - Web Libraries in Jars github: WebJars GitHub 文档&#xff1a;WebJars - Documentation WebJAR 是一个用于管理Web前端依赖的工具。它允许开发者将特定的客户端库&#xff08;如JavaScript、CSS等&#xff09;打包成JAR&#xf…

PHP基于vscode医院安全不良事件管理系统源码(AEMS)前端vue2+element+后端laravel8不良事件上报与闭环管理

PHP基于vscode医院安全不良事件管理系统源码&#xff08;AEMS&#xff09;前端vue2element后端laravel8不良事件上报与闭环管理 医院不良事件上报与管理系统结合现代医院管理思路&#xff0c;遵照PDCA全面质量循环管理方法而设计&#xff0c;并在多家大型三甲医院成熟运用。系统…

C# 排序的多种实现方式

排序是我们编程时的常用操作&#xff0c;实现方式也有很多种&#xff0c;本篇文章列举几种我常用的用法&#xff0c;希望对大家有用&#xff01; 01 数组排序 最常见的排序是对一个数组排序&#xff0c;比如&#xff1a; int[] aArray new int[8] { 18, 17, 21, 23, 11, 31…