One of the good things about SQL is that it has less keywords than many of the programming languages that you come across. Learning the syntax is pretty easy, it's the application, as dove alluded, that is pretty hard.
How long does it take for a professional procedural coder to become a professional SQL coder?
That depends on the programmer. I would say that you would need to have created at least a two each of these database objects against production data:
- Stored Procedure
- Views
- Index
- Trigger
- User Defined Function
So, it's not really a matter of time, but a matter of knowledge.
I thought I knew how these work, but I'm now working with 100 to 800 million row sets, and what worked before is inadequate for these huge result sets. Thankfully, a lot of database management tools are a LOT better now days. That means that I spend less time scratching my head, and more time coding.
I think the hardest part of these are the database specific extensions. Those are all different between database vendors. I've only worked with SQL Server, Oracle, and Interbase/Firebird. After a while I gave up trying to keep up with all of them, and just concentrated on SQL Server, as that is what is most common in my metro area.