Real SQL queries with capital keywords, snake_case column names and every bracket and comma. The test above is already set to SQL; start typing to begin.
Each run shuffles real SQL statements together until there are at least 55 pieces to type. Three of them, exactly as they appear:
SELECT user_id, COUNT(*) AS orders
FROM purchases
GROUP BY user_id
HAVING COUNT(*) > 5;CREATE INDEX idx_events_created_at
ON events (created_at DESC)
WHERE deleted_at IS NULL;UPDATE accounts
SET balance = balance - 250.00
WHERE id = $1
RETURNING balance;Typed as tokens: SELECT user_id, COUNT(*) AS orders FROM and so on, one Space between each.
Type a piece, press Space and carry on. A piece only counts when every character is right, capitals included, so select is wrong where the test shows SELECT.
SQL is the least symbol-heavy language in the code test: only about one character in nine. What it has instead is capitals. Keywords like SELECT, GROUP BY and PARTITION are upper case, and about half the letters in these queries are capitals. Among the symbols, the underscore of snake_case names leads, then brackets and commas:
| Symbol | Name | Share of symbols | Key (US layout) | Finger |
|---|---|---|---|---|
_ | Underscore | 16% | Shift + - | Right little |
( | Opening bracket | 16% | Shift + 9 | Right ring |
) | Closing bracket | 16% | Shift + 0 | Right little |
; | Semicolon | 11% | ; | Right little |
, | Comma | 7% | , | Right middle |
* | Asterisk | 7% | Shift + 8 | Right middle |
' | Single quote | 7% | ' | Right little |
= | Equals | 5% | = | Right little |
- | Hyphen (minus) | 4% | - | Right little |
$ | Dollar | 4% | Shift + 4 | Left index |
Single quotes around strings, $1 placeholders and the :: cast also turn up. They are all short, but each one breaks the rhythm of a keyword run.
created_at and user_id have it in the middle.COUNT(*) as one shape. Capitals, Shift plus 9, Shift plus 8, Shift plus 0. It is in almost every report query.Net words per minute counts correct characters, five to a word, and accuracy counts every key you press. The result shows raw WPM, consistency, your slowest pieces and a heatmap of missed keys, saved in your browser so you can track progress.
Real one-line statements: a SELECT with GROUP BY and HAVING, a partial index, an UPDATE with RETURNING, a window function with ROW_NUMBER and PARTITION BY, an INSERT with ON CONFLICT, COALESCE with NULLIF and a DELETE with an interval. They are shuffled into each run.
For a run of capitals like PARTITION BY, Caps Lock can be quicker, but you must remember to switch it off before the next lower case name. Holding Shift with the opposite hand is safer for short keywords. Try both in the test and compare your accuracy.
SQL has far fewer symbols than JavaScript or Shell, but many more capital letters, because keywords are traditionally written in upper case. Underscores in names like user_id are its most common symbol. The challenge is Shift timing rather than symbol reaches.
No. This page opens the code test in SQL for this visit only. Your saved code language stays as it was until you pick another in the options above the test.
Typing tests by length: 15 second typing test · 30 second test · 1 minute typing test · 2 minute test · 5 minute typing test · 10 minute test · custom text
In other languages: Spanish typing test · French typing test · German typing test · Portuguese typing test · Italian typing test · Test de mecanografía en español · Teste de digitação em português