当前位置: 首页 > ai >正文

MySQL数据库零基础入门教程:从安装配置到数据查询全掌握

MySQL数据库零基础入门教程:从安装配置到数据查询全掌握

引言

MySQL 是最流行的开源关系型数据库,广泛应用于互联网、电子商务和数据分析领域。本教程面向零基础读者,涵盖环境搭建、核心操作、表设计与查询、性能优化、备份恢复和实战案例,助你快速掌握 MySQL 核心技能。


目录

  1. 环境准备
  2. 安装与配置
  3. 基础操作
  4. 表结构设计
  5. 核心查询语句
  6. 进阶与事务
  7. 索引与性能优化
  8. 备份与恢复
  9. 常用工具
  10. 实战示例
  11. 总结与延伸

1. 环境准备

  • 系统:Windows 10/11、Ubuntu 18.04+、CentOS 7+
  • 硬件:CPU ≥2核,内存 ≥2GB,硬盘 ≥1GB 空间
  • 网络:建议稳定网络,方便下载和远程访问

基本概念:数据库、表、行/列、主键/外键、索引、SQL


2. 安装与配置

2.1 Windows

  1. 前往官方(dev.mysql.com)下载社区版 MSI 安装包。

  2. 选择 Developer DefaultServer only

  3. 配置向导:

    • Server Type:Standalone,端口 3306
    • Authentication:Use Strong Password Encryption
    • Accounts:设置 root 密码,可添加只读/写用户
    • Windows Service:开机自启
  4. 验证:mysql -u root -p

2.2 Ubuntu

sudo apt update
tudo apt install mysql-server
sudo mysql_secure_installation
sudo systemctl enable --now mysql

2.3 核心配置

  • 文件:/etc/mysql/my.cnfmy.ini

  • 建议:

    • bind-address=127.0.0.1(仅本地)或 0.0.0.0(允许远程)
    • innodb_buffer_pool_size=物理内存70%
    • max_connections=300
    • 开启 slow_query_log

2.4 安全加固

-- 禁用匿名,删除测试库
sudo mysql_secure_installation
-- 创建应用用户
CREATE USER 'app'@'%' IDENTIFIED BY 'StrongP@ssw0rd';
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'app'@'%';
FLUSH PRIVILEGES;

3. 基础操作

3.1 服务管理

  • Windows: net start mysql / net stop mysql
  • Linux: sudo systemctl start mysql / stop mysql

3.2 登录与退出

mysql -u 用户名 -p
exit;

3.3 数据库与表

-- 创建/删除数据库
CREATE DATABASE mydb CHARSET utf8mb4;
DROP DATABASE mydb;
USE mydb;-- 创建/删除表
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
DROP TABLE users;

4. 表结构设计

  1. 数据类型:INT, BIGINT, DECIMAL, VARCHAR, TEXT, DATE, DATETIME, BOOLEAN
  2. 主键&外键:保证数据唯一性和关联完整性
  3. 索引策略:BTREE、HASH、覆盖索引,用于加速查询
  4. 范式:1NF(原子性)、2NF(无部分依赖)、3NF(无传递依赖)

示例:用户表 & 订单表

CREATE TABLE users (id INT PK AUTO_INCREMENT, name VARCHAR(50));
CREATE TABLE orders (id INT PK AUTO_INCREMENT, user_id INT,amount DECIMAL(10,2),FOREIGN KEY (user_id) REFERENCES users(id)
);

5. 核心查询语句

CRUD

INSERT INTO users (name,email) VALUES ('张三','zhang@example.com');
SELECT * FROM users;
UPDATE users SET email='zhangsan@example.com' WHERE id=1;
DELETE FROM users WHERE id=1;

筛选&排序

SELECT * FROM users WHERE name LIKE '张%' ORDER BY created_at DESC LIMIT 10;

聚合&分组

SELECT user_id, COUNT(*) cnt FROM orders GROUP BY user_id HAVING cnt>5;

