SQL - 概览

你好,有抱负的程序员们!我很高兴能成为你在这个激动人心的SQL世界中的向导。作为一个教授计算机科学超过十年的人,我可以告诉你,SQL就像是数据世界中的瑞士军刀 - 非常多功能且绝对必要。那么,让我们一起来揭开SQL的神秘面纱吧!

SQL - Overview

什么是SQL?

SQL,代表结构化查询语言,是一种特殊用途的编程语言,旨在管理和操作关系数据库。我知道这听起来可能有点吓人,但你可以这样想:如果数据是一个大图书馆,那么SQL就是那个知道每本书确切位置并能迅速获取任何所需信息的图书管理员。

SQL的主要特性

  1. 声明式语言:你告诉SQL你想要什么,而不是如何得到它。
  2. 基于集合:它操作的是数据集合,而不仅仅是单个记录。
  3. 非过程式:你不需要指定检索数据的精确步骤。

下面是一个简单的例子,展示SQL的样子:

SELECT first_name, last_name
FROM employees
WHERE department = 'Sales';

这个查询是请求数据库提供销售部门所有员工的姓名。很简单,对吧?

为什么学习SQL?

现在,你可能想知道,“我为什么要学习SQL?”让我给你讲一个小故事。几年前,我的一个学生在大学毕业后就找到了一份很好的工作,仅仅是因为她懂SQL。这家公司拥有大量数据,但却难以理解。她的SQL技能让她立刻成为了英雄!

以下是学习SQL的一些令人信服的理由:

  1. 通用语言:几乎所有的关系数据库都理解SQL。
  2. 数据无处不在:从小企业到科技巨头,每个人都使用数据库。
  3. 职业机会:SQL技能在各个行业都非常受欢迎。
  4. 强大的数据操作:SQL可以轻松处理大量数据。

SQL的简要历史

SQL比我们中的许多人都要古老!它诞生于20世纪70年代,在技术年代中,这几乎是古老的。IBM的研究员唐纳德·张伯伦和雷蒙德·博伊斯基于埃德加·科德的关系模型开发了SQL。他们就像是数据领域的弗兰肯斯坦博士,创造了一种能够与数据库对话的语言!

关键里程碑

年份 事件
1970 埃德加·科德提出关系模型
1974 SQL在IBM诞生
1986 SQL成为ANSI标准
1987 SQL成为ISO标准
1990年代 许多数据库系统采用SQL

SQL是如何工作的?

现在,让我们窥视一下SQL是如何施展魔法的。SQL在客户端-服务器模型上运行。你可以将其比作餐厅:你(客户端)下单,厨房(服务器)准备并为你服务餐点。

SQL的过程

  1. 连接:你的应用程序连接到数据库服务器。
  2. 查询:你向服务器发送一个SQL查询。
  3. 处理:服务器处理你的查询。
  4. 结果:服务器将结果返回给你的应用程序。

让我们看一个更复杂的例子来阐述这个过程:

SELECT c.customer_name, SUM(o.total_amount) as total_spent
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_name
HAVING SUM(o.total_amount) > 1000
ORDER BY total_spent DESC;

这个查询做了很多事情:

  1. 它连接了两个表:customersorders
  2. 它计算了每个客户的总消费金额。
  3. 它过滤出消费金额超过1000美元的客户。
  4. 最后,它按照消费金额降序排序结果。

当你运行这个查询时,SQL会经历几个步骤:

  1. 它首先连接customersorders表。
  2. 然后按客户名称分组结果。
  3. 它计算每个客户的total_amount总和。
  4. 它应用HAVING子句过滤掉消费金额不足1000美元的客户。
  5. 最后,它按消费金额降序排序结果。

所有这些都在幕后发生,你得到的是一个整洁的结果表!

SQL实战

为了真正理解SQL的工作原理,让我们创建一个简单的数据库并运行一些查询。假设我们正在管理一家小型书店:

-- 创建一个书籍表
CREATE TABLE books (
book_id INT PRIMARY KEY,
title VARCHAR(100),
author VARCHAR(50),
price DECIMAL(5,2)
);

-- 插入一些数据
INSERT INTO books VALUES
(1, '杀死一只知更鸟', '哈珀·李', 12.99),
(2, '1984', '乔治·奥威尔', 10.99),
(3, '傲慢与偏见', '简·奥斯汀', 9.99);

-- 查询价格超过10美元的书籍
SELECT title, price
FROM books
WHERE price > 10
ORDER BY price DESC;

当你运行最后一个查询时,SQL将会:

  1. 查看书籍表中的所有记录。
  2. 检查每本书的价格是否符合条件(> 10)。
  3. 对于符合条件的书籍,它将选择标题和价格。
  4. 最后,它将按价格降序排序这些结果。

结果可能看起来像这样:

标题 价格
杀死一只知更鸟 12.99
1984 10.99

就是这样!你已经见证了SQL的实战,从创建表、插入数据到查询它。

记住,学习SQL就像学习骑自行车。一开始可能有点不稳,但随着练习,你很快就能在数据库中自如地穿梭。继续尝试,保持好奇心,不要害怕犯错误 - 这是我们学习最好的方式!

Credits: Image by storyset