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
end

while 1=1
begin
	select 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
)
begin
	select a+1;
end;//

SqlServer:

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

八、创建函数

MySql:

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

SqlServer:

Create function myfun()
Returns varchar(100)
as
Begin
   Return ‘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

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

避免较慢的查询

避免多表连接查询

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

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

相关文章

D - Another Sigma Problem(ABC)

思路:我们可以处理一个后缀来记录当前数a[i]需要乘上多少(类似于1110这样的),然后对于当前位来说,对答案的贡献还要加上(i - 1) * a[i],因为a[i]还要做前(i - 1)个数的后缀。 代码: #include &…

ctfshow web274

web274 thinkphp框架序列化漏洞 EXP <?php namespace think; abstract class Model{protected $append[];private $data[];function __construct(){$this->append["lin">["ctf","show"]];$this->data["lin">new Req…

【C++】vector的底层原理讲解及其实现

目录 一、认识vector底层结构 二、初始化vector的函数 构造函数拷贝构造赋值构造initializer_list构造迭代器区间构造 三、迭代器 四、数据的访问 五、容量相关的函数 六、关于数据的增删查改操作 一、认识vector底层结构 STL库中实现vector其实是用三个指针来完成的&#x…

进入泛型的世界

泛型的理解和好处 泛型的好处 编译时&#xff0c;检查添加元素的类型&#xff0c;提高了安全性减少了类型转换的次数&#xff0c;提高效率 不使用泛型 Dog-加入->Object-取出->Dog&#xff08;向下转型&#xff09; Dog放入到ArrayList 会先转成Object&#xff0c;在转…

YOLOv5-7.0改进(二)BiFPN替换Neck网络

前言 针对红绿灯轻量化检测&#xff0c;上一节使用MobileNetv3替换了主干网络&#xff0c;本篇将在使用BiFPN替换Neck的方式优化算法~ 往期回顾 YOLOv5-7.0改进&#xff08;一&#xff09;MobileNetv3替换主干网络 目录 一、BiFPN简介二、改进方法一第一步&#xff1a;在com…

[ES] ElasticSearch节点加入集群失败经历分析主节点选举、ES网络配置 [publish_address不是当前机器ip]

背景 三台CentOS 7.6.1虚拟机&#xff0c; 每台虚拟机上启动一个ElasticSearch 7.17.3&#xff08;下面简称ES&#xff09;实例 即每台虚拟机上一个ES进程&#xff08;每台虚拟机上一个ES节点&#xff09; 情况是&#xff1a; 之前集群是搭建成功的, 但是今天有一个节点一…

unity制作app(6)--服务器保存数据

1.成功将app的所有数据上传到客户端 2.把数据存储到txt文件中&#xff0c;照猫画虎修改create的内容&#xff0c;原内容如下&#xff1a; 写入函数调用的起始位置&#xff1a; 修改后的create内容如下&#xff1a; 3.最终写入文件的内容如下&#xff1a; 4.补充一下结构体的初…

现代制造之Cura切片

现代制造 有现代技术支撑的制造业&#xff0c;即无论是制造还是服务行业&#xff0c;添了现代两个字不过是因为有了现代科学技术的支撑&#xff0c;如发达的通信方式&#xff0c;不断发展的互联网&#xff0c;信息化程度加强了&#xff0c;因此可以为这两个行业增加了不少优势…

i春秋-Test

题目 解题 参考WP https://blog.csdn.net/qq_40654505/article/details/107142533/目录扫描 复现wp payload为&#xff1a; search.php?searchtype5&tid&areaeval($_POST[cmd])使用蚁剑连接 http://eci-2ze4iyhwj7xvb68bsb2t.cloudeci1.ichunqiu.com:80/search.ph…

语义分割——天空图像分割数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

差分约束 C++ 算法例题

差分约束 差分约束 是一种特殊的 n 元一次不等式组&#xff0c;m 个约束条件&#xff0c;可以组成形如下的格式&#xff1a; { x 1 − x 1 ′ ≤ y 1 x 2 − x 2 ′ ≤ y 2 ⋯ x m − x m ′ ≤ y m \begin{cases} x_1-x_1^{} \le y_1 \\ x_2-x_2^{} \le y_2 \\ \cdots \\ x_…

AR人像滤镜SDK解决方案,专业调色,打造个性化风格

视觉内容已成为企业传达品牌价值和吸引用户眼球的重要载体&#xff0c;为满足企业对于高质量、多样化视觉内容的迫切需求&#xff0c;美摄科技凭借先进的AR技术和深厚的图像处理经验&#xff0c;推出了业界领先的AR人像滤镜SDK解决方案。 一、一站式解决方案&#xff0c;覆盖多…

Emacs之取消sh-mode模式下:快捷键C-c C-c(一百三十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

基于单片机的温度控制系统设计(51基础版)-设计说明书

本论文设计了一种基于51单片机的温度控制系统&#xff0c;该系统具备以下主要功能&#xff1a;首先&#xff0c;通过温度传感器实时检测环境温湿度&#xff0c;以获取准确的温度数值。其次&#xff0c;通过按键设置温度阈值&#xff0c;用户可以根据需求自行调整控制温度的上限…

You Only Cache Once:YOCO 基于Decoder-Decoder 的一个新的大语言模型架构

这是微软再5月刚刚发布的一篇论文提出了一种解码器-解码器架构YOCO&#xff0c;因为只缓存一次KV对&#xff0c;所以可以大量的节省内存。 以前的模型都是通过缓存先前计算的键/值向量&#xff0c;可以在当前生成步骤中重用它们。键值(KV)缓存避免了对每个词元再次编码的过程&…

WHAT - CSS Animationtion 动画系列(一)

目录 一、介绍二、animation-name三、animation-duration四、animation-timing-function4.1 介绍4.2 具体实践&#xff1a;抛物线 五、animation-delay六、animation-iteration-count七、animation-direction八、animation-fill-mode九、animation-play-state 今天我们主要学习…

HackMyVM-Minimal

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 gobuster 文件包含漏洞 提权 web信息收集 main方法 question_1 question_2 question_3 prize.txt 软连接 信息收集 arp ┌──(root?0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: E…

中职智慧校园建设内容规划

1. 渠道先行 1) IT根底设施渠道是支撑智慧学校使用体系所必需的运转环境&#xff0c;是首要需求建造的内容&#xff0c;但是要遵从有用准则&#xff0c;IT设备开展很快&#xff0c;更新很快&#xff0c;不要片面追求全而新&#xff1b; 2) 使用根底渠道是支撑智慧学校使用体系作…

SCI一区论文蛇优化器(SO)独家原创改进!适合发表paper!

购买改进/原创算法避坑指南 这会触及很多人的利益&#xff0c;但是不得不发声&#xff0c;教大家避坑&#xff01;因为现在元启发式/群智能算法改进、原创算法市场太乱了&#xff0c;导致产生了很多受害者。 1、增加复杂度的不要买&#xff0c;大家可以叫商家给出运行时间比较…

Java 修饰符

Java 修饰符 Java语言提供了很多修饰符&#xff0c;主要分为以下两类&#xff1a; 访问修饰符 非访问修饰符 修饰符用来定义类、方法或者变量&#xff0c;通常放在语句的最前端。我们通过下面的例子来说明&#xff1a; public class ClassName { // … } private boolean myF…