Oracle基础查询介绍

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;

Oracle基础查询介绍_第1张图片

Oracle基础查询介绍_第2张图片

Oracle基础查询介绍_第3张图片

Oracle基础查询介绍_第4张图片

Oracle基础查询介绍_第5张图片

你可能感兴趣的:(oracle,数据库)