So I'm getting a new job working with databases (Microsoft SQL Server to be precise). I know nothing about SQL much less SQL Server. They said they'd train me, but I want to take some initiative to learn about it on my own to be ahead. Where's the best place to start (tutorials, books, etc)? I want to learn more about the SQL language moreso than any of the fancy point and click stuff.
Wow...impressive...how did you land a SQL DB job with no previous SQL experience?
SQL:
http://www.google.com/search?hl=en&q=introduction+to+sql ->
http://www.w3schools.com/SQL/sql_intro.asp
MSSQL:
http://www.google.com/search?hl=en&safe=off&q=introduction+to+ms+sql -> http://www.intermedia.net/support/SQL/sqltut.asp
The best way to learn? Write a lot of queries and read up on the Entity-relationship model
It's an on campus job. They do this a lot to help students learn.
Yikes...first I'd say "Best of luck to ya!"
Then secondly if you are really serious that you have no experiences with SQL I'd say find one of the SAMS "Teach Yourself SQL in 34 nanoseconds" books. Normally I'd never recommend a SAMS book, but if you are the stalwart type to accept a job you know nothing about then...what the heck.
If you're planning on coding against a sql database using .NET, skip ADO and go directly to Linq. You will NOT miss anything.
Oh, also, Joe Celko. If you see his name on an article or a book about SQL, read it.
This can be broad but here are some responsibilities that could get thrown at you in a brain dump format.
on the DBA end
- Backups
- Indexes
- Triggers
- Security per table database creating users ect.
- ODBC in your windows control panel
- know you normal forms
- the diff between a data warehouse (for reporting)
- and a Transactional database for most everything else (esp reporting in most environments)
On the Programing end
- Reporting (Run for the hills)
- Stored procedures
- Star and snowflake schema's
- ADO, ODBC
- CRUD apps (Create Read Update Delete)
I always use the SQL Server 7.0 documentation available on ddart.net.
One great way to learn how to layout your database tables and columns is to use the EDMX Designer in Visual Studio 2010. You can create the Entities you want, define associations between them, define inheritance relationships, and then let it figure out what tables you need, and how to model the relationships between those tables. Take a look at the SQL tables it creates for you and the Foreign Key (FK) relationships.