zoukankan      html  css  js  c++  java
  • DBA面试

     第一个题有二张表A,B。A表有二个列。NAME VARCHAR(20)AGE INT 。B表也有二列 NAME VARCHAR(20)GRADE INT
    A表中有三条记录,B表中有四条记录。问现在要用一条SQL语句根据A表中AGE字段把B表中的GRADE字段进行更新。条件为A表NAME和B表NAME相等。同样。B表中与A表没有相同NAME的记录不变。
    MSSQL2000

    第二问题。一个表中有二个列就以上A表为例。现在A表中有多例相同的记录。现在要把相同的记录删除只留一条。没有相同记录的记录不变。A表中可能四条xiao的记录。二条li的记录。一条zhang的记录

    IFOBJECT_ID('Table_A', 'U') ISNOTNULL
     
    DROPTABLE dbo.sample_table
    GO
    CREATETABLE Table_A
    (
    NAME
    VARCHAR(20),
    AGE
    INT
    );
    GO
    IFOBJECT_ID('Table_B', 'U') ISNOTNULL
     
    DROPTABLE Table_B
    GO
    CREATETABLE Table_B
    (
    NAME
    VARCHAR(20),
    GRADE
    INT
    );
    GO
    --Insert the data into Table_A
    INSERTINTO Table_A VALUES('AName1',20);
    INSERTINTO Table_A VALUES('AName2',21);
    INSERTINTO Table_A VALUES('AName3',22);
    --Insert the data into Table_B
    INSERTINTO Table_B VALUES('AName1',22);
    INSERTINTO Table_B VALUES('BName1',19);
    INSERTINTO Table_B VALUES('AName3',18);
    INSERTINTO Table_B VALUES('BName2',24);
    GO
    --type the data
    print'Table_A:';
    SELECT*FROM Table_A;
    print'Table_B:';
    SELECT*FROM Table_B;

    /*
    现在要用一条SQL语句根据A表中AGE字段把B表中的GRADE字段进行更新。
    条件为A表NAME和B表NAME相等。同样。B表中与A表没有相同NAME的记录不变。
    */
    UPDATE Table_B
    SET GRADE=(SELECT AGE FROM Table_A WHERE Table_A.NAME=Table_B.NAME)
    WHERE Table_B.NAME IN(SELECT Table_A.NAME FROM Table_A,Table_B WHERE Table_A.NAME=Table_B.NAME);
    --display the data of Table_B
    print'Table_B:';
    SELECT*FROM Table_B;





    /*
    第二问题。一个表中有二个列就以上A表为例。现在A表中有多例相同的记录。现在要把相同的记录删除只留一条。
    没有相同记录的记录不变。A表中可能四条xiao的记录。二条li的记录。一条zhang的记录
    */
    --Before inserting the data into Table_A
    INSERTINTO Table_A VALUES('zhang',18);
    INSERTINTO Table_A VALUES('zhang',18);
    INSERTINTO Table_A VALUES('zhang',18);
    INSERTINTO Table_A VALUES('zhang',18);
    INSERTINTO Table_A VALUES('xiao',19);
    INSERTINTO Table_A VALUES('xiao',19);
    INSERTINTO Table_A VALUES('EricHu',22);
    --Display the data of Table_A
    PRINT'Table_A';
    SELECT*FROM Table_A;
    --implementint the require....
    SELECTDISTINCT*INTO #Temp_Table FROM Table_A
    SELECT*FROM #Temp_Table;
    DELETEFROM Table_A;
    INSERTINTO Table_A SELECT*FROM #Temp_Table;
    DROPTABLE #Temp_Table;
    SELECT*FROM Table_A;
    DROPTABLE Table_A;
    DROPTABLE Table_B;
    GO

  • 相关阅读:
    (二)服务器性能剖析
    (一) MySQL架构
    HBase学习笔记一
    Hadoop系列读书笔记
    Java基础小结
    Redis学习笔记一
    Hive学习笔记一
    使用redis-benchmark测试redis性能
    关闭Stackexchange.Redis的未用到的pub/sub连接
    redis报错:EXCEPTION_ACCESS_VIOLATION
  • 原文地址:https://www.cnblogs.com/huyong/p/2685670.html
Copyright © 2011-2022 走看看