目次
- 简介
- 安装与设置
- 根本概念
- SQL 命令
- 数据定义语言 (DDL)
- 数据操纵语言 (DML)
- 数据查询语言 (DQL)
- 索引管理
- 事务处理
- 视图
- 存储过程
- 触发器
- 备份与恢复
- 性能优化
- 安全性和权限管理
- 常见问题与解决方案
简介 <a name="简介"></a>
MySQL 是一个开源的关系型数据库管理体系,广泛应用于各种规模的应用步伐中。它以其高性能、可靠性和易用性而闻名。
安装与设置 <a name="安装与设置"></a>
安装
- Linux
- 1sudo apt-get update
- 2sudo apt-get install mysql-server
复制代码 - Windows 下载安装包并按照领导提示进行安装。
设置
- 设置文件 (my.cnf 或 my.ini)
- 1[mysqld]
- 2datadir=/var/lib/mysql
- 3log-error=/var/log/mysqld.log
复制代码 根本概念 <a name="根本概念"></a>
数据范例 <a name="数据范例"></a>
MySQL 支持多种数据范例,比方:
- INT - 整数
- VARCHAR - 可变长度字符串
- DATE - 日期值
表结构计划 <a name="表结构计划"></a>
计划表时需要考虑字段范例、主键、外键等。
- 1CREATE TABLE employees (
- 2 id INT AUTO_INCREMENT PRIMARY KEY,
- 3 first_name VARCHAR(50) NOT NULL,
- 4 last_name VARCHAR(50),
- 5 hire_date DATE
- 6);
复制代码 SQL 命令 <a name="sql-命令"></a>
数据定义语言 (DDL) <a name="数据定义语言-ddl"></a>
用于定义数据库结构,比方创建表、修改表等。
创建表
- 1CREATE TABLE departments (
- 2 dept_no CHAR(4) PRIMARY KEY,
- 3 dept_name VARCHAR(40) NOT NULL
- 4);
复制代码 修改表
- 1ALTER TABLE departments ADD COLUMN location VARCHAR(100);
复制代码 数据操纵语言 (DML) <a name="数据操纵语言-dml"></a>
用于插入、更新和删除数据。
插入数据
- 1INSERT INTO employees (first_name, last_name, hire_date)
- 2VALUES ('John', 'Doe', '2020-01-01');
复制代码 更新数据
- 1UPDATE employees SET last_name = 'Smith' WHERE id = 1;
复制代码 删除数据
- 1DELETE FROM employees WHERE id = 1;
复制代码 数据查询语言 (DQL) <a name="数据查询语言-dql"></a>
用于检索数据。
根本查询
- 1SELECT * FROM employees;
复制代码 条件查询
- 1SELECT * FROM employees WHERE hire_date > '2020-01-01';
复制代码 索引管理 <a name="索引管理"></a>
索引可以提高查询服从。
创建索引
- 1CREATE INDEX idx_last_name ON employees(last_name);
复制代码 删除索引
- 1DROP INDEX idx_last_name ON employees;
复制代码 事务处理 <a name="事务处理"></a>
确保数据的一致性和完整性。
开始事务
提交事务
回滚事务
视图 <a name="视图"></a>
简化复杂的查询语句。
创建视图
- 1CREATE VIEW employee_details AS
- 2SELECT e.first_name, e.last_name, d.dept_name
- 3FROM employees e JOIN departments d ON e.dept_no = d.dept_no;
复制代码 存储过程 <a name="存储过程"></a>
封装了一组 SQL 语句,可以被重复调用。
创建存储过程
- 1DELIMITER //
- 2CREATE PROCEDURE GetEmployeeDetails(IN emp_id INT)
- 3BEGIN
- 4 SELECT e.first_name, e.last_name, d.dept_name
- 5 FROM employees e JOIN departments d ON e.dept_no = d.dept_no
- 6 WHERE e.id = emp_id;
- 7END //
- 8DELIMITER ;
复制代码 调用存储过程
- 1CALL GetEmployeeDetails(1);
复制代码 触发器 <a name="触发器"></a>
在特定变乱发生时主动执行。
创建触发器
- 1DELIMITER //
- 2CREATE TRIGGER UpdateHireDate
- 3AFTER INSERT ON employees
- 4FOR EACH ROW
- 5BEGIN
- 6 UPDATE departments SET num_employees = num_employees + 1 WHERE dept_no = NEW.dept_no;
- 7END //
- 8DELIMITER ;
复制代码 备份与恢复 <a name="备份与恢复"></a>
定期备份数据库以防止数据丢失。
备份
- 1mysqldump -u root -p database_name > backup.sql
复制代码 恢复
- 1mysql -u root -p database_name < backup.sql
复制代码 性能优化 <a name="性能优化"></a>
通过合理的索引计划和查询优化提升性能。
查询优化
使用 EXPLAIN 分析查询计划。
索引优化
合理计划索引减少 I/O 操作。
安全性和权限管理 <a name="安全性和权限管理"></a>
保护数据库免受未经授权的访问。
创建用户
- 1CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
复制代码 授予权限
- 1GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';
复制代码 常见问题与解决方案 <a name="常见问题与解决方案"></a>
- 慢查询 - 使用 EXPLAIN 分析,优化索引。
- 连接数过多 - 调解 max_connections 参数。
以上是一个扼要的技术文档框架
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |