MySQL“一课一得”:学习之旅与深刻领悟

在数据驱动的现代世界中,MySQL无疑是数据库领域的一颗璀璨明星。通过本次MySQL课程的学习,我深刻感受到了其强大的功能和灵活的应用性。接下来,我将结合实操体验,分享我的学习收获和心得,希望能够帮助大家更好地掌握MySQL。

MySQL 是当下最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 可以说是最流行的技术。选择 MySQL 数据库已是既成事实,绝大多数使用 Linux 操作系统的互联网网站都在使用 MySQL 作为其后端的数据库存储方式,从大型的 BAT 门户到电商平台、分类门户等无一例外。

原因可能有以下几点:

  • MySQL 性能卓越,服务稳定,很少出现异常宕机的情况。
  • MySQL 开放源代码且无版权制约,自主性强,使用成本低。
  • MySQL 历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。
  • MySQL 软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
  • MySQL 品牌口碑效应好,使得企业无须考虑即可直接用之。
  • LAMP、LNMP、LNMT(tomcat)等流行 Web 架构都含有 MySQL。
  • MySQL 支持多种操作系统,提供了多种 API,支持多种开发语言,特别是对流行的 Java、Python、PHP 等语言都有很好的支持。

数据库分类

  • SQL Sever: 微软的产品,.Net 程序员的最爱,适合中大型项目。
  • Oracle: 甲骨文产品,适合大型项目和复杂的业务逻辑,并发性一般来说不如 MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的 SQL 处理效果好。
  • PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究,都可以免费使用、修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守 ACID 的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

Mysql索引

一、Mysql索引

        1、Mysql索引的概念
        2、Mysql索引的作用
        3、Mysql索引的副作用
        4、创建索引的原则依据
        5、索引的分类以及创建
        6、索引创建的方法
        6.1、普通索引
                直接创建索引和查询索引的方式
                修改表方式创建
                创建表的时候指定索引
        6.2、唯一索引
                直接创建唯一索引
                修改表方式创建
                创建表的时候指定
        6.3、主键索引
                创建表的时候指定
                修改表方式创建
        6.4、组合索引(单列索引与多列索引)
        6.5、全文索引
                直接创建索引
                修改表方式创建
                创建表的时候指定索引
                使用全文索引查询

二、查看索引

三、删除索引

        1、直接删除索引
        2、修改表方式删除索引
        3、删除主键索引

一、环境搭建与基础认识

在学习的初期,我首先按照教程指引成功安装了MySQL数据库,并配置了相应的环境。这个过程中,我了解了MySQL的基本架构、运行机制和它作为一个关系型数据库管理系统(RDBMS)的核心特性。通过实际操作,我熟悉了MySQL的命令行界面和图形界面管理工具,为后续的学习打下了坚实的基础。

二、SQL基础操作与实战演练

在掌握了SQL的基础语法后,我通过实际操作创建了多个数据表,并进行了数据的增删改查。我深入学习了SELECT、INSERT、UPDATE、DELETE等SQL语句的用法,并了解了如何根据实际需求编写高效的SQL查询语句。通过大量的练习,我掌握了SQL语句的编写技巧和优化方法,提高了自己的动手能力和解决问题的能力。

三、索引与事务管理的深入理解

随着学习的深入,我详细了解了索引在提升查询效率中的重要作用。我学习了B-Tree索引、Hash索引等不同类型的索引,并掌握了如何根据实际需求选择合适的索引。通过实际操作,我感受到了索引对查询性能的巨大提升。同时,我也深入学习了事务的概念和用法,了解了事务的ACID属性(原子性、一致性、隔离性、持久性)对于保证数据完整性和一致性的重要意义。我通过编写事务相关的SQL语句,体验了事务的工作原理和应用场景。

# 取模运算: % mod
SELECT 12 % 3,12 % 5, 12 MOD -5,-12 % 5,-12 % -5
FROM DUAL; # 结果的符号只与被模数有关
+--------+--------+-----------+---------+----------+
| 12 % 3 | 12 % 5 | 12 MOD -5 | -12 % 5 | -12 % -5 |
+--------+--------+-----------+---------+----------+
|      0 |      2 |         2 |      -2 |       -2 |
+--------+--------+-----------+---------+----------+

三、索引与事务管理的深入理解

随着学习的深入,我详细了解了索引在提升查询效率中的重要作用。我学习了B-Tree索引、Hash索引等不同类型的索引,并掌握了如何根据实际需求选择合适的索引。通过实际操作,我感受到了索引对查询性能的巨大提升。同时,我也深入学习了事务的概念和用法,了解了事务的ACID属性(原子性、一致性、隔离性、持久性)对于保证数据完整性和一致性的重要意义。我通过编写事务相关的SQL语句,体验了事务的工作原理和应用场景。

