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

7天掌握SQL - 第三天:MySQL实践与索引优化

目录

  1. 安装MySQL
  2. 创建数据库和表结构
  3. SQL语句实操练习
  4. MySQL高级特性
  5. 索引设计与优化
  6. 总结

1. 安装MySQL

1.1 下载与安装

MySQL可以通过官方网站下载安装包。以下是安装MySQL的基本步骤:

  • 访问MySQL官方网站 MySQL Downloads。
  • 选择适合您操作系统的版本进行下载。
  • 安装MySQL,并在安装过程中设置root用户密码。
1.2 配置环境变量

确保MySQL的bin目录被添加到系统的环境变量中,以便在命令行中直接使用mysql命令。

2. 创建数据库和表结构

2.1 创建数据库
CREATE DATABASE mydatabase;
2.2 创建表结构
USE mydatabase;

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    position VARCHAR(100),
    hire_date DATE,
    salary DECIMAL(10, 2)
);

3. SQL语句实操练习

3.1 数据查询
SELECT * FROM employees;
3.2 数据插入
INSERT INTO employees (first_name, last_name, position, hire_date, salary) 
VALUES ('John', 'Doe', 'Developer', '2024-01-01', 70000.00);
3.3 数据更新
UPDATE employees 
SET salary = salary * 1.10
WHERE id = 1;
3.4 数据删除
DELETE FROM employees WHERE id = 1;

4. MySQL高级特性

4.1 视图
CREATE VIEW high_earners AS
SELECT first_name, last_name, salary
FROM employees
WHERE salary > 50000;
4.2 存储过程
DELIMITER //
CREATE PROCEDURE AddEmployee(
    IN fname VARCHAR(50),
    IN lname VARCHAR(50),
    IN pos VARCHAR(100),
    IN hired DATE,
    IN sal DECIMAL(10, 2)
)
BEGIN
    INSERT INTO employees (first_name, last_name, position, hire_date, salary)
    VALUES (fname, lname, pos, hired, sal);
END //
DELIMITER ;
4.3 触发器
DELIMITER //
CREATE TRIGGER AfterEmployeeInsert
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
    INSERT INTO employee_audit (employee_id, action, action_date)
    VALUES (NEW.id, 'INSERT', NOW());
END //
DELIMITER ;

5. 索引设计与优化

5.1 设计合理的索引

索引可以显著提高查询性能,但过多的索引会降低插入和更新的性能。以下是创建索引的示例:

CREATE INDEX idx_lastname ON employees(last_name);
5.2 分析查询执行计划

使用EXPLAIN关键字来分析查询的执行计划:

EXPLAIN SELECT * FROM employees WHERE last_name = 'Doe';

6. 总结

在今天的学习中,我们安装并使用了MySQL作为实践平台,学习了如何创建数据库和表结构,并通过编写SQL语句进行了实操练习。我们还探索了MySQL的高级特性,包括视图、存储过程和触发器。最重要的是,我们学习了如何设计合理的索引,并分析查询执行计划以优化SQL查询。

通过今天的学习,你应该能够:

  • 安装并配置MySQL。
  • 创建和管理数据库及表结构。
  • 执行基本的SQL操作,如查询、插入、更新和删除。
  • 理解和使用MySQL的高级特性。
  • 设计和优化索引以提高查询性能。

请确保在实际环境中实践这些概念,因为实践是掌握SQL的关键。记住,索引是提高查询性能的重要工具,但它们也需要谨慎使用,以避免对数据修改操作产生负面影响。

希望今天的学习对你有所帮助,明天我们将继续深入学习SQL的其他高级主题。


http://www.kler.cn/a/409428.html

相关文章:

  • QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
  • 2024强网拟态决赛-eBeepf
  • 1992-2021年 各省市县经过矫正的夜间灯光数据(GNLD、VIIRS)区域汇总:省份、城市、区县面板数据
  • 修改一下达梦disql 提示符
  • macOS 无法安装第三方app,启用任何来源的方法
  • 栈的应用,力扣394.字符串解码力扣946.验证栈序列力扣429.N叉树的层序遍历力扣103.二叉树的锯齿形层序遍历
  • HarmonyOS应用开发中的页面路由与数据传输
  • C语言之为表达式计算器实现定义变量和使用变量功能
  • 大数据的数据整合
  • 【linux】插入新硬盘如何配置:格式化、分区、自动挂载(Ubuntu)
  • 表格数据处理中大语言模型的微调优化策略研究
  • Python 使用 OpenCV 将 MP4 转换为 GIF图
  • 新华三H3CNE网络工程师认证—子接口技术
  • 任子行网络安全审计系统 log_fw_ips_scan_jsondata SQL注入漏洞复现
  • java基础(一):JDK、JRE、JVM、类库等概念,java跨平台实现原理
  • On-Chip-Network之Topology
  • Pytorch自定义算子反向传播
  • cirros-0.3.4-x86_64-disk.img
  • 【Linux】使用nohup命令实现不挂断的后台运行
  • ECharts柱状图-带圆角的堆积柱状图,附视频讲解与代码下载
  • [Leetcode小记] 3233. 统计不是特殊数字的数字数量
  • shell脚本-笔记27
  • 《CSDN及其旗下产品:构建中国IT行业的知识与技术生态》
  • Java开发经验——SpringRestTemplate常见错误
  • 【C++】static修饰的“静态成员函数“--静态成员在哪定义?静态成员函数的作用?
  • 【论文笔记】Improved Baselines with Visual Instruction Tuning