在正式开始实战之前,咱们先搞清楚SQL到底是啥(可以念成“艾斯-丘-艾尔”或者“西阔”,随你喜欢),还有为啥它这么重要。
SQL的全称是Structured Query Language —— 结构化查询语言。这是一个标准语言,用来和数据库打交道。不管你用的是哪种数据库管理系统——PostgreSQL、MySQL、Oracle还是别的,基本都得用SQL。
你可以把SQL想象成你和数据库“交流”的方式。你给它下命令,比如“把所有18岁以上的学生都给我找出来”,它就像魔法棒一样把你要的数据拎出来。
SQL的主要任务:
- 提取数据 - 比如想知道谁报名了“中世纪历史”这门课。
- 添加数据 - 往数据库里加一个新学生。
- 更新数据 - 改正学生名字里的错别字。
- 删除数据 - 把退学的学生从数据库里删掉。
为什么需要SELECT?
SELECT大概是SQL里最重要的命令了。英文意思就是“选择”。它就是你从数据库里提取想要信息的工具。
想象你走进一个有成千上万本书的图书馆,你想找一本关于Python编程的书。你不用自己在书架间乱逛,直接跟图书管理员说:“帮我找找Python的书。”
在数据库的世界里,SQL就是你的图书管理员,而SELECT就是“帮我找...”的命令。
用SELECT能解决的典型问题:
- 获取所有学生的名字。
- 查查这个学期有多少门课程。
- 找出分数高于90分的学生。
除了提取数据,SELECT还能:
- 过滤数据 —— “只显示18岁以上的学生”。
- 排序数据 —— “按姓氏排序学生”。
- 只显示需要的列,不用全都展示出来。
SQL的主要优势
SQL是个在几乎所有领域都很吃香的技能。
想分析网店的销售数据?你得会SQL。
搞医学研究?还是SQL。做流程自动化?没错,还是SQL。
为啥SQL这么牛?
- SQL几乎能和任何数据库配合使用。
- SQL写出来很直观,容易懂。
- 就算是复杂的SQL查询,也挺容易理解的。
- 用SQL能处理超大规模的数据,还能从中提取你想要的信息。
PostgreSQL里的注释
还有一个很重要的点——SQL查询里的注释。注释真的很有用。首先,你可以在里面写解释或者自己的想法。其次,注释还能用来临时屏蔽掉不工作的代码,或者把旧代码注释掉。
我会经常在代码旁边写注释,所以我们今天就从注释开始讲。
在SQL里,和很多编程语言一样,有单行注释和多行注释。多行注释大概长这样:
/* 注释内容 注释内容 注释内容 */
它以/*开头,以*/结尾。你也可以在一行里用。比如:
/* 注释内容 */
还有一种“从行首到行尾”的注释,和Java里的“//”或者Python里的“#”差不多。不过在SQL里要写两个减号和一个空格。这种注释的格式:
-- 注释内容
下面是一个比较长的SQL查询,右边部分被注释掉了:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
上面这个例子里,我们把查询条件注释掉了,所以PostgreSQL只会执行:
SELECT * FROM employee
我会在代码旁边写注释,让代码更好懂,或者把难点讲清楚。我已经在这么做啦!也建议你们别忽略这个好用的工具。:)
SQL查询的风格
SQL语言设计得超级user-friendly。
首先,SQL查询的大小写一般没啥影响:你可以写SELECT、Select、SeLecT或者select,都能跑。其次,换行一般也无所谓。数据库管理系统会把你的查询当成一行长代码来处理。所以你写查询的时候有一定的自由度。
不过,格式好的SQL代码更容易读、理解、调试和维护。所以有一些通用的风格建议。
格式化建议
- SQL关键字用大写。像
SELECT、FROM、WHERE、ORDER BY这些,大家都习惯用大写。这样能让它们和表名、列名区分开。 SELECT、FROM、WHERE和其他主要部分最好都另起一行。- 分号
;在查询结尾用,作为标准的语句分隔符。如果你在一个脚本或代码块里连续执行多个查询,分号就必须得加。建议每个SQL查询都用分号结尾。
最佳格式化示例:
SELECT customer_id, full_name, email, registration_date
FROM customers
WHERE delivery_address = 'Anytown';
其实这个查询也可以用别的格式写,换种排版方式都行。现在不用太纠结格式。记住,SQL没有唯一强制的格式,最重要的原则就是写出清晰易懂的代码。
GO TO FULL VERSION