【MySQL】数据库入门基础

文章目录

  • 一、数据库的概念
    • 1. 什么是数据库
    • 2. 主流数据库
    • 3. mysql和mysqld的区别
  • 二、MySQL基本使用
    • 1. 安装MySQL服务器
      • 在 CentOS 上安装 MySQL 服务器
      • 在 Ubuntu 上安装 MySQL 服务器
      • 验证安装
    • 2. 服务器管理
      • 启动服务器
      • 查看服务器
      • 连接服务器
      • 停止服务器
      • 重启服务器
    • 3. 服务器,数据库,表关系
  • 三、MySQL架构
  • 四、SQL分类
  • 五、存储引擎
    • 查看支持的存储引擎
    • MySQL支持的几个存储引擎
    • MySQL存储引擎功能对比

一、数据库的概念

1. 什么是数据库

存储数据用文件就可以了,文件已经提供了数据存储功能,为什么还要弄个数据库?因为在用户角度看来,文件没有提供非常好的数据管理能力。

文件保存数据有以下几个缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

数据库存储介质:

  • 磁盘
  • 内存

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,数据库能更有效的管理数据

2. 主流数据库

数据库介绍
SQL Sever微软的产品,.Net程序员的最爱,中大型项目。
Oracle甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

3. mysql和mysqld的区别

请添加图片描述

  1. mysql是数据库服务的客户端
  2. mysqld是数据库服务的服务端
  3. mysql的本质是:基于C(mysql)S(mysqld)模式的一种网络服务,所以可以通过netstat命令查询网络连接状态:
    sudo netstat -nltpu
    
    请添加图片描述

二、MySQL基本使用

1. 安装MySQL服务器

在 CentOS 上安装 MySQL 服务器

  1. 更新系统包

    sudo yum update -y
    
  2. 安装 MySQL 存储库
    下载并安装 MySQL 的官方 Yum 存储库:

    wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
    
  3. 安装 MySQL 服务器

    sudo yum install mysql-server -y
    
  4. 启动 MySQL 服务并设置开机自启

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    
  5. 获取临时 root 密码
    安装完成后,MySQL 会为 root 用户生成一个临时密码,你可以通过以下命令查看:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  6. 运行安全脚本
    使用临时密码登录并运行安全安装脚本来设置 root 密码并配置安全选项:

    sudo mysql_secure_installation
    

在 Ubuntu 上安装 MySQL 服务器

  1. 更新系统包

    sudo apt update
    sudo apt upgrade -y
    
  2. 安装 MySQL 服务器
    Ubuntu 18.04 和更高版本自带了 MySQL 5.7 或更高版本的包:

    sudo apt install mysql-server -y
    
  3. 启动 MySQL 服务并设置开机自启

    sudo systemctl start mysql
    sudo systemctl enable mysql
    
  4. 运行安全脚本
    安装完成后,运行安全安装脚本来配置 MySQL:

    sudo mysql_secure_installation
    

    在运行此脚本过程中,你将设置 root 用户的密码,并选择一些安全配置选项,例如删除匿名用户、禁止远程 root 登录、删除测试数据库等。

验证安装

无论是在 CentOS 还是 Ubuntu 上,安装完成后,你都可以通过以下命令登录 MySQL 并验证安装:

mysql -u root -p

输入你设置的 root 密码后,就可以进入 MySQL 控制台,验证 MySQL 是否正常运行。

2. 服务器管理

启动服务器

systemctl start mysqldservice mysqld start命令可以启动MySQL服务器。

查看服务器

sudo systemctl status mysqld

请添加图片描述

连接服务器

连接到MySQL服务器:

mysql -h127.0.0.1 -P3306 -uroot -p
  • -h:表示你要连接的MySQL服务器所在的主机,127.0.0.1表示本主机。
  • -P:表示你要连接的MySQL服务器所对应的端口号,一般默认是3306。
  • -u:表示用哪一个用户连接MySQL服务器,root表示超级用户。
  • -p:表示该用户对应的密码,密码可以直接跟在-p后面,也可以回车后输入。

此外,如果要连接的是本地的MySQL服务器,那么连接时只需要指明用户名和用户密码即可。如下:

mysql -uroot -p

连接到MySQL服务器后,就可以输入各种SQL语句让服务器执行了,当要退出mysql时直接输入quitexit\q即可。

停止服务器

通过systemctl stop mysqld命令或service mysqld stop命令可以停止MySQL服务器。

重启服务器

通过systemctl restart mysqld命令或service mysqld restart命令可以重启MySQL服务器。

3. 服务器,数据库,表关系

  1. 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库,这些数据库被存放在一个指定目录底下:请添加图片描述

  2. 一个数据库,就对应Linux下的一个同名的目录:请添加图片描述

  3. 在一个数据库中建立一张表,本质就是在这个数据库的目录下创建数据文件:请添加图片描述

