1、oracle语句分为:
DCL:数据控制语言,关键字有 grant、revoke
如:grant create table to test2;
DDL:数据定义语言,关键字有 create、alter、drop、truncate
如:create table test1;
DML:数据操作语言,关键字有 insert、update、delete
如:insert into table_name values(字段值...)
DQL:数据查询语言,关键字有 select
2、查询的格式:select DISTINCT [列名...] [聚合函数] from 表名 [where 条件] [group 分组] [having 过滤] [order by 排序]
执行顺序:from ...> where ...> group by ...> having ... > select ...>DISTINCT> order by ...
1.where 是对查询结果的一种筛选,满足条件的筛选取出;
2.group by 是对满足条件字段进行分组,在select里须有对应的字段;
3.having 须跟着group by 一起使用,在group by 后面使用,是对分组后的结果再进行筛选;having后面可以跟聚合函数sum(),avg(),count(),min(),max()等;
4.select 等上述条件都满足后,显示字段值;
5.DISTINCT 对select的数据进行去重;
6.order by (asc\desc)最后对显示的字段做排序。
3、连接查询分为:
①、内连接(Inner Join):只返回两张表中满足匹配条件的记录,既两张表交叉的记录;
②、左连接(Left (Outer) Join):返回左表的所有行以及右表中匹配的行,对于右表中未匹配上的行,用 NULL 填充;
③右连接(Right(Outer) Join):与左连接类似,为右表为主表,返回右表所有行以及左表中匹配的行,对于左表中未匹配的行,用 NULL 填充;
④、全连接(Full (Outer) Join):返回两个表的所有行(无论是否匹配),对于左右表中未匹配上的行,结果集中用 NULL 填充;
⑤、自连接(Self Join):一种独特的连接类型,其中表与自身连接。当你需要比较同一表中的行时,就适合用自连接;
⑥、交叉连接(Cross Join):也称为笛卡尔连接,返回两个表的笛卡尔积,这意味着第一个表的每一行都与第二个表的所有行相乘的结合。比如:A,B 两个表的行数分别为 m 和 n,则交叉连接后结果集中的总行数为m * n。
--内连接,两张交叉部分
SELECT * FROM dept d INNER JOIN dept2 d2 ON d.deptno=d2.deptno;
SELECT * FROM dept d,dept2 d2 WHERE d.deptno = d2.deptno;