MySQL 教程

MySQL 教程

目录

  1. 简介
  2. 安装 MySQL
    • Windows
    • macOS
    • Linux
  3. 连接 MySQL
    • 命令行客户端
    • 图形化工具
  4. 基础操作
    • 创建数据库
    • 删除数据库
    • 选择数据库
  5. 表的操作
    • 创建表
    • 删除表
    • 插入数据
    • 查询数据
    • 更新数据
    • 删除数据
  6. 高级操作
    • 索引
    • 视图
    • 存储过程
    • 触发器
  7. 用户管理
    • 创建用户
    • 授权
    • 删除用户
  8. 备份与恢复
    • 备份
    • 恢复
  9. 常见问题

简介

MySQL 是一种关系型数据库管理系统,由瑞典公司 MySQL AB 开发,目前属于 Oracle 公司。MySQL 是世界上最流行的开放源码数据库之一,广泛应用于各种应用场景中,尤其是 Web 应用。

安装 MySQL

Windows

  1. 下载 MySQL 安装包:MySQL 下载页面
  2. 运行安装包,选择“Custom”安装类型。
  3. 选择需要安装的 MySQL 产品,通常包括 MySQL Server 和 MySQL Workbench。
  4. 按照安装向导完成安装,设置 root 用户密码。
  5. 安装完成后,启动 MySQL Server,并使用 MySQL Workbench 或命令行客户端连接。

macOS

  1. 使用 Homebrew 安装 MySQL:
    brew install mysql
    
  2. 安装完成后,启动 MySQL 服务:
    brew services start mysql
    
  3. 设置 root 用户密码:
    mysql_secure_installation
    
  4. 使用命令行客户端连接 MySQL:
    mysql -u root -p
    

Linux

  1. 使用包管理器安装 MySQL(以 Ubuntu 为例):
    sudo apt update
    sudo apt install mysql-server
    
  2. 安装完成后,启动 MySQL 服务:
    sudo systemctl start mysql
    
  3. 设置 root 用户密码:
    sudo mysql_secure_installation
    
  4. 使用命令行客户端连接 MySQL:
    mysql -u root -p
    

连接 MySQL

命令行客户端

  1. 打开终端或命令提示符。
  2. 运行以下命令连接 MySQL:
    mysql -u 用户名 -p
    
  3. 输入密码后,即可进入 MySQL 命令行模式。

图形化工具

  1. MySQL Workbench:MySQL 官方提供的图形化管理工具。
  2. phpMyAdmin:基于 Web 的 MySQL 管理工具。
  3. Navicat:流行的第三方数据库管理工具,支持多种数据库类型。

基础操作

创建数据库

CREATE DATABASE 数据库名;

删除数据库

DROP DATABASE 数据库名;

选择数据库

USE 数据库名;

表的操作

创建表

CREATE TABLE 表名 (
    列名1 数据类型1,
    列名2 数据类型2,
    ...
    主键约束 (列名)
);

示例:

CREATE TABLE users (
    id INT AUTO_INCREMENT,
    name VARCHAR(100),
    email VARCHAR(100),
    PRIMARY KEY (id)
);

删除表

DROP TABLE 表名;

插入数据

INSERT INTO 表名 (列名1, 列名2, ...) VALUES (1,2, ...);

示例:

INSERT INTO users (name, email) VALUES ('Alice', '[email protected]');

查询数据

SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;

示例:

SELECT * FROM users;

更新数据

UPDATE 表名 SET 列名1 =1, 列名2 =2, ... WHERE 条件;

示例:

UPDATE users SET email = '[email protected]' WHERE name = 'Alice';

删除数据

DELETE FROM 表名 WHERE 条件;

示例:

DELETE FROM users WHERE name = 'Alice';

高级操作

索引

索引可以提高查询效率。

CREATE INDEX 索引名 ON 表名 (列名);

示例:

CREATE INDEX idx_name ON users (name);

视图

视图是虚拟表,可以简化复杂查询。

CREATE VIEW 视图名 AS SELECT 语句;

示例:

CREATE VIEW user_emails AS SELECT name, email FROM users;

存储过程

存储过程是预编译的 SQL 代码块,提高了执行效率。

CREATE PROCEDURE 存储过程名 (参数列表)
BEGIN
    SQL 语句;
END;

示例:

CREATE PROCEDURE GetUserEmail (IN userName VARCHAR(100), OUT userEmail VARCHAR(100))
BEGIN
    SELECT email INTO userEmail FROM users WHERE name = userName;
END;

触发器

触发器是在特定事件发生时自动执行的 SQL 代码块。

CREATE TRIGGER 触发器名 触发时间 触发事件 ON 表名
FOR EACH ROW
BEGIN
    SQL 语句;
END;

示例:

CREATE TRIGGER before_insert_user
BEFORE INSERT ON users
FOR EACH ROW
BEGIN
    SET NEW.created_at = NOW();
END;

用户管理

创建用户

CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';

示例:

CREATE USER 'bob'@'localhost' IDENTIFIED BY 'password123';

授权

GRANT 权限 ON 数据库.* TO '用户名'@'主机';

示例:

GRANT ALL PRIVILEGES ON mydb.* TO 'bob'@'localhost';

删除用户

DROP USER '用户名'@'主机';

示例:

DROP USER 'bob'@'localhost';

备份与恢复

备份

使用 mysqldump 工具备份数据库。

mysqldump -u 用户名 -p 数据库名 > 备份文件.sql

示例:

mysqldump -u root -p mydb > mydb_backup.sql

恢复

使用 mysql 工具恢复数据库。

mysql -u 用户名 -p 数据库名 < 备份文件.sql

示例:

mysql -u root -p mydb < mydb_backup.sql

常见问题

  1. 连接错误:Access denied for user ‘username’@‘host’ (using password: YES)

    • 检查用户名和密码是否正确。
    • 检查用户是否有连接权限。
    • 检查 MySQL 服务是否运行。
  2. 无法启动 MySQL 服务

    • 检查 MySQL 配置文件是否正确。
    • 检查系统日志文件获取更多信息。
  3. 忘记 root 用户密码

    • 停止 MySQL 服务。
    • 使用 --skip-grant-tables 参数启动 MySQL 服务。
    • 连接 MySQL 并重置 root 用户密码。
    • 重新启动 MySQL 服务。

以上即为 MySQL 的详细教程,希望对您有所帮助。如果您有任何问题,请随时与我联系。

你可能感兴趣的:(mysql,数据库)