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.