多表查询
select * from 表名1,表名2:笛卡尔积存在,两个表的话性能和子查询貌似是一样的,但如果超过2个表子查询比较高
select * from emp,dept where emp.deptno=dept.deptno;
select * from emp a,dept d where a.deptno= d.deptno;
左右连接
select * from 表名1 left join 表名2 where 表名1.字段1=表名2.字段1
SQL 1999语法
CROSS JOIN
NATURAL JOIN
JOIN USING(列名,比如 deptno)
JOIN ON(emp.deptno=dept.deptno)
LEFT JOIN
RIGHT JOIN
统计函数
COUNT()
AVG()
MAX()
MIN()
SUM()
分组统计
GROUP BY 在where之后并且在order by之前,分组之前肯定需要有数据查到的,因此分析的时候只要先找到数据然后慢慢分组即可
HAVING 用于分组之后的条件,可以用统计函数
子查询
IN 用于返回的是单列多行时子查询
=ANY 等于IN
>ANY 大于任意一个就可以了,同理理解>ALL
<ANY 小于任意一个就可以了,同理理解<ALL
插入
INSERT INTO 表名(列名1,列名2,列名3) VALUES(值1,值2,值3)
更新
UPDATE 表名 SET 列名=值,列名2=值2
删除
DELETE FROM 表名