论坛首页 招聘求职版 面试秘籍

早上面试的一道数据库问题,请教怎么做

浏览 5146 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-05-15
作为一个初学者在真的收获了不少!
   
0 请登录后投票
时间:2008-05-16
aimer311 写道
大概是这样的。
两张表:
A:id,age,column1,column2
B:id,age,column1,column2
A.id 与 B.id关联。
将B中age>40的column1,column2更新到A的相应记录中,只能写一个语句。
写出mysql和oracle两个版本。
不知道怎么写。


个人觉得这样的面试也没什么意义,其实在面试,要考你JAVA,就一定让你用JAVA实现,要考你Database,就一定要你用SQL实现,难道写程序时,JAVA与SQL是分离的吗,在SQL里,看似很复杂的东西,其实在做系统的时候,结合JAVA与SQL,就很容易实现了,而用纯JAVA非常难实现的东西,或许只要配合一张表,就轻松搞定,哎,面试,为什么总是要跟实现应用脱离呢?难道SQL很厉害的人,就一定能写出优秀的程序和高效率吗?难道JAVA很熟的人,就一定能写出优秀的程序和高效率吗?
一个实战型的程序员,一般都能找到一种最快的办法实现目的,而不是在那里慢慢搞一个SQL研究或JAVA类实现。公司开来是赚钱的,不是搞研究的。
   
0 请登录后投票
时间:2008-05-16
这种业务在做维护项目的时候经常会遇到的......
式样变更之后 为了最少的修改量 只改SQL 是最方便的
   
0 请登录后投票
时间:2008-05-16
ddandyy 写道
这种业务在做维护项目的时候经常会遇到的......
式样变更之后 为了最少的修改量 只改SQL 是最方便的


试想一下,用JAVA与数据库结合实现:
一个while的事,何必搞得那么深沉呢?
   
0 请登录后投票
时间:2008-05-16
vicksong 写道
ddandyy 写道
这种业务在做维护项目的时候经常会遇到的......
式样变更之后 为了最少的修改量 只改SQL 是最方便的


试想一下,用JAVA与数据库结合实现:
一个while的事,何必搞得那么深沉呢?
已经在跑的应用。。。。。。没人让你改代码
   
0 请登录后投票
时间:2008-05-16
vicksong 写道
ddandyy 写道
这种业务在做维护项目的时候经常会遇到的......
式样变更之后 为了最少的修改量 只改SQL 是最方便的


试想一下,用JAVA与数据库结合实现:
一个while的事,何必搞得那么深沉呢?


一句能用SQL搞定的事,还要用while搞,那才深沉呢
   
0 请登录后投票
时间:2008-05-16
armorking 写道
oracle
update A
set A.column1 = (
    select b.column1
    from B where B.id = A.id
    and B.age > 40
    ),
    A.column2 = (
    select b.column2
    from B where B.id = A.id
    and B.age > 40
    )



上面的SQL代码你真的测试过了吗?
若想把表A的纪录合并到表B中,Oracle中最自然的方法是使用MERGE语句:
merge into A
using (select * from B where B.age > 40) T
   on (A.id= T.id)
 when matched then
      update set A.c1= T.c1, A.c2= T.c2
 when not matched then
      insert (id, c1, c2)
      values (T.id, T.c1, T.c2)
   
0 请登录后投票
时间:2008-05-16
抛出异常的爱 写道
vicksong 写道
ddandyy 写道
这种业务在做维护项目的时候经常会遇到的......
式样变更之后 为了最少的修改量 只改SQL 是最方便的


试想一下,用JAVA与数据库结合实现:
一个while的事,何必搞得那么深沉呢?
已经在跑的应用。。。。。。没人让你改代码


老大,你们的SQL不是写在TXT文件中,程序运行时LOAD再执行的吧......
   
0 请登录后投票
时间:2008-05-17
update a, b set a.column1=b.column1, a.column2=b.column2 where a.id=b.id and b.age>=40
   
0 请登录后投票
时间:2008-05-18
update A set a.column1=b.column1,a.column2=b.column2 from a,b where b.age>40 and a.id=b.id
   
0 请登录后投票
论坛首页 招聘求职版 面试秘籍

跳转论坛:
JavaEye推荐