你问的TSQL面试问题

时间:2009-04-19 18:31:02

标签: sql sql-server tsql

Google搜索会显示一些指向sql问题的链接。我想知道SO专家在接受SQL采访时会问什么。

8 个答案:

答案 0 :(得分:17)

以下是我作为具有强大SQL Server技能的ASP.Net开发人员提出的一些最常见的问题:

  • 命名并描述不同种类的JOIN
  • 什么是COALESCE?
  • 解释主键和外键
  • 您将如何优化慢速运行的查询?
  • DELETE和TRUNCATE有什么区别?

答案 1 :(得分:7)

这里有很多问题:SQL Server Quiz, Can You Answer All These?

一个重要的当然是你如何编写代码以最大限度地减少死锁

以下面的代码为例,80%的人错了

以下内容的输出是什么?

SELECT 3/2

答案 2 :(得分:2)

在SQL查询部分(扩展DOK):

  • 您如何处理 NULL 问题? (即 NULL - 25 =?)
  • SELECT CASE 的变体(优点/缺点)
  • 用户功能与存储过程性能
  • .NET / SQL集成(优点/缺点)
  • 您如何以及为什么链SQL查询? (通过上帝查询,查看,存储过程等。)

答案 3 :(得分:2)

部分建议清单:

  • 获取您遇到的最糟糕的SQL并让候选人解释尽可能多的错误

  • 询问他们如何获得他们编写的tsql的查询计划,以及在查询计划中要避免的一些事情(以及如果弹出的话他们将如何纠正它们);看看他们是否知道完整的表或索引扫描是什么

  • 询问他们是否了解服务器的优化器是如何工作的以及它们如何影响他们编写的tsql

  • 向他们询问有关何时使用tempdb

  • 的示例
  • 看看他们是否知道哪些sql子句会强制在幕后使用tempdb;看看他们是否知道为什么这很重要

  • 询问他们何时最好不要使用光标

  • 询问他们如何确保更新到位;问他们哪些供应商支持哪些,哪些实施更新为删除/插入

  • 让他们解释为什么在代码

  • 中使用select *是不好的做法

答案 4 :(得分:1)

以下是我可以提出的一些问题。

  • 如何在不使用Row_Number()函数的情况下实现Row_Number。
  • 如何计算总跑数
  • 如何转置记录 - 转动。
  • 过滤WHERE子句
  • 中的NULL记录
  • 条件记录排序和过滤

答案 5 :(得分:1)

将TRANSACTION ISOLATION LEVEL命名为解释每个,这是默认值 ?

答案 6 :(得分:0)

我总是问程序员(不是真正的数据库程序员,而是能够编写DAL的程序员)

“Epxlain相关的子查询与不是”

的子查询之间的区别

我知道对于那些知道一件事或者有关sql的人来说这听起来很容易,但令我惊讶的是,不到50%的人认为是对的。

答案 7 :(得分:0)

WHERE子句和HAVING子句之间有什么区别?

这是一个看似简单的问题,很多人都错了,听他们试着回答会让你对他们对分组的理解有所了解。