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的记录 

 

IF OBJECT_ID('Table_A''U'IS NOT NULL
  
DROP TABLE dbo.sample_table
GO
CREATE TABLE Table_A
(
NAME 
VARCHAR(20),
AGE 
INT 
);
GO
IF OBJECT_ID('Table_B''U'IS NOT NULL
  
DROP TABLE Table_B
GO
CREATE TABLE Table_B
(
NAME 
VARCHAR(20),
GRADE 
INT
);
GO
--Insert the data into Table_A
INSERT INTO Table_A VALUES('AName1',20);
INSERT INTO Table_A VALUES('AName2',21);
INSERT INTO Table_A VALUES('AName3',22);
--Insert the data into Table_B
INSERT INTO Table_B VALUES('AName1',22);
INSERT INTO Table_B VALUES('BName1',19);
INSERT INTO Table_B VALUES('AName3',18);
INSERT INTO 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 
INSERT INTO Table_A VALUES('zhang',18);
INSERT INTO Table_A VALUES('zhang',18);
INSERT INTO Table_A VALUES('zhang',18);
INSERT INTO Table_A VALUES('zhang',18);
INSERT INTO Table_A VALUES('xiao',19);
INSERT INTO Table_A VALUES('xiao',19);
INSERT INTO Table_A VALUES('EricHu',22);
--Display the data of Table_A
PRINT 'Table_A';
SELECT*FROM Table_A;
--implementint the require....
SELECT DISTINCT*INTO #Temp_Table FROM Table_A 
SELECT*FROM #Temp_Table;
DELETE FROM Table_A;
INSERT INTO Table_A SELECT*FROM #Temp_Table;
DROP TABLE #Temp_Table;
SELECT*FROM Table_A;
DROP TABLE Table_A;
DROP TABLE Table_B;
GO



本文转自yonghu86 51CTO博客,原文链接:http://blog.51cto.com/yonghu/1321440,如需转载请自行联系原作者

相关文章
|
关系型数据库 MySQL 数据库管理
|
存储 XML 程序员
走向DBA[MSSQL篇] 面试官最喜欢的问题 ----索引+C#面试题客串
原文:走向DBA[MSSQL篇] 面试官最喜欢的问题 ----索引+C#面试题客串 对大量数据进行查询时,可以应用到索引技术。索引是一种特殊类型的数据库对象,它保存着数据表中一列或者多列的排序结果,有效地使用索引可以提高数据的查询效率。
1162 0
|
SQL 存储 数据库
DBA 面试题 (三)
1.解释冷备份和热备份的不同点以及各自的优点 解 答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。
1248 0
|
29天前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
30天前
|
Java
【Java基础面试四】、介绍一下Java的数据类型
这篇文章介绍了Java的数据类型,包括8种基本数据类型(整数、浮点、字符、布尔)和3类引用数据类型(数组、类、接口),并提供了基本数据类型所占内存空间和数据范围的详细信息。
|
30天前
|
Java C++
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
这篇文章讨论了Java单继承的设计原因,指出Java不支持多继承主要是为了避免方法名冲突等混淆问题,尽管Java类不能直接继承多个父类,但可以通过接口和继承链实现类似多继承的效果。
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
|
29天前
|
XML 存储 JSON
【IO面试题 六】、 除了Java自带的序列化之外,你还了解哪些序列化工具?
除了Java自带的序列化,常见的序列化工具还包括JSON(如jackson、gson、fastjson)、Protobuf、Thrift和Avro,各具特点,适用于不同的应用场景和性能需求。
|
29天前
|
Java
【Java基础面试三十七】、说一说Java的异常机制
这篇文章介绍了Java异常机制的三个主要方面:异常处理(使用try、catch、finally语句)、抛出异常(使用throw和throws关键字)、以及异常跟踪栈(异常传播和程序终止时的栈信息输出)。
|
29天前
|
Java
【Java基础面试三十八】、请介绍Java的异常接口
这篇文章介绍了Java的异常体系结构,主要讲述了Throwable作为异常的顶层父类,以及其子类Error和Exception的区别和处理方式。