Teaching MySQL to Total Beginners?
April 16, 2010 9:36 AM   Subscribe

I've just been put in charge of teaching two executives in my company how to use MySQL. Oh dear God, please help me!

I'm a developer who's very comfortable with SQL, which is why I was asked to offer a 'course' on MySQL to a few executives in my small company who have been encouraged to learn how to pull data from the database directly.

Regardless of whether or not this is a good idea, I've been asked to offer some tutorials. We set them up with MySQL Query Browser and gave them read-only access to a slave copy of our database. But there's a very strong gap to overcome -- I explained the difference between a database and a table, for example, but I'm not sure it's fully sunk in. They're very good with Excel, but I'm realizing that SQL is totally foreign to them. I now have an opportunity to give a couple presentations, rather than trying one-on-one coaching.

Are there any good resources, like tutorials for absolute beginners I can borrow from? Do you have any advice?
posted by fogster to Computers & Internet (14 answers total) 10 users marked this as a favorite
I can't help you with this but...

They're very good with Excel

They'll understand breaking down a databse into tables if they've used VLOOKUP.
posted by I_pity_the_fool at 9:38 AM on April 16, 2010

How about working with Access? It's been a while since I've worked with it, but I distinctly remember when I was young and naive creating custom queries using their UI (was it drag and drop?), and then seeing the SQL it generated. Plus, there has to be about a bazillion Access tutorials online. Once they get the SQL basics down, you just need to go over the differences between Access SQL and MySQL, which they might not even need.
posted by cgg at 9:44 AM on April 16, 2010 [2 favorites]

Seconding Access if you .. um.. have access to it. It's a great way to show the concepts visually and then see how that gets turned into SQL statements.
posted by amethysts at 9:51 AM on April 16, 2010

Do these executies actually want to learn mysql and have the time and motivation to learn a new piece of software? In my admittedly limited experience in trying to train people on new software, executives generally find themselves too busy and underestimate the amount of time required to learn new software to any great degree.

So I'd go intothese tutoring sessions with a very explicit understanding from all parties concerned exactly what the executives hope to get out of the lesssons and what is required of them to meet those goals.
posted by dfriedman at 9:53 AM on April 16, 2010

W3schools' SQL tutorial is excellent for both technical and non-technical audiences alike.
posted by schmod at 9:55 AM on April 16, 2010 [1 favorite]

I am not an executive, but as a non-programmer who was taught some mySQL by a programmer friend, I can't advise enough not to glide over some of those database basics -- make sure they get that stuff. It might be something to repeat...again and again.

Once I got my head out of spreadsheet mode and understood normalization, it was as if the clouds lifted, and the specifics of mySQL were pretty straightforward after that.

Good luck!
posted by pantarei70 at 10:20 AM on April 16, 2010

Find out the stuff that matters to them and see if you can incorporate real points of interest into your presentation.

As you allude to, this is kind of a bonkers idea. I think to get to how to do this, you have to start by asking what outrageous set of circumstances led to a couple executives being trained in MySQL?

My guess is their reporting structure is crap and they've decided the way around it is to give them direct access to the data. So I think you need to find out what questions they're asking, that led to this, and then help them to answer their questions.

I would also keep the SQL as simple as possible with the expectation they'll be much cooler with dumping really raw data into Excel and playing with it than joining multiple tables, etc. So I'd think: get them out of MySQL as quickly as possible is a worthy goal.
posted by A Terrible Llama at 10:23 AM on April 16, 2010

Congratulations. You're going to get to work with your company's executives, which means they'll actually know who you are (at a medium or large company, this can be a big deal. At a small company, they may already know you.)

Here's what I would do in your situation:

Break the course material into self-contained units of, say, 30 - 60 minutes.

Center the units around real queries - things the executives want to know about your company. Ideally, pick queries that you can use as templates to cover a bunch of their questions - typical questions.

Do a total of 3 - 5 units. Enough to go from "here's how to run the MySQL client" to "here's a (medium-complex) query for something real" to "here's how to make your own query."

