学习MySQL(5.7)第二战:四大引擎、账号管理以及建库(干货满满)

目录

前言:

一.数据库存储引擎

1.存储引擎简介

存储引擎查看

support字段说明

2.四大引擎详细介绍

InnoDB

MylSAM

MEMORY

Archive

二.数据库管理

1.元数据库简介

2.元数据库分类

infomation_schema

mysql

performance_schema      

​编辑3.数据库的增删改查 

创建数据库

查看数据库

删除数据库

4.MySQL权限相关表

user表(用户层权限)

db表(数据库层权限)

table_priv(表层权限)

colummns_prvi(字段层权限)

三.数据库表管理

1.三大范式

2.基本数据类型 

优化原则

3.字符串类型

整数

实数(有小数点) 

字符串

text和blob(大数据应用)

 TINYTEXT    TEXT   MEDIUMTEXT   LONGTEXT

时间日期 

datetime

timestamp

date(yyy-MM-dd)

time(HH:MM:ss) 

选择标识符

四.数据库账号管理

1.用户的管理操作

查询用户

查询用户常见信息 

2.权限的相关操作

 设置权限

五思维导图 


前言:

随着大数据和云计算的迅速发展,MySQL作为开源关系型数据库的代表,已经成为了许多企业和开发者的首选。在第一篇博客中,我们简要介绍了MySQL的基本概念和安装。今天,我们将深入探讨MySQL的四大存储引擎、账号管理和建库实战。

二、账号管理:安全与权限

在MySQL中,账号和权限管理是确保数据安全的关键环节。通过GRANTREVOKE命令,可以精确地控制哪些账号具备哪些权限。例如,可以为特定账号设置只读权限或限制其只能访问特定数据库。

三、建库实战:从零到一构建你的数据库

  1. 需求分析: 在开始建库之前,明确需求是至关重要的。考虑你的应用场景、数据规模和查询频率。
  2. 设计数据库结构: 根据需求设计表结构,定义字段、数据类型和约束。
  3. 创建数据库和表: 使用CREATE DATABASECREATE TABLE命令创建数据库和表。
  4. 导入数据: 如果已有数据,可以使用LOAD DATA INFILE命令导入。
  5. 优化与维护: 根据实际使用情况,进行必要的优化和维护。

通过这篇博客,我们希望能够为你提供一个关于MySQL深入学习的概览。在接下来的文章中,我们将详细介绍每个部分的内容,帮助你全面掌握MySQL的核心知识。

一.数据库存储引擎

1.存储引擎简介

四大存储引擎:MyISAM、InnoDB、Memory和Merge

  1. MyISAM: 这是MySQL的默认存储引擎。它支持全文索引、高速缓存和压缩,但不支持事务处理。
  2. InnoDB: 提供了事务安全(ACID兼容)的表,行级锁定和外键约束。
  3. Memory: 数据存储在内存中,速度快但数据是临时的。
  4. Merge: 允许用户将多个MyISAM表合并为一个表。

存储引擎查看

show ENGINES

support字段说明

default   代表为默认搜索引擎

YES    代表可以使用

NO   代表不可以使用

2.四大引擎详细介绍

InnoDB

使用场景: 一般事务性均使用,用途最广,如果不能把握使用何种就是用innoDB

特点:修改快,支持事务(行锁);存储限制64TG;支持事务

MylSAM

使用场景:大量查询,很少修改(数据字典,系统参数)

特点:强调快速读取操作(表锁);存储限制为256TG;不支持事务

MEMORY

使用场景:由于易失性,可以存储用于分析中产生的中间表

特点:所有数据存储在内存中,一点服务器重启,所有memory存储引擎的表数据会消失但是表结构会保存下来;存储限制取决于RAM(随机存储器);不支持事务

Archive

使用场景:日志和数据采集使用

特点:只允许插入和查询,压缩存储,节约空间,可以实现高并发的插入,支持在自增ID上建立索引;不支持索引;Archive表比MylSAM表要小大约75%,比支持事务表格小大约83%

二.数据库管理

1.元数据库简介

MySQL安装后自带的数据库,记录MySQL数据库自身的数据库

2.元数据库分类

