3. Introduction :
• Structured Query Language (SQL) is the
standard language used to communicate with
database software.
• SQL is a complex and powerful language that
can be used to deal with databases.
• the ANSI standard requires the keywords to
all be similar (Select, Delete, Insert, and etc.).
This makes SQL universally understandable
and useable by all users.
BSTC
9. Using where clause
SELECT employee_id,
last_name, department_id
FROM employees
WHERE department_id = 90;
BSTC
10. Comparison conditions
< less-than SELECT * FROM employees WHERE salary <
2500;
>= Greater-
than-or-
equal-to
SELECT * FROM employees WHERE salary >=
2500;
<= Less-than-
or-equal-to
SELECT * FROM employees WHERE salary <=
2500;
BSTC
11. Comparison conditions (cont.)
= Equality
SELECT * FROM employees WHERE salary =
2500;
<> Inequality SELECT * FROM employees WHERE salary !=
2500;
> Greater-
than SELECT * FROM employees WHERE salary >
2500;
BSTC
12. Comparison conditions (cont.)
BETWEEN….
AND
SELECT first_name, last_name, salary
FROM employee
WHERE salary BETWEEN 1000 AND 1500;
LIKE SELECT first_name, last_name
FROM Employees
WHERE first_name LIKE 'S%';
BSTC
13. Comparison conditions (cont.)
IN SELECT first_name, last_name, job_id
FROM employees
WHERE job_id IN(‘IT_PROG', ‘CLERK');
IS NULL SELECT *
FROM employees
WHERE commission_pct is NULL
BSTC
14. Logical conditions :
Logical Conditions Example
OR SELECT last_name,job_id,salary
FROM employees
WHERE salary = 1400 OR job_id =
‘CLERK‘;
AND SELECT first_name,salary
FROM employees
WHERE salary >= 1000 AND salary <=
1500;
NOT SELECT first_name,job_id
FROM employees
WHERE NOT job_id = ‘IT_PROG‘;
BSTC
15. Order By Clause :
• Sort rows with the order by clause
• -ASC: ascending order ,default
• -DESC : descending order
• It’s comes last in the select statement
• SELECT expressions FROM tables WHERE
conditions ORDER BY expression [ ASC |
DESC ];
BSTC
20. Single row functions :
Single row functions:
• Manipulate data items
• Accept arguments and return one value
• Act on each row returned
• Return one result per row
• May modify the data type
• Can be nested
• Accept arguments which can be a
column or an expression
function_name [(arg1, arg2,...)]
BSTC
23. Case manipulating functions :
These functions convert case for character strings.
Function Result
LOWER('SQL Course') sql course
UPPER('SQL Course') SQL COURSE
INITCAP('SQL Course') Sql Course
BSTC
24. SELECT employee_id, last_name,
department_id
FROM employees
WHERE LOWER(last_name) = 'higgins';
Using Case Manipulation Functions
Display the employee number, name, and department
number for employee Higgins:
SELECT employee_id, last_name,
department_id
FROM employees
WHERE last_name = 'higgins';
BSTC
25. Character-Manipulation Functions
These functions manipulate character strings:
Function result
CONCAT('Hello',
'World')
SUBSTR('HelloWorld',1,
5)
LENGTH('HelloWorld')
INSTR('HelloWorld',
'W')LPAD(salary,10,'*'
)
RPAD(salary, 10, '*')
TRIM('H' FROM
'HelloWorld')
HelloWorld
Hello
10
6
*****24000
24000*****
elloWorld
BSTC
26. SELECT employee_id, CONCAT(first_name, last_name)
NAME,
job_id, LENGTH (last_name),
INSTR(last_name, 'a') "Contains 'a'?"
FROM employees
WHERE SUBSTR(job_id, 4) = 'REP';
Using the Character-Manipulation
Functions
BSTC
27. Number Functions
• ROUND: Rounds value to specified decimal
ROUND(45.926, 2)
45.93
• TRUNC: Truncates value to specified decimal
TRUNC(45.926, 2)
45.92
• MOD: Returns remainder of division
MOD(1600, 300)
100
BSTC
30. SELECT last_name, salary, MOD(salary, 5000)
FROM employees
WHERE job_id = 'SA_REP';
Using the MOD Function
Calculate the remainder of a salary after it is divided by
5000 for all employees whose job title is sales
representative.
BSTC
31. Working with Dates
• Oracle database stores dates in an internal
numeric format: century, year, month, day,
hours, minutes, seconds.
• The default date display format is DD-MON-YY.
SELECT last_name, hire_date
FROM employees
WHERE last_name like 'G%';
BSTC
33. Arithmetic with Dates
• Add or subtract a number to or from a date for a
resultant date value.
• Subtract two dates to find the number of days
between those dates.
BSTC
34. Using Arithmetic Operators
with Dates
SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS
FROM employees
WHERE department_id = 90;
BSTC
35. Date Functions
Number of months
between two dates
MONTHS_BETWEEN
ADD_MONTHS
NEXT_DAY
LAST_DAY
ROUND
TRUNC
Add calendar months to
date
Next day of the date
specified
Last day of the month
Round date
Truncate date
Function Description
BSTC
36. • MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')
Using Date Functions
• ADD_MONTHS ('11-JAN-94',6)
• NEXT_DAY ('01-SEP-95','FRIDAY')
• LAST_DAY('01-FEB-95')
19.6774194
'11-JUL-94'
'08-SEP-95'
'28-FEB-95'
BSTC
39. Explicit Data Type Conversion
NUMBER CHARACTER
TO_CHAR
TO_NUMBER
DATE
TO_CHAR
TO_DATE
BSTC
40. Using the TO_CHAR Function with
Dates
The format model:
• Must be enclosed in single quotation marks and is
case sensitive
• Can include any valid date format element
• Has an fm element to remove padded blanks or
suppress leading zeros
• Is separated from the date value by a comma
TO_CHAR(date, 'format_model')
BSTC
41. YYYY
YEAR
MM
MONTH
DY
DAY
Full year in numbers
Year spelled out
Two-digit value for month
Three-letter abbreviation of the day of the week
Full name of the day of the week
Full name of the month
MON Three-letter abbreviation of the month
DD
Numeric day of the month
Date formats :
BSTC
42. Using the TO_CHAR Function with
Dates
SELECT last_name,
TO_CHAR(hire_date, 'fmDD Month YYYY')
AS HIREDATE
FROM employees;
…
BSTC
43. Using the TO_CHAR Function with
Numbers
These are some of the format elements you can use
with the TO_CHAR function to display a number
value as a character:
TO_CHAR(number, 'format_model')
9
0
$
L
.
,
Represents a number
Forces a zero to be displayed
Places a floating dollar sign
Uses the floating local currency symbol
Prints a decimal point
Prints a thousand indicatorBSTC
45. Nesting Functions
• Single-row functions can be nested to any level.
• Nested functions are evaluated from deepest
level to the least deep level.
F3(F2(F1(col,arg1),arg2),arg3)
Step 1 = Result 1
Step 2 = Result 2
Step 3 = Result 3
BSTC
48. NVL Function
Converts a null to an actual value.
• Data types that can be used are date, character,
and number.
• Data types must match:
– NVL(commission_pct,0)
– NVL(hire_date,'01-JAN-97')
– NVL(job_id,'No Job Yet')
BSTC
49. SELECT last_name, salary, NVL(commission_pct, 0),
(salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL
FROM employees;
Using the NVL Function
…
1 2
1
2
BSTC
51. The DECODE Function
Facilitates conditional inquiries by doing the work of an
IF-THEN-ELSE statement:
DECODE(col|expression, search1, result1
[, search2, result2,...,]
[, default])
BSTC
52. Using the DECODE Function
SELECT last_name, job_id, salary,
DECODE(job_id, 'IT_PROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
REVISED_SALARY
FROM employees;
…
…
BSTC