SQL Server面试题

SQL Server面试题,第1张

填空题(1空1分共20分) 如果设计的表不符合第二范式 可能会导致_______ ________ _______ SQL是由_______语言 ________语言 _______语言组成 SQL Server在两个安全级上验证用户 分别是______________ _____________________ 自定义函数由___________函数 _______________函数 ___________________函数组成 备份策略的三种类型是__________备份 _______________备份 ___________________备份组成 启动一个显式事务的语句为__________ 提交事务的语句为__________ 回滚事务的语句为__________ 表的每一行在表中是惟一的实体属于__________完整性 使列的输入有效属于__________完整性 两个表的主关键字和外关键字的数据应该对应一致属于__________完整性 简答题(共20分) 在帮助中[ n ] 意思是什么?(4分) 请简述一下第二范式(4分) 现有 销售表 它们结构如下 (4分) id int (标识号) codno char( ) (商品编码) codname varchar( ) (商品名称) spec varchar( ) (商品规格) price numeric( ) (价格) sellnum int (销售数量) deptno char( ) (售出分店编码) selldate datetime (销售时间) 要求 写出查询销售时间段在 日到 之间 分店编码是 的所有记录 4 写一个存储过程 要求传入一个表名 返回该表的记录数(假设传入的表在数据库中都存在)(4分) 5 请简述UPDATE 触发器如何工作原理 (4分)

简答题 (共40分) (5分)使用一条SQL语句找到重复的值及重复的次数 有一数据表ZD_ks 其中有字段BM MC 请查询出在ZD_ks中BM有重复的值及重复的次数 没有的不要列出 如下表 BMDUPCOUNT

描述( 分) 表 student 学生信息表 ID int 学生编号 Name varchar 学生姓名 Sex bit 性别(男 女 ) Class int 班级编号

表 schedule 课程信息表 ID int 课程编号 Name varchar 课程名称

表 Grade 成绩信息表 ID int 自动编号 UID int 学生编号 SID int 课程编号 Num int 考试成绩

(a)求各班的总人数(1分) (b)求 班女生和男生的平均成绩(2分) (c)各班&# ;数据结构&# ;(课程名称)不及格的人数(2分)

lishixinzhi/Article/program/SQLServer/201405/30727

错了。全删了。

——————————————————————————————————————

删除2条完全一样的数据

SQL Server 的处理办法(SQL2005及以上)

-- 首先创建测试表

CREATE TABLE test_delete(

name varchar(10),

value INT

);

go

-- 测试数据,其中 张三100 与 王五80 是完全一样的

INSERT INTO test_delete

SELECT '张三', 100

UNION ALL SELECT '张三', 100

UNION ALL SELECT '李四', 80

UNION ALL SELECT '王五', 80

UNION ALL SELECT '王五', 80

UNION ALL SELECT '赵六', 90

UNION ALL SELECT '赵六', 70

go

-- 首先查询一下, ROW_NUMBER 效果是否满足预期

SELECT

ROW_NUMBER() OVER (PARTITION BY name, value ORDER BY (SELECT 1) ) AS no,

name,

value

FROM

test_delete

no name value

----- ---------- -----------

1 李四 80

1 王五 80

2 王五 80

1 张三 100

2 张三 100

1 赵六 70

1 赵六 90

从结果上可以看到,如果有重复的,完全一样的话, no 是有大于1的。

-- 创建视图

CREATE VIEW tmp_view AS

SELECT

ROW_NUMBER() OVER (PARTITION BY name, value ORDER BY (SELECT 1) ) AS no,

name,

value

FROM

test_delete

-- 删除 视图中的 no 不等于 1 的数据。

1> DELETE FROM tmp_view WHERE no != 1

2> go

(2 行受影响)

1>

2> select from test_delete;

3> go

name value

---------- -----------

张三 100

李四 80

王五 80

赵六 90

赵六 70

(5 行受影响)

结果看上去是满足预期的。

——————————————————————————————————————————

此文来自我朋友wangzhiqing999的空 间 博 文

SELECT aa日期, aa数值, SUM(lj数值) AS 累计

FROM 累积 lj INNER JOIN

(SELECT

FROM 累积) aa ON lj日期 <= aa日期

WHERE (aa日期 <= '2005-05-04') --日期可以变成时间段

GROUP BY aa日期, aa数值

ORDER BY aa日期

1 select stitle, count(pid)

from 书表 s left join 评论 p on sid=p书表中的id

group by stitle

(注意:左外连接的作用是将评价数为0的书显示出来count(pid)和count()的区别是count(pid)不计入pid为null的行)

2 select top 1 stitle, count(pid)

from 书表 s left join 评论 p on sid=p书表中的id

group by stitle order by 2 desc

(以第2列倒序排序,取第1行)

以上就是关于SQL Server面试题全部的内容,包括:SQL Server面试题、sql 面试问题、SQL 面试题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10159550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存