MySQL数据库心得体会

MySQL 是一种流行的关系型数据库管理系统,广泛应用于各种应用程序中,从小型网站到大型企业系统。在深入学习 MySQL 的过程中,我逐渐认识到了它的强大功能和灵活性,以下是我在学习过程中的一些心得体会。

一、MySQL 的重要性

在当今数据驱动的世界中,数据库是存储和管理数据的核心。MySQL 以其高性能、可靠性和易用性,成为了开发人员的首选。它支持多种操作系统,并且是开源的,这意味着可以免费使用,同时也有庞大的社区支持,使得问题解决和学习资源非常丰富。

二、安装与配置

安装 MySQL 是学习过程的第一步。我通过官方文档和在线教程学习了如何在不同的操作系统上安装 MySQL。配置数据库时,我了解到了如何设置用户权限、优化性能和保障数据安全。

三、SQL 基础

SQL(结构化查询语言)是与 MySQL 交互的桥梁。我学习了 SQL 的基本命令,如 SELECT、INSERT、UPDATE 和 DELETE,这些命令是操作数据库中数据的基础。我也学习了如何使用 WHERE 子句来过滤数据,以及如何使用 JOIN 来连接不同的表。

四、数据类型与表结构设计

理解不同的数据类型对于设计高效的数据库表至关重要。我学习了如何根据数据的特点选择合适的数据类型,比如 INT、VARCHAR、DATETIME 等。同时,我也学习了如何设计表之间的关系,比如一对一、一对多和多对多关系。

五、索引与查询优化

索引是提高数据库查询性能的关键。我学习了如何创建索引,以及如何选择合适的索引类型(如 B-Tree、Hash 等)。我也了解了查询优化的技巧,比如使用 EXPLAIN 分析查询计划,以及如何避免全表扫描。

六、存储过程与触发器

存储过程和触发器是 MySQL 的高级特性,它们允许我在数据库层面执行复杂的逻辑。我学习了如何编写存储过程来封装 SQL 代码,以及如何使用触发器自动执行某些操作。

七、事务处理

事务是数据库操作中的一个重要概念,它确保了数据的一致性和完整性。我学习了如何在 MySQL 中使用事务,包括如何开始事务、提交事务和回滚事务。

八、备份与恢复

数据的安全性是数据库管理中不可忽视的一环。我学习了 MySQL 的备份策略,包括全量备份和增量备份。我也了解了如何恢复数据,以及如何设置定期备份来防止数据丢失。

九、安全性

保护数据库不受未授权访问是至关重要的。我学习了如何设置用户权限,如何使用加密连接,以及如何监控和审计数据库活动。

十、性能监控与调优

随着数据库的增长,性能调优变得越来越重要。我学习了如何使用各种工具来监控数据库性能,比如慢查询日志。我也了解了如何通过调整配置参数和优化查询来提高性能。

常用的命令:

C:\Program Files\MySQL\MySQL Server 8.0\bin>

1.登录数据库

mysql -u root -p

密码:123456

2.查看库

show databases;

3.使用库里的表

use 表名;

4.看表有没有数据

show tables;

5.删除数据库

DROP DATABASE database_name;:用于删除一个已存在的数据库。

对表的增删改查

1.增

create table 表名(

id int,

uname varchar(2),

);

2.删

delete from 表名 where id=1;

3.改

update 表名_table set uame='荷花’ where id =2;

4.查

select * from 表名;

 

查询

-- 限量查询

SELECT * FROM product LIMIT 5;

-- 分页查询,跳过7条查5条

SELECT * FROM product LIMIT 5 OFFSET 7;

-- 列查询

SELECT UserName,Address,Phone from `user`;

-- 别名查询

SELECT UserName as 用户名,Address as 地址,Phone as 手机号 FROM `user`;

-- 模糊查询

SELECT * from user where UserName like '%i%'; -- 任意位置有个字母i,%代表多个字符

SELECT * FROM user WHERE UserName like '_o%'; -- 第二个位置有个字符‘o';_代表一个字符

SELECT * FROM user WHERE UserName like '__d%'; -- 第三个位置有个字符’d';_代表一个字符

SELECT productName,Stock FROM product order by  Stock ASC;

SELECT productName,Stock,price FROM product order by  Stock DESC;

-- 分组查询

SELECT productName,COUNT(*) as '大类',SUM(Stock) as '库存' FROM product GROUP BY productName;

-- 去重查询

SELECT  DISTINCT productName FROM product;

 SELECT O.OrderID,o.UserID,o.OrderDate,o.State,u.UserName,u.Email,u.Phone

FROM orders o,user u where o.UserID = `user`.UserID

-- 查找用户id为1的订单信息

SELECT o.OrderID,o.OrderDate,o.State,o.UserID,u.UserName,u.Email,u.Address,u.Phone

FROM  orders o,user u

WHERE o.UserID = u.UserID AND u.UserID =1

-- 内查询和外查询

-- 内查询,和关联查询功能一致,但效率比普通的关联查询高

SELECT o.OrderID,o.OrderDate,o.State,o.UserID,u.UserName,u.Email,u.Address,u.Phone

FROM  orders o INNER JOIN user u

ON o.UserID = u.UserID AND u.UserID =1

-- 外查询:左外查询和右外查询

-- 左外查询,,左边的表所有满足的数据,右表没有的数据为空

SELECT o.OrderID,o.OrderDate,o.State,o.UserID,u.UserName,u.Email,u.Address,u.Phone

-- 左表查询,左表的主表。主表是orders,次表是users。查找所有主表信息,次表信息不存在留空

FROM  orders o LEFT JOIN user u

ON o.UserID = u.UserID

-- 右外查询,右表所有满足的数据都要找出来,左表没有的数据为空

-- 查找所有用户的订单信息

SELECT u.UserID,u.UserName,u.Email,u.Address,u.Phone,o.OrderID,o.OrderDate,o.State

-- 右表查询,右表的主表。主表是user,次表是orders。查找所有主表信息,次表信息不存在留空

FROM  orders o RIGHT JOIN user u

ON o.UserID = u.UserID

ORDER BY u.UserID,o.OrderID

-- 嵌套查询

SELECT * FROM

(SELECT u.UserID, u.UserName, u.Email, u.Address, u.Phone, o.OrderID, o.OrderDate, o.State

FROM orders o RIGHT JOIN user u

on o.UserID = u.UserID

ORDER BY u.UserID,o.OrderID) c

WHERE c.UserName = 'Alice'

-- 视图(操作)

-- 将常用的查询结果作为一个临时表(执行查询时才会生成数据;数据不存在硬盘上)

-- 不建议对临时表(视图)做增删改查的操作,数据来源于真实的表,内容随之改变;

CREATE VIEW view_order_user AS

(SELECT u.UserID, u.UserName, u.Email, u.Address, u.Phone, o.OrderID, o.OrderDate, o.State

FROM orders o RIGHT JOIN user u

on o.UserID = u.UserID

ORDER BY u.UserID,o.OrderID LIMIT 5)

心得体会

通过学习 MySQL,我不仅掌握了数据库的基础知识,还学会了如何设计、优化和管理数据库。MySQL 的灵活性和强大的功能让我能够应对各种数据存储和管理的挑战。随着技术的不断进步,我将继续深入学习,以保持我的技能与时俱进。学习 MySQL 是一个既充满挑战又充满乐趣的过程。它不仅提高了我的技术能力,也加深了我对数据管理和数据库设计的理解。我相信,随着我经验的积累,我将能够更有效地使用 MySQL 来支持复杂的应用程序和系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaosu04

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值