コンテンツへスキップ
採用のヒント
SQL: software engineer interview questions

Screen SQL Developer Key Skills Requirements

採用のヒント
SQL: software engineer interview questions

You want to hire SQL developer and start your IT recruitment campaign. You receive many resumes and cover letters – now it’s time to begin the screening process. Looking through applications and talking over the phone with candidates you start wondering whether a certain SQL programmer is good enough to become a part of your IT team and are they worth inviting for an on-site technical interview. On the one hand, you don’t want to turn down SQL developer with potential that could be valuable for your company. On the other hand, you don’t want to invite a weak candidate for an interview with your IT team and hear them complaining that the candidate programming skills are poor and they knew it after 5-minute talk.

That’s why it is so important to plan your screening process of SQL programming skills and choose such methods that will support IT recruiters in doing it as accurately as possible. So we thought we will give you a hand. Below you will find all the crucial information on how to screen candidates fast and effectively. Let’s start.

1. What is SQL?

SQL is the most popular 4GL (Fourth Generation Programming Language), which means that programmers only declare what the result looks like, rather than how the result should be calculated by the database. Historically, this declarative programming paradigm has been a key feature for ad-hoc queries run for data introspection executed by human users directly with SQL (rather than with a UI). In modern days, SQL is also embedded in other, more general-purpose programming languages like Java in order to access data from central databases.

2. What is important for IT Recruiter to know about SQL?

There are certain tips that can be valuable for IT recruiters when it comes to SQL.

What are the skills required for an SQL developer? The declarative programming paradigm is very different from object-orientation, procedural programming, or even functional programming. It takes a special mindset and experience for a developer to become a SQL expert. While basic tasks can be implemented very easily by everyone (including non-programmers, such as business analysts, requirements engineers, project managers, etc), complex SQL is rather hard to get right.

These are the things about SQL that you should bear in mind:

  • A thorough background on (or at least some intuition about) set theory is very important for developers working with SQL frequently. If such background is absent, developers tend to fetch individual data items one-by-one, processing them in the client using a general-purpose language like Java, rather than performing bulk operations on entire data sets directly in the database. This has drastic performance impacts.
  • Most universities, unfortunately, do not go far beyond relational algebra and some basic SQL-92 features. SQL has evolved a lot during the past decades, both in the SQL standard form, as well as in vendor-specific dialects. There are a variety of features like window functions, common table expressions (CTE), and much more, which help developers run complex reports relatively easily. Typically, knowledge about window functions and CTE help distinguish between SQL beginners and advanced SQL developers. This is important in ETL, reporting, BI, analytics use-cases.
  • Perhaps 90% of all SQL performance-related issues can be solved with proper indexing. Being able to identify situations where an index will be beneficial (or in rare cases: detrimental) is thus essential. The other 10% usually works for DBA and operations teams, and are often out of scope for developers, unless working in specialized setups.
  • In theory, a declarative SQL statement will be optimized as much as possible by the database. In practice, many databases still need help from the SQL developer. Many SQL statements are formally equivalent, but some will produce better execution plans than others. These things differ from database to database. In everyday SQL jobs, it is usually sufficient if developers know about execution plans and the fact that SQL needs to be tuned. The necessary skills for the particular database can still be obtained on the job. In more specific situations (Big Data, high scalability), the developer should bring tuning knowledge about the particular database in use.
  • SQL feels “arcane” for “modern” developers. This is mostly due to the language syntax, which stems from times when COBOL and FORTRAN were still widely used. Apart from syntax, there is nothing arcane about the technology. This subjective topic helps to separate developers who are curious about finding the right tool for the job from those who follow dogma (and will thus probably make wrong choices later on). In particular, technical recruiters should be able to distinguish between developers who want to hide SQL behind an ORM (that’s bad) and those who understand that ORMs only solve a subset of data storage problems, while SQL is still an important technology. All ORM vendors agree on this distinction, while unfortunately, many developers prefer not to touch SQL.

3. How to verify SQL programming skills in the screening phase?

IT recruiters reach out to various screening methods from assessing SQL programming skills based on resume through video or phone interviews to online coding tests.

Below you find some useful and practical recruiting tips on how to verify SQL skills using each method.

3.1. Technical screening of SQL programming skills based on CV

