自我感觉MySQL学完之后,脑子乱乱的。
SQL语句写的不流畅,什么样子也没有很深的印象,在后面的学习中遇到困难,特意前来回顾之前所学习的内容。
重点是:结构化的认识和回顾MySQL,建立自己“结构化的知识体系”。
提示:以下是本篇文章正文内容:
MySQL时关系型数据库管理系统,学习MySQL是由于他开源,简单,便捷,在企业方面运用的广泛,是程序员的必备技能之一,可以帮助我们更好的学习以后的内容。
我们学习要抓住重点,一些“底层的东西”现在没有掌握,或者是不理解,都可以先放一放,学到后面的时候在像现在一样,翻出来联系一下。
我们要掌握的就是MySQL基础的那些内容。别太贪心,将基础记牢。
多表关系:1对多,多对多
一对多:子表建立外键
多对多:第三张中间表做外键(student,course,score)
学生可以选多门课程,一门课程可以被多个学生选择。
内连接:查交集
外连接:查交集 和 没有关系的部分。
什么叫做连接:笛卡尔积后,等值连接的结果。
自连接:同一个表连接(自己连接自己)
语法块结束,end返回。
注意:空串 不等于 null
就像空数组 不等于 null一样。
还记得:if(arrnull || arr.length0) 这个判断条件吗?------字符串也是同理。
ase when … then … else … end
when:条件-------------then:赋值
为什么在名字相同的情况下,主键没有自增。
主键只能有一个,但外键可以有多个。
主键默认是非空和唯一。
外键:让两张表之间的数据建立连接,保证数据的一致性和完整性。
主键:黄色的小钥匙、外键:蓝色的小钥匙
报错:我们不可以删除父表的记录,因为存在外键的关联。
结论:我们在修改
如果存在关联,则不允许删除。
cascade:父表更新,子表同时更新。
流程:
1.连接上MySQL
2.创建一个数据库:itcast(localhost)
3.在数据库中创建多张“有关系”的表:
Student:学号,姓名,性别,生日,民族,地址
Course:课程号,课程名,学分,时长
Score:学号,课程号,分数
举个例子:在Student表中,Student是一个类,它的属性值就是“字段”,Student类的每一个“实例化对象”“表中的每一个记录”
在创建表结构的时候,我们会创建“字段”,然后给字段添加上“约束”(主键(非空,唯一),默认值,检查条件,外键)+“自增”。
当我们更新表中记录的时候,有约束的表也会跟着更新。
例如:我们加入了一位“新学生”,那么Score表中会有相应的信息。(学号,课程号,分数)
结论:在有约束关系的表中,往往一个操作会引起一系列操作,所以我们对数据库当中的信息,还是以“查询”为主。
当我们手动提交之后,每执行一次SQL语句都需要手动提交事务。(commit)
0:手动提交
1:自动提交
两种方式:
1.将事务的自动提交修改为手动提交。set @@autocommit == 0
2.自己开启事务:start transaction 或 begin
幻读和不可重复读的区别:
(都是指两次读取的结果不一样)
幻读:别的事务进行 插入和删除
不可重复读:别的事务进行了修改
如果事务当中的每一个操作都执行成功了,我们要提交事务。
如果事务当中有一个事务出错,我们要回滚事务。
(事务:一组操作的集合)
提示:这里对文章进行总结:
对于MySQL的基础部分,我们须要好好掌握,熟练。
将“SQL,多表查询,函数,约束,事务”融入我们的结构化“树”当中。