深入浅出后端开发(MySQL篇)

前言

这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程.

全栈开发自学笔记 已开源
LAMP环境搭建
MySQL学习笔记(基础篇)
[PHP&MySQL学习笔记(实际应用篇)] 稍后更新

本文阅读建议
1.一定要辩证的看待本文.
2.本文并不会涉及到MySQL详细知识点,只陈述在学习MySQL过程中遇到的关键点.
3.MySQL依照其开发应用分为'基础篇,高级篇,实际应用',根据本人学习进度更新.
4.本文只阐述学习路线和学习当中的重点问题.需要读者自己使用百度进行拓展学习.
5.本文所表达观点并不是最终观点,还会更新,因为本人还在学习过程中,有什么遗漏或错误还望各位指出.
6.觉得哪里不妥请在评论留下建议~
7.觉得还行的话就点个小心心鼓励下我吧~
目录
1.MySQL介绍及其概念
2.理解SQL结构化查询语言
3.理解MySQL数据存储
4.MySQL基础学习路线
5.MySQL&PHP结合应用
6.数据库思想

推荐书籍 & 网站推荐

入门向
Head First PHP&MySQL
PHP和MySQL Web开发
PHP+MySQL 开发实战(可以当工具书)

进阶向
高性能MySQL(第3版)
MySQL排错指南
深入理解MySQL核心技术
MySQL技术内幕(第4版)
MySQL技术内幕 InnoDB存储引擎 第2版
MySQL运维内参:MySQL、Galera、Inception核心原理与最佳实践
数据库索引设计与优化

快速浏览
MySQL5.7从入门到精通

网站:MySQL官方网站
网站:MySQL手册

MySQL介绍及其概念

MySQL介绍

  • 高性能
  • 低成本
  • 易于配置和学习
  • 可移植性
  • 源代码可用
  • 支持可用
  • 4.0以后特性
    • 视图
    • 存储过程
    • 触发器和游标
    • 子查询支持
    • 存储地理数据的GIS类型
    • 国际化支持改进
    • 事务安全存储引擎InnoDB
    • MySQL查询缓存,他极大的提升了Web应用常有的查询速度.
  • 5.7以后新特性
    • 大范围的安全提升
    • InnoDB的FULLTEXT支持
    • InnoDB的非SQL API支持
    • 分区支持
    • 复制改进,包括基于行的复制和GTID
    • 线程池
    • 可插拔验证
    • 多核扩展性
    • 更好的诊断工具
    • InnoDB作为默认引擎
    • IPv6支持
    • 插件API
    • 事件调度
    • 自动升级

MySQL概念

数据库

MySQL是数据库的一种,其特点是关系型数据库,开源.可满足中小型项目的开发.

如果用过Excel表格的话,就可以带入数据库.

数据库存放数据,就是将无序的数据按一定的规律和顺序摆放存入,不同的数据库特点、性能不同.

关系型

关系型数据库的特点就是可以对某一列,或某一部分数据进行关系约束,数据存在的依赖约束,通过主键,外键进行表约束和数据约束.

理解SQL结构化查询语言

SQL语言说难也难,说简单也简单,SQL结构化查询语言拥有自己独有的语法,但当你掌握了这门SQL语言,便可以在各大数据库上进行增删改查操作.

SQL简单来说就是根据其特定的单词和语法进行组合,进行数据的操作,其操作大致分为四类:增、删、改、查;

当然还拥有一些其他操作,需要读者进行学习.

在学习MySQL时,推荐大家最好买一本工具书,在自己熟练运用MySQL之前,可以多次翻阅查询工具书,进行练习.

理解MySQL数据存储

根据实践MySQL的SQL语句进行数据库的增删改查操作,体会数据库是如何存储数据的.

MySQL基础学习路线

数据库基本操作学习路线

  • 数据类型
    • 数字类型
    • 字符串类型
    • 日期类型
    • 数据类型抉择
  • 内置函数
    • 数学函数
    • 字符串函数
    • 日期和时间函数
    • 条件判断函数
    • 系统信息函数
    • 加密函数
    • 其他函数
  • 数据库操作
    • 创建数据库 CREATE DATABASE name
    • 查看数据库 SHOW
    • 使用数据库 USE DATABASE name
    • 删除数据库 DROP DATABASE name
  • 数据表操作
    • 添加数据表 CREATE
    • 查看表结构 SHOW COLUMNS/DESCRIBE
    • 查看表详细结构语句 SHOW CREATE TABLE
    • 修改表结构 ALTER TABLE
    • 重命名 RENAME TABLE
    • 删除表 DROP TABLE
  • 数据操作
    • 插入数据 INSERT
    • 查询数据 SELECT
    • 修改数据 UPDATE
    • 删除数据 DELETE
    • 聚合函数
  • 连接查询
    • 查询语句基本格式
    • 内连接查询
    • 左外连接
    • 右外连接
    • 复合条件
    • 子查询
    • 合并查询 UNION
    • 别名查询
    • 正则表达式查询
  • 数据库思想 & 概念
  • 程序业务流程

MySQL高级

  • MySQL函数
  • 数据库权限系统
  • 表优化、索引优化
  • 分库分表
  • 备份、恢复
  • 存储引擎
  • 事务
  • 外键
  • 存储过程
  • 触发器
  • 安全策略
  • 数据库服务器安全

MySQL&PHP结合应用

目前正在进行这方面的实践,稍后会进行此处的更新.

数据库思想

关联 & 外键

  • a 表有的数据 b 表也必须要有
  • b 依赖 a
  • 所以 b 表的数据不给删除 必须要 a 的删除了 b 才能删除
  • 反正 外键就是维护两张或者多张表的数据一致性
    关连 是两张或多张表的逻辑关系
    关连不需要外键
  • 关连只是描述逻辑
  • 它说是外键 你想成关连字段就行了 不是说关连就一定不能是外键 关连字段也可以是外键 但是尽量不要是
  • 文章 -> 帐户
  • 评论 -> 帐户

这个时候有外键约束的话 帐户就不给删除

  • 因为要保持数据的一致性 你帐户删除了 那文章 评论就找不到帐户了
  • 要删除帐户就得把 这个帐户的 文章 以及 评论全部删除了 才能那个删除帐户
  • 而关连 则是 查询文章的时候 看是谁发的 那 拿文章关连帐户 去查询
  • 关连 不须要外键 这是两种东西

结束语

如果您对这篇文章有什么意见或者建议,请评论与我讨论.
如果您觉得还不错的话~可以点个喜欢鼓励我哦.
如果您想和我一起学习,请毫不吝啬的私信我吧~
介个是我的个人博客,欢迎参观哦~

    原文作者:筑梦师Winston
    原文地址: https://www.jianshu.com/p/573c1ae0f0be
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