How should you read SQL developer resume? As an IT recruiter, you can find some really valuable information in the resume you get from SQL developer, but you have to know how to read it and what to look for. This will enable you to speak the same language with your candidates (or at least understand the basics the candidate is talking about).

That’s why we prepared this basic SQL glossary, just have a look.

SQL glossary for technical recruiters

Declarative programming, 4GL SQL is a fundamentally different programming language (see also intro). The fact that it follows the declarative programming paradigm is important for a recruiter.
DDL Data Definition Language, the subset of the SQL language that is used for defining the database
DML Data Manipulation Language, the subset of the SQL language that is used for manipulating the data in the database. Most queries are DML
Execution Plan The algorithm chosen by the optimiser for a given SQL statement.
Optimiser The engine that translates a SQL statement into an execution plan. Even simple statements have dozens of possible valid execution plans. A database may maintain several plans per statement.
Cost based optimiser (CBO) Most modern databases ship with a CBO, which makes decisions based on statistics, histograms, and heuristics about production data. It is pretty hard to beat the decision made by a CBO in a modern, commercial database.
Rule based optimiser Older databases implement simple rule engines in order to make execution plan decisions. These rules are often wrong in real world situations, which is why queries in these situations need much more tuning, e.g. by using hints.
Join One of the most fundamental operations in relational algebra that helps “joining” / “connecting” two database tables, for instance books and authors to produce results.
PL/SQL, T-SQL, pgplsql, etc. These are procedural extensions to the SQL language, i.e. general-purpose languages that integrate SQL. While these skills are very useful in some projects, they are not necessarily an important indicator for SQL skills.
Normalisation The practice of reducing redundancy in a relational database by separating conceptually distinct data (e.g. books, authors) into different relations (tables). There are several different levels of normalization.
Relational Database (relational model, relational algebra, etc.) While SQL mostly works with relational databases, it can also work on other data storage systems. Relational databases implement the relational model
E.F. Codd Optional background knowledge: Codd was the biggest contributor to relational algebra and much more.

Now that you are familiar with SQL basics, we can go into further details. If you’re not a technical person then it’s easy to get confused by all the different technology names and abbreviations. If the candidate says “sequel” does it mean “ess-queue-el”? Or is SQL something similar to MySQL? Just keep on reading and you will get an answer.

Most common SQL terms that are used interchangeably:

  • Statement, command, query
  • MSSQL, SQL Server (not to be confused with MySQL)
  • Oracle (the company), Oracle Database
  • The pronunciation is either “ess-queue-el” or “sequel”. Over the past decades, the community could never settle on either pronunciation.
  • Common table expressions, subquery factoring, WITH clause

Relations between respective versions of SQL technology:

  • SQL-92 is the first, widely adopted standard (although there had been standards before)
  • SQL-1999 made SQL “turing complete”, which means that any program can be implemented with common table expressions. In simpler words: It made SQL really powerful
  • SQL-2003 added window functions, which are extremely useful for analytics
  • In general, SQL evolves a bit more slowly and more backward-compatible than other ecosystems. Also, usually, vendor-specific features can be very important for specific projects that integrate tightly with SQL but are out of scope for this listing.

Essential SQL skills to look for on a resume

  • SQL performance tuning
  • SQL design skills
  • An understanding of relational theory
  • SQL refactoring skills
  • Experience with XSLT, Functional programming, NoSQL technologies
  • Set theory
  • Knowledge about window functions and CTE

If you see from SQL developer resume that they’ve had a couple of years of experience, dig a little bit deeper and look for following things in CV:

  • One of the most valuable SQL skills is SQL performance tuning both from a developer perspective (reading execution plans, maintaining indexes, etc.) as well as from a DBA/operations perspective (resolving contention issues, tuning storage, etc.). The latter is a bit more specific to operations, but it can still be a plus if a SQL developer has to work closely with operations.
  • SQL design skills and a profound knowledge of relational theory is important when new projects are started. It is very important to get database design right in the early stages, as it is very hard to migrate badly designed databases later on. In legacy systems, most developers can simply follow the established rules, where design skills are less crucial (although still helpful).
  • SQL refactoring skills can prove quite useful in larger teams where the SQL starts getting rather complex. Unlike Java refactoring which is rather easy nowadays (thanks to IDE tooling), SQL refactoring is still very hard because the SQL code is difficult to test.

What else in CV can be valuable to assess SQL programming skills?

