SQL 使用总结笔记
1. Sqlite 导入 csv 数据不准确
如果需要导入 csv 文件,需要调整 sqlite
模式并且需要申明分割符,步骤如下:
1 | # terminal 打开或者新建文件 data.sqlite3 |
2. 查询 schema 信息
因为不同 DBMS 可以使用不同方法,但下面这个语句是一个比较通用的方法[^1]:
1 | -- 表名称需要加引号,可以查询列名称、数据类型、最大长度 |
其他的工具,例如 Sqlite3
中可以直接调用表达式来完成——.schema <name of table>
;在 MySQL
或者 Mariadb
中可以使用 SHOW CREATE <name of table>
。
3. 单引号和双引号使用
单引号一般使用于字符串中,用于查询语句中构建的条件。例如:
1 | SELECT * |
双引号用于表示列名称,例如:
1 | -- country city 是一个包含了空格的列名称 |
4. JOIN 子句
SQL 语句使用 JOIN 将多个表进行关联查询——这样可以将信息单独存放到一个结果表,筛选必要的苏剧减少数据存储量以及减少对象不同数据独立。
对于为何使用信息表独立开,这个是涉及到了数据库规范。需要考虑要素:
- 表存储了逻辑分组的数据
- 数据修改是否存在多表修改的问题
- 能快速高效地访问和操作数据
JOIN 子句可以将之前独立表添加到统一表中——主要需要使用 JOIN 来联合两张表而 ON 用于判断需要满足什么条件,可以使用别名来替代标名称。
1 | SELECT t1.columns, t2.columns |
示例的表结构如下:

accounts 和 orders 表使用 JOIN 查询示例:


JOIN 的类型包括 INNER JOIN 和 OUTER JOIN(包括了 LEFT OUTER JOIN 、 RIGHT OUTER JOIN 以及 FULL OUTER JOIN)。不同类型的 JOIN 查询数据文式图:
