I apologize in advance if this question seems silly, but I'd really appreciate some help. I want to learn SQL, but I don't want to do so by learning how to query databases in "fake" environments (e.g., through courses or simulated database environments). I want to do it the "real" way, but because I have no experience with databases, I don't know how exactly that's done.
I heard that PostgreSQL is a widely accepted RDBMS. So I went ahead and installed it. But it seems it's quite technical, and there aren't many tutorials on YouTube on how to, say, get access to a database and just query it.
I want to know how I can play around with real databases in a sort of "sandbox" environment like this. Where would I start?
I've been spending a considerable amount of time learning MongoDB as part of the MEAN stack (I'm new to the MEAN stack), and I feel like I'm just barely starting to get the hang of it. Recently, however, my supervisor at work (who's an experienced programmer) suggested I learn relational databases (it could be that it's used by more companies), and I have taken his suggestion to heart since I'm only a junior developer, and would like to move up soon. My personal goal/project is to build a social networking site where one group of users have the ability to search for another group of users (and most likely charge a membership fee). Would the database matter for a project like this? I would love to kill two birds with one stone by learning something (and learning it really well) that could be used in my personal project, and in a professional job.
I'm certainly open to learning more than one language, but I need a starting point, so I need something that will help me accomplish my personal goal. Since I've spent a considerable amount of time with JavaScript (as oppose to, say, Python), having to learn relational databases concerns me. Are there any downsides to just sticking to MongoDB?
Thanks in advance!
The first thing you need is to assess what type of data you are going to deal with (will it be structured, easily represented by tables, or it will be more of the non-structured type).
If structured, RDBMS is the way to go.
Incidentally, as far as I know, the first versions of Facebook were implemented using MySQL (the type of DBMS your boss was referring to).
Farid, as you're a junior programmer, I'd suggest you to learn as much as possible of both approach.
The knowledge acquired on one of them will also help you getting the most from the other (as they both concern data, how to structure it and how to query it).
Also, in the day by day job (unless you specialize only in large sites where scalability is the first concern) you might encounter RDBMS more frequently than NoSQL choices.
Both technologies have pro and cons and, unless you know both sides (at least documenting yourself, if not by direct experience) you might go for one solution when the other could have been preferable.
Well, anyone have concern about learn SQL (and use JOIN), but:
One day, you don't know how, you will use it (or understand it), so perhaps is better take a moment for SQL (it's the most widespread)
MongoDB is good if you development a REST service, but if you want make a social network like project, perhaps is better look at Graph database.
Perhaps that video can help, is an overview of SQL vs NoSQL.
Im using Pentaho for my ETL tool project. Can I have a detailed step by step on how to for the ff.
I want to have a repository for all the sql scripts we are running everyday.
I want to learn how to schedule this routine.
Daily we ran different queries in postgres database and we want it to automate. Can you help me this. I would appreciate your immediate response. Thank you.
tin,
I suggest taking a step back and reading the manual at this point. If you're serious about this, later on you'll be happy you have read it. Once you feel comfortable with the tool, you might want to read this excellent book as well. Do that and all your questions will be answered, promised. You can also drop by the unofficial IRC channel. There are always fine folks from the community and some core developers available to help you. It's channel ##pentaho on irc.freenode.net.
There are no quick way to properly use these tools. They are powerful and will help you do a lot, but they are complex and you will have to figure out how to use them to your advantage and that requires experience. Trust me, I work at Pentaho. =)
Do you think Microsoft's RAP program worth the money you pay ?
Any suggestions ?
Thanks
I would have to say that it depends on a number of factors. First how knowledgeable are you at configuring and maintaining the specific versions of SQL Server that they would be looking at? Then why are you doing the SQL RAP? Is it to really get a good risk assessment, to demonstrate to management that things are being done correctly, or to learn where you are coming up short in an effort to correct things and find areas to learn more about the product, or is it none of the above?
I had a SQL RAP done at the end of last year, and I can tell you from personal experience, you will only get as much from it as you are open to learning. If you have a cluster, be prepared to have your eyes opened to areas you never thought to look at. The SQL RAP visit has four different phases, or at least mine did. First they collect the data from your SQL Servers using pssdiag and a bunch of other neat tools that they leave copies of most with you. Then they go into analysis, where they take the data and perform a very thorough analysis of it and generate reports and recommendations. Then they sit down with you and management if you so chose and go over everything, what was good, what was iffy, and what was bad. Then the last part they sit down with you as a DBA and teach you how to use the tools they used and that they can leave copies of with you. They go over the PAL Tool, SQL Nexus, and some others and make sure that you know how to use these tools to do self analysis. Best of all, they leave you these really detailed reports that you can use as a self check for setting up new environments in the future.
Is it worth it? You probably can't tell that until you are done with it. For me, I'd recommend it to anyone who wants to know more about running a "Best Practice" implementation of SQL Server, and who'd like some one on one learning time with a Senior Microsoft Field Engineer.
Oh boy, is that all they does with this much hyped RAP.
Pssdiag is already done.
We did the PAL and Nexus and they too did it before.
They took around 20 Gigs of size trace files to analyse.
Now, wanted to do RAP. Holy cRAP, if this is the same thing to do again, what that's for.
I expect much more than this level of analysis without which I think this is useless and waste of money.
I've been a part of 2 RAPs for SharePoint (finished my second 2 weeks ago). I am unsure as to how much it costs (the company I work for gets 3 RAPs a year with MS) but it is most definitely worth it.
Starting 2010, the PFE will leave the RAP tool installed on the data collection machine. This means that for up to a year, you can rerun the full RAP as many times as you want and analyze the results.
The RAP tool (for SharePoint) runs a bunch of tests that are categorized as below:
SQL Configuration (24)
Server Health (4)
Server Configuration (7)
MOSS Configuration (2)
Each test produces a list of issues with detailed recommendations on how to resolve them.
Additionally, a competent PFE (and they are) will help troubleshoot any outstanding issues you have in your environment and give you the opportunity to listen and learn.
I would recommend the MS RAP to all SharePoint (and SQL) Admins.
If you have never had one, then I think you will have benefit from going through it at least one time. I warn you that it can be quite humbling.
Closed. This question needs to be more focused. It is not currently accepting answers.
Closed 1 year ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
I've never had much need for programming with databases. Since their use is so widespread it seems like a good thing for me to learn. SQL seems like the place to start, possibly SQLite and maybe the Python bindings. What would you recommend for someone new to this? Libraries, tools and project ideas are all welcome.
Structure Query Language (SQL) is the language used to talk to database management systems (DBMS). While it's a good thing to learn, it's probably best to do it with a project in mind that you'd like to do. It's funny you say you've never had a need, because I'm the opposite, almost every program I've ever written has used a database of some sort. The vast majority (mostly web-based) revolve around using a database.
Learn about relations and database architecture. This means how to structure your tables, make foreign keys and relations.
For example, you might have a movies database. In it, you store information about the Movies, Studios that released the movies, and the Actors in the movies. Each of these becomes a table. Each Movie is released by one Studio. Since you don't want to store duplicate the studio information (address, etc) in each Movie entry, you store a relation to it, so each Movie item contains a reference to a Studio item. This is called a one-to-many relationship (one studio has many movies). Likewise, you don't want to store Actor information for each Movie. But one Actor can be in many Movies, so this is stored as a many-to-many relationship.
Learn SQL itself. SQLCourse is a good place to get started, but there are many other books and resources. SQL is a standard, but each RDBMS has its own vendor-specific ways of doing certain things and other limitations (for example, some systems don't support sub-queries, there are several different syntaxes for limiting the number of rows returned, etc). It's important to learn the syntax for the one you're using (eg, don't learn Oracle syntax and then try and use it in MySQL) but they are similar enough that the concepts are the same.
Tools depend on the DBMS you use. MySQL is a pretty popular database, lots of tools are available, and lots of books. SQLite and Postgresql are also quite popular, and also free/open-source.
If you can, you really want to find someone who knows how to use it, and pick their brains. That's because there are a lot of important principles (eg 3rd normal form) which will are a lot easier to learn through discussion rather than from books.
If you want to teach yourself, you should learn the syntax for doing basic selects, joins, updates, deletes, and group by queries. You should also learn the "Swiss army knife" of selects, the CASE statement. Too many people don't. Many of the tutorials recommended in this thread will do that. Then you need to try to solve SQL problems. I'm sure that Joe Celko's SQL Puzzles and Answers is a good source of them, though it may be a little advanced.
This will let you actually write SQL. But you still need to learn how to organize a database. Which for most purposes means that you really need to learn what 3rd normal form looks like. You don't have to be able to give a formal definition of it, just recognize it when you see it, and know how to adjust something to be in that format.
Lots of references will explain it, but you won't know if you're reading them correctly. This is where it really, really helps to have access to someone who can look at a table layout and tell you, "That's right" vs "That's wrong, here's what needs to be changed." Failing all else, you could post a question here with a proposed layout. But a back and forth discussion with a live person would still be preferable IMO.
Try Wikipedia, http://www.w3schools.com/sql/default.asp and http://www.sql-tutorial.net/ Also check YouTube for SQL Videos.
You are correct, SQLite is a great place to start because it is free, lightweight, and available on many platforms. This is only a start though. SQLite is very liberal on SQL syntax and lacks an intneral programming language like DBMS systems have. Still, if you want to start and learn with minimal overhead, SQLite is the way to go.
SQLite is nice and they have really nice documentation, however you should be aware that it is not a full featured SQL database like MySQL, Postgres or the commercial variants. SQLite's API relies on callbacks which is a fine model, but not all database APIs work that way. If you are familiar with Perl, then DBI is another nice way to explore SQL.
/Allan
"A Gentle Introduction to SQL" - You can even practice "live queries" right on this tutorial website.
http://sqlzoo.net/
I always recommend The Practical SQL Handbook for a good starting point for beginners - especially those who have seen SQL but never understood how to build up a query them selves or how they work.
All Celko's books are great.
Hernandez's Mere Mortals book is good.
Ken Henderson's books are also excellent.
Reading up a bit on relational algebra is a good way to understand the underlying concepts of relational databases.
Jeo Clecko's SQL for smarties is excellent.
I recommend the exercises at this site: sql-ex.ru
You can even get a certificate if you do the right.
Start with Ideone and try queries on line just with a web browser.
If you program using the .NET framework, then learning LINQ might be a good place to start. The LINQ "engine" will handle the back end communication with the database (or objects, or entities, or XML, etc.) for you. If you want to dig deeper, you can explore the SQL generated by the LINQ that you write.
If you already know a thing or two about web applications, then that would be a good place to start. Nearly every serious webapp uses an SQL database as its backend.
The folks at Head First have come out with a book. Going by how good their other books are, I'd recommend this one. Haven't read it yet though. (LINK)
You may want to consider starting with MySQL as it is widely documented and very easy to get started with. You can download the Community Edition and then add the GUI Tools and you'll both GUI and command line interfaces.
Read a book to start learning about SQL. I read Beginning SQL Queries from Apress not long ago, and found it clear and logically written for a beginner (I reviewed it for a colleague).
I learnt 90% of what I know about SQL from here. In 1997.
I think it still stands up.
Hey although not complete it's great to get hands on with SQLite as mentioned above, Google 'Learn SQL the hard way' and there is an online book which you can work through which uses SQLite.
Google is great for downloading pdf's for free 'Cough Cough' but try http://www.sqlfiddle.com/
It's an online platform which is free! No log in required just go to their page, create your database in whichever language you want (That's the best bit I choose T-SQL as I'm learning that), and then you can query it as much as you like. I'm learning with a pdf file which has opensource SQL files you can download to follow along, and SQLFiddle has been great to learn vendor specific SQL.