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
作者:
RDIF
出处:
http://www.cnblogs.com/huyong/
Email:
406590790@qq.com
QQ:
406590790
微信:
13005007127(同手机号)
框架官网:
http://www.guosisoft.com/
http://www.rdiframework.net/
框架其他博客:
http://blog.csdn.net/chinahuyong
http://www.cnblogs.com/huyong
国思RDIF开发框架
,
给用户和开发者最佳的.Net框架平台方案,为企业快速构建跨平台、企业级的应用提供强大支持。
关于作者:系统架构师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于
RDIF
框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。
如有问题或建议,请多多赐教!
本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过微信、邮箱、QQ等联系我,非常感谢。