氟塑料离心泵www.buybeng.com

jquery教程http://www.software8.co/wzjs/jquery/

几道面试题

最近正在换工作,面试了几家公司,做了一些笔试题,现把其中几道还有点意思的题贴出来。在这边文章中我想先把这几道题贴出来,之后再进行解答。

1.如何用一条语句把一张表的数据插入到另一张数据库表中?

 

2.如何用一条语句把一张表的数据插入到另一张不存在的数据库表中?

 

3.有如下A、B两个表,如何将A表的数据查询出来,结果如B所示?

         A表:

姓名

科目

分数

张三

语文

60

李四

数学

65

张三

英语

70

张三

数学

75

李四

语文

80

李四

英语

68

 

         B表:

姓名

语文

数学

英语

总分

张三

 

 

 

 

李四

 

 

 

 

 

4.有如下几个类,我先运行TestA,再运行TestB,那么:

         class A:

Java代码  收藏代码
  1. public class A {  
  2.     public static int a = 6;  
  3. }  

 

class TestA:

Java代码  收藏代码
  1. public class TestA {  
  2.     public static void main(String args[]) {  
  3.        A a = new A();  
  4.        a.a++;  
  5.        System.out.println(a.a);  
  6.     }  
  7. }  

 

class TestB:

Java代码  收藏代码
  1. public class TestB {  
  2.     public static void main(String args[]) {  
  3.        A b = new A();  
  4.        System.out.println(b.a);  
  5.     }  
  6. }  

 

(1)运行TestA的时候输出的结果是什么?

 

(2)运行TestB的时候输出的结果是什么?

 

(3)运行TestA和TestB的结果为什么相同或不相同(站长网)?

 

 


 解答:

 

1.如何用一条语句把一张表的数据插入到另一张数据库表中?

 

Sql代码  收藏代码
  1. insert into tableA select * from tableB  

 

2.如何用一条语句把一张表的数据插入到另一张不存在的数据库表中?

 

Sql代码  收藏代码
  1. select * into tableB from tableA;  
  2. -------或者是下面这种写法  
  3. create table tableB as select * from tableA;  

 

3.有如下A、B两个表,如何将A表的数据查询出来,结果如B所示?

         A表:

姓名

科目

分数

张三

语文

60

李四

数学

65

张三

英语

70

张三

数学

75

李四

语文

80

李四

英语

68

 

         B表:

姓名

语文

数学

英语

总分

张三

 

 

 

 

李四

 

 

 

 

这里我们用一个t_student表来表示A表,其建表语句如下所示:

Sql代码  收藏代码
  1. create table t_student(name varchar2(4), course varchar2(4), score int);  

那么这个时候要用一条SQL语句把A表的数据查询出B表的结果,我们可以如下定义我们的SQL语句:

Sql代码  收藏代码
  1. select a.name 姓名,sum(case when course='语文' then score end) 语文,sum(cas  
  2. when course='英语' then score end) 英语,sum(case when course='数学' then score  
  3.  end) 数学,b.total 总分 from t_student a, (select namesum(score) total from t_  
  4. student group by name) b where a.name=b.name group by a.name,b.total order by a.  
  5. name desc;  

 这条语句的总体思路是:

  • 先用分组的形式查询出每个人的总成绩
  • 用case when的形式把课程列分为多列,这样满足的那一列的成绩就是当前人当前课程的成绩,其他的成绩在当前行为空

姓名       语文       数学       英语

---- ---------- ---------- ----------

张三         60

张三                    75

张三                               70

李四                               68

李四         80

李四                    65

 

  • 把上述两个结果按照相同的姓名连接起来并按照姓名和总分分组,这样我们查询出来的结果就可以显示姓名和总分,那么我们没有按照成绩进行分组,那么当我们用分组语句的时候该如何查询出我们的成绩呢?这个时候sum就起作用了,根据之前分析的,每个人每门成绩只有一个有效值,其他的为空,所以我们对它进行汇总的结果还是其当前课程的成绩,这就可以满足我们在分组的情况下查询出对应的成绩。(在进行分组查询的时候,只能查询出对应的分组字段和统计字段)
  • 最后一步进行排序是为了按照“张三”,“李四”那样的顺序排列

 上面查询出来的结果会如下所示:

姓名       语文       英语       数学       总分

------ ------ ------- ------- --------

张三         60         70         75        205

李四         80         68         65        213

 

4.有如下几个类,我先运行TestA,再运行TestB,那么:

         class A:

Java代码  收藏代码
  1. public class A {  
  2.     public static int a = 6;  
  3. }  

 

class TestA:

Java代码  收藏代码
  1. public class TestA {  
  2.     public static void main(String args[]) {  
  3.        A a = new A();  
  4.        a.a++;  
  5.        System.out.println(a.a);  
  6.     }  
  7. }  

 

class TestB:

Java代码  收藏代码
  1. public class TestB {  
  2.     public static void main(String args[]) {  
  3.        A b = new A();  
  4.        System.out.println(b.a);  
  5.     }  
  6. }  

 

(1)运行TestA的时候输出的结果是什么?

 7

(2)运行TestB的时候输出的结果是什么?

 6

(3)运行TestA和TestB的结果为什么相同或不相同?

 虽然变量a是类A的静态变量,但是TestATestB是两个不同的应用程序,TestA中改变的变量a的值不会影响到TestB中的结果。

posted on 2013-03-05 14:04 你爸是李刚 阅读(2488) 评论(3)  编辑  收藏

评论

# re: 几道面试题 2013-03-05 18:41 Irving

长见识了,之前没意识到这种问题  回复  更多评论   

# re: 几道面试题[未登录] 2013-03-12 13:14 文林

博主,第四道题第三问考察类加载的问题吧。另外,访问类的静态成员应该不需要实例化,直接A.a 就可以了,示例代码有点奇怪。  回复  更多评论   

# re: 几道面试题 2013-08-19 20:32 南云

木有意思吧。。
第一道就是一个select into from与insert into select区别?
第二道,两个程序分别在一个JVM里面运行,没半毛钱关系,ps,李刚疯狂java里面的题目
第三道,用行转列函数更快,ms和oracle各有各的方法。。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年3月>
242526272812
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿

随笔档案

文章档案

技术网站

行业网站

搜索

最新评论

阅读排行榜

评论排行榜

站长网 氟塑料离心泵 注塑机 液晶广告机