A lot of people use ORMs, though, which (though often poorly) translate the SQL model to one more familiar to most programmers. An unfortunately less popular alternative is query builders (such as jOOQ for the JVM) which, especially in statically typed language, provide a degree of safety against basic typos, SQL injections, etc., while still keeping the mental model of SQL intact.