数据库服务器、数据库和表的关系如下:
请添加图片描述

三、MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

请添加图片描述

四、SQL分类

  • DDL【Data Definition Language】数据定义语言,用来维护存储数据的结构
    代表指令: create, drop, alter

  • DML【Data Manipulation Language】数据操纵语言,用来对数据进行操作
    代表指令: insert,delete,update

    • DML中又单独分了一个DQL【Data Query Language】,数据查询语言
      代表指令: select
  • DCL【Data Control Language】数据控制语言,主要负责权限管理和事务
    代表指令: grant,revoke,commit

五、存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看支持的存储引擎

show engines;

请添加图片描述

MySQL支持的几个存储引擎

EngineSupportCommentTransactionsXASavepoints
InnoDBDEFAULTSupports transactions, row-level locking, and foreign keysYESYESYES
MRG_MYISAMYESCollection of identical MyISAM tablesNONONO
MEMORYYESHash based, stored in memory, useful for temporary tablesNONONO
BLACKHOLEYES/dev/null storage engine (anything you write to it disappears)NONONO
CSVYESCSV storage engineNONONO
PERFORMANCE_SCHEMAYESPerformance SchemaNONONO
FEDERATEDNOFederated MySQL storage engineNULLNULLNULL
引擎支持评论事务支持XA保存点支持
InnoDB默认支持事务、行级锁定和外键
MRG_MYISAM相同MyISAM表的集合
MEMORY基于哈希,存储在内存中,适用于临时表
BLACKHOLE/dev/null存储引擎(写入的数据会消失)
MyISAMMyISAM存储引擎
CSVCSV存储引擎
ARCHIVE归档存储引擎
PERFORMANCE_SCHEMA性能模式
FEDERATED联邦MySQL存储引擎NULLNULLNULL

MySQL存储引擎功能对比

FeatureMyISAMBDBMemoryInnoDBArchiveNDB
Storage LimitsNoNoYes64TBNoYes
Transactions (commit, rollback, etc.)
Locking granularityTablePageTableRowRowRow
MVCC/Snapshot Read
Geospatial support
B-Tree indexes
Hash indexes
Full text search index
Clustered index
Data Caches
Index Caches
Compressed data
Encrypted data (via function)
Storage cost (space used)LowLowN/AHighVery LowLow
Memory costLowLowMediumHighLowHigh
Bulk Insert SpeedHighHighHighLowVery HighHigh
Cluster database support
Replication support
Foreign key support
Backup/Point-in-time recovery
Query cache support
Update Statistics for Data Dictionary
功能MyISAMBDBMemoryInnoDBArchiveNDB
存储限制64TB
事务(提交、回滚等)
锁定粒度
MVCC/快照读取
地理空间支持
B-Tree 索引
哈希索引
全文搜索索引
聚簇索引
数据缓存
索引缓存
压缩数据
加密数据(通过函数)
存储成本(空间使用)不适用非常低
内存成本中等
批量插入速度非常高
集群数据库支持
复制支持
外键支持
备份/时间点恢复
查询缓存支持
数据字典更新统计

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

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

相关文章

美团发布2024年一季度财报:营收733亿元,同比增长25%

6月6日,美团(股票代码:3690.HK)发布2024年第一季度业绩报告。受益于经济持续回暖和消费复苏,公司各项业务继续取得稳健增长,营收733亿元(人民币,下同),同比增长25%。 财报显示,一季度,美团继续…

$MPC 登录MEXC,加速Partisia Blockchain 生态市场进程

Partisia Blockchain是一个以MPC技术方案为基础,具备可审计特性的隐私Layer1生态,与此同时,该链通过系列创新的系统架构,能够兼顾高迸发、安全、可拓展性以及可互操作特性。基于系列技术特性,Partisia Blockchain正在构…

Mybatis 查询TypeHandler使用,转译查询数据(逗号分隔转List)

创建自定义的Hanndler /*** Package: com.datalyg.common.core.handler* ClassName: CommaSeparatedStringTypeHandler* Author: dujiayu* Description: 用于mybatis 解析逗号拼接字符串* Date: 2024/5/29 10:03* Version: 1.0*/ public class CommaSeparatedStringTypeHandle…

【重学C语言】十八、SDL2 图形编程介绍和环境配置

【重学C语言】十八、SDL2 图形编程介绍和环境配置 **SDL2介绍**SDL 2用途SDL 在哪些平台上运行?下载和安装 SDL2安装 SDL2 clion 配置 SDL2 SDL2介绍 SDL2(Simple DirectMedia Layer 2)是一个开源的跨平台多媒体开发库,主要用于游…

LabVIEW冲击响应谱分析系统

