【SQL教程】Day01-02:为什么需要数据库?

在现代的应用程序开发中,数据存储和管理变得越来越复杂。应用程序需要有效地保存和处理用户数据。例如,Microsoft Word需要保存用户的文档,以便下次编辑或转移到另一台设备。​

1. 最初的数据存储方法

一种简单的存储方法是将用户数据写入文件,如CSV文件。假设要保存一个班级所有学生的信息,可以将数据写入一个CSV文件,如下所示:

rid,name,gender,score1,小明,M,902,小红,F,953,小军,M,884,小丽,F,88

如果要保存学校所有班级的信息,则需要另一个CSV文件。然而,随着应用程序的功能复杂化和数据量的增加,管理这些数据变得越来越困难:

数据读写和解析需要大量重复的代码。

从成千上万的数据中快速查询指定数据需要复杂的逻辑。

2. 数据库的出现

为了简化数据管理,数据库应运而生。应用程序不再需要自己管理数据,而是通过数据库提供的接口进行数据操作。至于数据如何存储在磁盘上,数据库软件负责,应用程序则无需关心。

arduino┌───────────┐│application│└───────────┘ ▲ │ │ │ read│ │write │ │ │ ▼┌───────────┐│ database │└───────────┘

通过这样的方式,应用程序的开发变得更加简便,数据的管理也得到了有效的优化。

3. 数据模型

数据库中的数据是通过特定的数据模型组织和存储的。常见的数据模型包括以下三种:

层次模型

网状模型

关系模型

3.1 层次模型

层次模型使用“上下级”结构来组织数据。它的数据结构像一颗树。例如:

markdown ┌─────┐ │ │ └─────┘ │ ┌───────┴───────┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ └─────┘ └─────┘ │ │ ┌───┴───┐ ┌───┴───┐ │ │ │ │┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐│ │ │ │ │ │ │ │└─────┘ └─────┘ └─────┘ └─────┘

3.2 网状模型

网状模型通过将每个数据节点与多个其他节点连接起来,形成一个复杂的网络结构。它的数据结构类似于城市之间的交通网络:

markdown ┌─────┐ ┌─────┐ ┌─│ │──────│ │──┐ │ └─────┘ └─────┘ │ │ │ │ │ │ └──────┬─────┘ │ │ │ │┌─────┐ ┌─────┐ ┌─────┐│ │─────│ │─────│ │└─────┘ └─────┘ └─────┘ │ │ │ │ ┌─────┴─────┐ │ │ │ │ │ │ ┌─────┐ ┌─────┐ │ └──│ │─────│ │──┘ └─────┘ └─────┘

3.3 关系模型

关系模型将数据表示为二维表格,数据通过行和列来存储。每个数据项可以通过行号和列号来唯一识别。这种模型最接近我们日常使用的Excel表格。举例来说,一个班级的学生信息可以存储在以下表格中:

ID姓名班级ID性别年龄1小明201M92小红202F83小军202M84小白201F9

通过班级ID,可以关联到班级的详细信息:

ID名称班主任201二年级一班王老师202二年级二班李老师

这种结构使用ID建立了表与表之间的关系,并通过一对多的关系进行数据的关联。

4. 数据类型

关系数据库中的每一列都需要定义数据类型。常见的数据类型包括:

名称类型说明INT整型4字节整数类型,范围约+/-21亿BIGINT长整型8字节整数类型,范围约+/-922亿亿REAL浮点型4字节浮点数,范围约+/-1038DOUBLE浮点型8字节浮点数,范围约+/-10308DECIMAL(M,N)高精度小数用户指定精度的小数,通常用于财务计算CHAR(N)定长字符串存储指定长度的字符串VARCHAR(N)变长字符串存储可变长度的字符串BOOLEAN布尔类型存储True或者FalseDATE日期类型存储日期,例如,2018-06-22TIME时间类型存储时间,例如,12:20:59DATETIME日期和时间类型存储日期+时间,例如,2018-06-22 12:20:59

5. 主流关系数据库

关系数据库有很多种类型,主要分为以下几类:

商用数据库:如Oracle、SQL Server、DB2等;

开源数据库:如MySQL、PostgreSQL等;

桌面数据库:如微软Access,适用于桌面应用;

嵌入式数据库:如SQLite,适合移动应用和桌面程序。

6. SQL简介

SQL是“结构化查询语言”(Structured Query Language)的缩写,它用于访问和操作数据库。SQL语句不仅可以查询数据库中的数据,还可以进行数据的添加、更新、删除以及数据库的管理和维护。

7. SQL的标准化

虽然SQL是一个国际标准,由ANSI组织定义,但不同的数据库实现可能会有所差异。很多数据库扩展了SQL标准,使得各数据库之间的SQL实现存在“方言”差异。例如:

Oracle:PL/SQL

Microsoft SQL Server:T-SQL

8. SQL操作类型

SQL语言主要分为以下几类操作:

1. DDL(数据定义语言)

DDL用于定义数据库结构,例如创建、删除和修改表结构。

2. DML(数据操作语言)

DML用于数据的增、删、改操作。它是应用程序与数据库交互的日常操作。

3. DQL(数据查询语言)

DQL用于查询数据,这是最常用的数据库操作。

9. SQL语法特点

SQL中的关键字不区分大小写,但不同数据库可能对表名和列名的大小写有不同的处理方式。在本教程中,约定使用大写的SQL关键字,表名和列名使用小写。

这篇教程的内容为您打下了一个坚实的基础,帮助您理解SQL的必要性以及它在日常工作中的应用。如果您希望深入学习SQL,继续关注后续教程!

O

友情链接