 A choice for coding in data science, one of the languages that may not come immediately to mind when they think data science is SQL or SQL. And SQL is the language of databases, and we think, why do we want to work in SQL? Well, to paraphrase the famous bank robber Willie Sutton, who apparently explained why he robbed banks and said, because that's where the money is, the reason we would work with SQL in data science is because that's where the data is. And so let's take another look at our ranking of software among data mining professionals, and their SQL, it's third on the list. And also, of this list, it's the first database tool. Other tools in there, for instance, get much fancier and they're much newer and shinier, but SQL's been around for a while and is very, very capable. Now there's a few things to know about SQL. By the way, you'll notice I'm saying SQL, even though that stands for something that stands for structured query language. SQL is a language, it's not an application, there's not a program SQL. It's a language that can be used in different applications. Primarily SQL is designed for what are called relational databases. And those are special ways of storing structured data that you can pull in, you can put things together, you can join them in special ways, you can get some summary statistics. And then what you usually do is you then export that data into your analytical application of choice. So the big word here is rdbms, and that stands for relational database management system. And that's where you will usually see SQL as a query language being used. In terms of relational database management systems, there are a few very common choices. In the industrial world where people have some money to spend, there's Oracle database is a very common one, and Microsoft SQL or SQL server. In the open source world, two very common choices are MySQL. Even though we generally say SQL, when it's here, you generally say MySQL. And then another one is PostgreSQL. These are both open source free versions of the language. They're sort of dialects of each that make it possible for you to be working with databases and get your data out. The neat thing about them no matter what you do is that databases minimize data redundancy by using connected tables. Each table has rows and columns, and they store different levels or different of abstraction or measurement. Which mean you only have to put the information in one place and then it can refer to lots of other tables. Makes it very easy to keep things organized and up to date. When you're looking at a way of working with a relational database management system, you get to choose in part between using a graphical user interface or GUI. And some of those include SQL Developer and SQL Server Management Studio, two very common choices. And there are a lot of other ones like Toad and some other choices that are graphical interfaces for working with these databases. And there are also text based interfaces. So really, any command line interface and any interactive development environment or programming tool is going to be able to do that. Now you can think of yourself being on the command deck of your ship and learn a few basic commands that are very important for working with SQL. They're just a handful of commands that can get you most of where you need to go. There's the select command where you're choosing the cases that you want to include. From says, which tables are you going to be extracting them from? Where is a way of specifying conditions? And then order by, obviously, it's just a way of putting it all together. This works because usually when you're in a SQL database, you're just pulling out the information, you want to select it, you want to organize it. And then what you're going to do is you're going to send the data to the program of choice for further analysis like our Python or whatever. So in some, here's what we can say about SQL. Number one, as a language, it's generally associated with relational databases, which are very efficient and well structured ways of storing data. Just a handful of basic commands can be extremely useful when working with databases, you don't have to be a super ninja expert. Really a handful, five, 10 commands will probably get you everything you need out of a SQL database. And then once you get the data organized, it's typically exported to some other program for analysis.