3. 3
3
3
Basic SELECT Statement
SELECT [DISTINCT] {*, column [alias],...}
FROM table;
• Select Clause determines what columns
• The From Clause determines which table.
4. 4
4
4
Writing SQL Statements
• SQL is not Case Sensitive.
• Tabs and Indentations will promote
readability.
• Keywords cannot be split or abbreviated.
• SQL Statements can be split across
lines.
• Clauses are placed in different lines, to
promote readability.
5. 5
5
5
Selecting All Columns
DEPTNO DNAME LOC
--------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> SELECT *
2 FROM departments;
7. 7
7
7
Default Column Headings
• Default justification
• Date and Character Data is Left Justified
• Numeric Data is Right Justified
• Display Headings in UPPER CASE.
• Alias name can be replaced by the column
name.
11. 11
11
11
Operator Precedence
SQL> SELECT ename, sal, 12*sal+100
2 FROM employees;
ENAME SAL 12*SAL+100
---------- --------- ----------
KING 5000 60100
BLAKE 2850 34300
CLARK 2450 29500
JONES 2975 35800
MARTIN 1250 15100
ALLEN 1600 19300
...
14 rows selected.
12. 12
12
12
Using Parentheses
SQL> SELECT ename, sal, 12*(sal+100)
2 FROM emp;
ENAME SAL 12*(SAL+100)
---------- --------- -----------
KING 5000 61200
BLAKE 2850 35400
CLARK 2450 30600
JONES 2975 36900
MARTIN 1250 16200
...
14 rows selected.
13. 13
13
13
Defining a Null Value
• NULL is UNASSIGNED Value.
SQL> SELECT ename, job, comm
2 FROM emp;
ENAME JOB COMM
---------- --------- ---------
KING PRESIDENT
BLAKE MANAGER
...
TURNER SALESMAN 0
...
14 rows selected.
14. 14
14
14
Null Values in Arithmetic Expr
• NULL as an operand will result NULL
SQL> select ename NAME, 12*sal+comm
2 from emp
3 WHERE ename='KING';
NAME 12*SAL+COMM
---------- -----------
KING
15. 15
15
15
Defining Column Alias
• The Heading name is replaced for the
current SELECT Statement.
• AS Keyword [ Optional ] between the
column name and the actual alias name
• Double Quotation Marks.
16. 16
16
16
Using Column Aliases
SQL> SELECT ename AS name, sal salary
2 FROM employees;
NAME SALARY
------------- ---------
...
SQL> SELECT ename "Name",
2 sal*12 "Annual Salary"
3 FROM employees;
Name Annual Salary
------------- -------------
...
21. 21
21
21
SQL Vs SQL*Plus
SQL
• A language
• Keyword cannot be
abbreviated
• Statements manipulate
data and table
definitions in the
database
• SQL statements are
stored in buffer
SQL*Plus
• An environment
• Keywords can be
abbreviated
• Commands do not
allow manipulation of
values in the database
• SQL*PLUS statements
are not stored in
Buffer
27. 27
27
27
Using ‘WHERE’ Clause
• Specify the Selection of rows retrieved by
the WHERE Clause.
• The WHERE clause follows the FROM
clause.
SELECT [DISTINCT] {*, column [alias], ...}
FROM table
[WHERE condition(s)];
28. 28
28
28
Using WHERE Clause
SQL> SELECT ename, job, deptno
2 FROM emp
3 WHERE job='CLERK';
ENAME JOB DEPTNO
---------- --------- ---------
JAMES CLERK 30
SMITH CLERK 20
ADAMS CLERK 20
MILLER CLERK 10
29. 29
29
29
Character Strings and Dates
• Character / Dates are Represented by the
Single Quotation Marks.
• Default date format is 'DD-MON-YY'
SQL> SELECT ename, job, deptno
2 FROM emp
3 WHERE ename = 'JAMES';
33. 33
33
33
Using BETWEEN Operator
ENAME SAL
---------- ---------
MARTIN 1250
TURNER 1500
WARD 1250
ADAMS 1100
MILLER 1300
SQL> SELECT ename, sal
2 FROM emp
3 WHERE sal BETWEEN 1000 AND 1500;
Lower
limit
Higher
limit
•Used to compare between range of
values. Values Specified are inclusive.
34. 34
34
34
Using IN Operator
•IN Operator to check with a List of
Values.
SQL> SELECT empno, ename, sal, mgr
2 FROM emp
3 WHERE mgr IN (7902, 7566, 7788);
EMPNO ENAME SAL MGR
--------- ---------- --------- ---------
7902 FORD 3000 7566
7369 SMITH 800 7902
7788 SCOTT 3000 7566
7876 ADAMS 1100 7788
35. 35
35
35
Using LIKE Operator
• Like Keyword Does Wildcard Searches in
Valid String Values..
% ---------- zero or many characters
_ ----------- one character
SQL> SELECT ename
2 FROM emp
3 WHERE ename LIKE 'S%';
36. 36
36
36
Using LIKE Operator
• ESCAPE identifier to search for "%" or "_".
SQL> SELECT ename
2 FROM emp
3 WHERE ename LIKE ‘_A%‘;
ENAME
----------
JAMES
WARD
37. 37
37
37
Using IS NULL Operator
•To Check for Null Values , IS NULL is
used.
SQL> SELECT ename, mgr
2 FROM emp
3 WHERE mgr IS NULL;
ENAME MGR
---------- ---------
KING
39. 39
39
39
Using AND Operator
•AND requires both conditions to be TRUE.
SQL> SELECT empno, ename, job, sal
2 FROM emp
3 WHERE sal>=1100
4 AND job='CLERK';
EMPNO ENAME JOB SAL
--------- ---------- --------- ---------
7876 ADAMS CLERK 1100
7934 MILLER CLERK 1300
40. 40
40
40
Using OR Operator
• OR requires either condition to be TRUE.
SQL> SELECT empno, ename, job, sal
2 FROM emp
3 WHERE sal>=1100
4 OR job='CLERK';
EMPNO ENAME JOB SAL
--------- ---------- --------- ---------
7839 KING PRESIDENT 5000
7698 BLAKE MANAGER 2850
7782 CLARK MANAGER 2450
7566 JONES MANAGER 2975
7654 MARTIN SALESMAN 1250
...
14 rows selected.
41. 41
41
41
Using NOT Operator
SQL> SELECT ename, job
2 FROM emp
3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST');
ENAME JOB
---------- ---------
KING PRESIDENT
MARTIN SALESMAN
ALLEN SALESMAN
TURNER SALESMAN
WARD SALESMAN
43. 43
43
43
‘ORDER BY’ Clause
• Sort rows specified by the order: ASC/DESC
SQL> SELECT ename, job, deptno, hiredate
2 FROM emp
3 ORDER BY hiredate;
ENAME JOB DEPTNO HIREDATE
---------- --------- --------- ---------
SMITH CLERK 20 17-DEC-80
ALLEN SALESMAN 30 20-FEB-81
...
14 rows selected.
44. 44
44
44
Sorting in Descending Order
SQL> SELECT ename, job, deptno, hiredate
2 FROM emp
3 ORDER BY hiredate DESC;
ENAME JOB DEPTNO HIREDATE
---------- --------- --------- ---------
ADAMS CLERK 20 12-JAN-83
SCOTT ANALYST 20 09-DEC-82
MILLER CLERK 10 23-JAN-82
JAMES CLERK 30 03-DEC-81
FORD ANALYST 20 03-DEC-81
KING PRESIDENT 10 17-NOV-81
MARTIN SALESMAN 30 28-SEP-81
...
14 rows selected.
45. 45
45
45
Sorting the rows by Alias
SQL> SELECT empno, ename, sal*12 annsal
2 FROM emp
3 ORDER BY annsal;
EMPNO ENAME ANNSAL
--------- ---------- ---------
7369 SMITH 9600
7900 JAMES 11400
7876 ADAMS 13200
7654 MARTIN 15000
7521 WARD 15000
7934 MILLER 15600
7844 TURNER 18000
...
14 rows selected.
46. 46
46
46
Sorting by Multiple Columns
• The order of ORDER BY list is the order of
sort.
SQL> SELECT ename, deptno, sal
2 FROM emp
3 ORDER BY deptno, sal DESC;
ENAME DEPTNO SAL
---------- --------- ---------
KING 10 5000
CLARK 10 2450
MILLER 10 1300
FORD 20 3000
...
14 rows selected.