1.在大数据情况下,下面SQL执行效率低
  select * from sa where sa.goodsid not in (select goods.goodsid from goods);
问题一:请对上述语句进行优化
问题二:对sql语句你是如何判断其性能,并说明在出现问题时如何进行处理2.使用伪代码,将界面中呈现的数据进行合并
num qty
 1 3
 3 4
 2 5
 1 6
 4 7
 3 8
 2 9合并好之后的结果
num qty
 1 9
 2 14
 3 12
 4 7
表格我就没弄了,什么是伪代码?
3.大数据处理
  存在以下表,大约100万条记录  ID主键 ID2
  
 表格没画出来问题:使用存储过程,将ID2更新为ID+104.数据并发存在以下表,其中状态为1的可删,为2的不可删
salstid goodsid goodsqty userstatus
  1 78 60 1
  2 89 70 2
  3 33 80 1
问题:在考虑并发情况下,给出上述删除处理的伪代码5.数据库设计
 进销存是一般企业常用的系统
 结合设计范式,给出一个简单的销售系统的数据库设计,要求体现出数据库设计的过程,至少要有客户,业务员,
货品,部门等数据,需要说明的是,主键,索引,触发器,序列号,check等都是数据库设计的一部分
6.其他
有一张表
  id
  1
  1
  2
  2
  3
  3
问题1:如何不用distinct去除重复的数据
问题2:如何打印成以下的表(计算每个出每个id的数量)
  1 2
  2 2
  3 2

解决方案 »

  1.   

    感觉第一问和第四问不太能说的清楚,其余的就是sql的基本知识,让你写伪代码可能是考虑到不同的RDBMS的sql语句有所不同,所以你把你熟悉的sql语句对应的意思翻译出来即可。
    关注1和4的解答
      

  2.   

    第二题
    CREATE TABLE tmp01
    (
    num int,
    qty int
    );insert into tmp01 values(1,3);
    insert into tmp01 values(3,4);
    insert into tmp01 values(2,5);
    insert into tmp01 values(1,6);
    insert into tmp01 values(4,7);
    insert into tmp01 values(3,8);
    insert into tmp01 values(2,9);
    select num, sum(qty) from tmp01 group by num order by num asc;
      

  3.   

    第6题1)可以用select * from tableName group by id;2) select id, count(id) from tableName group by id ;
      

  4.   

    第一题:
              优化:都改成大写
                    用not exists代替 not in  还是改变条件用exists比较好吧
              判断性能:都是看查询的次数吧,次数越少性能比较好
                         大写字母,oracle都是编译成大写的