数据库部分
四:给你2张表如下所示:
表A  
name grade 
张三  1
李四  2
王五  3表B
name   age
张三   23
李四    42 
王五    21
赵六    31查询结果如下:
name grade  age 
张三  1      23       
李四  2      42
王五  3      21
赵六  null   31
(1)请写出相应的sql语句?
(2)请写出在age和name在A表中而不再B表中的sql语句?//五:给你下面的1张表
表Dept;
id    name
001   sed
002   df
003   fdfd
003   dge
001   lo
004   uy
(1)如果id要建立索引,请写出sql语句查询出数据表所有有重复字段的列id?
(2)请用一个sql或者一组sql语句实现对重复数据的删除,比如(003  fdfd)保留而(003 dge)被删除?

解决方案 »

  1.   

    四 1)、 select a.name,a.grade,a.age 
    from A a,B b
    where a.name=b.name(+)
    2)、select a.name,a.age
        from A a,B b
        where (a.name ,a.age) not in (select name,age from B) 
      

  2.   

    五:(1)select * from dept a,dept b where a.id=b.id 
    (2)delete * from dept where id=(select id from dept a,dept b where a.id=b.id)
      

  3.   

    四 1)、 select a.name,a.grade,a.age  
    from A a,B b
    where a.name=b.name(+)
    2)、select a.name ,a.grade from A a where 
       a.name not in (select a.name
         from A a,B b 
         where a.name = b.name);五(1)select * from dept a,dept b where a.id=b.id  
    (2)delete from dept where id in(
    select id from(select d.id,row_number() over(partition by id order by id) row_flag from  dept d)t
    where t.row_flag > 1)
      

  4.   

    LS的把答案都说完了  JF