《MySQL必知必会》拆书稿
Nico Liao 阿蒙

共三十章,211面
内容有待精简
持续更新、

第1章 了解SQL

1.1 数据库基础

1.1.1 什么是数据库

  • 数据库是一个以某种 有组织的方式存储的数据集合。
  • 数据库不同于日常使用的数据库软件(DBMS 数据库管理系统),数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,但也可以不是。

1.1.2 表

  • 表是一种结构化的文件,可用 来存储某种特定类型的数据。表可以保存顾客清单、产品目录,或者其 他信息清单。
  • 存储在表中的数据是一种类型的数据或一个清单,决不能将归属于不同类型的数据储存在一起。
  • 数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的, 这表示数据库中没有其他表具有相同的名字。
  • 虽然在相同数据库中不能两次使用相同的表名, 但在不同的数据库中却可以使用相同的表名。
  • 模式(schema) :关于数据库和表的布局及特性的信息。模式可以用来描述数据库中特定的表以及 整个数据库(和其中表的关系)。

1.1.3 列和数据类型

  • 表由列组成。列中存储着表中某部分的信息。列(column): 表中的一个字段。所有表都是由一个或多个列组成的。

  • 理解列的最好办法是将数据库表想象为一个网格。网格中每一列存 储着一条特定的信息。

  • 数据库中每个列都有相应的数据类型。数据类型定义列可以存储的数据种类。

  • 数据类型限制可存储在列中的数据种类(例如,防止在数值字段中 录入字符值)。数据类型还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。因此,在创建表时必须对数据类型给予特别的关注。

    1.1.4 行

  • 表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行。

  • 用户在提到行(row)时称其为 数据库记录(record)。在很大程度上,这两个术语是可以互相 替代的,但从技术上说,行才是正确的术语。

    1.1.5 主键

  • 主键(primary key)1一一列(或一组列),其值能够唯一区分表 中每个行。表中每一行都应该有可以唯一标识自己的一列(或一组列)。

  • 唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示 一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安 全的方法保证只涉及相关的行。

  • 表中的任何列都可以作为主键,只要它满足以下条件:

    • 任意两行都不具有相同的主键值;
    • 每个行都必须具有一个主键值(主键列不允许NULL值)。
  • 主键值规则(本身强制的要求)

    • 主键通常定义在表的一列上,但这并不是必需的,也可以一起使用多个列作为主键。
    • 在使用多列作为主键时,上述条件必须应用到构成主 键的所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。
  • 使用主键的好习惯:

    • 不更新主键列中的值;
    • 不重用主键列的值;
    • 不在主键列中使用可能会更改的值。

1.2 什么是SQL

  • SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。
  • SQL有如下的优点:
    • SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库打交道。
    • SQL简单易学。它的语句全都是由描述性很强的英语单词组成, 而且这些单词的数目不多。
    • SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活 使用其语言元素,可以进行非常复杂和高级的数据库操作。

1.3 动手实践

1.4 小结

第2章 MySQL简介

2.1 什么是MySQL

  • 数据的所有存储、 检索、管理和处理实际上是由数据库软件——DBMS(数据库管理系统) 完成的。MySQL是一种DBMS,即它是一种数据库软件。
  • MySQL广泛应用的原因:
    • 成本低
    • 性能好
    • 可信赖
    • 简单

2.1.1 客户机—服务器软件

  • DBMS的两种类型

    • 一类为基于共享文件系统的DBMS

    • 另一类为基于客户机——服务器的DBMS

      MySQL,Oracle,Microsoft SQL Server都属于后者。

  • 客户机—服务器应用分为两个不同的部分:

    • 服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。
    • 客户机是与用户打交道的软件。
  • 事实上,多数网络的建立使用户不具有对数据的访问权,甚至不 具有对存储数据的驱动器的访问权。

image-20210923150430496

2.1.2 MySQL版本

  • MySQL 4.1对MySQL函数库引入了重要更改,本书是为使用此版本或更高版本而撰写的。

2.2 MySQL工具

  • 每个MySQL安装都有一个名为mysql的简单命令行实用程序。这个实用程序没有下拉菜单、流行的用户界面、鼠标支持或任何类似的东西。

