MySQL数据库之MySQL学习笔记(基础篇)
小标 2019-03-29 来源 : 阅读 1522 评论 0

摘要:本文主要向大家介绍了MySQL数据库之MySQL学习笔记(基础篇) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库之MySQL学习笔记(基础篇) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

MySQL数据库之MySQL学习笔记(基础篇)

目录
1.数据库介绍及概念
2.数据库存储引擎和数据类型
3.结构化查询语言SQL
3.数据库基本操作
4.数据表基本操作
5.数据基本操作
6.数据库聚合函数
7.数据库逻辑运算符&比较运算符
8.数据库联结查询
9.数据库联结查询思想
10.数据库范式建表思想

推荐书籍 & 网站推荐

Head First SQL:本书全部案例以MySQL作为素材,详细介绍了SQL的各种语句使用

Head First PHP & MySQL:这本书从第一章就开始讲PHP如何操纵MySQL,根据书中真是案例一步步带入PHP和MySQL的聚合函数、PHP的内置函数以及如何联合进行调试

PHP+MySQL开发实战:本书针对方向为实操,里面详细讲述了每个SQL语句如何使用,使用所需要的参数规范等.每个章节后都有项目可以进行练习,物流系统和论坛等.这本书可以当做工具书(推荐入手,方便查询).

PHP和MySQL Web开发(第五版):目前实体书为第五版,电子书为第四版,第五版多了PHP7.0的讲解,本书注重方向为概念,结合上一本实操书便可以灵活运用PHP和MySQL进行项目开发.

PHP、MySQL与JavaScript学习手册第4版:实体书有最新版,本书详细阐述了一个网络项目中所担当的所有角色(包括Ajax和jQuery都有提到),适合在学习完PHP&MySQL后进行学习.

数据库系统设计、实现与管理原书第8版:本书为拓展书,如果你想详细了解数据库的起源,原理,以及对1NF、2NF、BCNF、3NF等的定义,创建更为成熟的数据库.这是一本原理书.


本来这篇文章,在我学习了数据库的增删改查操作以后,我就想写出来,结果经过6本书的研读,才发现,自己所谓的增删改查,只是MySQL的冰山一角.

本人强烈建议在进行视频学习之前,首先看一下Head First系列对SQL的讲述,因为有些视频的讲述顺序并不适合入门.并且要结合PHP一起进行学习(或者可以学习Java).

数据库介绍及概念

数据库服务器

安装了数据库软件的计算机,就是数据库服务器.

数据库管理系统(DBMS)

DBMS,Database management System数据库库管理系统,是一款操作数据库的管理软件。

数据库

数据库(Database)是用来组织、存储和管理数据的仓库。简单来说是可视为电子化的文件柜——存储电子文件的处所,相当于文件夹。

数据表

数据表是存放数据的地方。

记录、字段(列)、数据(值)

记录:一行数据就是一条记录;
字段(列):每个表由多个列构成,每个列就是一个字段。
数据:行列交叉处的值,就是数据。

数据库访问流程图

很多牌子的数据库(Oracle、DB2、SQL Server、MySQL等)->选择安装MySQL->数据库Database->数据表TABLE->数据DATA

关系型数据库

所谓关系数据库,是建立在关系模型基础上的数据库,现实世界中的各种实体以及实体之间的各种联系均可用关系模型来表示。例如:教师实体、学生实体等;

目前主流的关系数据库有Oracle、MySQL、DB2、SQLServer、sybase等;

简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库;
通俗说,一个关系模型其实就是一张规范的二维表格。

结构化查询语言SQL

结构化查询语言(Structured Query Language)简称SQL,是关系数据库的标准语言,用于对数据的存取和管理;同时也是数据库脚本文件的扩展名(.sql),备份文件的扩展名。
SQL语言简洁,易学易用。下面会详细讲到.

数据库存储引擎和数据类型

什么是存储引擎

  • 数据使用各种不同的技术 存储在数据库中

  • 这些文件引用不同的存储机制,索引技巧,锁定水平,形成不同的最终的广泛功能

  • 也称作表类型.

  • MySQL内置了不同的很多存储引擎,目前流行的是InnoDB

查看存储引擎

  • SHOW ENGINES 查看所支持的引擎

