我所经历的问题,每一个良好的.NET开发人员应该能够回答,是这个问题的内容和方法非常深刻的印象,因此在同样的精神,我想查询数据库/ SQL Developer的这个问题.
您认为一个好的Database/SQL程序员能够回答哪些问题?
mar*_*c_s 31
不同类型的JOIN:
请参阅Jeff Atwood的JOIN视觉解释
什么是索引以及它如何帮助您的数据库?
有哪些数据类型以及何时使用哪些数据类型?
OMG*_*ies 28
SELECT从表中的列COUNT,SUM,MAX/MINDISTINCT,GROUP BY,HAVINGJOINs,ANSI-89和ANSI-92语法UNION VS UNION ALLNULL处理:COALESCE&Native NULL处理IN,EXISTS,和内嵌的意见WITH 语法:子查询Factoring/CTECOMMIT,ROLLBACK,错误处理Phi*_*ler 12
以下是一些:
我已经给出了这个答案,因为Erwin Smout发布了一个错误的答案,强调可能需要专门防范它.
欧文建议:
"为什么每个SELECT总是包含DISTINCT?"
一个更合适的问题是:如果有人声称:"每个SELECT总是包含DISTINCT"; 你会如何评论索赔?
如果候选人无法在火焰中射击,他们要么:
作为记录
在我们公司,我们创建了一个SQL开发人员测试,而不是向许多具有良好内存的人提出的SQL问题.该测试旨在让候选人将实体模式与规范化和RI考虑因素放在一起,检查约束等.然后能够创建一些查询来生成我们正在寻找的结果集.他们根据我们提供的简短设计规范创造了这一切.他们被允许在家里这样做,并且需要花费尽可能多的时间(在合理范围内).
聚集索引和非聚簇索引之间有什么区别?
我要问的另一个问题不是针对特定服务器的问题:
什么是僵局?
我会给出一个写得不好的查询,并询问他们如何调整性能.
我会问一下集合论.如果您不理解集合操作,则无法有效地查询关系数据库.
我会给他们一些游标示例,并询问他们如何重写它们以使它们基于集合.
如果工作涉及进口和出口,我会询问有关SSIS(或其他数据库使用的其他工具)的问题.如果它涉及编写报告,我想知道他们理解聚合和分组(以及Crystal Reports或SSRS或您使用的任何报告工具).
我会问这三个查询之间的结果有何不同:
select a.field1
, a.field2
, b.field3
from table1 a
join table2 b
on a.id = b.id
where a.field5 = 'test'
and b.field3 = 1
select a.field1
, a.field2
, b.field3
from table1 a
left join table2 b
on a.id = b.id
where a.field5 = 'test'
and b.field3 = 1
select a.field1
, a.field2
, b.field3
from table1 a
left join table2 b
on a.id = b.id and b.field3 = 1
where a.field5 = 'test'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
156130 次 |
| 最近记录: |