Is there much call for people with SQL skills?

When I was in college I attended a 2-day “learn PHP and MySQL” workshop for a couple of credits. I was a senior journalism major and taking my first steps towards being the Web Maven I am today, and he was in his senior year of computer science, on his way towards graduating summa cum laude.

He did ok doing the “hello, world!” type stuff getting the PHP pages to display. But when it came to connecting the site to the database and working in the DB, he just couldn’t understand it. Queries and updates and inserts, and clicking a button to fire an event to update a db were beyond him. I still don’t think he gets it, 7 years later. He’s a “real” programmer now.

I don’t fault him…I just don’t think that computer science programs teach all that much db stuff other than the basics. Or you have to opt to take a db class. Any time anyone wants to work with us (we do database-driven Web applications) and their main credentials are a CS degree, I turn them away.

I don’t know if only having SQL skills can get you to the top of the heap, but they are handier than you’d think.

Among my other hats, I’m a “Sr. SQL DBA” at a US company. Many people use the term “DBA” to mean “developer”, whilst others carefully differentiate. My job is 95% development, which is what I prefer.

In the US, you’ll see a fair number of ads like “Wanted: SQL Server DBA; must know T-SQL, C#, ASP.NET, JavaScript, Perl, yadda yadda.” You’ll also see ads looking for deep knowledge of a database product (using MSSQL as an example): “T-SQL, DDL, DTS/SSIS, SSRS, ERWin, Profiler, tuning…” And others are somewhere in the middle.

I can’t speak for the UK, but from my job search experiences here (at a senior level), my belief is that you if are good in SQL and passable in T-SQL (10-table joins don’t scare you, you’re comfortable with CASE statements), and have a moderate level of experience in at least one of: Integration Services, Reporting Services, Analysis Services, replication, or Crystal Reports, you’ll find a good fit at a good salary. In my recent search I found many companies looking for good SQL skills + decent experience with one of these. Note that I was looking for a pure database developer gig; I ignored the Web+database or Java+database positions. YMMV.

I have education-level c, c++ (OOP), Pascal, COBOL (I can almost see your frown), even assembly. But I never use them. I am self taught (if using google and SDMB can count as ‘self taught’) in vbscript, asp, php.

