欢迎来到数据库的世界!
你好!今天我们要一起探索如何使用数据库来组织、存储及寻找信息。试想一下你常用的音视频流媒体应用程序,例如 Netflix 或 Spotify。它是如何精确地知道你上次看到哪里,或者你的“Chill”播放列表里有哪些歌的?答案就是数据库!在本章中,我们将学习数据如何转化为信息,以及如何使用一种名为 SQL 的特殊语言来与这些数字档案柜进行对话。如果刚开始觉得有点技术性也不用担心,我们会一步一步慢慢来!
5.1 数据与信息
在建立数据库之前,我们需要先了解放入其中的是什么。
数据 (Data) 与信息 (Information)
数据由原始的事实和数字组成,单独来看并没有太多意义。例如,“21”这个数字仅是数据。
信息则是当你处理这些数据并赋予其上下文后所得到的结果。如果我告诉你“气温是 21°C”,这就是信息,因为它传达了有用的讯息!
比喻:将数据想象成院子里散落的砖块,而信息则是利用这些砖块盖好的房子。
结构化与非结构化数据
结构化数据非常有组织,能完美地放入包含行与列的表格中(如 Excel 电子表格),计算机能轻松进行搜索。
非结构化数据则是“混乱的”。它包含电子邮件、照片、视频或社交媒体帖文等。它们无法放入简单的表格中,因此分析起来困难得多。
有意义信息的价值
各机构都乐于从数据中提取有意义的信息,因为这能帮助他们做出更好的决策。例如,超市可以查看销售数据,发现冰淇淋在晴天时卖得更好。这让他们能在热浪来袭前预先补货!
快速回顾:
• 数据:原始事实(例如:“75”)。
• 信息:处理过的数据(例如:“你的考试成绩是 75%”)。
• 结构化:有组织的(表格)。
• 非结构化:无组织的(视频/电子邮件)。
5.2 结构化数据:关系型数据库
关系型数据库 (Relational Database) 是一种将数据存储在相互关联的表格中的数据库类型。这让我们不必重复输入相同的数据。
表格的剖析
表格 (Tables):组织成行 (rows) 和列 (columns) 的数据集合。
字段 (Fields):这是“列”的纵向部分。每个字段包含一个特定的信息项目,例如“名字”或“电话号码”。
记录 (Records):这是“行”的横向部分。一条记录包含关于单一个人、项目或事件的所有数据。
示例:在“学生”表格中,一条记录会是关于你个人的所有信息。一个字段则会是名单中每位学生的“出生日期”。
成功的关键:键 (Keys)
为了保持一切井然有序,我们使用特殊的键 (Keys):
• 主键 (Primary Key, PK):用于唯一识别每一条记录的 ID。没有两条记录可以拥有相同的 PK。示例:你的护照号码或学生编号。
• 外键 (Foreign Key, FK):来自另一个表格的主键,出现在目前的表格中以建立关联。
• 组合键 (Composite Key):当单个字段不足以作为唯一识别时,结合两个或多个字段来创建一个唯一的 ID。
实体与关系
实体 (Entity) 就是我们想要存储数据的“事物”(如学生、书籍或汽车)。我们使用关系 (Relationships) 来连接这些实体:
1. 一对一 (1:1):一个人拥有一本护照。
2. 一对多 (1:M):一位母亲可以有多个孩子。这是最常见的类型!
3. 多对多 (M:M):许多学生可以修读许多不同的科目。
你知道吗? 实体关系图 (ERD) 是一张展示这些表格如何连接的绘图,就像是你的数据地图!
重点总结:表格使用字段(纵列)和记录(横行)。主键使记录具有唯一性,而外键则将表格连接在一起。
5.3 结构化查询语言 (SQL)
SQL(常读作 "Sequel")是我们用来与数据库“沟通”的语言。我们用它来寻找、新增或修改数据。
常见的 SQL 指令
1. SELECT:用于“选取”你想查看的数据。
2. CREATE TABLE:建立一个全新的表格。你需要选择数据类型(例如用于数字的 Integer 或用于文本的 Varchar)。
3. INSERT:新增一条记录。
4. UPDATE (Amend):修改现有的信息。
5. DELETE:永久删除一条记录。(使用这个指令要小心!)
连接表格
有时你所需的信息分散在两个不同的表格中。我们使用 JOIN 将这些表格暂时粘合在一起,以便将它们视为一个整体来读取。我们也可以使用 UNION 将两个不同查询的结果合并成一个列表。
通配符:搜索的“秘技”
如果你不确定确切的搜索目标,可以使用通配符 (Wildcards):
• % (百分号):代表零个或多个字符。搜索 "S%" 会找到 "Sam"、"Sarah" 和 "Steven"。
• _ (下划线):代表恰好一个字符。搜索 "H_t" 会找到 "Hat" 和 "Hot"。
组织查询结果
• ORDER BY:对你的结果进行排序(例如 A 到 Z 或从小到大)。
• GROUP BY:将相同的数据归类到组别中(例如“按居住城市将所有学生分组”)。
• COUNT:一个用来计算有多少记录符合搜索条件的函数。
避免常见错误:
别忘了子查询 (Subquery) 只是“查询中的查询”。计算机体会先解决内层的部分,然后使用该答案来解决外层的部分。这就像数学运算中要先处理括号内部的逻辑一样!
最终总结:
数据库将原始数据转化为有用的信息。我们使用关系型数据库将数据存储在连接的表格中。为了管理这些数据,我们使用 SQL 指令,如 SELECT、INSERT 和 UPDATE。掌握了这些,你就掌握了现代信息技术系统的核心!