Endless SQL Possibilities
Endless SQL Possibilities
You have learned that a SQL query uses SELECT, FROM, and WHERE to specify the data to be
returned from the query. This reading provides more detailed information about formatting
queries, using WHERE conditions, selecting all columns in a table, adding comments, and using
aliases. All of these make it easier for you to understand (and write) queries to put SQL in action.
The last section of this reading provides an example of what a data analyst would do to pull
employee data for a project.
Notice that the SQL statement shown above has a semicolon at the end. The semicolon is a
statement terminator and is part of the American National Standards Institute (ANSI) SQL-92
standard, which is a recommended common syntax for adoption by all SQL databases. However,
not all SQL databases have adopted or enforce the semicolon, so it’s possible you may come
across some SQL statements that aren’t terminated with a semicolon. If a statement works
without a semicolon, it’s fine.
WHERE conditions
In the query shown above, the SELECT clause identifies the column you want to pull data from
by name, field1, and the FROM clause identifies the table where the column is located by name,
table. Finally, the WHERE clause narrows your query so that the database returns only the data
with an exact value match or the data that matches a certain condition that you want to satisfy.
For example, if you are looking for a specific customer with the last name Chavez, the WHERE
clause would be:
However, if you are looking for all customers with a last name that begins with the letters “Ch,"
the WHERE clause would be:
You can conclude that the LIKE clause is very powerful because it allows you to tell the database
to look for a certain pattern! The percent sign (%) is used as a wildcard to match one or more
characters. In the example above, both Chavez and Chen would be returned. Note that in some
databases an asterisk (*) is used as the wildcard instead of a percent sign (%).
SELECT all columns
Can you use SELECT * ?
In the example, if you replace SELECT field1 with SELECT * , you would be selecting all of the
columns in the table instead of the field1 column only. From a syntax point of view, it is a correct
SQL statement, but you should use the asterisk (*) sparingly and with caution. Depending on how
many columns a table has, you could be selecting a tremendous amount of data. Selecting too
much data can cause a query to run slowly.
Comments
Some tables aren’t designed with descriptive enough naming conventions. In the example,
field1 was the column for a customer’s last name, but you wouldn’t know it by the name. A
better name would have been something such as last_name. In these cases, you can place
comments alongside your SQL to help you remember what the name represents. Comments are
text placed between certain characters, /* and */, or after two dashes (--) as shown below.
Comments can also be added outside of a statement as well as within a statement. You can use
this flexibility to provide an overall description of what you are going to do, step-by-step notes
about how you achieve it, and why you set different parameters/conditions.
The more comfortable you get with SQL, the easier it will be to read and understand queries at a
glance. Still, it never hurts to have comments in a query to remind yourself of what you’re trying
to do. This also makes it easier for others to understand your query if your query is shared. As
your queries become more and more complex, this practice will save you a lot of time and energy
to understand complex queries you wrote months or years ago.
As you develop your skills professionally, depending on the SQL database you use, you can pick
the appropriate comment delimiting symbols you prefer and stick with those as a consistent
style. As your queries become more and more complex, the practice of adding helpful comments
will save you a lot of time and energy to understand queries that you may have written months or
years prior.
Aliases
You can also make it easier on yourself by assigning a new name or alias to the column or table
names to make them easier to work with (and avoid the need for comments). This is done with a
SQL AS clause. In the example below, the alias last_name has been assigned to field1 and the
alias customers assigned to table. These aliases are good for the duration of the query only. An
alias doesn’t change the actual name of a column or table in the database.
You want to pull all the columns: empID, firstName, lastName, jobCode, and salary. Because
you know the database isn’t that big, instead of entering each column name in the SELECT
clause, you use SELECT *. This will select all the columns from the Employee table in the FROM
clause.
Now, you can get more specific about the data you want from the Employee table. If you want all
the data about employees working in the SFI job code, you can use a WHERE clause to filter out
the data based on this additional requirement.
A portion of the resulting data returned from the SQL query might look like this:
You create a SQL query similar to below, where <> means "does not equal":
The resulting data from the SQL query might look like the following (interns with the job code
INT aren't returned):
Pulling the data, analyzing it, and implementing a solution might ultimately help improve
employee satisfaction and loyalty. That makes SQL a pretty powerful tool.
• W3Schools SQL Tutorial: If you would like to explore a detailed tutorial of SQL, this is the
perfect place to start. This tutorial includes interactive examples you can edit, test, and
recreate. Use it as a reference or complete the whole tutorial to practice using SQL. Click
the green Start learning SQL now button or the Next button to begin the tutorial.
• SQL Cheat Sheet: For more advanced learners, go through this article for standard SQL
syntax used in PostgreSQL. By the time you are finished, you will know a lot more about
SQL and will be prepared to use it for business analysis and other tasks.