前言
我们每天都在访问各种各样的?站、APP,如微信、QQ、抖?、今?头条等,这些网站上?都存在?量的信息数据,这些信息数据都需要有地?存储,一般这些数据都存储在哪呢?
一般这些数据都存储在数据库中。所以如果我们需要开发?个?站、app,数据库是我们必须掌握的技术,常?的数据库有mysql、oracle、sqlserver、db2等。 上?介绍的?个数据库,oracle性能排名第?,服务也是相当到位的,但是收费也是?常?的,?融公司对数据库稳定性要求?较?,?般会选择oracle。 mysql是免费的,其他?个?前暂时收费的,mysql在互联?公司使?率也是排名第?。资料也?常完善,社区也?常活跃,所以我们主要学习mysql。

数据库常?的概念
DB:数据库,存储数据的容器。
DBMS:数据库管理系统,又称为数据库软件或数据库产品,?于创建或管理DB。
SQL:结构化查询语?,?于和数据库通信的语?,不是某个数据库软件持有的,?是?乎所有的主流数据库软件通?的语?。中国?之间交流需要说汉语,和美国?之间交流需要说英语,和数据库沟通需要说SQL语?。
数据库存储数据的?些特点
-
数据存放在表中,然后表存放在数据库中
-
?个库中可以有多张表,每张表具有唯?的名称(表名)来标识??
-
表中有?个或多个列,列又称为“字段”,相当于java中的“属性”
-
表中每??数据,相当于java中的“对象”

数据类型选择的?些建议
(1) 选?不选?:?般情况下选择可以正确存储数据的最?数据类型,越?的数据类型通常更快,占?磁盘,内存和CPU缓存更?。
(2) 简单就好:简单的数据类型的操作通常需要更少的CPU周期,例如:整型?字符操作代价要?得多,因为字符集和校对规则(排序规则)使字符?整型?较更加复杂。
(3) 尽量避免NULL:尽量制定列为NOT NULL,除?真的需要NULL类型的值,有NULL的列值会使得索引、索引统计和值?较更加复杂。
(4) 浮点类型的建议统?选择decimal
(5) 记录时间的建议使?int或者bigint类型,将时间转换为时间戳格式,如将时间转换为秒、毫秒,进?存储,?便?索引

MySQL权限?作原理
mysql是如何来识别?个?户的呢?
mysql为了安全性考虑,采? 主机名+?户名 来判断?个?户的?份,因为在互联?中很难通过?户名来判断?个?户的?份,但是我们可以通过ip或者主机名判断?台机器,某个?户通过这个机器过来的,我们可以识别为?个?户,所以mysql中采??户名+主机名来识别?户的?份。当?个?户对mysql发送指令的时候,mysql就是通过?户名和来源(主机)来断定?户的权限。
Mysql权限验证分为2个阶段:
(1)阶段1:连接数据库,此时mysql会根据你的?户名及你的来源(ip或者主机名称)判断是否有权限连接
(2)阶段2:对mysql服务器发起请求操作,如create table、select、delete、update、create index等操作,此时mysql会判断你是否有权限操作这些指令
如何正确的使?索引?
学习索引,主要是写出更快的sql,当我们写sql的时候,需要明确的知道sql为什么会?索引?为什么有些sql不?索引?sql会?那些索引,为什么会这么??我们需要了解其原理,了解内部具体过程,这样使?起来才能更顺?,才可以写出更?效的sql。
Mysql中索引分为聚集索引(主键索引)和?聚集索引
聚集索引(主键索引)
每个表?定会有?个聚集索引,整个表的数据存储以b+树的?式存在?件中,b+树叶?节点中的key为主键值,data为完整记录的信息;?叶?节点存储主键的值。
通过聚集索引检索数据只需要按照b+树的搜索过程,即可以检索到对应的记录。
?聚集索引
每个表可以有多个?聚集索引,b+树结构,叶?节点的key为索引字段字段的值,data为主键的值;?叶?节点只存储索引字段的值。
通过?聚集索引检索记录的时候,需要2次操作,先在?聚集索引中检索出主键,然后再到聚集索引中检索出主键对应的记录,该过程?聚集索引多了?次操作。

整理的这份MySQL学习笔记非常全面且详细,覆盖了 MySQL 基础学习的方方面面,非常适合初学者入门!
资料也按目录进行编排,每一章下面都有更具体的内容:


这份MySQL学习笔记一共了578页,现在分享发给大家
关注公众号:程序员追风,回复 012 免费获取这份MySQL学习笔记,
总结
学习是一辈子的事情,学完一段时间之后,想要检查学习效果如何,其实最好的方法就是可自己去总结一下。比如我在学习的时候会自己做笔记,然后自己再总结,自己的做的笔记也可方便后续的复习,且都是自己的理解。
我要一所大房子