infomation_schema

简介

信息数据库,保存MySQL所维护的其他数据库信息。比如数据库名,数据库表等等

mysql

简介

核心数据库,主要用于存储数据库用户,权限设置关键字等等MySQL自己需要控制和管理的信息

performance_schema      

简介

    用于mysql的检查数据存放 (MySQL集群需要mycat)

3.数据库的增删改查 

使用数据库

use  数据库名字

创建数据库

#一般情况下
create  database   数据库名字;
#全称
create  database  if not exists  数据库名字  
default  utf8 collate utf8_general_ci;(不区分大小写)

查看数据库

show database;

删除数据库

drop  数据库名字;

4.MySQL权限相关表

user表(用户层权限)

用户有哪些权限

db表(数据库层权限)

对于数据库操作的授权

table_priv(表层权限)

对于表的操作权限(增加,删除,修改,查询,创建表,生产表)

colummns_prvi(字段层权限)

对于字段名的操作权限

三.数据库表管理

1.三大范式

第一范式:列不可在分(原子性)

举例:地址(湖南长沙望城)实际上要在分为几个字段 省份,城市,地区

第二范式:主键约束

举例:订单表单价,数量,小计

第三范式外键约束

举例:患者id和患者名字存储在同一张表中(修改需要同时修改两张表格)

2.基本数据类型 

优化原则

1.更小通常更好:更小通常更快;更小的磁盘空间,内存缓存;更小的cpu周期

2.简单就好:整型比字符串操作代价更小,用时间类型表示日期(date,datetime等等)不用字符串

3.避免NULL: NULL为列的默认值,单除非非常需要;尽量避免使用NULL;尽量知道列为NOT NULL,特别是需要构建索引的列查询中出现MULL的类,MySQL更难优化(不利于使用索引,索引统计更复杂,值比较更复杂);用整型而不是字符串表示ip(INET_ATON(),INET_NTOA())

3.字符串类型

整数

  1. TINYINT(8位):

    • 范围: -128 到 127 或 0 到 255(无符号)
    • 存储需求: 1 字节
  2. SMALLINT(16位):

    • 范围: -32,768 到 32,767 或 0 到 65,535(无符号)
    • 存储需求: 2 字节
  3. MEDIUMINT(24位):

    • 范围: -8,388,608 到 8,388,607 或 0 到 16,777,215(无符号)
    • 存储需求: 3 字节
  4. INT 或 INTEGER(24位):

    • 范围: -2,147,483,648 到 2,147,483,647 或 0 到 4,294,967,295(无符号)
    • 存储需求: 4 字节
  5. BIGINT(64):

    • 范围: -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 或 0 到 18,446,744,073,709,551,615(无符号)
    • 存储需求: 8 字节

实数(有小数点) 

  1. FLOAT(4字节):

    • 存储需求: 取决于总位数和小数点后的位数。例如,FLOAT(7,4) 表示总长度为7位,其中小数点后有4位。
    • 范围: -3.40282e+38 到 3.40282e+38
  2. DOUBLE(8字节):

    • 存储需求: 取决于总位数和小数点后的位数。例如,DOUBLE(15,4) 表示总长度为15位,其中小数点后有4位。
    • 范围: ±1.7E-308 到 ±1.7E+308
  3. DECIMAL(最多65位数):

    • 这是一个固定精度的类型,允许你指定总的数字数量和小数点后的数字数量。例如,DECIMAL(10,2) 表示总共10位数字,其中小数点后有2位。
    • 范围: 与DOUBLE相同,但精度更高。

字符串

  1. CHAR:

    • 定长字符串。长度范围是 0 到 255 个字符。
    • 如果存储的字符串长度小于定义的长度,MySQL会用空格填充剩余的空间。
  2. VARCHAR:

    • 变长字符串。长度范围是 0 到 65,535 个字符。
    • 只存储实际需要的字符,不会用空格填充。
    • 频繁修改且字符串变化长度大时,可能会出现页分裂

text和blob(大数据应用)

text类型

 TINYTEXT    TEXT   MEDIUMTEXT   LONGTEXT

blob类型 

 TINYBLOB   BLOB   MEDIUMBLOB  LONGBLOB

