There are so many programmers out there who are also an expert at Query writing and Database design. 

Should this be a core requirement to be an expert programmer or software engineer?

Though there are lots of similarities in the way queries and codes are developed, my personal opinion is, Queries seem to have a different Structure than Code and it can be tough to Master both simultaneously due to the different approaches.

Whether or not database query writing should be a core requirement depends on the job, but relational databases are ubiquitous in current technology.

So, if I met a programmer that didn't know how to write database queries, I would expect one of two things:


They are generally inexperienced.
They are highly specialized in another field (e.g. embedded systems) and have never needed to learn it.


Database queries are fundamentally different from more standard programming languages. They are algebraic and intended to operate on relational data, while C# or Java are imperative and operate on disks, memory, user input, etc. Even functional languages like LISP or Haskell that are more algebraic in form are less oriented to relational data.

EDIT: As has been pointed out in the comments by me and others, there are some valid reasons why an experienced developer may not know database queries well:


Their team used ORM/NoSQL
Their team had DB programmers
The complexity of the application was in the business logic, and the DB queries were trivial
Their team apportioned the work such that some programmers didn't write queries


Though valid, these caveats are not convincing reasons why an experienced developer would not know database queries. Unless highly specialized, a programmer should be familiar with relational databases.

In summary, most experienced developers should know database queries.