LabVIEW冲击响应谱分析系统 开发了一种基于LabVIEW开发的冲击响应谱分析系统,该系统主要用于分析在短时间内高量级输入力作用下装备的响应。通过改进的递归数字滤波法和样条函数法进行冲击响应谱的计算,实现了冲击有效持续时间的自动提取和响应谱的精准…

JVM学习-Arthas

Arthas Alibaba开源的Java诊断工具,在线排查问题,无需重启,动态跟踪Java代码,实时监控JVM状态Arthas支持JDK6,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的Tab自动补全功能&#…

数据资产入表-数据治理-指标建设标准

前情提要:数据价值管理是指通过一系列管理策略和技术手段,帮助企业把庞大的、无序的、低价值的数据资源转变为高价值密度的数据资产的过程,即数据治理和价值变现。上一讲介绍了标签标准设计的基本逻辑和思路。数据资产入表-数据治理-标签设计…

stm32太阳能追光储能系统V2

大家好,我是 小杰学长 stm32太阳能追光储能系统V2. 增加了命令行交互和内置AT指令解析框架 (就是可以用电脑串口发送at指令控制板子的所有功能) 改动了spi 换成硬件 改动了硬件电源 增加了pcb原理图 附带上pcb源文件 增加了freertos 互斥锁…

node.js漏洞——

一.什么是node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常…

2024骨传导耳机品牌排行前五名汇总,揭晓年度最强王者骨传导机型!

骨传导耳机自问世以来,便迅速在蓝牙耳机市场中崭露头角,并且凭借特殊的传声方式和特健康的佩戴方式深得消费者的喜爱。然而,随着骨传导耳机逐渐热门,市场中品牌越来越多,也逐渐出现了一些劣质品牌,这些品牌…

Activity->Activity中动态添加Fragment->Fragment回退栈BackStack

Fragment回退栈 Fragment回退栈用于管理Fragment的导航历史(添加、删除、替换)。每个Activity都有一个包含其所有Fragment的FragmentManager,调用其addToBackStack方法时,这个事务就会被添加到FragmentManager的回退栈中当用户按下返回键时,…

关于计算机是如何工作的

计算机的发展历程 世界上的第一个计算机 冯诺依曼机构体系 1.存储器 (包括内存(存储空间小,访问速度快,成本高,掉电后数据丢失) 外存(硬盘,软盘,U盘,光盘)),存储空间小,访问速度慢,成本低,掉电后数据仍在 2.CPU(中央处理单元,计算机最核心的部分,用于算术运算和逻辑判断),…

【Python】教你彻底了解Python中的模块和包

​​​​ 文章目录 一、模块的概念1. 导入模块2. 导入特定对象3. 给模块或对象取别名 二、标准库模块1. 常用标准库模块2. 使用示例 三、自定义模块1. 创建模块2. 使用自定义模块 四、包的结构与使用1. 创建包2. 使用包中的模块 五、包的深入使用1. 相对导入2. 子包3. 使用子包…

【排序】冒泡排序

在我们的生活中,到处都离不开排序的作用,考试分数要排序,商场购物要排序,可以说排序对我们来说处处存在,那么从本章开始,我将要依次分享一些排序方法,从易到难,包括冒泡,…

CNN卷积神经网络

一、概述 卷积神经网络(CNN)是深度学习领域的重要算法,特别适用于处理具有网格结构的数据,比如说图像和音频。它起源于二十世纪80至90年代,但真正得到快速发展和应用是在二十一世纪,随着深度学习理论的兴起…

Apple开发者证书创建完整过程

1.创建CSR文件: 打开钥匙串访问程序 选择从证书颁发机构请求 创建证书 保存CSR文件到桌面 成功如下: 开始创建证书: 选择

分布式ID生成方式

1.UUID uuid方式存在问题:占用字节数比较大;ID比较随机,作为MySQL主键写入库时,为了保证顺序性将导致BTree节点分裂比较频繁,影响IO性能。 2.数据库方式 步长step 3,即为机器的数量。 第一台机器&#x…

web刷题记录(4)

[GKCTF 2020]cve版签到 进来应该是给了个提示了,就是要以.ctfhub.com结尾 还有一个超链接,这题的ssrf还是挺明显的,抓包看看 发现回显里面有提示 说是和本地有关,那么也就是说,要访问127.0.0.1,大概意思就…

项目实战系列——WebSocket——websock简介

最近项目中需要用到mes和本地客户端进行实时通讯,本来想用webapi进行交互的,但是考虑到高效和实时性,就采用这一项技术。 以往采用的方式——长轮询 客户端主动向服务器发送一个请求,如果服务器没有更新的数据,客户端…

大语言模型 (LLM) 窥探未来

随着2023年的岁月渐渐走向尾声,我们站在人工智能的前沿,回望大语言模型(Large Language Models, LLM)所走过的道路,同时也不禁展望未来。从初步尝试到成为人工智能领域的万千宠爱,一种又一种的技术突破&…