DBA面试

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/3552366  第一个题有二张表A,B。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/3552366

 第一个题有二张表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

相关文章
|
7月前
|
SQL 运维 数据库
DBA 从入门到实践
你将收获系统学习DBA必备技能,提升职场竞争力,OceanBase 生态工具的介绍和使用指南,常见 SQL 性能问题的分析技巧和调优方式,故障排查及诊断的使用指南和恢复手段。
|
SQL Go 数据库管理
|
SQL 监控 Oracle
|
SQL 监控 Oracle
下一篇
无影云桌面