But for some reason I suspect SQL has an advantage over merely knowing a ‘real’ language because it can be used by any of them (Recently I use SQL in vbscript scripts, less recently I’ve written nearly a hundred seperate asp files that run sql queries, a few php files. And I’ve tried in C++ but I got bored trying to set up the connection to the database.

Yes.

HELL yes.

Those skills cascade, and will always be in demand in one way or another.

I am a true SQL expert specializing in Oracle but I can move from anything to MS SQL Server to Access. My current company uses the most complicated and longest SQL I have ever seen. I work on queries that are hundreds to thousands of lines long with dozens of complicated subqueries every day and I can read them like a first grader can read See Spot Run.

I don’t think any comment about having “SQL skills” is appropriate. I have known people that meet that criteria and they tend to get fired because that isn’t what it is all about. The appropriate idea is generalized database skills and an innate ability to know what is going on with any database. I interview and hire many people and we do not care about any particular SQL syntax or esoteric knowledge about an particular platform. Some people with 15 years of experience will respond to generalized database questions with their knowledge of, say, Oracle 9i running on a Sun Solaris Unix box. If they continue that train of thought, they aren’t getting the job. True database skills are fully transferable to anything and a $20 book can get you oriented in a couple of days.

Almost all larger companies have important databases so I think that strong database skills are the most marketable and transferable skills that you can have. It isn’t a kiddy skill and there are always new things to learn. It goes well beyond typing in a one like query to find customers with the last name ‘Jones’;

They still teach COBOL? I did start an evening course on database development that used COBOL as the procedural language, (this would be 1995/6) I had enough sense to leave that and went and learned C instead.

Dilbert: You know COBOL?
Ashok: We learned about it in history class
I can’t really take the piss out of COBOL, I spend most of my development time using Oracle PL/SQL

I don’t know if they still teach it, but all of our systems are still being coded in it. (Albeit, an object oriented version.) COBOL is another language that will never go away.

This is something I’ve wondered about. As I said in my post above, I am not in a technical position with my company, but I have intimate knowledge of our database (I even designed some of the structure because I knew the content better than the IT guys) and some scripting skills as well as SQL facility. Would anyone hiring people to work with databases even consider me as a candidate since I don’t have a CS or programming background, or do people hiring in that sphere tend to prefer more credential-wielding candidates?

(not that I"m currently job hunting…I just like to know what my options are)

I learned it at college in around… (lets see, going back in my memory a bit here) as long ago as 1998, and the argument was that COBOL was still used in some on some old stuff that still runs in some big companies, therefore we should learn it.

I remember the hair pulling frustration of spending a whole day’s manual debugging to find that a full stop was missing (and therefore would cause the entire thing to behave completely bizzarely.)

Sure they will. Computer Science degrees aren’t very popular with regular businesses. They tend to do things like video game design and low level design. In fact, I don’t think I have ever worked with a Computer Science major in my 11 years in the workforce including many companies including me. We tend to have liberal arts backgrounds ranging from political science to music. You just need to know how databases work at a fundamental level.

There is a saying that it is much better to teach a person with good business skills database development rather than vice-versa with a heads down old-school programmer.

The easiest way to break into database IT is just to take on more and more technical roles within your current company based on your skill level as it grows. Most companies will let you do that especially if you sneak up on it. Some people make fun of MS Access but that is the way I started and it is a great and powerful tool even if you never move into straight IT. Designing and playing around with Access is a good way to learn relational database concepts.

I was doing COBOL on a mainframe as recently as two years ago. Lots of financial systems still use COBOL on the back end.

As for SQL, I’m currently employed as a .NET developer, and I deal with SQL every day. In fact, when I get to work I start up both Visual Studio 2008 and SQL Server 2005. Look for jobs on the job-finding sites for .NET developers, and 99% of them will require SQL experience.

SQL wasn’t even listed in the job requirements for the position I hold now (the generic “system admin”) but I use it almost every day. It comes in handy when we need to know something that the canned reports that our programmers wrote don’t tell us what we need to know.

I also do some lightweight programming of my own (mainly for analyzing data) and would prefer not to open direct connections to our database. An SQL query makes it easy for me to take snapshots of a database and put them into a text format for my own applications without fear of goofing up a live server.

If you’re an analyst of any sort and get data from customers you need SQL to sift through it. The worse the data is the more you need an SQL background.

Access gets a bum rap. It’s a very useful product and when you outgrow the capability of an Access database, it’s easy as hell to port it into SQL Server and then use Access as the front end GUI.

Unless navigational databases come back into fashion, or object databases come and sweep the relational model away.

That said, SQL’s syntax could be massively improved. It doesn’t fit with any language currently in use and embedding it involves quoting and escaping and other string-manipulating stuff over and above basic sanitation.

They likely would not invent the syntax all over again unless all they knew was COBOL, and they would have to have bought into the relational model to invent the semantics the same way. Modern database design is… modern. It was done a different way in the 1960s, and Codd had an uphill battle to introduce the modern way of doing things.

Not likely. At least on the academic side of things, there’s pretty widespread agreement that SQL is not a great query language. If we were designing a query language from the ground up, it would probably look a lot more like Datalog or XQuery, the latter of which is found in commercial products and is not a bad technology to be familiar with. SQL will be around until shortly after COBOL goes the way of the dodo, but that has more to do with the fact that it got here first.

I used to work on a mainframe running IDMS and used OLQ and SAS to query the database. It was not a relational database but a network structure. Some years ago we moved to Oracle running on a network and I learned Oracle SQL.

My job is in data analysis and I write hundreds of queries a year for various internal and external clients. The most important skills aren’t code cutting but working out the data structures - what tables and columns mean what, what things will foul up your query and lead to errors, which data elements are reliable and which are dubious, how to tie things together from different tables to create meaningful, readable reports for people.

My son is at university at the moment studying computer science. He was told how hard the course on database design was and that it contained lots of SQL coding. So over Christmas he taught himself SQL to such good effect that he hated his SQL course because it was so simple and he had already learned far more than they were teaching him in an entire semester.

I work with 4 other analysts and none of them had any background in computing at all when they started with me and none knew any SQL. I largely trained them myself and it didn’t take long to get them up to speed because they were willing to listen and ask questions. Once you understand the thinking behind queries it isn’t hard to model one query on another.

Anyhow Oracle systems are all SQL or PL/SQL even the user interface and Oracle isn’t going away…

I graduated college 4 years ago (B.B.A in Computer Info Systems) and I had to take 2 COBOL classes. I also took took the one required Database class and didn’t learn jack.

I am on my second job out of college. Both of my jobs have basically considered me to be a T-SQL developer. Mostly what I do is write ETL processes. ETL stands for Extraction, Transformation, and Loading. Basically means loading a file into a database.

I am not really looking for a new job, but generally, I get contacted several times a month about jobs, and every 2-3 months I go on an interview. So I feel pretty secure career wise. Although I do feel a little pigeon holed. Both companies have been reluctant to let me branch out to other kinds of development.

It gets a bad rap because it doesn’t handle large files. I like the product but I think it’s limited to a million lines of data. Not very useful if you’re looking at a month’s worth of data in a large company.