Skip to content

SQL typing practice

SQL typing practice is unusual because the difficulty is capitals rather than symbols. Keywords are conventionally uppercase, so SELECT, FROM, WHERE and GROUP BY each need Shift held across several letters, and that sustained Shift is a different skill from the single shifted symbols every other language drills.

Practise SQL now

4 exercises, each complete and syntactically valid, chosen for the characters it drills rather than for what it computes. Untimed, and no account needed.

Drills().=,;

WPM0
Accuracy0.0%
Time0:00
Raw0
Consistency0%
SELECT u.name, COUNT(s.id) AS sessions
FROM users AS u
INNER JOIN sessions AS s ON s.user_id = u.id
GROUP BY u.name
ORDER BY sessions DESC;

Click here to start — there is no timer

Indentation is spaces. Press Enter at the end of each line.

Why is SQL harder to type than English?

Every other language on this site is hard because of punctuation. SQL is hard because of Shift. The convention of writing keywords in uppercase means holding Shift across whole words rather than tapping it for one character, and holding it correctly means the little finger of one hand stays down while the other hand types the word. People who never learned that reach with the same hand, which pulls them off the home row for the length of the keyword rather than for a single key. Underscores in column names and single quotes around string literals are the only real symbol load, and both sit under the right little finger, which is already busy with Shift.

Which keys slow you down in SQL?

The characters that cost the most time in SQL
KeyFingerWhy it costs time
Shift Shift, heldOpposite little fingerHeld across whole keywords, not tapped. The defining difficulty of SQL.
_ UnderscoreRight little finger + Shiftsnake_case column and table names, everywhere.
' Single quoteRight little fingerString literals and dates. No Shift, unlike most languages.
( Round bracketsRight ring and little finger + ShiftAggregates and subqueries, often several lines apart.

Finger assignments follow the standard touch typing layout. The full chart is on the finger placement page.

The mistake SQL typists make most

Using Caps Lock for keywords instead of Shift. It works, and it builds a habit that costs time on every single keyword because you press it twice per word rather than holding one key with a finger that was otherwise idle. The other common error is a same-hand Shift on SELECT, which drags the left hand off the home row at the start of every statement you write.

How fast should you type SQL?

Expect roughly 60 to 75 percent of your prose speed, the highest of the languages here. SQL is mostly words rather than symbols, so once sustained Shift is comfortable it types closer to English than any other language on this list.

Measure prose first so you have something to compare against — a one minute test is enough. A code speed well below the range above usually means specific symbols rather than general slowness, and the test results name which keys they are.

Questions about typing SQL

How do I practise typing SQL queries?

Type complete queries with the keywords in uppercase, joins included. Single-clause exercises never require you to hold Shift across a multi-word keyword like GROUP BY or ORDER BY, and those are exactly where the hesitation is. A query with a join and an aggregate covers almost everything that matters.

Should SQL keywords be typed in uppercase?

Most style guides and most code you will read use uppercase keywords, so it is worth being able to type them fluently regardless of your own preference. It is also the part that actually needs practising: lowercase SQL is barely harder to type than English.

Is typing speed useful for data analysts?

It is one of the more directly useful cases, because analysis is exploratory. You write a query, look at the result, change it and run it again, so the round trip happens many times an hour, and slow typing lengthens every one of them.

Why do I keep mistyping underscores in column names?

Because the underscore is Shift plus the right little finger, and in SQL that finger is often still recovering from holding Shift for the keyword just before it. It is a sequencing problem rather than a reach problem, which is why drilling the underscore alone does not help much and drilling whole column names does.

All free, and no account needed.