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.hqwc.cn/news/689489.html

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

相关文章

Java --- 集合(1)--- 带你了解Collection接口以及三种遍历方式

引言:本期博客摘选黑马程序员与Java从入门到精通,如果有不准确的地方还请指出,另外也感谢各位大佬点击进来观看。 目录 一.什么是集合? 二.单列集合的体系结构: 三.Collection接口的使用: 四.Collection…

shared_ptr 引用计数相关问题

前言 智能指针是 C11 增加的非常重要的特性,并且也是面试的高频考点,本文主要解释以下几个问题: 引用计数是怎么共享的、怎么解决并发问题的资源释放时,控制块的内存释放吗weak_ptr 怎么判断对象是否已经释放 文中源码用的是 L…

XMind 2023 v23.05.2660软件安装教程(附软件下载地址)

软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! XMind 2023 v23.05.2660被视为顶尖思维导图软件,其界面简洁清爽,功能布局直观简单,摒弃繁复不实。尽管体积小巧&a…

RabbitMQ(安装配置以及与SpringBoot整合)

文章目录 1.基本介绍2.Linux下安装配置RabbitMQ1.安装erlang环境1.将文件上传到/opt目录下2.进入/opt目录下,然后安装 2.安装RabbitMQ1.进入/opt目录,安装所需依赖2.安装MQ 3.基本配置1.启动MQ2.查看MQ状态3.安装web管理插件4.安装web管理插件超时的解决…

【R语言与统计】SEM结构方程、生物群落、多元统计分析、回归及混合效应模型、贝叶斯、极值统计学、meta分析、copula、分位数回归、文献计量学

统计模型的七大类:一:多元回归 在研究变量之间的相互影响关系模型时候,用到这类方法,具体地说:其可以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归方程可以求出因变量的估计值&…

P8803 [蓝桥杯 2022 国 B] 费用报销

P8803 [蓝桥杯 2022 国 B] 费用报销 分析 最值问题——DP 题意分析:从N张票据中选,且总价值不超过M的票据的最大价值(背包问题) K天限制 一、处理K天限制: 1.对于输入的是月 日的格式,很常用的方式是…

笨方法自学python(二)-注释

注释和#号 程序里的注释是很重要的。它们可以用自然语言告诉你某段代码的功能是什么。在你想要临时移除一段代码时,你还可以用注解的方式将这段代码临时禁用。 # A comment, this is so you can read your program later. # Anything after the # is ignored by py…

SpringBoot自定义初始化sql文件 支持多类型数据库

我在resources目录下有init.sql初始化sql语句 指定sql文件的地址 sql内容如下: /*角色表*/ INSERT INTO #{schema}ccc_base_role (id, create_time, create_user_id, is_delete, role_name, status, update_time, update_user_id) VALUES(b89e30d81acb88448d412…

phpmyadmin配置文件权限错误

错误信息 配置文件权限错误,不应任何用户都能修改! 解决办法 找到phpmyadmin所在目录 给phpmyadmin目录授权755 chmod -R 755 phpmyadmin验证服务是否可以正常访问

履带车配置 一些小细节

履带车配置 一些小细节 485/CAN模式 自动识别上电后第一帧是485还是CAN指令,就进入对应通讯模式用485通讯这个驱动器通讯可以了,你再接CAN通讯,这个驱动器必须断电重启一下;不能在通电模式下切换 驱动器拨码开关 两个驱动器的…

PCIE协议-1

1. PCIe结构拓扑 一个结构由点对点的链路组成,这些链路将一组组件互相连接 - 图1-2展示了一个结构拓扑示例。该图展示了一个称为层级结构的单一结构实例,由一个根复合体(Root Complex, RC)、多个端点(I/O设备&#xf…

增加表空间的数据文件

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 表空间创建完成后,后期还可以为表空间增加数据文件,以扩大数据的存储空间。增加表空间数据文件的基本语法结构如下所示。 ALTER TABLESPACE 表空间名…