Grok all the things

grok (v): to understand (something) intuitively.

SQL

👶  Children (ELI5)

Hey there! Today, we're diving into the wonderful world of SQL (pronounced "sequel" or "S-Q-L")! SQL stands for Structured Query Language, and it's a super important tool for communicating with databases. With SQL, you can store, manage, and retrieve data in an organized and effective way. Ready to explore? Let's go!

🏢 Welcome to Database City! 🏢

Imagine a huge city filled with buildings . These buildings represent databases, which are magical places where data is stored. Inside each building, there are multiple floors, like tables, where different types of data live. And on each floor, there are rows (records) and columns (fields) that hold specific pieces of information, just like in a spreadsheet!

Now, if you want to find some information in this city, you'll need a special key – and that's SQL! It allows you to open the doors of these buildings (databases) and explore the data inside. SQL helps you ask the right questions so that you can get the answers you need. Let's learn how to use this key with some fun examples!

🌈 The Magic of SELECT ✨

The first command we need to know is SELECT, which is like a magic spell that allows us to pull data from database tables. For example, let's say we have a table called Fruits, and we want to see all the fruits inside it. Our SQL query would look like this:

SELECT * FROM Fruits;

Here, * means "everything", so we're asking the database to show us all the columns and rows from the Fruits table . The FROM part tells the database which table we're looking at. And don't forget the semicolon ; at the end – that's like saying "please"!

What if we only want to see the names of the fruits and their prices? Easy! Just replace the * with the names of the columns you want to see:

SELECT Name, Price FROM Fruits;

Now we'll get a list of fruit names and their prices. So simple, right?

🎯 Filtering with WHERE 🔍

Sometimes, we only want to find specific information. That's when the WHERE clause comes in handy! Let's say we want to find fruits that cost less than $2. Here's how we'd do it:

SELECT Name, Price FROM Fruits WHERE Price < 2;

The WHERE clause allows us to set a condition, and the database will only show us rows that meet that condition. Pretty neat, huh?

✍️ Let's INSERT Some Data! 📝

Now that we know how to view data in our tables, let's learn how to add new data with the INSERT INTO statement. Imagine we found a new fruit called "Grokberry" that costs $3.50, and we want to add it to our Fruits table. Here's how:

INSERT INTO Fruits (Name, Price) VALUES ('Grokberry', 3.5);

With INSERT INTO, we tell the database which table we want to add data to, and then we list the column names inside parentheses (Name, Price). After that, we use VALUES and list the values for each column in the same order, also inside parentheses ('Grokberry', 3.5). And just like that, we've added a new fruit to our table!

🎩 Updating Data with UPDATE 🔄

Uh-oh! It turns out that Grokberries are on sale now for just $2.00! We'll need to update the price in our database. Let's use the UPDATE statement to do that:

UPDATE Fruits SET Price = 2 WHERE Name = 'Grokberry';

In this query, we start with UPDATE, followed by the table name (Fruits). Then, we use SET and list the column we want to modify (Price) and its new value (2). Finally, we use the WHERE clause again to tell the database which row we want to update (Name = 'Grokberry'). Now we have the correct price for Grokberries!

❌ DELETE: Say Goodbye to Data 👋

Sometimes, we may need to remove data from our tables. That's when DELETE comes in. Let's say we found out that Grokberries aren't actually real (oops!), so we need to remove them from our Fruits table. Here's how:

DELETE FROM Fruits WHERE Name = 'Grokberry';

With this query, we're telling the database to delete any row from the Fruits table where the Name equals 'Grokberry'. And just like that, Grokberries are gone from our table. Farewell, imaginary fruit!

🎭 The Power of JOIN 💪

Sometimes, data is spread across multiple tables, and we need to gather pieces from different places. That's where JOIN comes in! Let's say we have a table called FruitColors with columns Name and Color. If we want to get a list of fruits, their prices, and their colors, we can use JOIN:

SELECT Fruits.Name, Fruits.Price, FruitColors.Color
FROM Fruits
JOIN FruitColors ON Fruits.Name = FruitColors.Name;

In this query, we tell the database which columns we want to see (Fruits.Name, Fruits.Price, and FruitColors.Color). Then, we use the JOIN statement to connect the Fruits and FruitColors tables on a common column, which is Name in this case. The result is a combined table that has all the information we need!


And that's just the tip of the SQL iceberg! There's so much more to explore and learn, like sorting data with ORDER BY, grouping data with GROUP BY, and more advanced types of JOIN. SQL is truly an amazing key to unlock the secrets of databases! So go out there and keep discovering, because now you can say: "OMG, I finally grok SQL!"

Grok.foo is a collection of articles on a variety of technology and programming articles assembled by James Padolsey. Enjoy! And please share! And if you feel like you can donate here so I can create more free content for you.