训练台

SQL

数据查询 产品分析 和数据库

先定义

SQL 是什么

SQL 是一门用来写精确指令的编程语言,主要用于数据查询 产品分析 和数据库。你先不用记一堆术语,只要先理解:程序把输入按步骤变成输出。

最小运行信息文件 query.sql运行 psql -f query.sql习惯 每学一个 SQL 小语法 立刻写一个最小例子并运行
程序

一组按顺序执行的指令。先读输入,再计算,最后得到输出。

值和变量

值是数据,变量是给数据取的名字。先看名字,再看它保存了什么。

函数

把一件小事封装起来,给输入,拿输出,之后可以反复用。

运行环境

兼容 PostgreSQL 的 SQL 环境 负责真正执行 query.sql 里的代码。

第一段可读代码

Select

columns table rows
SELECT name, score FROM users;
输出 name score rows

语言族谱

SQL 的族谱

先看清 SQL 从哪里来 和哪些语言接近 再决定下一步怎么学

来源
relational algebraSEQUEL
当前SQL数据和科学计算语言家族
所属家族数据和科学计算语言家族
适合场景

适合 数据查询 产品分析 和数据库

零基础路径

1看一条规则2先猜输出3凭记忆敲4跑检查器5改一处重做

编程题库

先搜题 再练习

题库按阶段开放,用户可以搜语言、概念、题型、代码关键词,然后直接跳到对应练习。

18 道匹配题
1选择第一阶段 定义入门

SQL 第 1 题

SQL 第 1 题 选择和 select columns 最匹配的说法

2选择第一阶段 定义入门

SQL 第 2 题

SQL 第 2 题 选择和 where filter 最匹配的说法

3选择第一阶段 定义入门

SQL 第 3 题

SQL 第 3 题 选择和 count aggregate 最匹配的说法

4选择第一阶段 定义入门

SQL 第 4 题

SQL 第 4 题 选择和 join tables 最匹配的说法

5选择第一阶段 定义入门

SQL 第 5 题

SQL 第 5 题 选择和 select columns 最匹配的说法

6选择第一阶段 定义入门

SQL 第 6 题

SQL 第 6 题 选择和 where filter 最匹配的说法

7选择第一阶段 定义入门

SQL 第 7 题

SQL 第 7 题 选择和 count aggregate 最匹配的说法

8选择第一阶段 定义入门

SQL 第 8 题

SQL 第 8 题 选择和 join tables 最匹配的说法

9选择第一阶段 定义入门

SQL 第 9 题

SQL 第 9 题 选择和 select columns 最匹配的说法

10选择第一阶段 定义入门

SQL 第 10 题

SQL 第 10 题 选择和 where filter 最匹配的说法

11选择第一阶段 定义入门

SQL 第 11 题

SQL 第 11 题 选择和 count aggregate 最匹配的说法

12选择第一阶段 定义入门

SQL 第 12 题

SQL 第 12 题 选择和 join tables 最匹配的说法

13选择第一阶段 定义入门

SQL 第 13 题

SQL 第 13 题 选择和 select columns 最匹配的说法

14选择第一阶段 定义入门

SQL 第 14 题

SQL 第 14 题 选择和 where filter 最匹配的说法

15选择第一阶段 定义入门

SQL 第 15 题

SQL 第 15 题 选择和 count aggregate 最匹配的说法

16选择第一阶段 定义入门

SQL 第 16 题

SQL 第 16 题 选择和 join tables 最匹配的说法

17选择第一阶段 定义入门

SQL 第 17 题

SQL 第 17 题 选择和 select columns 最匹配的说法

18选择第一阶段 定义入门

SQL 第 18 题

SQL 第 18 题 选择和 where filter 最匹配的说法

选择题

SQL 第 1 题

1选择新题

SQL 第 1 题 选择和 select columns 最匹配的说法

SELECT name FROM users;

参考

query.sql 常用模式

兼容 PostgreSQL 的 SQL 环境psql -f query.sql
回忆输出看完一个小点后 合上提示自己写出来
手动跟踪运行前先逐行写出变量变化
亲手敲一遍少复制 多打字 每次只修一个小错

columns table rows

Select

SELECT name, score FROM users;
  • Select only needed columns
  • Read from one table first
  • Add limits while exploring

where order limit

Filter

SELECT name FROM users WHERE score >= 60;
  • WHERE filters rows
  • ORDER BY sorts
  • LIMIT protects exploration

count sum avg group by

Group

SELECT role, COUNT(*) FROM users GROUP BY role;
  • Aggregate after filtering
  • Group by non aggregate columns
  • Name metrics clearly