Knowing SQL can help you improve your skills as a developer. Learn what it is, see some basic commands and examples in this article:

  1. What Is SQL?
  2. What Is MySQL?
  3. How to Get Started
  4. Installing WAMP
  5. Installing MySQL Workbench
  6. Setting Up Sample Data
  7. How to See Data With the SELECT Statement
  8. How to Filter Data using the WHERE Clause
  9. Ordering Your Results
  10. Adding New Data with the INSERT Statement
  11. Changing Existing Data Using the UPDATE Statement
  12. Removing Data Using the DELETE Statement
  13. What Next?
  14. Conclusion

What Is SQL?

SQL stands for Structured Query Language, and it allows developers and applications to access the data inside a database.

Most websites and applications use a database to store information. Sure, there are some that are a collection of HTML pages that probably dont have a database, but anything thats more complicated than that would have a database. The database stores all kinds of data that are used to make the website or application work correctly.

To access the database, the application or website needs to use SQL code. This allows the application or website to read data in the database, update data, create new data, and delete data.

As a developer, you can also access the database directly and run SQL code. This is most often done as youre developing the website, or if youre getting data from the database to perform the analysis.

 SQL consists of a set of keywords, just like many other programming languages. There are also syntax requirements.

 To use SQL, you:

  1. Write an SQL statement to perform the task you need
  2. Run the statement
  3. If the statement produces an output, view the output

 Well learn how to do this in this article.

What Is MySQL?

Just like there are many different languages you can develop a website in, there are many different types of databases.

 There is a standard SQL database which adheres to the SQL standards. But, there is no database company called SQL. There are several companies or vendors who create their own databases, based on the standard SQL language, with several improvements and differences between them.

 One of the most popular databases is MySQL, which is a free database used by a lot of websites and applications. Its popular with many websites because a lot of languages can interact with it easily, theres a lot of open source code that goes with it, its free, and its easy to set up.

Well learn how to use MySQL in this article.

There are two other major vendors of SQL databases: Oracle and Microsoft. Oracle has their own database product, and its arguably their core feature. Microsoft offers SQL Server, which is a comparable database product. Both of these products are often used by mid-sized or large companies. They are different to MySQL in that they charge license fees for usage, and they offer a lot of performance improvements and features that are beneficial for larger companies.

How to Get Started

 Lets get right into working with SQL.

 To get started, we will need to do a few things:

  1. Download and set up a new SQL database
  2. Download and install software to write and run SQL commands

 Luckily, because MySQL is so popular, there are a few well-designed and common tools out there for doing this. Well be downloading two things.

 The first is WAMP. This stands for Windows Apache MySQL PHP. Its a program that includes all of the back-end stuff that lets you run a MySQL database.

Im suggesting that we use WAMP because its easy to set up. You could download Apache and MySQL separately and install them, as we dont need PHP, but that takes bit more work. But, feel free to do that if you prefer.

The second tool is MySQL Workbench. This is the tool that we write our SQL statements in and run them. Its an IDE for SQL, similar to Visual Studio or Eclipse.

So, how can we get up and running with these tools?

 Ill explain the high-level steps for setting these up and not the details, but Ill provide a link to the official installation instructions. This is because the process may change in the future, so the link to the instructions will work better.

Installing WAMP

 To download and install WAMP, follow these instructions:

  1. Visit wampserver.com
  2. Go to the Downloads page or section, and download the version that matches your operating system. If youre using a Mac, then you can download a similar tool called MAMP from mamp.info.
  3. Open the downloaded file and follow the steps to install the software. NOTE: If you are asked to create a username and password, or enter a password for an existing user such as “root”, make sure you remember it or write it down temporarily. Youll need this later.
  4. Once the installation is finished, start WAMP Server by opening it on your computer. An icon in the system tray will appear, which starts as red (nothing running), then changes to orange (some services running), then to green (all services running).

Installing MySQL Workbench

 Now, lets install MySQL Workbench.

To do this:

  1. Visit https://www.mysql.com/products/workbench/
  2. Find the Downloads section and download the version that matches your operating system. There is a Mac version if youre using a Mac.
  3. Once the download has finished, open the downloaded file and follow the installation steps. If you need to enter a username and password for the database, use those that you entered when installing WAMP.
  4. Once the installation is finished, you can run MySQL Workbench.
  5. When you open MySQL Workbench, youll need to set up a connection. Click on the Create Connection button (or the + sign next to MySQL Connections).
  6. Enter a name for your connection. A common name is Local or Localhost, but you can call it whatever you like.
  7. Enter the username you set up earlier (leave it as “root” if youre not sure) and enter a password, and click OK.
  8. If WAMP is running (which it should be from the earlier steps), you should be able to open this connection and see a new, blank window for your database.

Setting Up Sample Data

 Were almost there! We have our database installed and our tool ready to start writing SQL.

The first thing to learn is how to view data thats in a database.

 But, to do this, the data needs to exist first. Instead of explaining how to create tables and insert data first, Ill explain how to run these commands that have been prepared already. Then we can start learning how to view data.

 Having sample data is a great way to practice your SQL. I use sample data all the time, whether its for developing a web app, writing articles for my website DatabaseStar.com, or exploring a concept at work.

 So, open up MySQL Workbench and open your connection, if you havent done so already. You should see a screen that looks like this:

Now, to set up our data, we need to create a database (or a schemain MySQL Workbench), a table to store the data and add the data to the table.

First, we create the database.

Right click in the Schemas section on the left of the window and choose Create Schema.

SQL Introduction Tutorial

Enter a name for the new schema (I use “testdata”) and click Apply.

SQL Introduction

Now, we can add data to the schema. Click on the New SQL Window button, which is the first button on the left on the top menu.

SQL Basics

Now you have a new window to write your SQL code in.

 Well add our sample data now. To do this, copy this code and paste it into the white area in the middle of MySQL Workbench:

CREATE TABLE customer (
id INT(10),
first_name VARCHAR(100),
last_name VARCHAR(100),
credit_limit INT(10),
country VARCHAR(100),
registered_date DATE
);
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (1, 'John', 'Smith', 200, 'USA', '2016-5-30');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (2, 'Mary', 'McAdams', 500, 'France', '2016-3-28');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (3, 'Steve', 'Pitt', 350, 'England', '2017-3-15');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (4, 'Mark', 'Cousins', 1200, 'Canada', '2016-6-12');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (5, 'Shaun', 'Jones', 100, 'USA', '2017-1-1');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (6, 'Paula', 'James', 0, 'Australia', '2016-9-7');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (7, 'Amy', 'McDonald', 800, 'England', '2016-2-9');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (8, 'Brad', 'Swan', 500, 'USA', '2016-7-7');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (9, 'David', 'King', 0, 'Canada', '2016-3-17');
INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date) VALUES (10, 'Wendy', 'Johnson', 1000, 'USA', '2016-5-19');

Your screen should look like this:

Learn SQL More

These commands will first create a new table and then insert data into that table.

To run these commands, click on the Run Script button in the top left of the window, which is the first lightning bolt icon:

Learn SQL Tutorial

Once you do this, the script output will be shown at the bottom of the window. It will show you that the CREATE statement and the INSERT statements have been run.

Now we have our table set up with data, we can start learning about the basic SQL commands.

How to See Data With the SELECT Statement

When you have data in your database, you probably want to see what it is. To see the data thats in your database, you run a command called SELECT.

SELECT allows you to specify exactly what you want to see. It’s simple to run and see some data, but it also has a lot of functionality to allow some complicated results.

First, lets look at a simple SELECT statement or SELECT query. To run a SELECT statement, you need to specify two things: the columns you want to select, and the name of the table that has the data.

The syntax for this command is:

SELECT columns
FROM table_name;

