• Oh dear.

    I'm a developer rather more than a DBA, but I'm far from ignorant about databases.

    Normalisation - yep, know how to do that (and about denormalisation, though I might suggest in testing that's becoming less and less relevant in real-world environments).

    SQL injection - been carefully protecting all my code against it for years

    Indexes - well, I know the difference between clustered and nonclustered indexes and their different applications, and that a PK is alread a CI

    Rows that fit into pages? Certainly know about that one.

    (Rare) Appropriate use of cursors? Yes, know that.

    Appropriate use of UDFs to avoid RBAR queries? Yes.

    Am I perfect? No, but then I'm still learning. I've only been doing this full time for about 10 years so far. I've no doubt I'm still making mistakes that I'll cringe at in a few years but that's life in any discipline.

    I've worked with people (or inherited their code) who clearly couldn't design a database schema and code for toffee. Their non-DB code in whatever language we were working in on that project tended to suck too. Sure, there are lazy, incompetent buffoons who shouldn't be let near a coding environment of any description - they exist in any paradigm, and the good at one, when they've got to work at least slightly cross-discipline, are usually good at the other after a little acclimatisation too.