Split the course 50/50 between instruction and hands-on, typing queries on the keyboard. You may want to pair the executives up so one can type while the other can come up with ideas.
posted by zippy at 10:23 AM on April 16, 2010

My question would be, why would executives want to learn how to use MySQL?

If you do nothing else, hammer home what they learn during each lesson. You do this by identifying a list of objectives at the start of each class (a bulleted list on a white board), and then tick off each objective as you complete it. Then at the end of the class restate what objectives were accomplished. In the next class, review what objectives were accomplished during the previous class (repeat). You get 10X bonus points if you can quantify to these executives why these objectives are important and will help them make money or will help them look good.
posted by KokuRyu at 10:45 AM on April 16, 2010

A gentle introduction to SQL, although I don't think it's MySQL specific.
posted by asharchist at 11:36 AM on April 16, 2010

Have they considered making a data connection from Excel and using the query builder there?

Definitely spend a while on the concept of a database, multiple tables, unique ids, types of relationships. When I teach database concepts I like to make the comparison that a table is like a rolodex - you might have one for employee information and another for, say, company department information. And you may want to relate those two.

It might help to take a really simple example that is directly related to something you do, and chart out how it would be put in a database. Use a visual diagram to show relationships.

But before you get too deeply into the database concepts, show them a simple query that pulls from a single table, something like "select * from employees where salary > 30000" - just so they'll understand where this is going, and so they don't tune out.
posted by beyond_pink at 11:47 AM on April 16, 2010

Spend a lot of time drawing stuff on the white board. I find that MySQL lends itself well to a visual learning style.

I have also found that referencing MadLibs can be helpful. "Select _____ from _____ where _____ is ______".

There's an O'Reilly book about MySQL that I found utterly unhelpful when I was first learning. EXCEPT for the chapter on normalization, 1st norm, 2nd norm, and so forth. You could requisition a copy and have them read just that chapter, if that's something that would be relevant to them.

But I agree, it sounds like they just want to run queries rather than build their own databases. If that's the case, then they need to learn the basics of how to access and use the shell (sounds like you've covered that) and specific help on the queries they want to run.

I kind of think when they said "Teach us MySQL," they meant "show us how to run the queries we need." So I'd start there, by asking what queries they need. Then walk them through how to structure the queries. Using mysqlshow to find the table name, and so forth.

"Let's say you need to list all of the employees who were hired after 1/1/10..."
posted by ErikaB at 12:08 PM on April 16, 2010

Thanks, all, for the answers thus far. (I always feel guilty about what I do and don't mark as a 'best answer'—literally every single answer thus far has been valuable.)

To answer the question that was asked several times, and that I asked myself: the reason they're learning SQL is that they've been put in charge of data mining and told that engineering shouldn't "own" the data, in that they shouldn't have to steal an engineer to grab information from the database.

That setup (MBAs told by a consultant to learn SQL so they don't have to rely on the mediocre reporting suite we have in place) sounds like a recipe for disaster, but the people involved are smart, analytical, and genuinely enthusiastic about learning something that I've told them repeatedly will be very hard, so I'm holding out hope that it will go well.
posted by fogster at 8:15 PM on April 16, 2010

the reason they're learning SQL is that they've been put in charge of data mining and told that engineering shouldn't "own" the data, in that they shouldn't have to steal an engineer to grab information from the database.

Maybe you can print the table structure of the database, the underlying schema, and help them understand where and how things are stored. Give them some cool insider info like data types. Draw a picture of how the tables are connected.

I think you can give them access to the data through a Microsoft Access front end. They can see everything, but it's more user friendly. You can give them the password, all the security info and stuff so they feel on top of it, give them a cheat sheet so they feel empowered and have the info, but what really seems likes needs to happen is for them to get some kind of front end where they can mess around with the data.

The idea of them sitting there writing SQL is kind of insane, and they might be happier if you just told them how it works and how to get the information.
posted by A Terrible Llama at 3:28 PM on April 17, 2010

« Older Cotsa-what now?   |   Who pays fed taxes in America? Newer »
This thread is closed to new comments.