There are a few things to notice here. The first word of the statement is SELECT. This indicates it is a SELECT statement and that you want to view the data.

The columnsis where you add in the names of the columns you want to see. The keyword FROM is how you specify what table you want to look up the data in. Finally, the table_name is where you put the actual name of the table.

 SELECT *

 Lets see an example query. We want to see all of the data in the table. To do this, our query would look like:

 SELECT *

FROM customer;

 There are a few things to notice on this query.

 The * character is used to specify all columns. This means, show me all columns in the table. Its easier to write than specifying each column individually.

 Also, the SELECT and FROM are in upper case, but the table name is in lowercase. SQL is not a case-sensitive language. The keywords and table names will work in upper or lower case. However, to improve the readability of the code, I like to stick to my standard of writing the keywords in upper case, and other object names in lower case.

 The statement also ends in a semicolon ;. This indicates the end of the statement. Its not required if you have just one statement on the page, but if you have more than one, its needed to split up the statements. Its also a good habit to get into.

So, lets run this query. Type this query in and press the Run Statement button.

 Your screen should look like this:

Start with SQL

At the bottom of the page, you should see the output of this query. It will show a table output, which is all of the data in your table:

SQL Basics

This shows all of the columns in the table, because we specified SELECT *. It also shows all of the rows in the table.

So, thats how you run a simple SELECT query.

Another way to view the data in a table using the SELECT statement is to actually specify the names of the columns you want to see.

This is useful if you want to only see some of the columns, instead of all columns.

For example, lets say you wanted to see the first_name and last_name columns but not the id column?

You can do this by specifying the columns instead of the * character, separated by a comma.

The query would look like this:

SELECT first_name, last_name
FROM customer;

This means we are selecting these columns, and all of their data, from the table. We dont want to see data in any of the other columns (like id, registered_date, or country)

If we run the query, we get this output:

SQL Tutorial

The output looks similar to the earlier query, but there are fewer columns shown.

How to Filter Data using the WHERE Clause

 The earlier examples showed you how to select all columns and how to select only specific columns.

 However, this still showed us all records in the table.

 What if we wanted to only see some of the records, that met certain criteria?

 For example, only customers that have a credit limit of over 1000?

 We can do that by adding another keyword and information to our query. This is called a clause– a combination of a keyword and the data that it needs. The FROM clause needs a table, and well look at the WHERE clause now.

 The WHERE clause allows you to filter out records that dont meet the criteria you specify. It only shows records that match.

 So, if we want to see only customers that have a credit limit of over 1000, our query would include this line:

 WHERE credit_limit > 1000

 Any records that meet these criteria are shown.

 We need to combine this with our SELECT query to complete the query.

SELECT id, first_name, last_name, credit_limit, registered_date, country
FROM customer
WHERE credit_limit > 1000;

 Notice I have added all columns into the SELECT clause (just after the SELECT keyword). This is so its clear what columns were seeing.

 With the WHERE clause at the end of the query, we can now run it. In SQL, the SELECT keyword needs to go first, then the FROM, then the WHERE. If they are in a different order, the query wont run.

 If we run this query, we can see the output:

SQL Server Tutorial

It only shows customer records that have a credit limit of over 1000. We can see the customer records, and their credit limit, because we specified this information in the SELECT clause.

What if we want to see only those customers that are in the USA? We could do this by checking the country column.

Our query could look like this:

SELECT id, first_name, last_name, credit_limit, registered_date, country
FROM customer
WHERE country = ‘USA’

In this query, notice I have changed the WHERE clause to mention the country column. This is the column we want to check the value of.

Also, I have changed the > to an = sign. This is because were looking for an exact match for a value. Finally, I have specified a value of ‘USA, inside single quotes. The single quotes indicate that this is a string or text value, and USA is the value were looking for.

So, if we run this query, we can see this output:

SQL Training Tutorial

