三十、MySQL数据库

Mysql

安装

  1. 以管理员身份运行
    在这里插入图片描述
    在这里插入图片描述

  2. 自定义安装
    在这里插入图片描述
    修改安装目录(要求目录中不能有特殊字符或中文)
    在这里插入图片描述
    在这里插入图片描述

  3. 配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

数据库的连接

  1. 使用 mysql 自带的命令行工具
    在这里插入图片描述

在这里插入图片描述

  1. 使用 cmd 命令窗口来连接 MySQL
格式:mysql -P端口号 -hmysql的主机名/IP地址 -u用户名 -p密码
mysql -P3306 -hlocalhost -uroot -proot

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可视化客户端工具 Navicat 的使用

配置数据库连接属性
在这里插入图片描述

在这里插入图片描述

MySQL 的存储引擎

show engines\G

在这里插入图片描述

当创建数据库表的时候,需要指定所需的引擎。

创建数据库(数据库名(MySQL)右击->创建数据库):

在这里插入图片描述

在这里插入图片描述

在创建表是若没有选择引擎,则为默认引擎(在MySQL的配置文件中(MySQL的安装目录下)查看):

在这里插入图片描述

在这里插入图片描述

常见引擎(Myiasm)

使用三个文件来定义表:格式文件 数据文件 索引文件

MySQL 5.0 之前的默认数据库引擎,具有较高的插入、查询速度,但不支持事务和和行级锁和外键约束。

当在insert和update时会锁定全表,所以在执行写操作对的时候效率会很慢,
和innodb不同的是,myiasm保留了行数,所以在执行select count(*) from 的时候会很快,不需要扫描全表,当我们执行的读操作多于写操作的时候,并且不需要事务的支持,我们可以使用myisam这个引擎。

Innodb(首选)

提供了对事务的ACID操作,还提供了行级锁和外键约束,他的优势就是处理大量数据,在mysql启动的时候,首先会建立一个缓存池,主要是缓存数据和索引,但是操作大规模的数据查找时很慢,所以建议当需要数据库的事务操作时,使用这个,还有就是在写的时候不会锁定全表,所以在大规模并发操作的时候会提高效率;

MEMORY

所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在MYSQL重新启动是会丢失。

选择引擎

  • MyISAM适合大量的数据的读,而数据的更新(增删改)操作较少,存储空间占用少。可以压缩存储
  • InnoDB 操作中包含较多的更新操作,首选InnoDB。有良好的并发机制支持并发访问
  • MEMORY 可以存储非永久需要的数据,如果需要永久保存,则需要将数据导出到磁盘,下次使用可以从磁盘在加载到内存 它适用于需要告诉访问的数据 。

MySQL 常见命令

  1. 查看所有库:show datebases
  2. 创建数据库:create datebase 数据库名
  3. 使用数据库:use 数据库名
  4. 切换数据库:change 数据库名
  5. 查看数据库中的表:show tables
  6. 退出:exit

MySQL 与 Oracle 的不同之处

  1. 数据类型
数据类型类型字节数
数值型int、integer4
smallint2
bigint8
tinyint1
浮点数float4
double8
字符型char不可变长度
varchar可变长度
日期型dateyyyy-mm-dd
datetimeyyyy-mm-dd hh:mi:ss
timestamp时间戳,更精确的时间
yearyyyy
大文本类型blob存放二进制文件
text文本信息
  1. sql 语句的区别
delete:
	delete from 表名 where 条件
	<Oracle 中的 from 可省略,但是 MySQL 中的 from 不能省略>
关于外链接:
	Oracle 中可以使用 "+" 表示链接,但是 MySQL 中只能用 sql1999 语法
分页查询:
	Oracle 使用的是 runnum 数据伪列
	MySQL 使用的是 linit 关键字
  • MySQL 的分页查询(第一个参数的计算:(page-1) * size , page表示当前第几页
    ;第二个参数 size ,size 表示每页显示的条数):
# 查询第一页(页数从0开始)
SELECT * FROM `emp1` limit 1,1;
# 查询第二页
SELECT * FROM `emp1` limit 1,1;

MySQL 还可使用触发器与函数。

  1. 全连接
    mysql并不支持全连接 full JOIN 关键字
    但是mysql 提供了 UNION 关键字.使用 UNION 可以间接实现 full JOIN 功能
左连接
UNION 
右连接

优化

优化查询

-- 查询SQL语句资源消耗情况
show profiles;

参考:
https://blog.csdn.net/weixin_48052161/article/details/122136629

-- 
explain SQL语句

参考:
https://blog.csdn.net/qq_31208245/article/details/133134130

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BORN(^-^)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值