多表关联

SELECT u.name, o.amount
FROM users u
JOIN orders o ON u.id=o.user_id;

视图

CREATE VIEW vip_orders AS SELECT * FROM orders WHERE amount>1000;

6. 进阶与事务

窗口函数

SELECT user_id, amount,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY amount DESC) rn
FROM orders;

存储过程

DELIMITER $$
CREATE PROCEDURE add_user(IN n VARCHAR(50), IN e VARCHAR(100))
BEGININSERT INTO users(name,email) VALUES(n,e);
END$$
DELIMITER ;

事务

START TRANSACTION;
UPDATE accounts SET balance=balance-100 WHERE id=1;
UPDATE accounts SET balance=balance+100 WHERE id=2;
COMMIT;

执行计划&慢查询

  • EXPLAIN SELECT ... 查看查询路径
  • 分析 slow_query_log

7. 索引与性能优化

  • 合理建索引:避免过多、选择性高的列
  • 拆分大表:垂直/水平分表
  • 参数调优:innodb_buffer_pool_size、连接池设置

8. 备份与恢复

mysqldump

mysqldump -u root -p mydb > mydb.sql
mysql -u root -p mydb < mydb.sql

XtraBackup

xtrabackup --backup --target-dir=/data/backup

提示:定期全备 + 增量,恢复前停止服务


9. 常用工具

  • 可视化:MySQL Workbench、Navicat
  • 驱动:Connector/J、Connector/Python
  • ORM:SQLAlchemy、Hibernate

10. 实战示例:简易博客

  1. 表设计
CREATE TABLE posts (id INT PK AUTO_INCREMENT, title VARCHAR(100), content TEXT, created DATETIME);
CREATE TABLE comments (id INT PK AUTO_INCREMENT, post_id INT, author VARCHAR(50), text TEXT);
  1. 典型操作:分页查询、全文索引搜索

http://www.xdnf.cn/news/9097.html

相关文章:

  • 2025年AIR SCI1区TOP,具有新变异策略和外部存档机制mLSHADE-SPACMA+数值优化与点云配准,深度解析+性能实测
  • 【2025】harbor仓库搭建
  • MAR:无需量化的掩码自回归图像生成模型
  • Windows Server 2016 下封禁端口规避高危漏洞的测试实践
  • 通过chrome插件自动生成博客评论,高效发外链
  • 15.2【基础项目】使用 TypeScript 实现密码显示与隐藏功能
  • wsl2 安装 nodejs
  • 人工智能与教育科技:2025年个性化学习的新模式
  • (C++17) 未捕获异常 uncaught_exceptions
  • Java基础 Day21
  • 从无符号长整型数中提取字节
  • 【Redis】Redis安装
  • 红外遥控器接收实验:CubeMX配置底层软件
  • 基于vue框架的动漫网站noww0(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 【windwos】文本编辑器Notepad++ 替代品Notepad--
  • 汇川伺服软件设置提示使能冲突
  • 深入解读Qwen3技术报告(五):后训练对齐
  • Linux系统调用深度剖析
  • 佳易王商品进出库管理系统:数字化库存管理的全能解决方案#海鲜蔬果批发管理#批发出库管理
  • 双臂机器人运动空间与干涉分析仿真技术报告
  • 功能“递归模式”在 C# 7.3 中不可用,请使用 8.0 或更高的语言版本的一种兼容处理方案
  • 【产品经理】如何撰写产品文档
  • 解锁webpack:处理跨域devserver、摇树treeshaking、图片压缩sharp
  • ACM模式中输入输出的处理
  • 硅基计划2.0 学习总结 肆 初稿
  • 深度学习---可视化
  • Linux wget 常用命令详解
  • AI时代新词-AI伦理(AI Ethics)
  • 【Linux】磁盘管理,虚拟机CentOS扩展根分区
  • 像造汽车一样造房子:装配式建筑4.0如何重塑未来人居