0% found this document useful (0 votes)
65 views52 pages

Introduction To: What Is SQL?

SQL is a standard language for querying, manipulating, and defining databases. It allows users to retrieve, insert, update, delete, and manage data. The document provides an overview of SQL, including what it is, what it can do, how it is used in websites, and basic SQL statements like SELECT, WHERE, ORDER BY, and JOIN. It also defines SQL concepts like DML, DDL, tables, columns, rows, and more.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
65 views52 pages

Introduction To: What Is SQL?

SQL is a standard language for querying, manipulating, and defining databases. It allows users to retrieve, insert, update, delete, and manage data. The document provides an overview of SQL, including what it is, what it can do, how it is used in websites, and basic SQL statements like SELECT, WHERE, ORDER BY, and JOIN. It also defines SQL concepts like DML, DDL, tables, columns, rows, and more.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 52

Introduction to SQL

Previous
SQL is a standard language for accessing and manipulating databases.

Next Chapter

What is SQL?

SQL stands for Structured Query Language SQL lets you access and manipulate databases SQL is an ANSI (American National Standards Institute) standard

What Can SQL do?



SQL SQL SQL SQL SQL SQL SQL SQL SQL SQL can can can can can can can can can can execute queries against a database retrieve data from a database insert records in a database update records in a database delete records from a database create new databases create new tables in a database create stored procedures in a database create views in a database set permissions on tables, procedures, and views

SQL is a Standard - BUT....


Although SQL is an ANSI (American National Standards Institute) standard, there are many different versions of the SQL language. However, to be compliant with the ANSI standard, they all support at least the major commands (such as SELECT, UPDATE, DELETE, INSERT, WHERE) in a similar manner. Note: Most of the SQL database programs also have their own proprietary extensions in addition to the SQL standard!

Using SQL in Your Web Site


To build a web site that shows some data from a database, you will need the following:

An RDBMS database program (i.e. MS Access, SQL Server, MySQL) A server-side scripting language, like PHP or ASP SQL HTML / CSS

RDBMS
RDBMS stands for Relational Database Management System. RDBMS is the basis for SQL, and for all modern database systems like MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access. The data in RDBMS is stored in database objects called tables. A table is a collections of related data entries and it consists of columns and rows.

SQL Syntax
Previous Next Chapter

Database Tables
A database most often contains one or more tables. Each table is identified by a name (e.g. "Customers" or "Orders"). Tables contain records (rows) with data. Below is an example of a table called "Persons": P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

The table above contains three records (one for each person) and five columns (P_Id, LastName, FirstName, Address, and City).

SQL Statements
Most of the actions you need to perform on a database are done with SQL statements. The following SQL statement will select all the records in the "Persons" table:

SELECT * FROM Persons


In this tutorial we will teach you all about the different SQL statements.

Keep in Mind That...

SQL is not case sensitive

Semicolon after SQL Statements?


Some database systems require a semicolon at the end of each SQL statement. Semicolon is the standard way to separate each SQL statement in database systems that allow more than one SQL statement to be executed in the same call to the server. We are using MS Access and SQL Server 2000 and we do not have to put a semicolon after each SQL statement, but some database programs force you to use it.

SQL DML and DDL


SQL can be divided into two parts: The Data Manipulation Language (DML) and the Data Definition Language (DDL). The query and update commands form the DML part of SQL:

SELECT - extracts data from a database UPDATE - updates data in a database DELETE - deletes data from a database INSERT INTO - inserts new data into a database

The DDL part of SQL permits database tables to be created or deleted. It also define indexes (keys), specify links between tables, and impose constraints between tables. The most important DDL statements in SQL are:

CREATE DATABASE - creates a new database ALTER DATABASE - modifies a database CREATE TABLE - creates a new table ALTER TABLE - modifies a table DROP TABLE - deletes a table CREATE INDEX - creates an index (search key) DROP INDEX - deletes an index

SQL SELECT Statement


Previous Next Chapter

This chapter will explain the SELECT and the SELECT * statements.

The SQL SELECT Statement


The SELECT statement is used to select data from a database. The result is stored in a result table, called the result-set.

SQL SELECT Syntax


SELECT column_name(s) FROM table_name

and

SELECT * FROM table_name

Note: SQL is not case sensitive. SELECT is the same as select.

An SQL SELECT Example


The "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select the content of the columns named "LastName" and "FirstName" from the table above. We use the following SELECT statement:

SELECT LastName,FirstName FROM Persons

The result-set will look like this: LastName Hansen Svendson Pettersen FirstName Ola Tove Kari

SELECT * Example
Now we want to select all the columns from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons

Tip: The asterisk (*) is a quick way of selecting all columns! The result-set will look like this: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Navigation in a Result-set
Most database software systems allow navigation in the result-set with programming functions, like: MoveTo-First-Record, Get-Record-Content, Move-To-Next-Record, etc. Programming functions like these are not a part of this tutorial. To learn about accessing data with function calls, please visit our ADO tutorial or our PHP tutorial

SQL SELECT DISTINCT Statement


Previous Next Chapter

This chapter will explain the SELECT DISTINCT statement.

The SQL SELECT DISTINCT Statement


In a table, some of the columns may contain duplicate values. This is not a problem, however, sometimes you will want to list only the different (distinct) values in a table.

The DISTINCT keyword can be used to return only distinct (different) values.

SQL SELECT DISTINCT Syntax


SELECT DISTINCT column_name(s) FROM table_name

SELECT DISTINCT Example


The "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select only the distinct values from the column named "City" from the table above. We use the following SELECT statement:

SELECT DISTINCT City FROM Persons

The result-set will look like this: City Sandnes Stavanger

SQL WHERE Clause

Previous

Next Chapter

The WHERE clause is used to filter records.

The WHERE Clause


The WHERE clause is used to extract only those records that fulfill a specified criterion.

SQL WHERE Syntax


SELECT column_name(s) FROM table_name WHERE column_name operator value

WHERE Clause Example


The "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select only the persons living in the city "Sandnes" from the table above. We use the following SELECT statement:

SELECT * FROM Persons WHERE City='Sandnes'

The result-set will look like this: P_Id 1 LastName Hansen FirstName Ola Address Timoteivn 10 City Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Quotes Around Text Fields


SQL uses single quotes around text values (most database systems will also accept double quotes). Although, numeric values should not be enclosed in quotes. For text values:

This is correct: SELECT * FROM Persons WHERE FirstName='Tove' This is wrong: SELECT * FROM Persons WHERE FirstName=Tove

For numeric values:

This is correct: SELECT * FROM Persons WHERE Year=1965 This is wrong: SELECT * FROM Persons WHERE Year='1965'

Operators Allowed in the WHERE Clause


With the WHERE clause, the following operators can be used: Operator = <> > Equal Not equal Greater than Description

< >= <= BETWEEN LIKE IN

Less than Greater than or equal Less than or equal Between an inclusive range Search for a pattern If you know the exact value you want to return for at least one of the columns

Note: In some versions of SQL the <> operator may be written as !=

SQL AND & OR Operators


Previous Next Chapter

The AND & OR operators are used to filter records based on more than one condition.

The AND & OR Operators


The AND operator displays a record if both the first condition and the second condition is true. The OR operator displays a record if either the first condition or the second condition is true.

AND Operator Example


The "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select only the persons with the first name equal to "Tove" AND the last name equal to "Svendson": We use the following SELECT statement:

SELECT * FROM Persons WHERE FirstName='Tove'

AND LastName='Svendson'
The result-set will look like this: P_Id 2 LastName Svendson FirstName Tove Address Borgvn 23 City Sandnes

OR Operator Example
Now we want to select only the persons with the first name equal to "Tove" OR the first name equal to "Ola": We use the following SELECT statement:

SELECT * FROM Persons WHERE FirstName='Tove' OR FirstName='Ola'


The result-set will look like this: P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

Combining AND & OR


You can also combine AND and OR (use parenthesis to form complex expressions). Now we want to select only the persons with the last name equal to "Svendson" AND the first name equal to "Tove" OR to "Ola": We use the following SELECT statement:

SELECT * FROM Persons WHERE LastName='Svendson' AND (FirstName='Tove' OR FirstName='Ola')


The result-set will look like this: P_Id 2 LastName Svendson FirstName Tove Address Borgvn 23 City Sandnes

SQL ORDER BY Keyword

Previous

Next Chapter

The ORDER BY keyword is used to sort the result-set.

The ORDER BY Keyword


The ORDER BY keyword is used to sort the result-set by a specified column. The ORDER BY keyword sort the records in ascending order by default. If you want to sort the records in a descending order, you can use the DESC keyword.

SQL ORDER BY Syntax


SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC

ORDER BY Example
The "Persons" table: P_Id 1 2 3 4 LastName Hansen Svendson Pettersen Nilsen FirstName Ola Tove Kari Tom Address Timoteivn 10 Borgvn 23 Storgt 20 Vingvn 23 City Sandnes Sandnes Stavanger Stavanger

Now we want to select all the persons from the table above, however, we want to sort the persons by their last name. We use the following SELECT statement:

SELECT * FROM Persons ORDER BY LastName

The result-set will look like this: P_Id 1 4 3 2 LastName Hansen Nilsen Pettersen Svendson FirstName Ola Tom Kari Tove Address Timoteivn 10 Vingvn 23 Storgt 20 Borgvn 23 City Sandnes Stavanger Stavanger Sandnes

ORDER BY DESC Example


Now we want to select all the persons from the table above, however, we want to sort the persons descending by their last name. We use the following SELECT statement:

SELECT * FROM Persons ORDER BY LastName DESC

The result-set will look like this: P_Id 2 3 4 1 LastName Svendson Pettersen Nilsen Hansen FirstName Tove Kari Tom Ola Address Borgvn 23 Storgt 20 Vingvn 23 Timoteivn 10 City Sandnes Stavanger Stavanger Sandnes

SQL INSERT INTO Statement

Previous

Next Chapter

The INSERT INTO statement is used to insert new records in a table.

The INSERT INTO Statement


The INSERT INTO statement is used to insert a new row in a table.

SQL INSERT INTO Syntax


It is possible to write the INSERT INTO statement in two forms. The first form doesn't specify the column names where the data will be inserted, only their values:

INSERT INTO table_name VALUES (value1, value2, value3,...)

The second form specifies both the column names and the values to be inserted:

INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)

SQL INSERT INTO Example


We have the following "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to insert a new row in the "Persons" table. We use the following SQL statement:

INSERT INTO Persons VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')

The "Persons" table will now look like this: P_Id 1 2 3 4 LastName Hansen Svendson Pettersen Nilsen FirstName Ola Tove Kari Johan Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 City Sandnes Sandnes Stavanger Stavanger

Insert Data Only in Specified Columns


It is also possible to only add data in specific columns. The following SQL statement will add a new row, but only add data in the "P_Id", "LastName" and the "FirstName" columns:

INSERT INTO Persons (P_Id, LastName, FirstName) VALUES (5, 'Tjessem', 'Jakob')

The "Persons" table will now look like this: P_Id 1 2 3 4 5 LastName Hansen Svendson Pettersen Nilsen Tjessem FirstName Ola Tove Kari Johan Jakob Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 City Sandnes Sandnes Stavanger Stavanger

SQL UPDATE Statement


Previous Next Chapter

The UPDATE statement is used to update records in a table.

The UPDATE Statement


The UPDATE statement is used to update existing records in a table.

SQL UPDATE Syntax


UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value

Note: Notice the WHERE clause in the UPDATE syntax. The WHERE clause specifies which record or records that should be updated. If you omit the WHERE clause, all records will be updated!

SQL UPDATE Example


The "Persons" table: P_Id 1 2 3 4 5 LastName Hansen Svendson Pettersen Nilsen Tjessem FirstName Ola Tove Kari Johan Jakob Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 City Sandnes Sandnes Stavanger Stavanger

Now we want to update the person "Tjessem, Jakob" in the "Persons" table. We use the following SQL statement:

UPDATE Persons

SET Address='Nissestien 67', City='Sandnes' WHERE LastName='Tjessem' AND FirstName='Jakob'

The "Persons" table will now look like this: P_Id 1 2 3 4 5 LastName Hansen Svendson Pettersen Nilsen Tjessem FirstName Ola Tove Kari Johan Jakob Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 Nissestien 67 City Sandnes Sandnes Stavanger Stavanger Sandnes

SQL UPDATE Warning


Be careful when updating records. If we had omitted the WHERE clause in the example above, like this:

UPDATE Persons SET Address='Nissestien 67', City='Sandnes'

The "Persons" table would have looked like this: P_Id 1 2 3 4 5 LastName Hansen Svendson Pettersen Nilsen Tjessem FirstName Ola Tove Kari Johan Jakob Address Nissestien 67 Nissestien 67 Nissestien 67 Nissestien 67 Nissestien 67 City Sandnes Sandnes Sandnes Sandnes Sandnes

SQL DELETE Statement


Previous Next Chapter

The DELETE statement is used to delete records in a table.

The DELETE Statement


The DELETE statement is used to delete rows in a table.

SQL DELETE Syntax


DELETE FROM table_name WHERE some_column=some_value

Note: Notice the WHERE clause in the DELETE syntax. The WHERE clause specifies which record or records that should be deleted. If you omit the WHERE clause, all records will be deleted!

SQL DELETE Example


The "Persons" table: P_Id 1 2 3 4 5 LastName Hansen Svendson Pettersen Nilsen Tjessem FirstName Ola Tove Kari Johan Jakob Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 Nissestien 67 City Sandnes Sandnes Stavanger Stavanger Sandnes

Now we want to delete the person "Tjessem, Jakob" in the "Persons" table. We use the following SQL statement:

DELETE FROM Persons

WHERE LastName='Tjessem' AND FirstName='Jakob'

The "Persons" table will now look like this: P_Id 1 2 3 4 LastName Hansen Svendson Pettersen Nilsen FirstName Ola Tove Kari Johan Address Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 City Sandnes Sandnes Stavanger Stavanger

Delete All Rows


It is possible to delete all rows in a table without deleting the table. This means that the table structure, attributes, and indexes will be intact:

DELETE FROM table_name or DELETE * FROM table_name

Note: Be very careful when deleting records. You cannot undo this statement

SQL TOP Clause


Previous Next Chapter

The TOP Clause


The TOP clause is used to specify the number of records to return. The TOP clause can be very useful on large tables with thousands of records. Returning a large number of records can impact on performance. Note: Not all database systems support the TOP clause.

SQL Server Syntax


SELECT TOP number|percent column_name(s) FROM table_name

SQL SELECT TOP Equivalent in MySQL and Oracle


MySQL Syntax
SELECT column_name(s) FROM table_name LIMIT number

Example
SELECT * FROM Persons LIMIT 5

Oracle Syntax
SELECT column_name(s) FROM table_name WHERE ROWNUM <= number

Example
SELECT * FROM Persons WHERE ROWNUM <=5

SQL TOP Example


The "Persons" table: P_Id 1 LastName Hansen FirstName Ola Address Timoteivn 10 City Sandnes

2 3 4

Svendson Pettersen Nilsen

Tove Kari Tom

Borgvn 23 Storgt 20 Vingvn 23

Sandnes Stavanger Stavanger

Now we want to select only the two first records in the table above. We use the following SELECT statement:

SELECT TOP 2 * FROM Persons

The result-set will look like this: P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

SQL TOP PERCENT Example


The "Persons" table: P_Id 1 2 3 4 LastName Hansen Svendson Pettersen Nilsen FirstName Ola Tove Kari Tom Address Timoteivn 10 Borgvn 23 Storgt 20 Vingvn 23 City Sandnes Sandnes Stavanger Stavanger

Now we want to select only 50% of the records in the table above. We use the following SELECT statement:

SELECT TOP 50 PERCENT * FROM Persons

The result-set will look like this: P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

SQL LIKE Operator


Previous Next Chapter

The LIKE operator is used in a WHERE clause to search for a specified pattern in a column.

The LIKE Operator


The LIKE operator is used to search for a specified pattern in a column.

SQL LIKE Syntax


SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern

LIKE Operator Example


The "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select the persons living in a city that starts with "s" from the table above. We use the following SELECT statement:

SELECT * FROM Persons WHERE City LIKE 's%'

The "%" sign can be used to define wildcards (missing letters in the pattern) both before and after the pattern. The result-set will look like this: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Next, we want to select the persons living in a city that ends with an "s" from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons WHERE City LIKE '%s'

The result-set will look like this: P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

Next, we want to select the persons living in a city that contains the pattern "tav" from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons WHERE City LIKE '%tav%'

The result-set will look like this: P_Id 3 LastName Pettersen FirstName Kari Address Storgt 20 City Stavanger

It is also possible to select the persons living in a city that NOT contains the pattern "tav" from the "Persons" table, by using the NOT keyword. We use the following SELECT statement:

SELECT * FROM Persons WHERE City NOT LIKE '%tav%'

The result-set will look like this: P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

SQL Wildcards
Previous
SQL wildcards can be used when searching for data in a database.

Next Chapter

SQL Wildcards
SQL wildcards can substitute for one or more characters when searching for data in a database. SQL wildcards must be used with the SQL LIKE operator. With SQL, the following wildcards can be used: Wildcard % _ Description A substitute for zero or more characters A substitute for exactly one character

[charlist] [^charlist] or [!charlist]

Any single character in charlist Any single character not in charlist

SQL Wildcard Examples


We have the following "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Using the % Wildcard


Now we want to select the persons living in a city that starts with "sa" from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons WHERE City LIKE 'sa%'


The result-set will look like this: P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

Next, we want to select the persons living in a city that contains the pattern "nes" from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons WHERE City LIKE '%nes%'


The result-set will look like this: P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

Using the _ Wildcard


Now we want to select the persons with a first name that starts with any character, followed by "la" from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons WHERE FirstName LIKE '_la'


The result-set will look like this: P_Id 1 LastName Hansen FirstName Ola Address Timoteivn 10 City Sandnes

Next, we want to select the persons with a last name that starts with "S", followed by any character, followed by "end", followed by any character, followed by "on" from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons WHERE LastName LIKE 'S_end_on'


The result-set will look like this: P_Id 2 LastName Svendson FirstName Tove Address Borgvn 23 City Sandnes

Using the [charlist] Wildcard


Now we want to select the persons with a last name that starts with "b" or "s" or "p" from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons WHERE LastName LIKE '[bsp]%'


The result-set will look like this: P_Id 2 LastName Svendson FirstName Tove Address Borgvn 23 City Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Next, we want to select the persons with a last name that do not start with "b" or "s" or "p" from the "Persons" table. We use the following SELECT statement:

SELECT * FROM Persons WHERE LastName LIKE '[!bsp]%'


The result-set will look like this: P_Id 1 LastName Hansen FirstName Ola Address Timoteivn 10 City Sandnes

SQL IN Operator
Previous Next Chapter

The IN Operator
The IN operator allows you to specify multiple values in a WHERE clause.

SQL IN Syntax
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)

IN Operator Example
The "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select the persons with a last name equal to "Hansen" or "Pettersen" from the table above. We use the following SELECT statement:

SELECT * FROM Persons WHERE LastName IN ('Hansen','Pettersen')

The result-set will look like this: P_Id 1 3 LastName Hansen Pettersen FirstName Ola Kari Address Timoteivn 10 Storgt 20 City Sandnes Stavanger

SQL IN Operator
Previous Next Chapter

The IN Operator
The IN operator allows you to specify multiple values in a WHERE clause.

SQL IN Syntax
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)

IN Operator Example
The "Persons" table: P_Id LastName FirstName Address City

1 2 3

Hansen Svendson Pettersen

Ola Tove Kari

Timoteivn 10 Borgvn 23 Storgt 20

Sandnes Sandnes Stavanger

Now we want to select the persons with a last name equal to "Hansen" or "Pettersen" from the table above. We use the following SELECT statement:

SELECT * FROM Persons WHERE LastName IN ('Hansen','Pettersen')

The result-set will look like this: P_Id 1 3 LastName Hansen Pettersen FirstName Ola Kari Address Timoteivn 10 Storgt 20 City Sandnes Stavanger

SQL BETWEEN Operator


Previous Next Chapter

The BETWEEN operator is used in a WHERE clause to select a range of data between two values.

The BETWEEN Operator


The BETWEEN operator selects a range of data between two values. The values can be numbers, text, or dates.

SQL BETWEEN Syntax


SELECT column_name(s) FROM table_name WHERE column_name

BETWEEN value1 AND value2

BETWEEN Operator Example


The "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select the persons with a last name alphabetically between "Hansen" and "Pettersen" from the table above. We use the following SELECT statement:

SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen'

The result-set will look like this: P_Id 1 LastName Hansen FirstName Ola Address Timoteivn 10 City Sandnes

Note: The BETWEEN operator is treated differently in different databases. In some databases, persons with the LastName of "Hansen" or "Pettersen" will not be listed, because the BETWEEN operator only selects fields that are between and excluding the test values). In other databases, persons with the LastName of "Hansen" or "Pettersen" will be listed, because the BETWEEN operator selects fields that are between and including the test values). And in other databases, persons with the LastName of "Hansen" will be listed, but "Pettersen" will not be listed (like the example above), because the BETWEEN operator selects fields between the test values, including the first test value and excluding the last test value. Therefore: Check how your database treats the BETWEEN operator.

Example 2
To display the persons outside the range in the previous example, use NOT BETWEEN:

SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Hansen' AND 'Pettersen'

The result-set will look like this: P_Id 2 3 LastName Svendson Pettersen FirstName Tove Kari Address Borgvn 23 Storgt 20 City Sandnes Stavanger

SQL Alias
Previous Next Chapter

With SQL, an alias name can be given to a table or to a column.

SQL Alias
You can give a table or a column another name by using an alias. This can be a good thing to do if you have very long or complex table names or column names. An alias name could be anything, but usually it is short.

SQL Alias Syntax for Tables


SELECT column_name(s) FROM table_name AS alias_name

SQL Alias Syntax for Columns


SELECT column_name AS alias_name

FROM table_name

Alias Example
Assume we have a table called "Persons" and another table called "Product_Orders". We will give the table aliases of "p" an "po" respectively. Now we want to list all the orders that "Ola Hansen" is responsible for. We use the following SELECT statement:

SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Product_Orders AS po WHERE p.LastName='Hansen' AND p.FirstName='Ola'

The same SELECT statement without aliases:

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName FROM Persons, Product_Orders WHERE Persons.LastName='Hansen' AND Persons.FirstName='Ola'

As you'll see from the two SELECT statements above; aliases can make queries easier to both write and to read.

SQL AVG() Function


Previous Next Chapter

The AVG() Function


The AVG() function returns the average value of a numeric column.

SQL AVG() Syntax


SELECT AVG(column_name) FROM table_name

SQL AVG() Example


We have the following "Orders" table: O_Id 1 2 3 4 5 6 OrderDate 2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04 OrderPrice 1000 1600 700 300 2000 100 Customer Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to find the average value of the "OrderPrice" fields. We use the following SQL statement:

SELECT AVG(OrderPrice) AS OrderAverage FROM Orders

The result-set will look like this:

OrderAverage 950

Now we want to find the customers that have an OrderPrice value higher than the average OrderPrice value. We use the following SQL statement:

SELECT Customer FROM Orders WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)

The result-set will look like this: Customer Hansen Nilsen Jensen

SQL COUNT() Function


Previous Next Chapter

The COUNT() function returns the number of rows that matches a specified criteria.

SQL COUNT(column_name) Syntax


The COUNT(column_name) function returns the number of values (NULL values will not be counted) of the specified column:

SELECT COUNT(column_name) FROM table_name

SQL COUNT(*) Syntax


The COUNT(*) function returns the number of records in a table:

SELECT COUNT(*) FROM table_name

SQL COUNT(DISTINCT column_name) Syntax


The COUNT(DISTINCT column_name) function returns the number of distinct values of the specified column:

SELECT COUNT(DISTINCT column_name) FROM table_name

Note: COUNT(DISTINCT) works with ORACLE and Microsoft SQL Server, but not with Microsoft Access.

SQL COUNT(column_name) Example


We have the following "Orders" table: O_Id 1 2 3 4 5 6 OrderDate 2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04 OrderPrice 1000 1600 700 300 2000 100 Customer Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to count the number of orders from "Customer Nilsen". We use the following SQL statement:

SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer='Nilsen'

The result of the SQL statement above will be 2, because the customer Nilsen has made 2 orders in total: CustomerNilsen

SQL COUNT(*) Example


If we omit the WHERE clause, like this:

SELECT COUNT(*) AS NumberOfOrders FROM Orders

The result-set will look like this: NumberOfOrders 6

which is the total number of rows in the table.

SQL COUNT(DISTINCT column_name) Example


Now we want to count the number of unique customers in the "Orders" table. We use the following SQL statement:

SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders

The result-set will look like this: NumberOfCustomers 3

which is the number of unique customers (Hansen, Nilsen, and Jensen) in the "Orders" table.

The FIRST() Function


The FIRST() function returns the first value of the selected column.

SQL FIRST() Syntax


SELECT FIRST(column_name) FROM table_name

SQL FIRST() Example


We have the following "Orders" table: O_Id 1 2 3 4 5 6 OrderDate 2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04 OrderPrice 1000 1600 700 300 2000 100 Customer Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to find the first value of the "OrderPrice" column. We use the following SQL statement:

SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders

Tip: Workaround if FIRST() function is not supported:

SELECT OrderPrice FROM Orders ORDER BY O_Id LIMIT 1

The result-set will look like this: FirstOrderPrice 1000

The LAST() Function


The LAST() function returns the last value of the selected column.

SQL LAST() Syntax


SELECT LAST(column_name) FROM table_name

SQL LAST() Example


We have the following "Orders" table: O_Id 1 2 3 4 5 6 OrderDate 2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04 OrderPrice 1000 1600 700 300 2000 100 Customer Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to find the last value of the "OrderPrice" column. We use the following SQL statement:

SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders

Tip: Workaround if LAST() function is not supported:

SELECT OrderPrice FROM Orders ORDER BY O_Id DESC LIMIT 1

The result-set will look like this:

LastOrderPrice 100

Previous

The MAX() Function


The MAX() function returns the largest value of the selected column.

SQL MAX() Syntax


SELECT MAX(column_name) FROM table_name

SQL MAX() Example


We have the following "Orders" table: O_Id 1 2 3 4 5 6 OrderDate 2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04 OrderPrice 1000 1600 700 300 2000 100 Customer Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to find the largest value of the "OrderPrice" column. We use the following SQL statement:

SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders

The result-set will look like this: LargestOrderPrice 2000

The MIN() Function


The MIN() function returns the smallest value of the selected column.

SQL MIN() Syntax


SELECT MIN(column_name) FROM table_name

SQL MIN() Example


We have the following "Orders" table: O_Id 1 2 3 4 5 6 OrderDate 2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04 OrderPrice 1000 1600 700 300 2000 100 Customer Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to find the smallest value of the "OrderPrice" column. We use the following SQL statement:

SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders

The result-set will look like this: SmallestOrderPrice 100

Previous

Next Chapter

The SUM() Function


The SUM() function returns the total sum of a numeric column.

SQL SUM() Syntax


SELECT SUM(column_name) FROM table_name

SQL SUM() Example


We have the following "Orders" table: O_Id 1 2 3 4 5 6 OrderDate 2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04 OrderPrice 1000 1600 700 300 2000 100 Customer Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to find the sum of all "OrderPrice" fields". We use the following SQL statement:

SELECT SUM(OrderPrice) AS OrderTotal FROM Orders

The result-set will look like this: OrderTotal 5700

Previous

SQL GROUP BY Statement


Previous Next Chapter

Aggregate functions often need an added GROUP BY statement.

The GROUP BY Statement


The GROUP BY statement is used in conjunction with the aggregate functions to group the result-set by one or more columns.

SQL GROUP BY Syntax


SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name

SQL GROUP BY Example


We have the following "Orders" table: O_Id OrderDate OrderPrice Customer

1 2 3 4 5 6

2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04

1000 1600 700 300 2000 100

Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to find the total sum (total order) of each customer. We will have to use the GROUP BY statement to group the customers. We use the following SQL statement:

SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer

The result-set will look like this: Customer Hansen Nilsen Jensen SUM(OrderPrice) 2000 1700 2000

Nice! Isn't it? :) Let's see what happens if we omit the GROUP BY statement:

SELECT Customer,SUM(OrderPrice) FROM Orders

The result-set will look like this: Customer Hansen SUM(OrderPrice) 5700

Nilsen Hansen Hansen Jensen Nilsen

5700 5700 5700 5700 5700

The result-set above is not what we wanted. Explanation of why the above SELECT statement cannot be used: The SELECT statement above has two columns specified (Customer and SUM(OrderPrice). The "SUM(OrderPrice)" returns a single value (that is the total sum of the "OrderPrice" column), while "Customer" returns 6 values (one value for each row in the "Orders" table). This will therefore not give us the correct result. However, you have seen that the GROUP BY statement solves this problem.

GROUP BY More Than One Column


We can also use the GROUP BY statement on more than one column, like this:

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate

Previous

The HAVING Clause


The HAVING clause was added to SQL because the WHERE keyword could not be used with aggregate functions.

SQL HAVING Syntax


SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value

SQL HAVING Example


We have the following "Orders" table: O_Id 1 2 3 4 5 6 OrderDate 2008/11/12 2008/10/23 2008/09/02 2008/09/03 2008/08/30 2008/10/04 OrderPrice 1000 1600 700 300 2000 100 Customer Hansen Nilsen Hansen Hansen Jensen Nilsen

Now we want to find if any of the customers have a total order of less than 2000. We use the following SQL statement:

SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000

The result-set will look like this: Customer Nilsen SUM(OrderPrice) 1700

Now we want to find if the customers "Hansen" or "Jensen" have a total order of more than 1500. We add an ordinary WHERE clause to the SQL statement:

SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Hansen' OR Customer='Jensen' GROUP BY Customer HAVING SUM(OrderPrice)>1500

The result-set will look like this:

Customer Hansen Jensen

SUM(OrderPrice) 2000 2000

Previous

Next Chapter

The UCASE() Function


The UCASE() function converts the value of a field to uppercase.

SQL UCASE() Syntax


SELECT UCASE(column_name) FROM table_name

Syntax for SQL Server


SELECT UPPER(column_name) FROM table_name

SQL UCASE() Example


We have the following "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select the content of the "LastName" and "FirstName" columns above, and convert the "LastName" column to uppercase. We use the following SELECT statement:

SELECT UCASE(LastName) as LastName,FirstName FROM Persons

The result-set will look like this: LastName HANSEN SVENDSON PETTERSEN FirstName Ola Tove Kari

The LCASE() Function


The LCASE() function converts the value of a field to lowercase.

SQL LCASE() Syntax


SELECT LCASE(column_name) FROM table_name

Syntax for SQL Server


SELECT LOWER(column_name) FROM table_name

SQL LCASE() Example


We have the following "Persons" table: P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Sandnes Sandnes Stavanger

Now we want to select the content of the "LastName" and "FirstName" columns above, and convert the "LastName" column to lowercase. We use the following SELECT statement:

SELECT LCASE(LastName) as LastName,FirstName FROM Persons

The result-set will look like this: LastName hansen svendson pettersen FirstName Ola Tove Kari

The MID() Function


The MID() function is used to extract characters from a text field.

SQL MID() Syntax


SELECT MID(column_name,start[,length]) FROM table_name

Parameter column_name start length

Description Required. The field to extract characters from Required. Specifies the starting position (starts at 1) Optional. The number of characters to return. If omitted, the MID() function returns the rest of the text

SQL MID() Example


We have the following "Persons" table: P_Id 1 LastName Hansen FirstName Ola Address Timoteivn 10 City Sandnes

2 3

Svendson Pettersen

Tove Kari

Borgvn 23 Storgt 20

Sandnes Stavanger

Now we want to extract the first four characters of the "City" column above. We use the following SELECT statement:

SELECT MID(City,1,4) as SmallCity FROM Persons

The result-set will look like this: SmallCity Sand Sand Stav

The LEN() Function


The LEN() function returns the length of the value in a text field.

SQL LEN() Syntax


SELECT LEN(column_name) FROM table_name

SQL LEN() Example


We have the following "Persons" table: P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City Sandnes Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Now we want to select the length of the values in the "Address" column above. We use the following SELECT statement:

SELECT LEN(Address) as LengthOfAddress FROM Persons

The result-set will look like this: LengthOfAddress 12 9 9

Previous

The ROUND() Function


The ROUND() function is used to round a numeric field to the number of decimals specified.

SQL ROUND() Syntax


SELECT ROUND(column_name,decimals) FROM table_name

Parameter column_name decimals

Description Required. The field to round. Required. Specifies the number of decimals to be returned.

SQL ROUND() Example


We have the following "Products" table:

Prod_Id 1 2 3

ProductName Jarlsberg Mascarpone Gorgonzola

Unit 1000 g 1000 g 1000 g

UnitPrice 10.45 32.56 15.67

Now we want to display the product name and the price rounded to the nearest integer. We use the following SELECT statement:

SELECT ProductName, ROUND(UnitPrice,0) as UnitPrice FROM Products

The result-set will look like this: ProductName Jarlsberg Mascarpone Gorgonzola UnitPrice 10 33 16

The NOW() Function


The NOW() function returns the current system date and time.

SQL NOW() Syntax


SELECT NOW() FROM table_name

SQL NOW() Example


We have the following "Products" table: Prod_Id ProductName Unit UnitPrice

1 2 3

Jarlsberg Mascarpone Gorgonzola

1000 g 1000 g 1000 g

10.45 32.56 15.67

Now we want to display the products and prices per today's date. We use the following SELECT statement:

SELECT ProductName, UnitPrice, Now() as PerDate FROM Products

The result-set will look like this: ProductName Jarlsberg Mascarpone Gorgonzola UnitPrice 10.45 32.56 15.67 PerDate 10/7/2008 11:25:02 AM 10/7/2008 11:25:02 AM 10/7/2008 11:25:02 AM

The FORMAT() Function


The FORMAT() function is used to format how a field is to be displayed.

SQL FORMAT() Syntax


SELECT FORMAT(column_name,format) FROM table_name

Parameter column_name format

Description Required. The field to be formatted. Required. Specifies the format.

SQL FORMAT() Example


We have the following "Products" table: Prod_Id 1 2 3 ProductName Jarlsberg Mascarpone Gorgonzola Unit 1000 g 1000 g 1000 g UnitPrice 10.45 32.56 15.67

Now we want to display the products and prices per today's date (with today's date displayed in the following format "YYYY-MM-DD"). We use the following SELECT statement:

SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDate FROM Products

The result-set will look like this: ProductName Jarlsberg Mascarpone Gorgonzola UnitPrice 10.45 32.56 15.67 PerDate 2008-10-07 2008-10-07 2008-10-07

You might also like