MySQL必知必会
MySQL 应知应会涵盖了关系型数据库操作的基础知识和关键技能,这些内容是掌握 MySQL 必须熟悉的内容。
1. 基础概念
(1)关系型数据库
- 数据以表格(行和列)的形式存储,表之间可以通过外键关联。
- 数据库的核心是 ACID 原则:
- Atomicity(原子性):事务是不可分割的操作单位。
- Consistency(一致性):事务前后,数据库保持一致性。
- Isolation(隔离性):事务之间互不干扰。
- Durability(持久性):事务提交后数据永久保存。
(2)MySQL 的核心组成
- 服务器:提供数据库服务的核心进程。
- 客户端工具:命令行客户端(
mysql)、图形化管理工具(如 MySQL Workbench)。 - 存储引擎:
- InnoDB:支持事务、外键,默认存储引擎。
- MyISAM:查询快但不支持事务。
2. 数据库操作
(1)创建与管理数据库
- 创建数据库:
CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- 删除数据库:
DROP DATABASE my_database;
- 查看数据库:
SHOW DATABASES;
(2)用户与权限管理
- 创建用户:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
- 授权用户:
GRANT SELECT, INSERT ON my_database.* TO 'username'@'localhost';
- 撤销权限:
REVOKE INSERT ON my_database.* FROM 'username'@'localhost';
- 删除用户:
DROP USER 'username'@'localhost';
3. 数据表操作
(1)创建表
- 基本语法:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
position VARCHAR(50),
salary DECIMAL(10,2),
hire_date DATE
);
- 设置外键:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
(2)修改表
- 添加列:
ALTER TABLE employees ADD COLUMN department_id INT;
- 删除列:
ALTER TABLE employees DROP COLUMN department_id;
- 修改列类型:
ALTER TABLE employees MODIFY COLUMN salary FLOAT;
(3)删除表
- 删除表及数据:
DROP TABLE employees;
4. 数据操作
(1)插入数据
- 单条记录插入:
INSERT INTO employees (name, position, salary, hire_date)
VALUES ('Alice', 'Manager', 8000.00, '2023-01-15');
- 批量插入:
INSERT INTO employees (name, position, salary, hire_date)
VALUES
('Bob', 'Engineer', 6000.00, '2023-02-01'),
('Carol', 'HR', 5000.00, '2023-03-10');
(2)查询数据
- 查询所有数据:
SELECT * FROM employees;
- 条件查询:
SELECT name, salary FROM employees WHERE salary > 5000;
- 排序:
SELECT name, salary FROM employees ORDER BY salary DESC;
- 分页:
SELECT * FROM employees LIMIT 10 OFFSET 20;
(3)更新数据
- 更新单条记录:
UPDATE employees SET salary = 8500.00 WHERE name = 'Alice';
- 更新多条记录:
UPDATE employees SET salary = salary * 1.10 WHERE position = 'Engineer';
(4)删除数据
- 删除单条记录:
DELETE FROM employees WHERE name = 'Alice';
- 清空表数据(保留表结构):
TRUNCATE TABLE employees;
5. 查询优化
(1)索引
- 创建索引:
CREATE INDEX idx_position ON employees(position);
- 删除索引:
DROP INDEX idx_position ON employees;
(2)视图
- 创建视图:
CREATE VIEW high_salary_employees AS
SELECT name, salary FROM employees WHERE salary > 7000;
- 使用视图:
SELECT * FROM high_salary_employees;
6. 事务与并发控制
(1)事务基本操作
- 开启事务:
START TRANSACTION;
- 提交事务:
COMMIT;
- 回滚事务:
ROLLBACK;
(2)事务隔离级别
- 设置隔离级别:
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
- 常见级别:
- READ UNCOMMITTED:允许读取未提交数据。
- READ COMMITTED:只能读取已提交数据。
- REPEATABLE READ:同一事务内多次读取一致。
- SERIALIZABLE:完全隔离,最高级别。
7. 数据备份与恢复
(1)备份
- 备份数据库:
mysqldump -u root -p my_database > backup.sql
(2)恢复
- 恢复数据库:
mysql -u root -p my_database < backup.sql
8. 性能优化
- 分析查询:
EXPLAIN SELECT * FROM employees WHERE position = 'Manager';
- 优化表结构:
OPTIMIZE TABLE employees;
- 分区表:将大表拆分为多个小分区以提升性能。
学习建议
- 练习基础命令:通过搭建练习环境熟悉 SQL 操作。
- 实践真实场景:设计和实现简单数据库项目。
- 逐步进阶:掌握高级查询、事务、索引优化。
以上为关于mysql必知必会的详细介绍,更多信息请关注其他相关文章!