Do I need a programming background to understand SQL Server?

jtvang125

Diamond Member
Nov 10, 2004
5,399
51
91
First off, here's a little background on me. I do have a degree in the IT field but my main focus was on computer hardware and networking. I did take a few programming classes but they were really basic stuff, mostly cut and paste. I never really enjoyed programming because I just wasn't that good in it.

Anyways, last week my asst director/programmer handed off to me all the responsibilities of creating and updating our SQL Server databases. I did express my lack of knowledge of the subject but he insisted that I little to no programming was involved and he'll guide me through. Two of the other guys in the department already declined. Without much thinking I told him I'll give it a shot.

After a week of reading various books and going over with him on some basic stuff I still don't get this stuff. My lack of enjoyment of programming isn't helping either. I've read and re-read things 3 or 4 times yet the concepts just aren't sinking in. I'll give it one more week and if things don't get better I'm going to ask him that I'm just not the right guy for that job. Also after just 1 week he wants me to reverse engineer a Access database and see how it works and how things are being linked already.
 

JavaMomma

Senior member
Oct 19, 2000
701
0
71
It depends what you're trying to do with the database. Many (not all) programmers actually have a poor understanding of database design, setup and maintenance. However, most DBAs should have some knowledge of programming to write simple scripts since SQL is sort of a programming language. Access is really simple - it is pretty much all GUI ...

So, like I said it depends what you're trying to do with the database... it could be all clicky, clicky or you could end up having to write a bunch of T-SQL
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
I agree with JavaMomma, and I would also say that there are two main challenges. The first is just to understand SQL and the way it supports relationships between, and queries against, rows of columns in a data table.

Beyond that, you then have the specific Transact-SQL syntax that SQL Server uses, which is close but not always identical to syntax used on Oracle, Sysbase, MySQL, etc. You also need to understand the platform and tools, i.e. how to use SQL Enterprise Manager to connect to and manipulate a database server; how to write interactive queries, browse tables and other objects, etc.

It's a fairly tall order if you don't have any other recent database experience. If the data is simple, with few tables and no really complicated relationships, then I think you could probably ramp up relatively quickly, but as you say, that first part has to click.
 

Furor

Golden Member
Mar 31, 2001
1,895
0
0
To answer your question, no. SQL was really easy for me to pick up, especially since I was able to view production TSQL and see it used in action, so you may want to see if that helps.
I think I picked it up in about 30-45 days. The great thing about SQL is that it is so powerful, even if you are new to it. Powerful in both good, and bad ways.

I usually judge most people on 3 levels of SQL knowldge

1. Basic - you know how to run basic queries with select, update, delete, and insert
2. Intermediate - you know how to create tables, schemas, stored procedures, triggers, indexes, cursors, views, more efficient queries, dts, ssis, etc..
3. Advanced - You know most SQL ins and outs, tips and tricks, and have tons of experience..a real DBA.

Now, after 3 years of working with SQL, I feel I am barely an intermediate user. I think it will take me another 2 or 3 years to get even close to advanced. DBA's are in extreme demand around here, we could not find anyone locally so we pay $120/hr to a contractor for critical things
 

QuixoticOne

Golden Member
Nov 4, 2005
1,855
0
0
I feel sorry for you.

Although you don't need a programming background, you certainly need the sort of technical techniques and considerations involved in programming to administer and configure the product.

If you intend to pursue this, I suggest going here:
http://www.microsoft.com/sql/default.mspx

...and looking at all their learning materials, tutorials, forums,
especially the webcasts / online labs, et. al. to help familiarize yourself with the basics of what is needed for its installation / administration.

There are tons of forums and learning resources out there for SQL server, but it still isn't anything like what I would call "easy" or "intuitive". You could easily spend dozens of hours learning, practicing, et. al. before you were demystified and at least had identified what processes you should be learning about in detail to usefully proceed.

You could certainly do a lot with the free SQL server Express product and learning resources at home if you feel motivated to study this on your personal time, though that would not be fair to you if it is for a business purpose and outside the scope of your reasonable job duties.

You could also get a spare PC at work and use it as a test platform to try some installations, configurations, work through some of the tutorials / examples, et. al.

If nobody really understands SQL server at your workplace I have to wonder why you're even trying to use it when perhaps other solutions like Excel, Access, POSTGRES, MYSQL, or whatever might be more approachable and usable with less administrative overhead and complexity.

There are certainly a million ways to mess up a database configuration where it will "work" in many cases, but may fail miserably in terms of security, robustness, data reliability, backup, auditability, performance, et. al.
I'd suggest doing a lot of practice before putting any implementation "in production" with business critical data relying upon its perfect functioning. If there is anything worse than initially installing / administering a database, it is trying to recover from a corrupted / badly configured one.

Good luck.
 

KB

Diamond Member
Nov 8, 1999
5,406
389
126
IMO SQL doesn't really require programmer skills, more logic skills. I would say first thing to do is understand 3rd normal form. If you don't understand this you will not understand databases.

"Also after just 1 week he wants me to reverse engineer a Access database and see how it works and how things are being linked already."

I think this will help you understand databases. Seeing an example is always beneficial.
 

aceO07

Diamond Member
Nov 6, 2000
4,491
0
76
Just dive into it. That's the best way to learn it. If possible see if there's a server that you can play with and adjust settings or try SQL stuff on without the fear of damaging anything. Books and concepts/theories don't always sink in until you actually do it yourself.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Not everybody is a developer, or even finds this stuff fun. In fact for a lot of people this looks like the opposite of fun. The fact that many of us find it fun and interesting probably indicates a deep-seated psychosis. But hey, it puts food on the table and a 4x4 in my garage.
 

nakedfrog

No Lifer
Apr 3, 2001
61,687
17,351
136
Originally posted by: KB
IMO SQL doesn't really require programmer skills, more logic skills. I would say first thing to do is understand 3rd normal form. If you don't understand this you will not understand databases.

"Also after just 1 week he wants me to reverse engineer a Access database and see how it works and how things are being linked already."

I think this will help you understand databases. Seeing an example is always beneficial.

Programmer skills ARE logic skills.
 

Skeeedunt

Platinum Member
Oct 7, 2005
2,777
3
76
I wouldn't say you need a programming background, but I could see how if you hated programming or weren't very good at it the case would be the same with database work. They're not identical activities, but seem like they would be in the same ballpark, at least in my mind.

Anyway, it's good to know what you suck at, but make sure you give it a chance. Jumping in head first without anyone else to guide you can be a pretty crappy experience, but if your boss is willing to be patient it may be worth some more time. The best thing to do (for me anyway) would be to start at the absolute basics and build up from there - create a simple database, make tables, learn select, joins, etc. Crawling your way through a production database with no prior knowledge isn't a great way to learn.

Sounds like your boss is more than happy to have you working with this stuff, but don't get fired for spending the next two weeks monkeying around with test databases and not doing any real work just cause I said so :p