Diagnostic Criteria for SQL Deficiency Syndrom (SDS)
A. Core Symptoms (all must be present)
- Persistent inability to construct syntactically valid
JOIN
s, despite repeated exposure. Often prefers one large table models believing they "scale better". - Reliance on Python, Excel, or Google Sheets for tasks natively suited to SQL.
- Denial of database necessity, often citing "modern data stacks", ORMs or "just use JSON."
B. Associated Symptoms (three or more required)
- Uses
SELECT *
habitually without projection discipline - Overuses
DISTINCT
to conceal duplicates generated by poorJOIN
construction - Displays visible distress when confronted with
EXPLAIN
plans. - Avoids window functions, describing them as "too magical" or "too hard to understand".
- Equates ORMs with database access, insisting "I don't write SQL, my framework does".
- Treats CSV and Excel Spreadsheets as permanent storage solutions
- Believes that NULL = NULL or that it should be
- Believes application code will handle data integrity and avoids foreign keys and constraints
- Refusal to normalise data, driven by the belief that "JSON is more flexible"
- Storing timestamps and dates as
VARCHAR
orTEXT
- citing that it is "easier to query" - Claim that CTE, views or stored procedures are "too advanced" and "not portable"
C. Duration
Symptoms must persist for at least six months, or across two job changes, whichever comes first.
D. Exclusion Criteria
Symptoms aren't better explained by:
- Transient onboarding confusion.
- Inadequate Stack Overflow or LLM access
- Temporary caffeine withdrawal
Severity Specifiers
- Mild SDS: Occasional misuse of
DISTINCT
, nervous laughter when asked about indexes - Moderate SDS: Full denial of
JOIN
, reliance on Pandas for production use. - Severe SDS: Public advocacy that "SQL is dead". Medium articles may be published.