The usual view of academics is that the Ph.D. is a research degree. One of the requirements is the ability to hold chalk and write on a blackboard. The other three qualifications are research, research, and research, especially as in getting a research grant from the NSF, etc. to pay the bills.

For doing research, skills writing MySQL queries, using MathLab, writing JavaScript with AJAX, etc. are rarely important. Uh, can't publish a paper in a peer-reviewed journal or get a research grant based on writing MySQL queries, even clever MySQL queries. Relational database WAS important as research for, say, E. Wong or E. Codd 30+ years ago.

Researchers quickly learn that they can't carry the library around between their ears. In particular, a Ph.D. holder in computer science, mathematics, physics, biology doesn't know everything in computer science, ....

Instead, the requirement for a Ph.D. is roughly (A) pass the qualifying exams and (B) show that can do some research. For (A), that might still be testing over quite a lot of material that was taught to undergraduate majors. For (B), a common requirement is "an original contribution to knowledge worthy of publication" where the usual requirements for publication are "new, correct, and significant".

Now a major theme in research in computer science is to build on, or even borrow and extend, sometimes even to apply, applied math that goes back nearly 70 years. So, as is common in a lot of research, the main tools and abilities are in applied math and, then, as has been said for theoretical physics, can do the physics (computer science) in the footnotes.

Net, it stands to be the case that some of the best researchers in computer science will be from pure/applied math and may never have written a SQL query or, for that matter, never taken a course in computer science.

How can this be the case? Did I mention that the main goals are research, research, and research? The high end universities are fairly solidly stuck on these three goals.

So, why should such researchers be teaching courses to undergraduates? Well, maybe they would be teaching some course "Applied Math for Computer Science 101" with some set theory, abstract algebra, deterministic optimization, probability theory, stochastic processes, and statistics.

More generally, the attitude is that a good researcher has done some impressive things, and, thus, the quality of the course content should be better than from "teaching faculty". In fact, commonly that is the case.

Or, the emphasis is not on tutorials on material 30+ years old, e.g., relational database, but on what is new, in theory and/or applications. And, computer science also wants to find what is fundamental in the field -- a darned ill defined goal super tough to reach. Well, the question of P versus NP looks "fundamental" so, whatever connection it has with practice so far, it has been heavily pursued, and a good solution is a Holy Grail problem for the field.

The belief is strong, although maybe rarely made clear in ugrad courses, that it is in the best interest of the grant funders, universities, professors, students, job seekers, computer applications, the computer industry, US standard of living, and civilization to concentrate on what is NEW, powerful, and valuable.

An example of this view is from a statement, at one time at the Web site of the Princeton math department: IIRC, "Students are expected to prepare for the qualifying exams on their own. No courses are given for preparation for the exams. Graduate courses are introductions to research given by experts in their fields." -- IIRC, from memory. Well, bluntly, as a special case, essentially everything a student might want to learn for an ordinary job NOW the graduate program is not interested in teaching!!!

So, really, if want to hire a Ph.D., then should not use as criteria what ugrad or self-taught computer programmers have learned and use, e.g., HTML, CSS, JavaScript, C++, Matlab, R, etc. And don't look at courses, credits, or grades. Grades? Commonly grades in graduate courses, those introductions to research, don't mean much. Indeed, at some Ph.D. programs, there is no coursework requirement. In such a course, a student is looking for a research direction. So, maybe in the course they see a research direction they like and maybe, likely, not. So be it.

So, instead, to evaluate a Ph.D. look at their research.

And why hire a Ph.D.? Because you want work that is NEW, as in so far no one has done it, and hopefully powerful and valuable for some goal the company has.

And why a Ph.D. for work that is new? Well, doing research is commonly just darned challenging, and essentially the only education for that is the Ph.D. degree. And, to be more clear, such research likely doesn't have much to do with lots of facility in writing SQL queries or teaching or even just making an A in an ugrad course in database.

To be more clear, it is assumed that if some good research has been done and is well written about on the shelves of the research libraries, then anyone at all good at research will be able, routinely, to teach themselves the material so quickly it never was clear they didn't know it. Indeed, in research, commonly it is necessary to review, and learn well enough, quite a lot of old material. So, bluntly, the learning of what is well presented on the shelves of the libraries is considered routine, not worth academic tenure or even a title of professor.

So, e.g., for MySQL and relational database, that subject has been written about voluminously at essentially every possible level from a secretary just starting with a computer using Microsoft's Access to generate a mailing list to the normal forms, locking and transactional ingtegrity, foreign keys, clustered keys, connection pools, backup of a live database, distributed database, and much more. No tenure or professor honors for knowing that stuff.