1. 什么是SQL
SQL就是访问和处理关系数据库的计算机标准语言。
关系数据库可以看作是一个二维表格,任何数据都可以同通过行号+列号来唯一确定。
2. 关系模型
主键: 通过主键可以唯一区分出不同的记录。不使用业务相关的字段作为主键。
联合主键: 通过多个字段唯一标识记录,即两个或更多的字段都设置为主键。这种主键被称为联合主键。
外键: 通过某个字段,可以把数据与另一张表关联起来。
3.查询数据 (SELECT)
SELECT * FROM <表名>
可以查询到一张表的所有记录。
SELECT * FROM <表名> WHERE <条件表达式>
来查询满足条件的记录
如果条件表达式不加括号,条件运算按照NOT
、AND
、OR
的优先级进行。
SELECT 列1 别名1, 列2 别名2, 列3 别名3... FROM <表名>
,查询指定列,并将指定列重命名。其中别名是可选参数。
SELECT 列1, 列2 FROM <表名> ORDER BY 列3
按照列3升序排序。如果想按降序排序,那么就在列3后面加一个DESC
。
SELECT 列1, 列2 FROM <表名> ORDER BY 列3, 列4
表示先按列3排序,如果有相同结果的再按列4排序。
如果有WHERE
子句, 那么ORDER BY
子句要放在WHERE
子句之后。
在SELECT
语句最后加上LIMIT <m> OFFSET <n>
表示从第n
个记录开始,最多查询m
条记录。SQL记录集的索引从0开始。
如果想要统计一共有多少行,那么就在SELECT
之后加上COUNT(*)
, 除了COUNT
之外,还有SUM
, AVG
, MAX
, MIN
GROUP BY
提供分组功能。
SELECT * FROM <表1>,<表2>
是将两张表合并在一起,得到的记录是表1和表2记录的乘积。
SELECT ... FROM tableA ??? JOIN tableB ON tableA.col1 = tableB.col2;
其中???
换成INNER
或者LEFT OUTER
或者RIGHT OUTER
或者FULL OUTER
4.修改数据 (INSERT、UPDATE、DELETE)
INSERT INTO <表名> (col1, col2, ...) VALUES (value1, value2, ...);
:添加新纪录。
在VALUES
子句中指定多个记录值,就可以一次添加多条记录。
UPDATE <表名> SET col1=value1, col2=value2,... WHERE ...;
更新满足条件的记录的值。
DELETE FROM <表名> WHERE
删除满足条件的记录。