day9-java总结

本文深入探讨了Java中方法的定义与调用,并详细解析了Oracle数据库中的复杂查询技术,包括多表查询、内连接、自然连接、自连接、外连接及子查询等。

Java

二维数组

声明数组:

赋值:

方法

定义方法:

其中

1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴

2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值

3、 方法名:定义的方法的名字,必须使用合法的标识符

4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开

根据方法是否带参、是否带返回值,可将方法分为四类:

Ø 无参无返回值方法

Ø 无参带返回值方法

Ø 带参无返回值方法

Ø 带参带返回值方法

调用方法:

对象名.方法名();

[如果方法未定义为static,在调用会时需先创建对象]

Oracle

Oracle中的复杂查询

多表查询

多表查询:是指基于两个和两个以上的表或是视图的查询,在实际应用中,查询单个表可能不能满足你的需求,在这种情况下需要使用到多张表一起进行查询。

    语法:

SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名] ,…]

FROM 表名称 [别名], [表名称 [别名] ,…]

[WHERE 条件(S)]

[ORDER BY 排序字段 [ASC|DESC] [,排序字段 [ASC|DESC] ,…]];

PS

A.避免笛卡尔集,多表查询的条件至少不能少于(表的个数-1

         B.一般采用关联字段进行判断

    C. 当在查询之中,不同的表中有了相同字段名称的时候,访问这些字段必须加上表名称,即“表.字段”。

内连接查询(inner join)

内连接查询:列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。

[内连接中相同条件的字段会同时出现]

语法:

select 列名1,.. from 表1 [inner] join 表2 on 条件where 条件;

 内连接分2种:

(1)等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

查询出每一位雇员所有信息及所在部门信息

select  *  fromemp e  join  dept  d   on  e.deptno=d.deptno

(2)不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

         select * from emp e inner join dept d on e.deptno>d.deptno;

自然连接查询(natural join)

自然连接是在笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性(与内连接的主要区别,同时没有ON子句),组成新的关系。

语法:

select 列名1,.. from 表1 natural  join 表2  where 条件;

示例:

查询出每一位雇员所有信息及所在部门信息

select *from emp natural join dept;

自连接查询

如果在一个连接查询中,涉及到的两个表都是同一个表,这种查询称为自连接查询。

示例:

查询所有员工名字及其上级的名字。

select e1.ename,e2.ename as manager from emp e1,emp e2 wheree1.mgr=e2.empno;

外连接查询(outer join)

外连接指返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。

外连接分为三种:左外连接、右外连接和完全外连接。

左外连接(left join)

概念:返回包括左表中的所有记录和右表中联结字段相等的记录。

语法:

select 列名1,列名2,.. from 表1 left[outer] join 表2 on 条件;

或者

select列名1,列名2,.. from 表1,表2 where 条件1=条件2(+);

示例:

查询所有人的成绩,如果没有成绩,也要显示该人的姓名和id号,成绩显示为空

select stu.id,name,grade from stu left join examon stu.id=exam.id;

select stu.id,name,grade from stu,exam wherestu.id=exam.id(+);

右外连接(right join)

概念:返回包括右表中的所有记录和左表中联结字段相等的记录;

语法:

select 列名1,列名2,.. from 表1 right [outer]join 表2 on 条件;

或者

select列名1,列名2,.. from 表1,表2 where 条件1(+)=条件2;

示例:

查询所有成绩,如果没有名字匹配,显示空。

select stu.id,name,grade from stu right join examon stu.id=exam.id;

select stu.id,name,grade from stu,exam wherestu.id(+)=exam.id;

完全外连接(full join)

概念:返回查询结果等于左外连接和右外连接的和。

语法:

select 列名1,列名2,.. from 表1 full [outer]join 表2 on 条件;

示例:

查询所有成绩,如果没有名字匹配,显示空。

select stu.id,name,grade from stu full join examon stu.id=exam.id;

子查询

子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询;分为单行子查询、多行子查询、多列子查询。

单行子查询

         单行子查询是指只返回一行数据的子查询语句。

         示例

         1.查询公司之中工资最低的雇员的完整信息

select * from emp

where sal=(select min(sal) from emp);

多行子查询

         多行子查询指返回多行数据的子查询。主要使用3种操作符:in、all、any,其中ALLANY运算符必须与比较运算符(=,>,>=,<,<=,<>)结合使用。

       多行子查询中使用in操作符(等于任何一个)

         示例

       查询和部门10的工作相同的雇员的名字、岗位、工资、部门号

select ename,job,sal,deptno from emp

where job in (select distinct job from emp wheredeptno=10);

 

多行子查询中使用all操作符(和所有值比较)

         示例:

         查询工资比部门30的所有员工的工资高的员工信息

select * from emp where sal >all(select sal from empwhere deptno=30);

select * from emp where sal > (select max(sal) fromemp where deptno=30);

 

         多行子查询中使用any操作符(和任何值比较)

         示例:

         查询工资比部门30的任意一个员工的工资高的员工信息

select * from emp where sal >any(select sal from empwhere deptno=30);

select * from emp where sal >(select min(sal) from empwhere deptno=30);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值