目录
MySQL 简介
MySQL 是一种开源的关系型数据库管理系统(RDBMS),使用 SQL(结构化查询语言)进行操作。它广泛用于 Web 开发、企业级应用、数据分析等领域。
安装 MySQL
Windows 安装
- 下载 MySQL Installer:MySQL 官网
- 运行安装程序,选择完整安装或自定义安装。
- 配置 root 账户密码,设置端口(默认 3306)。
- 完成安装后,使用
mysql -u root -p
登录。
Linux 安装(Ubuntu 示例)
sudo apt update
sudo apt install mysql-server
sudo systemctl start mysql
sudo mysql_secure_installation
macOS 安装(使用 Homebrew)
brew install mysql
brew services start mysql
MySQL 基本操作
启动 MySQL 服务
sudo systemctl start mysql # Linux
brew services start mysql # macOS
net start mysql # Windows
连接 MySQL
mysql -u root -p
退出 MySQL
exit;
数据库和表的操作
创建数据库
CREATE DATABASE mydb;
删除数据库
DROP DATABASE mydb;
创建表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
删除表
DROP TABLE users;
修改表结构
ALTER TABLE users ADD COLUMN age INT;
ALTER TABLE users DROP COLUMN age;
数据类型
常见数据类型
- 整型:
TINYINT
、SMALLINT
、MEDIUMINT
、INT
、BIGINT
- 浮点型:
FLOAT
、DOUBLE
、DECIMAL
- 字符型:
CHAR
、VARCHAR
、TEXT
- 日期时间:
DATE
、DATETIME
、TIMESTAMP
SQL 语句
插入数据
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
查询数据
SELECT * FROM users;
SELECT name, email FROM users WHERE id = 1;
更新数据
UPDATE users SET name = 'Bob' WHERE id = 1;
删除数据
DELETE FROM users WHERE id = 1;
索引
创建索引
CREATE INDEX idx_name ON users(name);
删除索引
DROP INDEX idx_name ON users;
存储引擎
MySQL 常见存储引擎:
- InnoDB(默认,支持事务)
- MyISAM(适用于只读或少量写操作的场景)
- Memory(基于内存,适合临时数据存储)
视图
CREATE VIEW user_view AS
SELECT name, email FROM users;
存储过程与触发器
存储过程
DELIMITER //
CREATE PROCEDURE GetUsers()
BEGIN
SELECT * FROM users;
END //
DELIMITER ;
触发器
CREATE TRIGGER before_insert_users
BEFORE INSERT ON users
FOR EACH ROW
SET NEW.created_at = NOW();
用户权限管理
创建用户
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';
授权
GRANT ALL PRIVILEGES ON mydb.* TO 'user1'@'localhost';
撤销权限
REVOKE ALL PRIVILEGES ON mydb.* FROM 'user1'@'localhost';
删除用户
DROP USER 'user1'@'localhost';
备份与恢复
备份数据库
mysqldump -u root -p mydb > backup.sql
恢复数据库
mysql -u root -p mydb < backup.sql
性能优化
- 使用索引
- 避免
SELECT *
,只查询必要的字段 - 使用
EXPLAIN
分析查询性能 - 定期优化表结构(
OPTIMIZE TABLE
) - 使用缓存(Query Cache 或 Redis)
常见问题
1. 忘记 root 密码怎么办?
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
2. 解决 “MySQL server has gone away”
调整 max_allowed_packet
参数,提高默认值:
SET GLOBAL max_allowed_packet = 64M;
参考资料
这样的一篇 MySQL 教程包含了从基础到进阶的知识点,你觉得需要补充哪些内容?
发表回复