InnoDB存储引擎
  • 其优点是 事务处理 回滚 崩溃修复能力 处理多并发

  • 第一个提供外键约束的存储引擎

  • 缺点是读写效率差,占用数据空间较大

MyISAM存储引擎
  • 基于ISAM引擎

    • 存储格式为静态 动态 压缩.

    • 静态数据 空间会占用较大空间,但处理数据会降至最低开销.

    • 动态数据 空间占用较小,但数据变动会导致内存移动,产生碎片(需要调用  碎片整理语句 OPTIMIZE TABLE)

    • 只读数据  采取压缩空间存储

    • 整体优势占用空间较小,处理速度快不支持 事务和并发性处理

MEMORY存储引擎
  • 索引类型

    • 哈希索引

  • 存储周期

    • 大小受限

    • 生命周期短

数据类型

  • 数据类型

    • 选择最小的可用类型,如果值永远不超过127,则使用TINYINT比INT强

    • 对于完全是数字的,可用整数类型

    • 浮点类型用于可能具有小数部分的数.

    • 从速度方面考虑,要选择固定的列,可以使用CHAR 类型

    • 要节省空间,使用动态的列,可以使用VARCHER类型

    • 要将列中的内容限制在一种选择,可以使用ENUM类型.

    • 允许在一个列中有多于一个的条目,可以使用SET类型

    • 如果要搜索的内容不区分大小写,可使用TEXT类型

    • 如果要搜索的内容区分大小写,可以使用BLOB类型

    • DATE

    • TIME

    • DATETIME

    • TIMESTAMP

    • YEAR

    • 普通字符串类型

    • TEXT 和 BLOB类型

    • 特殊类型SET 和ENUM

    • CHAR 0-255

    • VARCHAR 0-255

    • TINYBLOB 225字节 小BLOB字段

    • TINYTEXT 225字节 小TEXT字段

    • BLOB 65535字节 常规BLOB字段

    • TEXT 65535字节 常规TEXT字段

    • MEDIUMBLOB 16777215字节 中型BLOB字段

    • MEDIUMTEXT 16777215字节 中型TEXT字段

    • LONGBLOB 4294967295字节 长BLOB字段

    • LONGTEXT 4294967295 长TEXT字段

    • ENUM 65535

    • SET 64

    • TINYINT 最小整数 (127~255)

    • BIT 最小整数 (127~255)

    • BOOL 最小整数 (127~255)

    • SMALLINT 小型整数 32767

    • MEDIUMINT 中型整数 8388607

    • INT 标准整数 2147683647

    • BIGINT 大整数 9223372036854775807

    • FLOAT 单精度浮点数

    • DOUBLE 双精度浮点数

    • DECIMAL 一般整数 自定义长度

    • 数字类型

    • 字符串类型

    • 日期类型

    • 数据类型抉择

结构化查询语言SQL

SQL语句自有规范,其大致语法可以概括为:增、删、改、查.

数据库基本操作

数据库服务器启动、停止

Mac环境下:
确认已经使用brew 安装MySQL
运行指令> mysql.server start 启动数据库服务器
运行指令> mysql.server stop 停止数据库服务器

数据库登录、退出

终端运行指令> mysql -u root -p回车

数据库的增删改查

  • 创建数据库 CREATE DATABASE name

  • 查看数据库 SHOW

    • 查看所有数据库 SHOW DATABASES

  • 使用数据库 USE DATABASE name

  • 删除数据库 DROP DATABASE name

数据表基本操作

  • 添加数据表 CREATE

  • 查看表结构 SHOW COLUMNS/DESCRIBE

  • 查看表详细结构语句 SHOW CREATE TABLE

  • 修改表结构 ALTER TABLE

  • 重命名 RENAME TABLE

  • 删除表 DROP TABLE

数据基本操作

  • 插入数据 INSERT

  • 查询数据 SELECT

  • 修改数据 UPDATE

  • 删除数据 DELETE

数据库聚合函数

  • COUNT(字段名) 计算非空记录数

    • SELECT COUNT(DISTINCT results) FROM student;

    • COUNT(*)全部统计

    • SELECT sex,count(sex) AS 人数 FROM student GROUP BY sex DESC.

  • AVG(字段名) 平均数

    • SELECT AVG(row) FROM table_name;

  • MIN (字段名) 最小值

    • SELECT MIN(row) FROM table_name;

  • MAX (字段名) 最大值

    • SELECT MAX(row) FROM table_name;

  • STD(字段名)指定字段标准背离值

  • STDTEV(字段名)指定字段标准背离值

  • SUM(字段名)指定字段所有记录的总合

    • SELECT sum(row) FROM table_name;