As an IT recruiter you can also draw the following conclusions from SQL developer resume:

  • SQL is an excellent technology for stateless, streaming data processing. A developer experienced with any of these technologies will also be good with SQL:
    • XSLT
    • Functional programming (Lisp, Clojure, Ocaml, Haskell, Scala)
    • Various NoSQL technologies, including MongoDB, CouchBase, Neo4j and many more, which all ship with query languages inspired by SQL
  • Most SQL jobs are not SQL-only jobs, i.e. the developer will need to be able to work both with general-purpose languages (like Java, C#, etc.), and SQL. A good sign that a developer is able to do this is to look for interest and experience in a lot of different programming languages.

3.2. Technical screening of SQL skills during a phone/video interview

Resume itself is not enough to draw reliable conclusions about the candidate’s SQL programming skills. Therefore, IT recruiters often conduct a phone or video interview. Such an interview gives an opportunity to dig deeper into the candidate’s skills and experience. Often such a technical phone or video interview serves as a basis for making a decision whether to invite the candidate for an on-site technical interview with IT team or not, so it’s worth it to choose and ask the right questions.

Of course, questions vary greatly due to the position you are recruiting for and the specific skills you want to verify. Below you will find some general questions to find out more about candidate’s SQL skills.

1. SQL interview question concerning the developer’s experience

  • Q1: With which technologies listed in your CV, did you have commercial experience in the past 2 years? What were your responsibilities? What was your biggest achievement?
  • Why ask Q1: By asking this question, you can find out more about the candidate’s SQL up-to-date experience, responsibilities, and achievements. Thus you get to know your candidate better.

2. SQL interview question concerning the developer’s decision making regarding SQL technology

  • Q2: On what stage did you join recent projects? Were you involved in the choice of technology or project setup? If yes, which technology/ relational database management system did you choose or recommend for the project, and why?
  • Why ask Q2: This questions shows not only how a candidate makes choices regarding technology but also whether they were included into making decisions. Especially important if you are looking for someone with experience.

3. Behavioral question for SQL developer

  • Q3: Think about the programming project decision you made that was a failure. Why do you think it was a mistake? Why did it happen? Could there be anything done differently in order to turn it into success? What steps did you take to improve the situation? What did you learn from this experience?
  • Why ask Q3: That type of question will help you find out how the candidate perceives their decisions, draws conclusions and how much they learn from their previous experience.

3.3. Technical screening of SQL skills with an online coding test

Online coding tests can be a great way to screen SQL skills. Below you will find information on how you can use programming tests and which ones to choose.

Online SQL coding tests – the primary or additional method for screening

Coding tests can be used in two ways. Some companies invite candidates for programming test if they pass the screening process e.g. once IT recruiter looks through their CV or interviews them over the phone or video. However, it is more common to invite all candidates that apply for certain SQL programming positions to take a test. This gives them a couple of benefits. IT recruiters don’t have to spend time on all applications, but only on candidates that have the potential to fit a job as far as their programming skills are concerned. Moreover, candidate that takes a coding assessment shows some engagement and willingness to participate in your IT recruitment process. It can be a sign that they are more likely to want to find a job.

SQL online coding test – which one to choose?

In order to screen accurately, coding tests have to be the right ones.

There are some SQL online tests on the market but often they verify candidate’s academic knowledge rather than programming skills and abilities to solve real-life problems. This is what really annoys experienced programmers and that’s why they don’t like that kind of coding assessment. If the coding test verifies book knowledge they cannot show their skills in action and prove that they are capable of solving real-life programming challenges.

That’s why you should choose coding tests carefully in your IT recruitment process. Below you will find my top 5 features of SQL tests you should be looking for:

  1. SQL coding tests should consist of a couple of tasks, not only multiple-choice tests but above all, programming tasks which difficulty should match the responsibilities the candidates will have if they get the job (tests shouldn’t be based on algorithmic tasks as thus you cannot verify whether a candidate can solve real-life coding challenges).
  2. There is no point in forbidding the programmer to use external sources, the best way is to create them such an environment as they have at work, so open book exam is much more appropriate. Moreover, the candidate should be able to use their preferred IDE, just as he does on a daily basis.
  3. SQL programming tests should verify not only SQL skills as far as technology, in general, is concerned but also knowledge specific for particular database engines
  4. The coding test can also include tasks with code review challenges to test SQL skills. It gives very accurate information about the experience of the candidate, their approach to code quality, and the efficiency of debugging and finding traps. Such an assessment should be obligatory when recruiting senior SQL developers.

4. DevSkiller ready to use online SQL coding assessment tests

DevSkiller helps companies in IT recruitment process by providing them with an infrastructure that lets them test the programming skills of candidates in the environment which imitates 1st day at work experience. We allow companies to use their own code base, whole IT projects using frameworks and libraries, to test programmers online. However, we also have some ready-to-use SQL coding tests which you can use in your technical recruitment campaign.

MySQL
ミドル
テストされたスキル
期間
60 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 数学, 確率, ソフトスキル, SQL

コードギャップ

の知識を評価する。 MySQL, SQL

タスク - レベルミディアム

SQL|MySQL|ソフトウェアハウス|開発者とそのプロジェクト - 開発チームの責任者から、現在進行中のプロジェクトにおける開発者の役割とリストを作成するよう仕事を命じられた。

ノードジェーエス
ミドル
テストされたスキル
期間
87 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 ジャバスクリプト, ノードジェーエス

コードギャップ

の知識を評価する。 ジャバスクリプト, ノードジェーエス, SQL

プログラミング・タスク - レベルミディアム

Node.JS | Rest API | News backend service - Node.JSで作成されたニュースバックエンドサービスをVanilla JSで実装します。

SQL
ジュニア
テストされたスキル
期間
25 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 論理的思考, 数学, MySQL, SQL

コードギャップ

の知識を評価する。 SQL

タスク - レベル簡単

SQL|MySQL|スタンプカタログ|AVG関数 - 価格が合計平均価格以上のスタンプ(名前と価格)を選択します。

SQL
ジュニア
テストされたスキル
期間
33 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 論理的思考, SQL, MySQL

コードギャップ

の知識を評価する。 MySQL, SQL

タスク - レベル簡単

SQL|MySQL|スタンプカタログ|A Self JOIN - 同じ場所にあるスタンプ(名前と場所)を選択します。

SQL
ミドル
テストされたスキル
期間
53 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 SQL, PostgreSQL

コードギャップ

の知識を評価する。 PostgreSQL, SQL

タスク - レベルミディアム

SQL | PostgreSQL | Music Store | Time関数 - 各CDに収録されている全曲の再生時間を計算し、リストを出力します。

SQL
ジュニア
テストされたスキル
期間
26 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 論理的思考, SQL

コードギャップ

の知識を評価する。 SQL

タスク - レベル簡単

SQL | PostgreSQL | Hotels - 平均価格 - 各都市の平均価格のレポートを作成します。

SQL
ジュニア
テストされたスキル
期間
27 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 論理的思考, SQL

コードギャップ

の知識を評価する。 SQL

タスク - レベル簡単

SQL | PostgreSQL | Hotels - booking - 宿泊日数、1日あたりの料金、宿泊料金の合計を含む予約リストを作成します。

SQL
シニア
テストされたスキル
期間
52 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 論理的思考, SQL

タスク - レベル: ハード

SQL | PostgreSQL | Hotels - cities and top hotels - 都市のリストと最終予約日、その都市で最も人気のある(予約数の多い)ホテルのメイン写真(photos[0])を用意します。

テラフォーム
ジュニア
テストされたスキル
期間
69 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 デブオプス, テラフォーム, AWS

コードギャップ

の知識を評価する。 デブオプス, テラフォーム, AWS

プログラミングタスク - レベル:簡単

DevOps|Terraform、AWS|特定のAMIを使用してEC2インスタンスを作成する - SSHアクセス可能なデフォルトのVPCで、TerraformとAWSプロバイダを使用して、特定のAMIを使用してEC2インスタンスを作成する。

ジャワ
ミドル
テストされたスキル
期間
57 分以内。
評価
自動
テスト概要

選択問題

の知識を評価する。 ジャワ, スプリングブート

コードギャップ

の知識を評価する。 PostgreSQL, SQL

プログラミング・タスク - レベルミディアム

Java | Spring Boot | Items Retriever Microservice - ショッピングシステムからアイテムを取得するマイクロサービスを実装する。

始めよう
デブスキラー 今日

DevSkillerが貴社の成長をどのようにサポートできるかをご覧ください。