Structured Query Language (SQL)
Prepared by: Raquel Ofreneo
Objectives
After completing this section, you should be able to:
Understand Structured Query Language (SQL) and its purpose
Create and execute a basic SELECT statement
Create and execute a basic INSERT statement
Create and execute a basic UPDATE statement
Create and execute a basic DELETE statement
Execute COMMIT and ROLLBACK on transaction
2
What is SQL?
SQL (Structured Query Language) is a standard interactive programming
language for getting information from and updating to a database.
Statements take the form of a command language that lets you:
SELECT data
INSERT data
UPDATE data
DELETE data
3
Guidelines in writing SQL Statements
SQL statements are not case-sensitive
SQL statements can be on one or more lines
SQL statements are optionally ended with “;”
Keywords cannot be abbreviated or split across lines
Clauses are usually placed on separate lines
Indents are used to enhance readability
Keywords are typically entered in uppercase; all other words such as table
name and columns are entered in lower case
4
Basic SELECT Statement
Use the SELECT statement to retrieve data from one or more tables:
SELECT <column(s) >
FROM <table>
[WHERE <condition>]
[ORDER BY <column(s) [ASC|DESC]>]
table is the name of the table
column is the name of the column in the table to be
selected
condition identifies the rows to be selected and is composed
of column names, expressions, constraints,
sub-queries and comparison operators
5
column is the name of the column(s) used for sorting
(order by)
Choosing Columns
To choose all the columns of the table for display, you can use the asterisk (*)
SELECT * FROM TABLE_A
To choose specific columns on the table for display, you specify each column
separated by a comma (,)
SELECT COLUMN_1, COLUMN_2
FROM TABLE_A
It is best to put each column chosen in a separate line
6
Choosing Columns
SELECT *
FROM departments;
SELECT department_id, location_id
FROM departments
Limiting Rows
The
method of restriction is the basis of the
WHERE clause in SQL
Characterstrings and dates in the WHERE clause
must be enclosed in Single Quotation Marks (‘)
Numeric Values do not need the Single Quotation
marks(‘)
8
Rows may be limited by:
EQUALS CONDITION
Display rows based on an exact match of values.
SELECT last_name,
salary
FROM employee
WHERE salary = 30000
SELECT employee_id,
last_name
FROM employee
WHERE manager_name = ‘Taylor’
9
Rows may be limited by:
>, < or <> CONDITION
SELECT last_name, salary
FROM employee
WHERE salary < 40000
SELECT employee_id, manager_name
FROM employee
WHERE manager_name <= ‘Taylor’
SELECT employee_id, status
FROM employee
WHERE status <> ‘ACTIVE’
10
Rows may be limited by:
BETWEEN CONDITION
Display rows based on a range of values
SELECT last_name, salary
FROM employee
WHERE salary BETWEEN 30000 AND 50000
• IN CONDITION
• Display rows based on a list of values
SELECT employee_id, manager_id
FROM employee
WHERE manager_id IN (100, 200, 300) 11
Rows may be limited by:
LIKE CONDITION
Perform wildcard searches of valid search string values
Can contain either literal characters or numbers
%, * denotes zero or many characters
_ denotes one character
Use ESCAPE identifier to search for the actual % and
_symbols. Identifies the backslash(\) as the escape character
SELECT last_name
FROM employee
WHERE last_name LIKE ‘K*’
12
Rows may be limited by:
LOGICAL CONDITION
AND, OR, NOT
SELECT last_name, job_id
FROM employee
WHERE job_id NOT IN
('SA_REP', 'MK_REP', 'SA_MAN')
SELECT last_name,
job_id, salary
FROM employee
WHERE salary NOT between 30000 AND 70000
13
Rows may be limited by:
LOGICAL CONDITION
AND, OR, NOT
SELECT employee_id, last_name, job_id, salary
FROM employee
WHERE salary >= 50000
AND job_id LIKE ‘*MAN*‘
SELECT last_name,
job_id,
FROM employee
WHERE commission_pct IS NOT NULL 14
Sorting Rows
ORDER BY clause
ASC specifies an ascending order
DESC specifies a descending order
SELECT last_name,
salary,
job_id
FROM employee
ORDER BY salary DESC, job_id ASC
• Display the result in descending order by the attribute
salary. If two records have the same attribute value, the
salary sorting criteria is in ascending order according to the
15
attribute values of job_id
Basic INSERT Statement
INSERT INTO <table>
[ (column
[, column…] ) ]
VALUES (value
[, value…] )
table is the name of the table
column is the name of the column in the table to
populate
value is the corresponding value for the column
Note: This statement with the VALUES 16
clause adds only one row at a time to a table.
Basic INSERT Statement
Insert a new row containing values for each column
List values in the default order of the columns in the table
Option: list the columns in the INSERT clause
Enclose character and date values within single quotation marks
INSERT INTO departments ( department_id,
department_name, manager_id, location_id)
VALUES (70,
‘Public Relations’,
200, 1800)
17
Inserting Rows from Another Table
Write your INSERT statement with a subquery
Do not use the VALUES clause
Match the number of columns in the INSERT clause to those in the subquery
INSERT INTO sales_reps ( id,
name,
salary)
SELECT employee_id,
last_name,
salary
FROM employee 18
WHERE job_id LIKE ‘*REP*’
Basic UPDATE Statement
UPDATE table
SET column = value
[, column = value, …]
[WHERE condition]
table is the name of the table
column name of the column in the table to populate
value corresponding value for the column
condition identifies the rows to be updated and is
composed of column names, expressions, 19
constraints, sub-queries, and comparison
Updating Rows in a Table
Specific row or rows are modified if you specify the WHERE clause
UPDATE employee
SET
All rows inmanager_id = 800 if you omit the WHERE clause
the table are modified
WHERE employee_id = 10
20
Updating Rows in a Table
Values for all the rows in the table are modified if you omit the WHERE
clause
UPDATE employee
SET manager_id = 700
All rows in the table are modified if you omit the WHERE clause
21
Updating Two Columns with a Subquery
Update employee 113’s job and salary to match those of employee 205
UPDATE employee
SET job_id = (SELECT job_id
FROM employee
WHERE employee_id = 205)
salary = (SELECT salary
FROM employee
WHERE employee_id = 205)
WHERE employee_id = 113
22
Basic DELETE Statement
DELETE [FROM] table
[WHERE condition] ;
table is the name of the table
condition identifies the rows to be updated and is
composed of column names, expressions,
constraints, sub-queries, and comparison
operators
23
Deleting Rows in a Table
A specific row or specific rows are deleted if you specify the WHERE
clause
DELETE FROM employee
WHERE employee_id = 10 ;
All rows in the table are deleted if you omit the WHERE clause
DELETE FROM employee;
24
Deleting Rows Based on Another Table
Use subqueries in DELETE statements to delete rows in a table based on values
from another table
DELETE FROM employee
WHERE department_id = (SELECT department_id
FROM departments
WHERE department_name
LIKE ‘%Public%’)
25
Key Points
SQL is an industry standard language for updating, and getting information
from, a database
The basic and most common SQL statements are: SELECT, INSERT, UPDATE,
DELETE
26
Comments & Questions
27