Answers:
这取决于您希望它有多困难。另外,我也不太警惕给您答案,因为大多数SQL问题都有多种可接受的做事方式,还有一些以草率的方式解决SQL问题的方式会导致其他问题。对答案进行“评分”的人绝对需要能够自己解决问题。
就是说,我想出了一些建议。
极其简单的级别:
给一个雇员表,其中包含EmpID,FirstName,Lastname,HireDate和TerminationDate列:
编写查询以返回所有仍在该公司工作的雇员,其姓氏以“ Smith”开头,按姓氏和名字排序。
轻松级别
给定上面的Employee表,再加上带有EmpID列的新表“ AnnualReviews”和ReviewDate:
编写查询以返回从未进行过按HireDate排序的所有员工的查询。
中级 给定上面的雇员表,写一个查询来计算仍在公司工作的最老员工和最老员工的差额(天)?
困难级别
给定上面的雇员表,编写查询以计算公司没有雇用或解雇任何人所经历的最长期限(以天为单位)。
更难的级别
再次使用相同的表,编写一个查询,该查询返回每个员工,并且每行/每个雇员都包括在任职期间和达到最大值的第一个日期为公司工作的最大雇员数。不使用游标的加分。
我会问“为什么以及为什么要清除用户将在SQL查询中使用的输入值?”
这是必要的,以防止SQL注入,并能回答这个问题,需要有关SQL语法和命令(如良好的知识SELECT
,UPDATE
,DROP
,DELETE
,等),以及如何将这些可以通过使用SQL注释来规避打破查询注入恶性用户可能希望做的事情。
我帮助开发了针对数据库程序员的技术测试。问题是我认为很基本的问题:为给定的表结构编写CREATE TABLE语句;做一些简单的查询;等等
大部分自称SQL专家的求职者都没有通过测试。有人说,尽管他已经从事SQL开发多年,但他从未写过CREATE TABLE语句,因为GUI帮了他。
我们在其他技术测试中也有类似的经验。对于Windows支持人员,这些任务类似于“创建域用户”,“添加打印机”,“更改文件的权限”。大多数人无法完成这些任务,尤其是在压力下。我们认为,即使您能做简单的事情,您也可能会胜任。