You can see all customer records with a country of USA. All of the other records are not shown.

 This is what the WHERE clause does. It filters out records from the table to only show records that you want to see.

Ordering Your Results

 You might have noticed that when you run the SELECT statements so far, that the order the results are displayed in isnt guaranteed. Or, you might have noticed that they are in the same order as we inserted them.

 Databases dont usually guarantee the order that query shows the results in. A query that returns results in one order today could return them in a different order tomorrow.

 What if you want to see the data in the same order every time? The good news is that you can do that in SQL.

 Theres a keyword called ORDER BY, which lets you specify the order of your data when it is displayed. It goes at the end of the SELECT statement.

 It looks like this:

 ORDER BY column1 [ASC|DESC] , column2…

 You specify the column or columns you want to order your results by. You can also specify if you want to order your data in ascending or descending order (its ascending if you leave this part out).

 Lets see an example. Our earlier query showed the customer records. Lets say we want to order them by the last_name column. Our query would be:

SELECT id, first_name, last_name, credit_limit, registered_date, country
FROM customer
ORDER BY last_name;

 We have the ORDER BY at the end of the query, then the last_name column. This orders the data by last_name in ascending order.

 The results show:

Online SQL Training

What if we want to order in descending order? We can use the DESC keyword.

SELECT id, first_name, last_name, credit_limit, registered_date, country
FROM customer
ORDER BY last_name DESC;

 These results are similar:

SQL Tutorial for Beginners

The data is the same, but the results are now ordered by last_name in descending order.

 We can order by any column we like, and even combine it with other keywords like the WHERE clause:

SELECT id, first_name, last_name, credit_limit, registered_date, country
FROM customer
WHERE country = ‘USA'
ORDER BY credit_limit;

The results show the ordering:

SQL Programming

The ORDER BY clause can be useful if you need your data ordered in a certain way.

Adding New Data with the INSERT Statement

 Weve had a look at some of the different ways we can view data in the database, using the SELECT statement.

 But, how do we get data into the database, to begin with? We need to insert it.

 At the start of the article, we ran some statements that added the data into the database. These were INSERT statements.

 An INSERT statement allows you to add or insert data into a table. Generally you can insert only one record at a time, but the statement is usually pretty quick and you can run multiple in a row. There are ways to insert multiple records at once, which is something thats more advanced.

So, how does the INSERT statement work?

 The syntax looks like this:

 INSERT INTO table_name (col1, col2…)

VALUES (val1, val2);

 It starts with the INSERT INTO keywords, which let the database know that you want to insert some data. Then you specify the name of the table youre inserting the data in to.

 Inside the brackets, you specify the columns that you want to put your data in to, and in what order. Sometimes you want to insert data into all columns, and sometimes you dont. For example, if a column has a default value, then you may want to use that instead of inserting a value for it.

 Finally, you have the VALUES keyword, and then inside the brackets are the values you want to insert into the table. They can be numbers, dates, or text values.

 The values inside the VALUES brackets need to match the columns inside the table_name brackets – the number of items specified, the data types, and matching to each other. This means the first value specified will be added to the first column specified, the second value to the second column, and so on.

Lets have another look at our example from earlier, using different data.

INSERT INTO customer (id, first_name, last_name, credit_limit, country, registered_date)
VALUES (11, 'Carla', 'Matthews', 1800, 'Spain', '2016-8-4');

 This statement will insert some data into the customer table. It inserts into the ID, first_name, last_name, credit_limit, country, and registered_date columns, and it inserts the values mentioned in the VALUES clause.

Changing Existing Data Using the UPDATE Statement

 What if you want to make changes to data that is already in the table?

 You could delete the table and re-insert all the data again, but that has problems of its own.

 Luckily there is a statement in SQL that lets you do this. Its called the UPDATE statement.

 The UPDATE statement lets you update data already in a table, based on conditions you specify.

 The statement looks like this:

UPDATE table
SET column1 = value1
WHERE condition;

