 |

|
|
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:
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
|
|