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.