【MySQL】数据库基础

在这里插入图片描述

🌱博客主页:青竹雾色间.
😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注
在这里插入图片描述
✨人生如寄,多忧何为 ✨



数据库基础

1.1 什么是数据库

为什么我们需要数据库?尽管我们可以使用文件来存储数据,但是文件存储数据存在一些缺点:

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

数据库存储介质:

  • 磁盘
  • 内存
    为了解决这些问题,数据库应运而生。数据库是一种更有效地管理数据的工具,它可以帮助我们更安全、更高效地存储和管理数据,因此,数据库水平成为衡量一个程序员水平的重要指标。

1.2 主流数据库

数据库领域有多个主流的解决方案,其中包括:

  • SQL Server: 微软的产品,是.NET程序员的首选,适用于中大型项目。
  • Oracle: 甲骨文的产品,适合大型项目和复杂的业务逻辑,但并发性一般不如MySQL。
  • MySQL: 是世界上最受欢迎的数据库之一,属于甲骨文旗下,具有良好的并发性能,主要用于电商、SNS和论坛等场景。
  • PostgreSQL: 是加州大学伯克利分校开发的关系型数据库,不论是私用、商用还是学术研究都可以免费使用。
  • SQLite: 是一款轻型的数据库管理系统,被广泛应用于嵌入式设备中,资源占用较低。
  • H2: 是用Java开发的嵌入式数据库,可以直接嵌入到应用项目中。

1.3 基本使用

1.3.1 MySQL安装

1.3.2 连接服务器

使用以下命令连接到MySQL服务器:

mysql -h 127.0.0.1 -P 3306 -u root -p

注意:

  • 如果未指定 -h 127.0.0.1,默认连接到本地主机。
  • 如果未指定 -P 3306,默认连接到3306端口。

1.3.3 服务器管理

在Windows系统中,通过运行 services.msc 命令来打开服务管理器,可以对MySQL服务进行停止、暂停和重启等操作。
在Linux中

systemctl stop mysql#停止MySQL服务
systemctl pause mysql#暂停MySQL服务
systemctl start mysql#启动MySQL服务
systemctl restart mysql#重启MySQL服务

#启用或禁用服务的自启动功能
 systemctl enable mysql
 systemctl disable mysql

1.3.4 服务器、数据库、表关系

数据库服务器安装后,可以管理多个数据库,每个数据库可以包含多张表,用于存储程序中的实体数据。
在这里插入图片描述

1.3.5 使用案例

  1. 创建数据库
create database `库名`;
  1. 使用数据库
use `库名`;
  1. 创建数据库表
create table `表名`(

);

  1. 向表中插入数据
insert into `表名` 
  1. 查询表中的数据
select * from `表名`;

示例

-- 创建数据库
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;

1.4 MySQL架构

MySQL是一个可移植的数据库管理系统,几乎能在所有操作系统上运行。它的物理体系结构在各个平台上基本一致。
在这里插入图片描述

1.5 SQL分类

SQL(Structured Query Language)可以分为以下几类:

  • DDL(Data Definition Language): 数据定义语言,用于维护数据结构,包括 createdropalter等指令。
  • DML(Data Manipulation Language): 数据操纵语言,用于对数据进行操作,包括 insertdeleteupdate等指令。
  • DCL(Data Control Language): 数据控制语言,用于权限管理和事务处理,包括 grantrevokecommit等指令。

1.6 存储引擎

1.6.1 存储引擎

存储引擎是指数据库管理系统如何存储数据、建立索引以及更新、查询数据的技术实现方法。

1.6.2 查看存储引擎

show engines;

在这里插入图片描述

1.6.3 存储引擎对比

(这部分内容需要进一步补充)以下是几种常见的存储引擎的简要对比:

  1. InnoDB

    • 事务支持:支持事务和ACID属性,适合于需要强调数据完整性和事务支持的应用。
    • 行级锁定:具有行级锁定的能力,可实现高并发的读写操作。
    • 外键约束:支持外键约束,可确保数据的一致性。
    • 索引:支持全文索引和B+树索引,适用于复杂查询和高性能的读操作。
  2. MyISAM

    • 全文索引:支持全文索引,适用于文本搜索等应用。
    • 表级锁定:采用表级锁定,对于大量的读操作而言性能较好。
    • 不支持事务:不支持事务和ACID属性,不适合需要事务支持的应用。
    • 不支持外键约束:不支持外键约束,数据完整性依赖应用层处理。
  3. Memory(也称为Heap):

    • 数据存储在内存中:所有数据都存储在内存中,读写速度非常快。
    • 不持久化:数据不持久化到磁盘,数据库重启后数据丢失。
    • 适用于缓存和临时数据:适用于缓存和临时数据存储,但不适合持久化数据。
  4. CSV

    • 存储为CSV文件:数据以逗号分隔值的形式存储在CSV文件中。
    • 不支持事务和索引:不支持事务和索引,适合简单的数据存储和交换。
    • 可移植性:数据存储在文本文件中,可移植性较好。
  5. Archive

    • 压缩存储:采用压缩算法存储数据,节省存储空间。
    • 只支持插入和查询:只支持插入和查询操作,不支持更新和删除。
    • 适用于归档和日志存储:适用于需要长期保存数据的归档和日志存储场景。

在这里插入图片描述

相关推荐

  1. 数据库MySQL数据库基础

    2024-04-20 11:02:06       43 阅读
  2. MySQL数据库基础

    2024-04-20 11:02:06       33 阅读
  3. MySQL数据库基础

    2024-04-20 11:02:06       56 阅读
  4. MySQL数据库基础

    2024-04-20 11:02:06       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-20 11:02:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-20 11:02:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-20 11:02:06       82 阅读
  4. Python语言-面向对象

    2024-04-20 11:02:06       91 阅读

热门阅读

  1. es6 常用的object归纳总结和部分数组纠结总结

    2024-04-20 11:02:06       30 阅读
  2. Ribbon负载均衡

    2024-04-20 11:02:06       34 阅读
  3. 【Node.js】child_process 子进程

    2024-04-20 11:02:06       36 阅读
  4. tensorflow list_files需要注意的点

    2024-04-20 11:02:06       39 阅读
  5. Create2024百度AI开发者大会记录

    2024-04-20 11:02:06       33 阅读
  6. Remote access minikube cluster远程访问minikube k8s集群

    2024-04-20 11:02:06       34 阅读
  7. 学习基于pytorch的VGG图像分类 day4

    2024-04-20 11:02:06       35 阅读
  8. 独孤思维:副业赚钱的课程被盗了

    2024-04-20 11:02:06       31 阅读
  9. 1.8、数位DP(算法提高课)

    2024-04-20 11:02:06       36 阅读