MySQL学习笔记

2023-12-29 22:19:19

MySQL黑马课程学习


文章目录


前言

自我感觉MySQL学完之后,脑子乱乱的。
SQL语句写的不流畅,什么样子也没有很深的印象,在后面的学习中遇到困难,特意前来回顾之前所学习的内容。
重点是:结构化的认识和回顾MySQL,建立自己“结构化的知识体系”。
在这里插入图片描述

精华:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


提示:以下是本篇文章正文内容:

一、对于MySQL学习的思考:

1.MySQL是什么?我们学习MySQL是为了什么?

2.我们该如何学习MySQL?学完之后又知道了什么?

3.我们须要记住MySQL的那些内容?

4.(重点)现在有点印象的东西:SQL,多表查询,函数,约束,事务。

MySQL时关系型数据库管理系统,学习MySQL是由于他开源,简单,便捷,在企业方面运用的广泛,是程序员的必备技能之一,可以帮助我们更好的学习以后的内容。

我们学习要抓住重点,一些“底层的东西”现在没有掌握,或者是不理解,都可以先放一放,学到后面的时候在像现在一样,翻出来联系一下。

我们要掌握的就是MySQL基础的那些内容。别太贪心,将基础记牢。

二、SQL:(structure query language)

1.分类DQL,DML,DDL,DCL

2.重点掌握DQL:(查询语句)条件,聚合,分组,排序,分页

SQL笔记超链接

三、多表查询

(1)多表关系

多表关系:1对多,多对多
一对多:子表建立外键
多对多:第三张中间表做外键(student,course,score)
学生可以选多门课程,一门课程可以被多个学生选择。
在这里插入图片描述

(2)连接查询:

内连接:查交集
外连接:查交集 和 没有关系的部分。
什么叫做连接:笛卡尔积后,等值连接的结果。
自连接:同一个表连接(自己连接自己)
在这里插入图片描述

(3)子查询:

在这里插入图片描述

1.标量子查询

在这里插入图片描述
在这里插入图片描述

2.列子查询

在这里插入图片描述

3.行子查询

在这里插入图片描述

4.表子查询

在这里插入图片描述

总结:行看个人,列看多个人,表看多个人的多个字段

在这里插入图片描述

四、函数:实现一些功能

在这里插入图片描述

1.字符串函数:在这里插入图片描述

2.数值函数:在这里插入图片描述

3.日期函数:日期:年月日 时间:时分秒

在这里插入图片描述

小小案例:不足为惧😍

在这里插入图片描述

4.流程控制函数:条件筛选

语法块结束,end返回。
在这里插入图片描述
注意:空串 不等于 null
就像空数组 不等于 null一样。
还记得:if(arrnull || arr.length0) 这个判断条件吗?------字符串也是同理。

ase when … then … else … end
when:条件-------------then:赋值

五、约束:作用于表中字段上,可以在创建表,修改表的时候添加。

在这里插入图片描述

(1)主要内容:

1.主键约束:非空约束 + 唯一约束(例:id)

2.默认值约束:(例:默认价格,默认工资)

3.检查约束:级联检查,视图中数据的变动

4.外键约束:主表的主键 是 从表的外键

cascate:级联, set null:设空

(2)对字段的约束:理解 +(图形化界面操作)

在这里插入图片描述

小小案例:不足为惧😍

在这里插入图片描述

DataGrip:图形化界面如何创建表,在创建表的同时也添加“字段”

在这里插入图片描述

为什么在名字相同的情况下,主键没有自增。
主键只能有一个,但外键可以有多个。
主键默认是非空和唯一。

外键:让两张表之间的数据建立连接,保证数据的一致性和完整性。
主键:黄色的小钥匙、外键:蓝色的小钥匙
报错:我们不可以删除父表的记录,因为存在外键的关联。
结论:我们在修改

(3)外键:sql语句 + datagrip 实现

在这里插入图片描述

小小案例:不足为惧😍

在这里插入图片描述
如果存在关联,则不允许删除。
cascade:父表更新,子表同时更新。

在这里插入图片描述

datagrip页面实现创建外键:

在这里插入图片描述
流程:
1.连接上MySQL
2.创建一个数据库:itcast(localhost)
3.在数据库中创建多张“有关系”的表:
Student:学号,姓名,性别,生日,民族,地址
Course:课程号,课程名,学分,时长
Score:学号,课程号,分数
举个例子:在Student表中,Student是一个类,它的属性值就是“字段”,Student类的每一个“实例化对象”“表中的每一个记录”
在创建表结构的时候,我们会创建“字段”,然后给字段添加上“约束”(主键(非空,唯一),默认值,检查条件,外键)+“自增”。
当我们更新表中记录的时候,有约束的表也会跟着更新。
例如:我们加入了一位“新学生”,那么Score表中会有相应的信息。(学号,课程号,分数)
结论:在有约束关系的表中,往往一个操作会引起一系列操作,所以我们对数据库当中的信息,还是以“查询”为主。

六、事务

引用别人的博客来帮助理解 ACID
在这里插入图片描述

(1)事务的概念:一组操作的集合

在这里插入图片描述

(2)控制事务的两种方式:自动提交 / 开启事务

在这里插入图片描述
当我们手动提交之后,每执行一次SQL语句都需要手动提交事务。(commit)
0:手动提交
1:自动提交
两种方式:
1.将事务的自动提交修改为手动提交。set @@autocommit == 0
2.自己开启事务:start transaction 或 begin

(3)四大特性:ACID:atom,consist,isolate,durable

在这里插入图片描述

(4)并发事务问题:读脏数据,不可重复读,丢失更新(覆盖)

在这里插入图片描述
幻读和不可重复读的区别:
(都是指两次读取的结果不一样)
幻读:别的事务进行 插入和删除
不可重复读:别的事务进行了修改

(5)事务的隔离级别:默认“可重复读”

在这里插入图片描述
在这里插入图片描述
如果事务当中的每一个操作都执行成功了,我们要提交事务。
如果事务当中有一个事务出错,我们要回滚事务。
(事务:一组操作的集合)


总结

提示:这里对文章进行总结:
对于MySQL的基础部分,我们须要好好掌握,熟练。
将“SQL,多表查询,函数,约束,事务”融入我们的结构化“树”当中。

文章来源:https://blog.csdn.net/m0_73922853/article/details/135292507
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。