每天几道面试题大乱斗

1、left join和Inner join的区别,举例说明

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录。 inner
join(等值连接)只返回两个表中联结字段相等的行。 left join 理解为“有左显示”,比如on
a.fieId=b.fieId,则显示A表中存在的全部数据及a\b中都有的数据。a有b没有的数据用null显示。 inner join
理解为“有效连接”,两张表都有的数据才会显示。

2、union和union all的区别

一、区别1:取bai结果的交集
1、union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct,
同时进行默认规则的排序;
2、union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复;

二、区别2:获取结果后的操作
1、union: 会对获取的结果进行排序操作
2、union all: 不会对获取的结果进行排序操作

三、区别3:
1、union看到结果中ID=3的只有一条
select * from student2 where id < 4
union
select * from student2 where id > 2 and id < 6
2、union all结果中ID=3的结果有两个
select * from student2 where id < 4
union all
select *from student2 where id > 2 and id < 6

3、Oracle中获取时间的方法是什么?

select sysdate from dual; 

4、能举例,子查询的代码吗

select from 用户信息表 where 用户名 in(
select 用户名 from 订单表 group by 用户名 having sum( 订单额 ) <1000 )
and 性别=‘男‘

5、什么是游标,在哪里使用?执行过程是怎样的

游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录并赋给主变量,交由主语言进一步处理。

游标通常在存储过程中有使用,创建的游标在使用完后是需要关闭和释放的,所以是找不到游标文件的,用完就关闭释放了。

游标的执行步骤:
(1) 声明游标 (declare)
(2) 打开游标 (open)
(3) 读取游标 (fetch)
(4) 关闭游标(close)
(5) 释放游标 (deallocate)

6、存储过程是什么?事务是什么?

存储过程:是事先经过编译并存储在数据库中的一段语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
优点:
1、重复使用:存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
2、减少网络流量:存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
3、安全性:参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
4、存储过程是预编译过的,执行效率高

事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元)。

7、decode的含义,在 SQL server中,如果没有 decode,该怎么实现相同的

IF 条件=1 THEN
RETURN(返回值1)
ELSIF条件=2THEN
RETURN(返回值2)
......
ELSIF条件=值nTHEN
RETURN(返回值n)
ELSE
RETURN(缺省值)
ENDIF
decode(X,A,B,C,D,E)
这个函数运行的结果是,当X = A,函数返回B;当X != A 且 X = C,函数返回D;当X != A 且 X != C,函数返回E。 其中,X、A、B、C、D、E都可以是表达式,这个函数使得某些sql语句简单了许多。

8、Oracle中如何获取A表的10至50条数据?

查询表:hs-test
select * from (select t.*,rownum num from hs_test t) where num > 10 and num < 50

9、java把 String类型转化INT的方法

int a = Integer.parseInt(i); 
int a = Integer.valueOf(i).intValue();

10、下记两种写法哪个更好,原因是什么
A.Apple. equals(“”)
B(“”). equals(Apple)

b更好,不会出现空指针的错误

11、如何判断输入的一串字符是否是电话号码,用代码:
(尽量代码说明,无法用代码表示的话请简述解决方案)
正则表达式:

public class CheckPhoneFormatUtils {

    /** 正则表达
     * 手机号码由11位数字组成,
     * 匹配格式:前三位固定格式+后8位任意数
     * 此方法中前三位格式有:
     * 13+任意数
     * 15+除4的任意数
     * 18+除1和4的任意数
     * 17+除9的任意数
     * 147
     */
    private static boolean isNumLegal(String str) throws PatternSyntaxException {
        String regExp = "^((13[0-9])|(15[^4])|(18[0,2,3,5-9])|(17[0-8])|(147))\\d{8}$";
        Pattern p = Pattern.compile(regExp);
        Matcher m = p.matcher(str);
        return m.matches();
    }
}

12、String和StringBuffer的区别,何种场合使用

String:
1.是对象不是原始类型。
2.为不可变对象,一旦被创建,就不能修改它的值。
3.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。
4. String是final类,即不能被继承。
StringBuffer:
1.是一个可变对象,当对它进行修改的时候不会像String那样重新建立对象
2.它只能通过构造函数来建立,StringBuffer subffer=new StringBuffer();
3. 对象被建立以后,在内存中就会分配内存空间,并初始保存一个null,通过它的append方法向其赋值 subffer.append(“hello word”);

使用String类的场景:在字符串不经常变化的场景中可以使用String类,例如常量的声明、少量的变量运算。

使用StringBuffer类的场景:在频繁进行字符串运算(如拼接、替换、删除等),并且运行在多线程环境中,则可以考虑使用StringBuffer,例如XML解析、HTTP参数解析和封装。

13、java中编写代码查找&在字符串”name=admin&pass=123”中的位置并写出结果。

String str=" name=admin&pass=123";
System.out.println(str.indexOf("&"))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值