第 1 章 了解 SQL
1.1 数据库基础
在深入学习 MySQL 及其 SQL 语言 实现之前,应该对数据库及数据库技术的某些基本概念有所了解
1.1.1 什么是数据库
数据库是一个以某种有组织的方式存储的数据集合
1.1.2 表
某种特定类型数据的结构化清单
表名
数据库中的每个表都有一个名字,用来标识自己,此名字是唯一的
模式
描述表的信息
1.1.3 列和数据类型
列:表中的一个字段,所有表都是由一个字段或多个字段组成的
数据类型:每个表列都有相对应的数据类型,它限制该列中存储的数据
sql
整数类型(Integer Types):
TINYINT: 很小的整数,范围在 -128 到 127 或 0 到 255 之间(取决于是否有符号)。
SMALLINT: 小整数,范围在 -32768 到 32767 或 0 到 65535 之间。
MEDIUMINT: 中等大小整数,范围在 -8388608 到 8388607 或 0 到 16777215 之间。
INT 或 INTEGER: 普通整数,范围在 -2147483648 到 2147483647 或 0 到 4294967295 之间。
BIGINT: 大整数,范围在 -9223372036854775808 到 9223372036854775807 或 0 到 18446744073709551615 之间。
浮点数类型(Floating-Point Types):
FLOAT: 单精度浮点数。
DOUBLE: 双精度浮点数。
定点数类型(Fixed-Point Types):
DECIMAL 或 NUMERIC: 用于存储固定精度的小数,例如货币。
字符串类型(String Types):
CHAR: 固定长度字符串,最多 255 个字符。
VARCHAR: 可变长度字符串,最多 65535 个字符。
BINARY: 固定长度二进制字符串。
VARBINARY: 可变长度二进制字符串。
TINYBLOB: 非常小的二进制对象。
TINYTEXT: 非常小的文本对象。
BLOB: 二进制对象,最大大小为 65535 字节。
TEXT: 文本对象,最大大小为 65535 字节。
MEDIUMBLOB: 中等大小的二进制对象。
MEDIUMTEXT: 中等大小的文本对象。
LONGBLOB: 非常大的二进制对象。
LONGTEXT: 非常大的文本对象。
ENUM: 一个字符串对象,可以从预定义的值列表中选择一个。
SET: 一个字符串对象,可以从预定义的值列表中选择零个或多个。
日期与时间类型(Date and Time Types):
DATE: 日期,格式为 'YYYY-MM-DD'。
TIME: 时间,格式为 'HH:MM:SS'。
DATETIME: 日期和时间,格式为 'YYYY-MM-DD HH:MM:SS'。
TIMESTAMP: 类似于 DATETIME, 但是自动更新为当前时间戳。
YEAR: 年份,存储 2 位或 4 位格式的年份。
其他类型(Other Types):
BOOL 或 BOOLEAN: 用于存储布尔值(真或假)。
SERIAL: 自增长整数,通常用于创建主键。
1.1.4 行
表格的数据是按行存储的,行是表格中的一个记录
1.1.5 主键
一列(或一组列),其值能够唯一区分表中每个行
主键值规则:
1. 任意两行都不具有相同的主键值
2. 每个行都必须具有一个主键值
3. 主键列不允许为空值
1.2 什么是 SQL
结构化查询语言
优点:
1. 几乎所有重要的数据库都支持 SQL
2. SQL 简单易学
第 2 章 MySQL 简介
2.1 什么是 MySQL
MySQL 是一种 DBMS(数据库管理系统)
成本:开源
性能:执行快
可信赖:某些非非常重要的公司都用 MySQL
简单:MySQL 很容易安装和使用
2.1.1 客户机------服务器软件
DBMS 分为两类:
1. 基于共享文件系统的 DBMS
2. 基于客户机——服务器的 DBMS
2.1.2 MySQL版本
5.6 5.7 8.0
2.2 MySQL 工具
Mysql 是一个客户机-服务器 DBMS,因此,为了使用 MySQL,需要有一个客户机,即你需要用来与 MySQL 打交道的一个应用
2.2.1 mysql 命令行实用程序
每个 MySQL 都用安装一个名为 mysql 的简单命令行实用程序,在终端输入 mysql -u root -p 即可登录使用
2.2.2 MySQL Administrator
MySQL Administrator 是一个图形交互客户机,用来简化 MySQL 服务器的管理
2.2.3 MySQL Query Browser
MySQL Query Browser 是一个图形交互客户机,用来编写和执行 MySQL 命令