本人是一个MySQL小白,写这个博客是因为期末作业,当然我会把我所知道的MySQL知识尽量写出来,可能表达的不好,或者不正确,轻喷谢谢0.0,也希望各位大神可以指点一二。
首先MySQL数据库顾名思义就是一个存储数据的仓库,我们可以在应用中处理和管理这个仓库中的数据。在我所查抄的相关MySQL相关背景是:MySQL是一个流行的关系型数据库管理系统(RDBMS),广泛用于Web应用的数据库存储。它是一个开源的数据库系统,由瑞典MySQL AB公司开发,后来被Sun Microsystems收购,Sun Microsystems随后被Oracle公司收购。
而在我所学内容中sql语句最为印象深刻,所以这篇博客我决定写一些sql语句的分析介绍,当然我们要先搞清楚数据的类型,这样运用sql语句才会更加得心应手。
首先我们要学会创建一个MySQL数据库
跟据以上图片中的create detabase xx;语句我们就创造出了一个名为xx的数据库,当然现在这个数据库中什么数据都没有因为我们并没有输入数据表,这时我们就可以创一个数据表用来保存数据例如:
我们就创建了一个数据表,并且包含了4个数据类型,接下来我们就可以打开这个表格输入我们需要导入的数据,这里你在输入与表类型数据不一样时所输入的数据类型是不会保存的,这是让我疑惑的地方。
SQL语句分类
-
DDL(Data Definition Language)数据定义语言:用于定义和管理数据库结构。
CREATE
:创建数据库、表、索引、视图等。ALTER
:修改表结构,如添加或删除列。DROP
:删除数据库、表、索引等。
-
DML(Data Manipulation Language)数据操纵语言:用于对数据库中的数据进行增删改查。
SELECT
:查询数据。INSERT
:插入数据。UPDATE
:更新数据。DELETE
:删除数据。
-
DCL(Data Control Language)数据控制语言:用于定义数据库的安全策略和访问权限。
GRANT
:授予用户权限。REVOKE
:撤销用户权限。
-
TCL(Transaction Control Language)事务控制语言:用于管理数据库事务。
BEGIN
或START TRANSACTION
:开始一个事务。COMMIT
:提交事务,使所有更改生效。ROLLBACK
:回滚事务,撤销所有更改。
2. SELECT语句
SELECT
语句用于从数据库中检索数据。SELECT column1, column2 FROM table_name;
- 可以使用
WHERE
子句来指定查询条件:SELECT * FROM table_name WHERE condition;
- 使用
ORDER BY
对结果进行排序:SELECT * FROM table_name ORDER BY column1 DESC;
- 使用
GROUP BY
进行数据分组,并可结合聚合函数使用:SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
3. 数据类型
- MySQL支持多种数据类型,包括整数类型(如
INT
、TINYINT
)、浮点数类型(如FLOAT
、DOUBLE
)、字符串类型(如VARCHAR
、TEXT
)、日期和时间类型(如DATE
、DATETIME
)等。
4. 连接(JOIN)
JOIN
用于结合两个或多个表中的行。INNER JOIN
:只返回两个表中都有匹配的行。LEFT JOIN
或LEFT OUTER JOIN
:返回左表的所有行,右表中没有匹配的行将显示为NULL。RIGHT JOIN
或RIGHT OUTER JOIN
:与LEFT JOIN
相反,返回右表的所有行。FULL JOIN
或FULL OUTER JOIN
:返回两个表中的所有行,没有匹配的行将显示为NULL。
5. 子查询
- 子查询是嵌套在另一个查询中的SQL语句。
SELECT * FROM table_name WHERE column1 IN (SELECT column1 FROM another_table);
6. 索引
- 索引可以显著提高查询性能,但会降低插入和更新的性能。
CREATE INDEX index_name ON table_name (column1);
7. 函数
- MySQL提供了多种内置函数,包括字符串函数(如
CONCAT()
、SUBSTRING()
)、数值函数(如ROUND()
、ABS()
)、日期和时间函数(如NOW()
、DATE()
)等。
8. 模式匹配
- 使用
LIKE
进行简单的模式匹配:SELECT * FROM table_name WHERE column1 LIKE '%pattern%';
- 使用
REGEXP
进行正则表达式匹配。
9. 变量
- 在MySQL中,可以使用
SET
语句设置用户定义的变量。SET @variable_name = value;
10. 注释
- 使用
--
进行单行注释,使用/* ... */
进行多行注释。
11. 错误处理
- 使用
SHOW ERRORS;
查看错误信息。
12. 事务
- 事务是一组操作,要么全部成功,要么全部失败。
START TRANSACTION; UPDATE table_name SET column1 = value WHERE condition; COMMIT;
13. 视图
- 视图是一个虚拟表,其内容由SQL查询定义。
CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;
14. 存储过程和函数
-
存储过程是一组为了完成特定功能的SQL语句集合。
CREATE PROCEDURE procedure_name() BEGIN -- SQL statements END;
-
存储函数用于返回一个值。
CREATE FUNCTION function_name() RETURNS value_type BEGIN RETURN value; END;
15. 安全性
- 使用
GRANT
和REVOKE
管理用户权限,确保数据安全。
16. 备份与恢复
- 使用
mysqldump
工具进行数据库备份。 - 使用
LOAD DATA INFILE
或mysql
命令行工具进行数据恢复。
这是关于sql语句的大纲,我在前面知识介绍了sql的两个基础语句SQL是数据库操作的基础,掌握这些基础知识对于进行有效的数据库管理和开发至关重要。随着经验的积累,学习的深入我们接触的sql会越来越复杂,但是我们查找数据会更加精准,但是随着学习的深入你会遇到许多的困难,或许你会困惑,但是当你认真深入学习sql语句时你会觉得他亦是有趣的,我写这个博客是想分享我在学习SQL语句过程中的乐趣,这其中的很多语句,我花了蛮多时间去理解,因为本人有点笨,例如:SELECT * FROM table_name WHERE column1 IN (SELECT column1 FROM another_table);那时候我根本搞不懂,结果发现他后面发现他只是在查找另数据表中的子表中的数据
。
我所学知识也就这么一点,我分享出来,希望其他的小白也可以有兴趣继续学下去,耽误大家时间了,谢谢各位。