五、实操练习,巩固与提高

我通过大量的实操练习巩固了所学知识,并提高了自己的动手能力和解决问题的能力。在实操中,我遇到了很多问题,但通过查阅资料和反复尝试,我最终都找到了解决方案。这些实践经历不仅让我更加深入地理解了MySQL的知识点,还让我学会了如何分析和解决问题。

条件查询:

DQL(数据查询语言)
语法:

SELECT

字段列表

FROM

表名字段

WHERE

条件列表

GROUPBY

分组字段列表

HAVING

分组后的条件列表

ORDERBY

排序字段列表

LIMIT

分页参数

基础查询
查询多个字段:SELECT 字段1, 字段2, 字段3, ... FROM 表名;SELECT * FROM 表名;

设置别名:SELECT 字段1 [ AS 别名1 ], 字段2 [ AS 别名2 ], 字段3 [ AS 别名3 ], ... FROM 表名;SELECT 字段1 [ 别名1 ], 字段2 [ 别名2 ], 字段3 [ 别名3 ], ... FROM 表名;

去除重复记录:SELECT DISTINCT 字段列表 FROM 表名;

转义:SELECT * FROM 表名 WHERE name LIKE '/_张三' ESCAPE '/'/ 之后的_不作为通配符

条件查询
语法:SELECT 字段列表 FROM 表名 WHERE 条件列表;

条件:

比较运算符

功能

>

大于

>=

大于等于

<

小于

<=

小于等于

=

等于

<> 或 !=

不等于

BETWEEN ... AND ...

在某个范围内(含最小、最大值)

IN(...)

在in之后的列表中的值,多选一

LIKE 占位符

模糊匹配(_匹配单个字符,%匹配任意个字符)

IS NULL

是NULL

逻辑运算符

功能

AND 或 &&

并且(多个条件同时成立)

OR 或 ||

或者(多个条件任意一个成立)

NOT 或 !

非,不是

聚合查询(聚合函数)

常见聚合函数:

函数

功能

count

统计数量

max

最大值

min

最小值

avg

平均值

sum

求和

权限控制

常用权限:

权限

说明

ALL, ALL PRIVILEGES

所有权限

SELECT

查询数据

INSERT

插入数据

UPDATE

修改数据

DELETE

删除数据

ALTER

修改表

DROP

删除数据库/表/视图

CREATE

创建数据库/表

字符串函数

常用函数:

函数

功能

CONCAT(s1, s2, ..., sn)

字符串拼接,将s1, s2, ..., sn拼接成一个字符串

LOWER(str)

将字符串全部转为小写

UPPER(str)

将字符串全部转为大写

LPAD(str, n, pad)

左填充,用字符串pad对str的左边进行填充,达到n个字符串长度

RPAD(str, n, pad)

右填充,用字符串pad对str的右边进行填充,达到n个字符串长度

TRIM(str)

去掉字符串头部和尾部的空格

SUBSTRING(str, start, len)

返回从字符串str从start位置起的len个长度的字符串

REPLACE(column, source, replace)

替换字符串

数值函数

常见函数:

函数

功能

CEIL(x)

向上取整

FLOOR(x)

向下取整

MOD(x, y)

返回x/y的模

RAND()

返回0~1内的随机数

ROUND(x, y)

求参数x的四舍五入值,保留y位小数

日期函数

常用函数:

函数

功能

CURDATE()

返回当前日期

CURTIME()

返回当前时间

NOW()

返回当前日期和时间

YEAR(date)

获取指定date的年份

MONTH(date)

获取指定date的月份

DAY(date)

获取指定date的日期

DATE_ADD(date, INTERVAL expr type)

返回一个日期/时间值加上一个时间间隔expr后的时间值

DATEDIFF(date1, date2)返回起始时间date1和结束时间date2之间的天数

实操建议及步骤:

搭建MySQL环境连接到MySQL服务器
创建数据库和数据表创建数据表时,需要定义表的字段、数据类型、约束等
插入和查询数据可以一次插入一行数据,也可以一次插入多行数据查询数据
索引和查询优化创建索引后,可以使用EXPLAIN语句来分析查询的执行计划,了解索引是否被正确使用
事务管理可以确保数据的一致性和完整性
备份与恢复防止数据丢失或损坏
持续学习与实践不断提升自己的能力和水平

六、展望未来,持续学习

虽然我已经掌握了MySQL的基础知识,但学习之路永无止境。我将继续深入学习MySQL的高级特性和应用场景,如存储过程、触发器、分区表等。同时,我也将关注MySQL的最新发展动态和技术趋势,以便更好地应对未来的挑战和需求。我相信通过不断的学习和实践,我将能够在MySQL领域取得更大的进步和成就。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值