之前用了用 MySQL ,没有用 GUI 软件(因为 navicat
要钱)。命令行觉得有趣,因为其中有很多操作并不直观,比如为啥 source
这么慢?为啥设置 innodb_flush_log_at_trx_commit = 0
啥的就行了?
必须理解才行。于是咱系统学一学数据库,先从基础操作和基础原理说起。
https://sqlzoo.net/wiki/SQL_Tutorial
- SELECT basics
- FUNCTIONS
- JOIN
- INSERT, UPDATE, DELETE, CREATE, DROP
- ALTER, UNION, Full Text Search, Equi Join, Column Name with Spaces
答案与代码参考了:
- Find the routes involving two buses that can go from A to B
- github.com/jisaw/sqlzoo-solutions
- 基础的查询与运算
- Umlaut 非ASC码字符 Non-ASCII characters
- Apostrophe 撇号
- 排序 ORDER BY 与逆序 DESC
- 取前 K 个数用 LIMIT
- CASE 与 ORDER BY 混用
- 嵌套查询、去重 DISTINCT、聚合 GROUP BY
- 混合练习:CONCAT与处理NULL值
- correlated sub-query or synchronized sub-query(子查询同步?)