MySQL数据库入门指南

目录

数据库核心概念

什么是数据库?

  • 定义:数据库是一个长期存储在计算机内、有组织的、可共享的、统一管理的数据集合。
  • 简单理解:就像一个电子化的文件柜,你可以在这个文件柜里创建不同的抽屉(数据库),在每个抽屉里放不同的文件夹(表),每个文件夹里是结构化的文件(数据记录)。

数据库管理系统

  • ** DBMS:**我们通常说的"数据库"软件,如 MySQL、Oracle、SQL Server,其实准确来说是数据库管理系统。它是位于用户和操作系统之间的一层数据管理软件,它帮助我们科学地组织、存储和管理数据。

DBMS 的主要功能:

  • 数据定义:提供数据定义语言(DDL),用于创建、修改数据库和表结构。
  • 数据操作:提供数据操作语言(DML),用于对数据进行增、删、改、查。
  • 数据控制:提供数据控制语言(DCL),管理权限和事务,保证数据的安全性和完整性。
  • 数据维护:提供数据备份、恢复、完整性检查等功能。

为什么需要数据库?

相比于直接使用文件(如 Excel、TXT)存储数据,数据库的优势在于:

  1. **持久化存储:**数据被可靠地保存在存储设备中。
  2. **结构化存储与管理:**数据按特定的数据模型(如关系模型)组织,管理高效。
  3. **数据共享:**允许多个用户或应用程序同时安全地访问数据。
  4. **减少数据冗余:**通过合理的数据库设计,可以极大避免数据的重复存储。
  5. **数据独立性:**数据的逻辑结构(用户看到的)和物理存储(磁盘上的)是分开的,物理存储的改变不影响应用程序。
  6. **数据一致性:**通过事务和约束,保证数据符合预定义的规则。
  7. **并发控制:**当多个用户同时修改数据时,DBMS 能防止数据出现混乱。

主流数据库

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

SQL 语言简介

SQL 是用于与关系型数据库通信的标准语言。

  • DDL - 数据定义语言:用于定义和修改数据库结构。
    • CREATE: 创建数据库、表、索引等。
    • ALTER: 修改已有的数据库对象。
    • DROP: 删除数据库、表等。
  • DML - 数据操作语言:用于操作表中的数据。
    • INSERT: 插入新数据。
    • UPDATE: 更新已有数据。
    • DELETE: 删除数据。
  • DQL - 数据查询语言:用于查询数据。
    • SELECT: 从一个或多个表中检索数据。这是最核心、最常用的命令。
  • DCL - 数据控制语言:用于控制访问权限。
    • GRANT: 授予用户权限。
    • REVOKE: 撤销用户权限。

基本使用

MySQL安装

  • 方式一:使用 MySQL Installer(Windows 用户推荐)

官方安装包一键安装

  • 下载
    * 访问 dev.mysql.com/downloads/mysql/
    * 下载 MySQL Community Server 安装包
  • 安装
    * 运行安装程序
    * 选择 "Developer Default"(开发者默认)
    * 一路点击 "Next" 直到安装完成
  • 配置
    * 设置 root 用户密码(务必牢记!)
    * 其他选项保持默认
    * 完成配置
  • 验证
    * 打开 MySQL Command Line Client
    * 输入设置的 root 密码
    * 看到 mysql> 提示符即表示成功
  • 方式二:云服务器MySQL安装

Ubuntu/Debian:

bash 复制代码
sudo apt
 update
sudo apt install mysql-server -y
sudo
 systemctl start mysql
sudo systemctl enable mysql

CentOS/RHEL:

bash 复制代码
sudo yum install mysql-server -y
# 或对于新版本:sudo dnf install mysql-server -y
sudo
 systemctl start mysqld
sudo systemctl enable mysqld

连接服务器

sql 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p
bash 复制代码
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

服务器,数据库,表关系

  • 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
  • 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
  • 数据库服务器、数据库和表的关系如下:

使用案例

  • 创建数据库
sql 复制代码
create database helloworld;
  • 使用数据库
sql 复制代码
use helloworld;
  • 创建数据库表
sql 复制代码
create table student(
id int,
name varchar(32),
gender varchar(2)
);
  • 表中插入数据
sql 复制代码
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
  • 查询表中的数据
sql 复制代码
select * from student;

MySQL架构

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

存储引擎

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

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看存储引擎

sql 复制代码
show engines;

存储引擎对比

相关推荐
倔强的石头_15 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
阿巴斯甜21 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker21 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95271 天前
Andorid Google 登录接入文档
android
黄林晴1 天前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android
阿巴斯甜2 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇2 天前
AOSP15 Input专题InputReader源码分析
android