2.2.1 mysql命令行实用程序

  • 如果仅输入mysql,可能会出现一个错误 消息。因为可能需要安全证书,或者是因为MySQL没有运行 在本地或默认端口上。

  • mysql接受你可以(和可能需要)使用 的一组命令行参数。

  • 具体的版本和连接信息可能不同,但都可以使用这个实用程序。请注意:

    • 命令输入在mysql>之后;

    • 命令用;或\g结束,换句话说,仅按Enter不执行命令;

    • 输入help或\h获得帮助,也可以输入更多的文本获得特定命令的帮助(如,输入help select获得使用SELECT语句的帮助);

    • 输入quit或exit退出命令行实用程序。

      ==mysql命令行实用程序是使用最多的实用程序之一,它对于快速测试和执行脚本非常有价值。==

2.2.2 MySQL Adminis-trator

  • MySQL Administrator(MySQL管理器)是一个图形交互客户机,用来简化MySQL服务器的管理。

    image-20210923152606488
  • MySQL Administrator提示输入服务器和登录信息(并且允许你保存 服务器定义供以后选择),然后显示允许选择不同视图的图标。其中:

    •  Server Information(服务器信息)显示客户机和被连接的服务器的状态和版本信息;
    •  Service Control(服务控制)允许停止和启动MySQL以及指定服务器特性;
    •  User Administration(用户管理)用来定义MySQL用户、登录和权限;
    •  Catalogs(目录)列出可用的数据库并允许创建数据库和表。

2.2.3 MySQL Query Browser

  • MySQL Query Browser为一个图形交互客户机,用来编写和执行 MySQL命令。

  • MySQL Query Browser要求输入服务器和登录信息(在MySQL Query Browser和MySQL Administrator之间共享保存的定义),然后显示应用界面。注意下面几点:

    • 输入MySQL命令到屏幕顶上的窗口中。在输入语句后,单击 Execute按钮把它提交给MySQL处理。

    • 结果(如果有)显示在屏幕左边的大区域网格中。

    • 多条语句和结果显示在它们自己的标签中,并且允许快速切换。屏幕右边是一个标签,它列出所有可能的数据源(这里称为大纲),展开任一数据源查看它的表,展开任一个表查看它的列。 你还可以选择表和列让MySQL Query Browser为你编写MySQL语句。

    • Schemata(大纲)标签的右边是一个History(历史)标签,它保持MySQL语句的执行历史。在需要测试不同版本的MySQL语句时,它非常有用。

    • 关于MySQL语法、函数等的帮助可在屏幕右下角得到。

      image-20210923153349510

2.3 小结

第3章 使用MySQL

3.1 连接

  • MySQL与所有的客户机-服务器一样,要求在能执行命令之前登录到DBMS
  • 登录名可以与网络登录名不同,MySQL 在内部保存自己的用户列表,并且把每个用户与用户权限关联起来
  • 连接到MySQL,需要一下信息:
    • 主机名(计算机名)
    • 端口
    • 一个合法的用户名
    • 用户口令

3.2 选择数据库

3.3 了解数据库和表

3.4 小结

第4章 检索数据

4.1 SELECT语句

4.2 检索单个列

4.3 检索多个列

4.4 检索所有列

4.5 检索不同的行

4.6 限制结果

4.7 使用完全限定的表名

4.8 小结

第5章 排序检索数据

5.1 排序数据

5.2 按多个列排序

5.3 指定排序方向

5.4 小结

第6章 过滤数据

6.1 使用WHERE子句

6.2 WHERE子句操作符

6.2.1 检查单个值

6.2.2 不匹配检查

6.2.3 范围值检查

6.2.4 空值检查

6.3 小结

第7章 数据过滤…………………….. 40

7.1 组合WHERE子句 ……………….. 40

7.1.1 AND操作符 ……………. 40

7.1.2 OR操作符 ……………… 41

7.1.3 计算次序 ……………… 42

  • 本文标题:《MySQL必知必会》拆书稿
  • 本文作者:Nico Liao
  • 创建时间:2021-11-03 12:10:02
  • 本文链接:https://www.lzp.zone/2021/11/03/《MySQL必知必会》拆书稿/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论