时间日期 

datetime

特点:精度:秒   和时区无关,8个字节,范围  1001-9999年

timestamp

特点:保存1970.1.1午夜的秒数,4字节,范围1970-2038年,和时区有关默认为:NOT NULL ,通常使用即可

date(yyy-MM-dd)
time(HH:MM:ss) 

选择标识符

  1. 用来进行关联操作
  2. 在其他表中为外键
  3. 整型是最好的标志类类型
  4. 相关吧中使用相同数据类型
  5. 尽量避免字符串作为标志列,尤其是随机生成的字符串,会导致insert和selest都很慢

四.数据库账号管理

1.用户的管理操作

查询用户

 select *from user;

查询用户常见信息 

 select  user,host from user;

2.权限的相关操作

 设置权限

创建用户设置密码

create user lz identified by '123';

给lz用户授权

增加授权
grant ALL on  mysql.* to  lz@'%';

回收权限

revoke all on mysql.* from lz@'%';

 

 授予查看一张表格权限

赋予一张表权限
grant  SELECT on mysql.t_vue_user to  lz@'%';

赋予修改权限

grant  UPDATE  on mysql.t_vue_user to  lz@'%';

查看授权情况(GRANT USAGE ON *.* TO 'lz'@'%'  游客模式只能登录)

show  grants  for  'lz'@'%';

五思维导图 

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

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

相关文章

协议基础笔记

Android串口使用方法_android-serialport的使用-CSDN博客 安卓与串口通信-基础篇_安卓串口通信-CSDN博客 串口简介 串口通信是Android智能硬件开发所必须具备的能力,市面上类型众多的外设基本都是通过串口进行数据传输的,所以说不会串口通信根本就做不…

亚马逊鲲鹏系统给我带来的真实体验感

我想分享一下我对亚马逊鲲鹏系统的使用体验。我一直在寻找一个方便且高效的方法来批量注册亚马逊买家账号,而亚马逊鲲鹏系统给了我一个理想的解决方案。 使用亚马逊鲲鹏系统进行批量注册是非常简便的。系统内置了全自动化的操作功能,只要提前准备好所需的…

华为交换机入门(六):VLAN的配置

VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接互通,从而将广播报文限制在一个VLAN内。 VLAN 主要用来解决如何…

Java-执行系统命令进程-实践篇

1 需求 2 接口 3 示例 import java.io.IOException;/*** 现象:1输出后马上输出2* 原因:子进程如果没有调用waitFor(),不会阻塞主进程*/ public class Test {public static void main(String[] args) {System.out.println(1);try {Runtime.ge…

全局异常和自定义异常处理

全局异常GlobalException.java,basePackages:controller层所在的包全路径 import com.guet.score_management_system.common.domian.AjaxResult; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bi…

CMake是什么?为什么学习CMake

文章目录 1.CMake简介2.为什么要学习CMake3.什么样的项目需要用CMake3.1大型或复杂项目3.2跨平台项目3.3需要高度定制化构建的项目3.4 研究和开源项目3.5小型或简单项目 4.CMake的作用5.支持的编译器5.1Windows平台5.2Unix/Linux平台5.3macOS平台5.4其他编译器5.5支持的平台 CM…

“AI+低代码”推动高等教育变革:腾讯云携手同济大学共探数智化

引言 近年来,数字化转型已成为各行各业提高运营效率和生产力的重要手段。而对于高校来说,转型已成为建设高质量教育体系的重要策略。但相较于迈出较早一步的企业群体,本身缺乏技术基因和运营成本的学校在数字化的转型上还较为滞后。 如何改变…

图神经网络——图学习

图学习 0. 前言1. 图2. 图学习3. 图神经网络小结 0. 前言 近年来,从社交网络到分子生物学等各个领域,数据的图表示越来越普遍。图神经网络 (Graph Neural Network, GNN) 是专为处理图结构数据而设计的,要充分挖掘图表示的潜力,深…

软件测试/测试开发丨接口测试学习笔记分享

一、Mock 测试 1、Mock 测试的场景 前后端数据交互第三方系统数据交互硬件设备解耦 2、Mock 测试的价值与意义 不依赖第三方数据节省工作量节省联调 3、Mock 核心要素 匹配规则:mock的接口,改哪些接口,接口哪里的数据模拟响应 4、mock实…

DevC++ easyx实现视口编辑--像素绘图板与贴图系统

到了最终成果阶段了,虽然中间有一些代码讲起来没有意思,纯靠debug,1-1解决贴图网格不重合问题,这次是一个分支结束。 想着就是把瓦片贴进大地图里。 延续这几篇帖子,开发时间也从2023年的4月16到了6月2号,80小时基本…

【Linux】进程控制深度了解

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握Linux下的进程控制 > 毒鸡汤&#xff…

Spring Boot快速搭建一个简易商城项目【四,优化购物车篇】

在之前的基础上继续将购物车进行完善:全选,删除,加减购物车数量 效果: 全选: 计算价格: //计算总价function jisuan(){let total 0;$(".th").each((i,el)>{//each遍历 i下标 el指的是当前的…

Goole上架年度总结(2023年)

今天来总结一下2023年关于谷歌商店上架的相关政策改动和对应的拒审解决方法。 目录 政策更新与改动2023 年 2 月 22 日2023 年 4 月5 日2023 年 7 月 12 日2023 年 10 月 25 日 开发者计划政策拒审邮件内容和解决办法 政策更新与改动 2023 年 2 月 22 日 生效日期&#xff1…

普中STM32-PZ6806L开发板(HAL库函数实现-TIM5捕获上升沿, 获取输入频率)

简介 通过TIM5_CH1捕获上升沿电平, 两个上升沿的计数值计算频率;电路原理图 连接图 将 PC7 与 PA0使用跳线进行连接 其他知识 APIs /* Blocking mode: Polling */ HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel); // 堵塞捕获开启 HAL_St…

什么是高防 IP?哪些行业适合用高防 IP?

在数字化浪潮席卷全球的今天,网络安全问题日益凸显。有听说过“高防 IP”这个名词吗?它究竟是什么东西,又能在哪些领域大显身手呢? 一、什么是高防 IP? 高防 IP,顾名思义,就是具备高级防护能力…

深度生成模型之图像翻译GAN ->(个人学习记录笔记)

文章目录 深度生成模型之图像翻译GAN图像翻译的应用1. 风格迁移2. 数据增强3. 经典图像任务4. 内容创作5. 人脸图像编辑6. 人体图像编辑 图像翻译模型1. 有监督图像翻译模型2. 无监督图像翻译模型3. 多域图像翻译模型 深度生成模型之图像翻译GAN 图像翻译的应用 1. 风格迁移 …

Vue:使用IDEA开发Vue的相关配置

一、IDEA无法识别.vue文件 1、IDEA 添加Vue插件 2、添加Vue配置 File | Settings | Editor | File Types 找到 HTML 文件 在下面点号 输入*.vue 二、IDEA无法创建.vue文件 1、问题 在开发过程中,发现创建文件的界面,没有vue模板 2、相关配置 Fi…

MATLAB指令

01--根据数学公式进行绘制 1.绘制连续函数 ①一元函数 t0:0.1:10; y3*t2; plot(t,y) ②一元二次函数 t0:0.1:10; yt.*t; plot(t,y) 注意此处应为点乘 ③一元3次 t0:0.1:10; yt.*t.*t; plot(t,y) ④y1/t t0:0.1:10; y1./t; plot(t,y) ⑤yexp(t) t0:0.1:10; yexp(2*t); p…

BIO和NIO编程(待完善)

目录 IO模型 BIO NIO 常见问题 IO模型 Java共支持3种网络编程IO模式:BIO,NIO,AIO BIO 同步阻塞模型,一个客户端连接对应一个处理线程 代码示例: Server端: public class BioServer {private static …

ARM NEON 指令

NEON指令 按照操作数类型可以分为正常指令、宽指令、窄指令、饱和指令、长指令。 正常指令:生成大小相同且类型通常与操作数向量相同到结果向量。长指令:对双字向量操作数执行运算,生产四字向量到结果。所生成的元素一般是操作数元素宽度到…