《SQL入门经典》学习笔记
· 阅读需 4 分钟
这本书总体上来讲还是比较简单的,SQL入门还是不难的。使用了三种数据库,语法有所不同,有点混乱。在看书的过程中记录了一些笔记,以便查阅吧。就是下面这本:
操作符
=
相等<>
,!=
不等>
,<
,>=
,<=
IS NULL
,IS NOT NULL
BETWEEN
介于(包含端点)NOT BETWEEN
IN
值在列表中,NOT IN
LIKE
通配符匹配:%
(>0个字符),_
(1个字符),NOT LIKE
EXISTS
,NOT EXISTS
UNIQUE
,NOT UNIQUE
ALL
,ANY
,SOME
(ANY
的别名)AND
,OR
+
,-
,*
,/
算术运算
汇总查询
COUNT
, SUM
, MAX
, MIN
, AVG
数据排序与分组
GROUP BY
, ORDER BY
CUBE
, ROLLUP
WHERE
子句设定SELECT
选择字段的条件;HAVING
子句设定GROUP BY
子句形成分组的条件。
字符函数
- 拼接字符串:
||
(Oracle),+
(SQL Sever),CONCAT
(MySQL) TRANSLATE
对应替换(类似于tr
命令)REPLACE
替换UPPER
,LOWER
SUBSTR
,SUBSTRING
字符串子串INSTR
查找,返回位置LTRIM
,RTRIM
在一侧切除字符串DECODE
在字符串中搜索字符串,如果找到了就显示另一个字符串IFNULL
如果是NULL就用替代值COALESCE
依次检查,返回第一个非NULL值LPAD
,RPAD
在一侧填充ASCII
ASCII值- 算术函数:
ABS
,ROUND
,SQRT
,SIGN
(符号函数),POWER
,CEIL
,FLOOR
,EXP
- 与数字转换(有的可以隐式转换):
TO_NUMBER
,STR
,TO_CHAR
日期和时间
不同的实现有所差别
MySQL:NOW
, DATE_ADD
, STR_TO_DATE
在查询里结合表
等值结合/内部结合:利用通用字段(一般是主键)结合两个表
SELECT TABLE1.COLUMN1, TABLE2.COLUMN2...
FROM TABLE1, TABLE2
WHERE TABLE1.COLUMN_NAME = TABLE2.COLUMN_NAME
将上面的=
改为!=
就是不等值结合、
外部结合的一般语法:
FROM TABLE1
{RIGHT | LEFT | FULL} [OUTER] JOIN TABLE2
ON TABLE1.COLUMN_NAME = TABLE2.COLUMN_NAME
使用子查询
子查询就是在另一个查询里执行的查询,用于进一步设置查询的条件。子查询不能使用ORDER BY
。
关联子查询是依赖主查询里的信息的子查询,即子查询里能引用主查询里的表(类似于闭包)。