Mysql之数据库基础

🌟 各位看官好,我是 maomi_9526

🌍 种一棵树最好是十年前,其次是现在!

🚀 今天来学习Mysql的相关知识。

👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦

1、什么是数据库

在日常软件开发中,数据的存储与管理是一项基础而重要的任务。虽然文件系统也能存储数据,但存在以下问题:

  • 安全性差:文件容易被篡改或丢失

  • 查询效率低:文件不利于数据的快速查询

  • 扩展性差:难以处理海量数据

  • 编程复杂:程序控制文件操作不便

为解决上述问题,专家们设计了数据库系统,它具备高效、安全、可扩展、易于编程控制等优势。 数据库的掌握程度是衡量程序员能力的重要指标之一。

2、主流数据库类型

  1. SQL Server:微软开发,适用于中大型项目,广泛用于.NET平台。

  2. Oracle:甲骨文公司出品,性能强大,适合企业级复杂业务,但并发性相对一般。

  3. MySQL:全球最流行的开源数据库,适合高并发但不复杂的应用,如电商、SNS、论坛。

  4. PostgreSQL:源自加州大学伯克利分校,功能强大,适用于商业、学术用途。

  5. SQLite:轻量级数据库,适合嵌入式系统,占用资源极低。

  6. H2:基于Java开发的嵌入式数据库,可嵌入到Java应用程序中。

3、MySQL 基本使用

3.1 安装
  • Linux(CentOS):可通过编译源码或使用yum安装MariaDB

  • Windows:提供图形化安装界面,适合初学者

3.2 连接数据库
复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p
  • 若省略 -h,默认连接本地

  • 若省略 -P,默认使用3306端口

3.3 服务器管理
  • Windows下可通过运行 services.msc 打开服务管理器进行启动、停止、重启操作
3.4 数据库结构

数据库系统由三部分组成:

  • 数据库服务器:运行数据库程序的主机

  • 数据库:一个逻辑数据集合,通常一个项目对应一个数据库

  • :保存实体数据的基本结构单元

3.5 示例操作
复制代码
create database helloworld;
use helloworld;
create table student(
  id int,
  name varchar(32),
  gender varchar(2)
);
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
select * from student;

4、MySQL 架构

MySQL 是跨平台数据库,支持 Unix/Linux、Windows、MacOS 等多种操作系统。尽管底层实现不同,但在各平台上保持一致的逻辑架构。

5、SQL 语言分类

分类 说明 示例
DDL 数据定义语言,用于定义数据结构 create, drop, alter
DML 数据操作语言,用于增删改数据 insert, update, delete
DQL 数据查询语言,DML的子集 select
DCL 数据控制语言,用于权限控制与事务处理 grant, revoke, commit

6、MySQL 存储引擎

6.1 概念

存储引擎是指数据库系统中处理数据的底层实现方式,包括数据的存储、索引方式及查询机制等。

6.2 特点

MySQL 采用插件式存储引擎设计,支持多种存储引擎(如 InnoDB、MyISAM 等),可根据业务需求灵活选择。

6.3 查看支持的引擎
复制代码
show engines;
6.3 常见存储引擎对比
引擎 特点
InnoDB 支持事务、行级锁、崩溃恢复,是默认引擎
MyISAM 查询快但不支持事务,表级锁
Memory 数据存于内存中,速度极快,断电丢失数据
相关推荐
杨云龙UP几秒前
CentOS 7上离线部署MySQL 8.0.X操作指南(二进制压缩包部署+独立目录部署,不在自动默认路径配置下安装)
linux·运维·服务器·mysql·centos
StarRocks_labs4 分钟前
StarRocks:Connect Data Analytics with the World
数据库·starrocks·iceberg·存算分离·lakehouse 架构
没有bug.的程序员21 分钟前
ShardingSphere 与分库分表:分布式数据库中间件实战指南
java·数据库·分布式·中间件·分布式数据库·shardingsphere·分库分表
Elastic 中国社区官方博客1 小时前
理解 Elasticsearch 中的分块策略
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
Czi.1 小时前
DataGrip+postgresql+postgis
数据库·postgresql
GreatSQL社区2 小时前
GreatSQL 优化技巧:最值子查询与窗口函数相互转换
java·服务器·数据库
全栈工程师修炼指南2 小时前
DBA | MySQL 数据库基础数据操作学习实践笔记
数据库·笔记·学习·mysql·dba
牛奶咖啡132 小时前
通过keepalived搭建MySQL双主模式的MySQL集群
数据库·mysql·mysql双主互备模式架构·mysql双主互备模式搭建·mysql主主互备模式·mysql双主互备实现高可用·keepalived高可用
linuxxx1103 小时前
Django HttpRequest 对象的常用属性
数据库·sqlite
熊文豪3 小时前
政务系统国产化的“教科书级“实践:MongoDB平滑迁移成功案例解析
数据库·mongodb·政务·kingbasees·金仓数据库