下图中的update语句执行完成后的两张表的查询结果会是什么样的??为什么??

解决方案 »

  1.   

    把 update 换成 select,结果应该与 select 一样吧
      

  2.   

    只是把b表更新到a表,满足where条件的部分结果是一样的,建议手动试下
      

  3.   

    更新了emp表的sal字段,更新值为原始sal中的值乘以dept表中对应的deptno的值
    更新了dept表的deptname字段,更新值为对应emp表中的ename的值
    对应法则为emp表的dept值和dept表的dept值相等
      

  4.   


    -- 建表语句
    CREATE TABLE emp
    (
    ename varchar(20) null,
    hirdate date null,
    sal numeric(8,2) null,
    deptno TINYINT null
    );CREATE TABLE dept
    (
    deptno TINYINT not null,
    deptname varchar(20) null
    );INSERT INTO emp(ename,hirdate,sal,deptno)
    SELECT 'zzx','2000-01-01','100',1 UNION ALL
    SELECT 'lisa','2003-02-01','200',2 UNION ALL
    SELECT 'bjguan','2004-04-02','100',1 UNION ALL
    SELECT 'dony','2005-02-05','2000',4 ;INSERT INTO dept(deptno,deptname)
    SELECT 1,'tech' UNION ALL
    SELECT 2,'sale' UNION ALL
    SELECT 5,'fin';-- 更新语句:
    UPDATE emp a,dept b
    SET a.sal=a.sal*b.deptno,b.deptname=a.ename
    WHERE a.deptno=b.deptno;最后结果集:
    emp表:
    ename hirdate sal deptno
    zzx 2000-01-01 100 1
    lisa 2003-02-01 400 2
    bjguan 2004-04-02 100 1
    dony 2005-02-05 2000 4dept表:
    deptno deptname
    1 zzx
    2 lisa
    5 fin
      

  5.   


    deptno为1、2 的数据会被修改。