Its a smaller statement that the SELECT statement. Lets see whats involved.

 It starts with the UPDATE keyword, to let the database know you want to update the data. You then specify the name of the table you want to update.

 Next is the SET keyword, which lets you specify what is actually being changed. You then specify the name of the column to update, and the value to set it to.

 You can specify multiple columns here if you want to change more than one column at once. To do this, add a comma after the value, then specify another pair of column=value. Well see an example of this shortly.

 Finally, you specify a WHERE clause. This lets you specify the rows you want to update. If you dont have a WHERE clause, the statement will still run, but it will update all records in the table – which you may not want.

 So, let’s see an example.

UPDATE customer
SET credit_limit = 1500
WHERE id = 4;

This statement will update the customer table. It sets the credit_limit value to 1500 for all records where the id is 4.

 Because its an ID column, there is most likely only one record that matches. The data will still get updated.

 We can check this by running a SELECT query:

SELECT *
FROM customer
WHERE id = 4;

(output)

SQL Online

You can see that the credit_limit value is now 1500.

 Now, what if we want to update more than one column? We can do this in an UPDATE statement.

 Lets say one of our customers moves country and changes their name, and we want to update our table. This customers record looks like this:

SELECT *
FROM customer
WHERE id = 2;

Online SQL

Our statement to update the data could be:

UPDATE customer
SET last_name = ‘Johnson’,
country = ‘Portugal’
WHERE customer_id = 2;

If we run this statement, it will tell us the data was updated. We can run a SELECT statement to check.

SELECT *
FROM customer
WHERE customer_id = 2;

SQL Tutorial Online

Removing Data Using the DELETE Statement

 The last statement well look at is the DELETE statement.

 Weve looked at viewing, adding, and updating data in our database. But what if we want to delete data? We can do that using the DELETE statement.

 The DELETE statement looks like this:

DELETE FROM table_name
WHERE condition;

 Its a much simpler statement than the others weve looked at.

 It starts with the DELETE FROM keywords, and then you specify the name of the table that contains the data you want to delete.

 Next, you specify the WHERE keyword, then the condition that allows you to specify the rows to be deleted. If you dont  add the WHERE clause, then all rows will be deleted.

The DELETE statement deletes entire rows, not individual columns, which is why you dont need to specify columns in this statement. You just specify the table name and the criteria that matches the rows you want to delete.

 Lets say we want to delete all records in the customer table that have a credit_limit of 0.

Our statement would look like this:

DELETE FROM customer
WHERE credit_limit = 0;

 If we run our statement, the output looks like this:

Basic SQL

Now we can select from the table to see what remains.

SELECT *

FROM customer;

Learn SQL Fast

We can see that there are no records with a credit_limit of 0 in the table because we have deleted them. These are records with an ID of 6 and 9. 

What Next?

 Where to next? What should you focus on if you want to improve your knowledge of SQL?

  • Practice with these commands on this data until you feel comfortable with the commands.
  • Create tables with the CREATE TABLE command.
  • Learn about SQLfunctions and expressions
  • Aggregate functions and grouping with the GROUP BY clause
  • The HAVING clause
  • Joins between two tables

Conclusion

That brings us to the end of the introduction to SQL.

Weve learned what SQL is, what MySQL is, how to set up a database, and the software needed to run queries on it.

We learned about the SELECT statement to view data, as well as some of the keywords that are used in SELECT statements such as WHERE and ORDER BY.

We looked at the UPDATE statement to change data that exists, the INSERT statement to add new data to a table, and the DELETE statement to remove data from a table.

 Those are the basic commands in SQL, and knowing them is a great foundation to have in the SQL language.

I hope you’ve enjoyed this article and wish you luck with learning more about SQL.

—————————————————————————————————————–

Author SQL Tutorial

Ben Brumm is a software consultant with over 10 years experience in the IT industry. He is the founder of Database Star, a website that teaches database developers how to improve their skills and career. Read his recent article on SQL indexes here.