数据库逻辑运算符&比较运算符

  • 算数运算符

    • 加法运算+

    • 减法运算-

    • 乘法运算 *

    • 除法运算 /

    • 求余运算 %

    • 除法运算 返回商 DIV 同’/’

    • 求余运算 返回余数 MOD 同’%’

  • 比较运算符

    • 模糊查询 不包含 NOT LIKE

    • 正则表达式 REGEXP

    • 是否为空 IS NULL

    • 不为空 IS NOT NULL

    • 范围 ..介于 BETWEEN  AND

    • 范围 ..不在 NOT BETWEEN  AND

    • 在范围之内 IN

    • 不在什么范围之内 NOT IN

    • 模糊查询 包含 LIKE

    • 大于 >

    • 小于 <

    • 大于等于 =>

    • 小于等于 <=

    • 不等于 != 或 <>

    • 等于 =

  • 逻辑运算符

    • 满足其中一个条件就会被查出来

    • SELECT * FROM table_name WHERE condition_1 OR condition_2…OR无限叠加

    • SELECT * FROM table_name WHERE section=‘php’ OR section=‘程序开发’;

    • 条件必须全部满足,才能被查询出来

    • SELECT * FROM table_name WHERE condition_1 AND condition_2 …可以无限AND叠加

    • SELECT * FROM table_name  WHERE user=‘mr’ AND section=‘php’.

    • 多条件查询 AND

    • 多条件查询 OR

    • 非运算 NOT

    • 异或运算 XOR

  • 位运算

    • 按位与&

    • 按位或|

    • 按位取反~

    • 按位异或^

    • 按位左移<<

    • 按位右移>>

数据库联结查询

  • 内连接查询

    • SELECT name,books FROM table_name_1,table_name_2 WHERE table_name1.user =table_name2.user

    • 内连接,结果集只包含参加连接的表中与指定字段相符的行.

    • 如果没有WHERE限定,则为交叉连接或者全连接

    • 相等联结
      SELECT col_name FROM table_name INNER JOIN table_name WHERE conditions = conditions

    • 不等联结
      SELECT col_name FROM table_name INNER JOIN table_name WHERE conditions <> conditions

    • 自然联结
      SELECT col_name FROM table_name NATURAL JOIN table_name ;

  • 左外连接

    • SELECT col_name FROM table_name1 LEFT JOIN table_name2 ON table_name1.col_name =table_name2.col_name;

    • 左外链接,是指将左表中的所有数据分别与右表的每条数据进行结合,返回的结果除内连接的数据外,还包括左表中不符合条件的数据,并在右表的相应列中添加NULL值.

  • 右外连接

    • SELECT col_name FROM table_name1 RIGHT JOIN table_name2 ON table_name1.col_name =table_name2.col_name;

    • 右外连接,是指将右表中的所有数据分别与左表中的每条数据进行连接组合,返回的结果除内连接数据外,还包括表中不符合条件的数据,并在左表的相应列中添加NULL.

数据库联结查询思想

  • a 表有的数据 b 表也必须要有

  • b 依赖 a

  • 所以  b 表的数据不给删除 必须要 a 的删除了  b 才能删除

  • 反正 外键就是维护两张或者多张表的数据一致性
    关联 是两张或多张表的逻辑关系
    关联不需要外键

  • 关联只是描述逻辑

  • 它说是外键  你想成关联字段就行了        不是说关联就一定不能是外键      关联字段也可以是外键  但是尽量不要是

  • 文章  -> 帐户

  • 评论  ->  帐户

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

  • 因为要保持数据的一致性   你帐户删除了 那文章  评论就找不到帐户了

  • 要删除帐户就得把 这个帐户的 文章  以及  评论全部删除了  才能那个删除帐户

  • 而关联  则是   查询文章的时候 看是谁发的   那 拿文章关联帐户 去查询

  • 关联 不须要外键 这是两种东西

数据库范式建表思想

所谓范式建表思想,就是指当获得业务需求和一大堆数据后,按照1NF、2NF、BCNF、3NF等进行表关系的建立,目前还在学习当中,后续将会举例子出来

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved