What is SQL?

SQL is an ANSI standard computer language for accessing and manipulating databases! Learn how to use SQL to access, define, and manipulate data in Oracle, DB2, Sybase, Informix, Microsoft SQL Server, Microsoft Access, and other database systems.

  • SQL stands for Structured Query Language
  • SQL allows you to access a database
  • SQL can execute queries against a database
  • SQL can retrieve data from a database
  • SQL can insert new records in a database
  • SQL can delete records from a database
  • SQL can update records in a database

 

 

 

 

 

 


     

     

 

 


There are many different versions of the SQL language, but to be in compliance with the ANSI standard, they must support the same major keywords in a similar manner:

SELECT, UPDATE, DELETE, INSERT, WHERE


SQL Database Tables

A database most often contains one or more tables. Each table is identified by a name (i.e. "Customers" or "Orders"). Tables contain records (rows) with data.

Below is an example of a table called "Persons":
 
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis
Smith Greg 308 Lee Columbus

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


SQL Queries

With SQL, we can query a database and have a result set return.

SELECT LastName FROM Persons

Gives a result set like this:
LastName
Arnett
Thomas
Smith


SQL Data Manipulation Language (DML)

SQL (Structured Query Language) is a syntax for executing queries. But the SQL language also includes a syntax to update, insert, and delete records.

These query and update commands together form the Data Manipulation Language (DML) part of SQL:

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

SQL Data Definition Language (DDL)

The Data Definition Language (DDL) part of SQL permits database tables to be created or deleted. We can also define indexes (keys), specify links between tables, and impose constraints between database tables.

The most important DDL statements in SQL are: 

  • CREATE TABLE - creates a new database table
  • ALTER TABLE - alters (changes) a database table
  • DROP TABLE - deletes a database table
  • CREATE INDEX - creates an index (search key)
  • DROP INDEX - deletes an index 

The SELECT Statement

The SELECT statement is used to select data from a table. The tabular result is stored in a result table (called the result-set).

Syntax

SELECT column_name(s)
FROM table_name


Select Some Columns

To select the columns named "LastName" and "FirstName", use a SELECT statement like this:
 
SELECT LastName,FirstName FROM Persons

"Persons" table
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis
Smith Greg 308 Lee Columbus

Result
LastName FirstName
Arnett Kirk
Thomas Steve
Smith Greg


Select All Columns

To select all columns from the "Persons" table, use a * symbol instead of column names, like this: 
 
SELECT * FROM Persons

Result
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis
Smith Greg 308 Lee Columbus


The Result Set

The result from a SQL query is stored in a result-set. Most database software systems allow navigation of the result set with programming functions, like: Move-To-First-Record, Get-Record-Content, Move-To-Next-Record, etc.

Semicolon after SQL Statements?

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.

Some SQL tutorials ends each SQL statement with a semicolon. Is this necessary? 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.


The SELECT DISTINCT Statement

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

The SELECT statement returns information from table columns. But what if we only want to select distinct elements?

With SQL, all we need to do is to add a DISTINCT keyword to the SELECT statement:

Syntax

SELECT DISTINCT column_name(s)
FROM table_name


Using the DISTINCT keyword

To select ALL values from the column named "Company" we use a SELECT statement like this:
 
SELECT Company FROM Orders

"Orders" table
Company OrderNumber
Sony 235
Macromedia 345
Microsoft 343
Netscape 324

Result
Company
Sony
Macromedia
Microsoft
Netscape

To select only DIFFERENT values from the column named "Company" we use a SELECT DISTINCT statement like this:
SELECT DISTINCT Company FROM Orders

Result:
Company
Sony
Macromedia
Microsoft


The WHERE clause is used to specify a selection criterion.


The WHERE Clause 

To conditionally select data from a table, a WHERE clause can be added to the SELECT statement.

Syntax

SELECT column FROM table
WHERE column operator value

With the WHERE clause, the following operators can be used:
Operator Description
= Equal
<> Not equal
> Greater than
< Less than
>= Greater than or equal
<= Less than or equal
BETWEEN Between an inclusive range
LIKE Search for a pattern

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


Using the WHERE Clause

To select only the persons living in the city "Sandnes", we add a WHERE clause to the SELECT statement: 
 
SELECT * FROM Persons
WHERE City='Sturgis'

"Persons" table
LastName FirstName Address City Year
Arnett Kirk 300 McCool Starkville 1990
Thomas Steve 102 McKee Sturgis 1991
Smith Greg 308 Lee Columbus 1995

Result
LastName FirstName Address City Year
Thomas Steve 102 McKee Sturgis 1991


Using Quotes

Note that we have used single quotes around the conditional values in the examples.

SQL uses single quotes around text values (most database systems will also accept double quotes). Numeric values should not be enclosed in quotes.

For text values:
This is correct:
SELECT * FROM Persons WHERE FirstName='Kirk'
This is wrong:
SELECT * FROM Persons WHERE FirstName=Kirk

For numeric values:
This is correct:
SELECT * FROM Persons WHERE Year>1990
This is wrong:
SELECT * FROM Persons WHERE Year>'1990'


The LIKE Condition

The LIKE condition is used to specify a search for a pattern in a column.

Syntax

SELECT column FROM table
WHERE column LIKE pattern


The INSERT INTO Statement

The INSERT INTO statement is used to insert new rows into a table.

Syntax

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

You can also specify the columns for which you want to insert data:
INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....)


Insert a New Row

This "Persons" table:
 
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville

And this SQL statement:
INSERT INTO Persons 
VALUES ('Thomas', 'Steve', '102 McKee', 'Sturgis')

Will give this result:
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis


Insert Data in Specified Columns

This "Persons" table:
 
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis

And This SQL statement:
INSERT INTO Persons (LastName, Address)
VALUES ('Harris', '122 Simrall')

Will give this result:
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis
Harris   122 Simrall  


The Update Statement

The UPDATE statement is used to modify the data in a table.

Syntax

UPDATE table_name
SET column_name = new_value
WHERE column_name = some_value

Person:
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis


Update one Column in a Row

We want to add a first name to the person with a last name of "Rasmussen":
 
UPDATE Person SET FirstName = 'Kirk'
WHERE LastName = 'Thomas'

Result:
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis


Update several Columns in a Row

We want to change the address and add the name of the city:
 
UPDATE Person
SET Address = '300 McCool', City = 'Starkville'
WHERE LastName = 'Arnett'

Result:
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville


The Delete Statement

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

Syntax

DELETE FROM table_name
WHERE column_name = some_value


Person:
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville
Thomas Steve 102 McKee Sturgis


Delete a Row

" Steve Thomas" is going to be deleted:
 
DELETE FROM Person WHERE LastName = 'Thomas'

Result
LastName FirstName Address City
Arnett Kirk 300 McCool Starkville


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

 

</div>

 

 

Email: Dr. Kirk P. Arnett, CCP, DBA