DQL_DEMO_ORACLE19C_1738294641858
DQL_DEMO_ORACLE19C_1738294641858
----------------------------------------------------------------------------
--SELECT ALL ROWS ALL COULUMNS
-------------------------------------------------------------------------------
SQL> SELECT * FROM BRANCH;
BR_NAME ASSETS
-------------------- ----------
SIVAKASI MEPCO 30000000
VIRUDUNAGAR EAST 45000000
MADURAI CENTRAL 25000000
SIVAKASI MAIN 30200000
BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
SIVAKASI
BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
SIVAKASI
CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
SIVAKASI
CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
SIVAKASI
BR_NAME ASSETS
-------------------- ----------
SIVAKASI MEPCO 30000000
VIRUDUNAGAR EAST 45000000
MADURAI CENTRAL 25000000
SIVAKASI MAIN 30200000
BR_NAME ASSETS+10000
-------------------- ------------
SIVAKASI MEPCO 30010000
VIRUDUNAGAR EAST 45010000
MADURAI CENTRAL 25010000
SIVAKASI MAIN 30210000
BR_NAME INCR_ASSETS
-------------------- -----------
SIVAKASI MEPCO 30010000
VIRUDUNAGAR EAST 45010000
MADURAI CENTRAL 25010000
SIVAKASI MAIN 30210000
BR_NAME DECR_ASSETS
-------------------- -----------
SIVAKASI MEPCO 29990000
VIRUDUNAGAR EAST 44990000
MADURAI CENTRAL 24990000
SIVAKASI MAIN 30190000
SQL> SELECT BR_NAME,ASSETS*2 MUL_ASSETS FROM BRANCH;
BR_NAME MUL_ASSETS
-------------------- ----------
SIVAKASI MEPCO 60000000
VIRUDUNAGAR EAST 90000000
MADURAI CENTRAL 50000000
SIVAKASI MAIN 60400000
BR_NAME DIV_ASSETS
-------------------- ----------
SIVAKASI MEPCO 15000000
VIRUDUNAGAR EAST 22500000
MADURAI CENTRAL 12500000
SIVAKASI MAIN 15100000
--COLUMN CONCATENATION
-------------------------------------------------------------------------------
SQL> SELECT BR_NAME||' HAS '||'RS.'||ASSETS FROM BRANCH;
BR_NAME||'HAS'||'RS.'||ASSETS
--------------------------------------------------------------------
SIVAKASI MEPCO HAS RS.30000000
VIRUDUNAGAR EAST HAS RS.45000000
MADURAI CENTRAL HAS RS.25000000
SIVAKASI MAIN HAS RS.30200000
6 rows selected.
7 rows selected.
6 rows selected.
SQL> SELECT * FROM BRANCH WHERE ASSETS BETWEEN 20000000 AND 40000000;
SQL> SELECT * FROM BRANCH WHERE ASSETS NOT BETWEEN 20000000 AND 40000000;
7 rows selected.
SQL> SELECT * FROM BRANCH WHERE BR_CITY LIKE 'SIVAKASI' OR BR_CITY LIKE
'VIRUDUNAGAR';
1 row created.
--SQL SINGLE ROW FUNCTIONS -functions operate on single-row only and return one
result per row
---------------------------------------------------------------------------------
CHAR FUNCTIONS
---------------------------------------------------------------------------------
--TO DISPLAY VARCHAR FEILDS IN LOWER, UPPER, INITCAP(FIRST CHAR IN EACH WORD AS
CAPITAL)
SQL> SELECT LOWER(CUS_NAME),UPPER(CUS_NAME),INITCAP(CUS_NAME) FROM CUSTOMER;
INITCAP('MYDEARS
----------------
My Dear Students
CONCAT('DR.',CUS_NAME)
-----------------------
DR.KAVI
DR.KAVI PRIYA
DR.PRIYA
CONCAT('DR.',CONCAT('S',C
-------------------------
DR.S.KAVI
DR.S.KAVI PRIYA
DR.S.PRIYA
FORMAL_NAME
-------------------------
DR.S.KAVI
DR.S.KAVI PRIYA
DR.S.PRIYA
SUBSTR(CUS_N
------------
KAV
KAV
PRI
SUBSTR(C
--------
AV
AV
RI
LENGTH(CUS_NAME)
----------------
4
10
5
--
CUS_NAME
--------------------
KAVI
KAVI PRIYA
PRIYA
INSTR(CUS_NAME,'R')
-------------------
0
7
2
PADDED_CUS_NAME
--------------------------------------------------------------------------------
****************KAVI
**********KAVI PRIYA
***************PRIYA
CUS_NAME
--------------------
KAVI
KAVI PRIYA
PRIYA
TRIM(CUS_NAME)
--------------------
KAVI
KAVI PRIYA
PRIYA
TRIM(
-----
MEPCO
MEPCO
MEPCO
TRIM(
-----
MEPCO
'MEPCO'
-----------------
MEPCO
TRIM(
-----
MEPCO
RTRIM('MEP
----------
MEPCO
LTRIM('MEPCO
------------
MEPCO
REPLACE(CUS_NAME,'K'
--------------------
RAVI
RAVI PRIYA
PRIYA
REPLACE(CUS_NAME,'KAVI','PAVI')
--------------------------------------------------------------------------------
PAVI
PAVI PRIYA
PRIYA
REPLACE(CUS_NAME,'KAVI','PAVITHRA')
-----------------------------------------------------------------------------------
-------------------------------------
PAVITHRA
PAVITHRA PRIYA
PRIYA
--ASCII(string) - Returns the ASCII (or Unicode) value of the first character in a
string
ASCII(CUS_NAME)
---------------
75
75
80
ASCII('A')
----------
65
65
65
ASCII('KA')
-----------
75
75
75
--NUMBER FUNCTIONS
-----------------------------------------------------------------------------
SQL> SELECT * FROM BRANCH;
10 rows selected.
-- NO DECIMALS
ROUND(ASSETS)
-------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255349
149
485599149
10 rows selected.
ROUND(ASSETS,0)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255349
149
485599149
10 rows selected.
--2 DECIMALS
ROUND(ASSETS,2)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.89
148.89
485599149
10 rows selected.
ROUND(ASSETS,-1)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255350
150
485599150
10 rows selected.
ROUND(ASSETS,-2)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255300
100
485599100
10 rows selected.
--ROUND OFF TO NEAREST 1000'S
SQL> SELECT ROUND(ASSETS,-3) FROM BRANCH;
ROUND(ASSETS,-3)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255000
0
485599000
10 rows selected.
ASSETS
----------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.89
148.88956
485599149
10 rows selected.
TRUNC(ASSETS)
-------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348
148
485599148
10 rows selected.
TRUNC(ASSETS,0)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348
148
485599148
10 rows selected.
TRUNC(ASSETS,1)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.8
148.8
485599149
10 rows selected.
TRUNC(ASSETS,2)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.88
148.88
485599149
10 rows selected.
TRUNC(ASSETS,3)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.89
148.889
485599149
10 rows selected.
TRUNC(ASSETS,-1)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255340
140
485599140
10 rows selected.
TRUNC(ASSETS,-2)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255300
100
485599100
10 rows selected.
TRUNC(ASSETS,-3)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255000
0
485599000
10 rows selected.
TRUNC(ASSETS,-10)
-----------------
0
0
0
0
0
0
0
0
0
0
10 rows selected.
MOD(ASSETS,11)
--------------
8
1
3
6
7
7
8
6.88958
5.88956
1.88956
10 rows selected.
MOD(ASSETS,10)
--------------
0
0
0
0
0
0
0
8.88958
8.88956
8.88956
10 rows selected.
ABS(-23.6)
----------
23.6
CEIL(23.6) FLOOR(23.6)
---------- -----------
24 23
POWER(2,3) SQRT(16)
---------- ----------
8 4
LN(20) LOG(10,100)
---------- -----------
2.99573227 2
EXP(1)
----------
2.71828183
EXP(23.6)
----------
1.7756E+10
--GREATEST(number1, number2, ...) - Returns the largest number from the list of
numbers provided
--LEAST(number1, number2, ...) - Returns the smallest number from the list of
numbers provided
GREATEST(2,3,10) LEAST(2.3,4.6,7.9)
---------------- ------------------
10 2.3
VALUE
----------
.309657988
VALUE
----------
.996486261
--DATE FUNCTIONS
---------------------------------------------------------------------------------
SYSDATE
---------
28-JAN-25
CURRENT_D
---------
28-JAN-25
CURRENT_TIMESTAMP
---------------------------------------------------------------------------
28-JAN-25 10.07.15.718000 AM +05:30
SYSDATE+5
---------
02-FEB-25
SYSDATE-5
---------
23-JAN-25
SQL> select sysdate*5 from dual;
select sysdate*5 from dual
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected NUMBER got DATE
--Date-date will return number of days (subtracts one date from another)
DAY_DIFFERENCE
--------------
12.4248495
DAY_DIFFERENCE
--------------
12
DAY_DIFFERENCE
--------------
378
WEEK_DIFFERENCE
---------------
54
YEAR_DIFFERENCE
---------------
12.6
--DATE FUNCTIONS
-------------------------------------------------------------------------------
--TO_DATE('string', 'format_mask’) - Converts a string into a date format
TO_DATE('
---------
21-JAN-25
--TO_CHAR(date_value, 'format_mask’) - Converts a date (or number) into a string
with a specified format
TO_CHAR(SYSDATE,'YY
-------------------
2025-01-28 10:17:28
TO_CHAR(SYSDATE,'
-----------------
25-01-28 10:17:45
TO_CHAR(
--------
25-01-28
ADD_MONTH
---------
28-APR-25
ADD_MONTH
---------
28-OCT-24
ADD_MONTH
---------
28-JAN-25
MONTHS_BETWEEN('01-SEP-95','11-JAN-94')
---------------------------------------
19.6774194
TRUNC(MONTHS_BETWEEN('01-SEP-95','11-JAN-94'))
----------------------------------------------
19
SQL> SELECT ROUND(MONTHS_BETWEEN('01-SEP-95', '11-JAN-94')) FROM DUAL;
ROUND(MONTHS_BETWEEN('01-SEP-95','11-JAN-94'))
----------------------------------------------
20
ROUND(MONTHS_BETWEEN('01-SEP-95',SYSDATE))
------------------------------------------
-353
ROUND(MONTHS_BETWEEN(SYSDATE,SYSDATE+300))
------------------------------------------
-10
ROUND(MONTHS_BETWEEN(SYSDATE,SYSDATE-300))
------------------------------------------
10
--NEXT_DAY (date, ‘'day_name'’) - Returns the next specified day of the week after
a given date
NEXT_DAY(
---------
03-FEB-25
NEXT_DAY(
---------
04-FEB-25
NEXT_DAY(
---------
01-FEB-25
--LAST_DAY(date)-Returns the last day of the month for the specified date
LAST_DAY(
---------
31-JAN-25
LAST_DAY(
---------
28-FEB-25
SQL> SELECT LAST_DAY(SYSDATE+50) FROM DUAL;
LAST_DAY(
---------
31-MAR-25
TRUNC(SYS
---------
28-JAN-25
TRUNC(SYS
---------
01-JAN-25
TRUNC(SYS
---------
01-JAN-25
--EXTRACT DAY
EXTRACT(DAYFROMSYSDATE)
-----------------------
28
--EXTRACT MONTH
EXTRACT(MONTHFROMSYSDATE)
-------------------------
1
--EXTRACT YEAR
EXTRACT(YEARFROMSYSDATE)
------------------------
2025
--EXTRACT HOURS
SQL> SELECT EXTRACT(HOUR FROM SYSDATE) FROM dual;
SELECT EXTRACT(HOUR FROM SYSDATE) FROM dual
*
ERROR at line 1:
ORA-30076: invalid extract field for extract source
EXTRACT(HOURFROMCURRENT_TIMESTAMP)
----------------------------------
5
--EXTRACT MINUTES
SQL> SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) FROM dual;
EXTRACT(MINUTEFROMCURRENT_TIMESTAMP)
------------------------------------
2
--EXTRACT SECONDS
EXTRACT(SECONDFROMCURRENT_TIMESTAMP)
------------------------------------
18.752
--ROUND (date_value, format_mask)-Returns date rounded to the unit (‘YYYY’ for
year, ‘MM’ – month, ‘DD’ – day, ‘HH’ – hour, ‘MI’ – minutes and ‘SS’ –seconds)
specified by the format mask. If the format mask is omitted, date is rounded to the
nearest date
ROUND(SYS
---------
01-JAN-25
ROUND(SYS
---------
01-FEB-25
ROUND(SYS
---------
01-FEB-25
ROUND(SYS
---------
28-JAN-25
ROUND(SYS
---------
26-JAN-25
ROUND(SYS
---------
28-JAN-25
TO_NUMBER('123')
----------------
123
TO_C
----
2025
TO
--
25
TO_CHAR(SYSDATE,'YEAR')
------------------------------------------
TWENTY TWENTY-FIVE
TO
--
01
TO_CHAR(SYSD
------------
JAN
TO_CHAR(SYSDATE,'MONTH')
------------------------------------
JANUARY
TO_CHAR(SYSDATE,'DAY')
------------------------------------
TUESDAYP-;/
7 rows selected.
--MULTIROW FUNCTIONS - manipulate groups of rows to give one result per group of
rows (AGGREGATE FUNCTIONS)
-----------------------------------------------------------------------------------
----------------------------
--COUNT() - COUNT NO OF VALUES IN RESULT RELATION
SQL> SELECT * FROM BRANCH;
7 rows selected.
1 row created.
1 row created.
9 rows selected.
COUNT(*)
----------
9
COUNT(BR_CITY)
--------------
9
COUNT(ASSETS)
-------------
7
AVG(ASSETS)
-----------
21243142.9
SUM(ASSETS)
-----------
148702000
SQL> SELECT MIN(ASSETS) FROM BRANCH;
MIN(ASSETS)
-----------
2501000
MAX(ASSETS)
-----------
45000000
SQL> SELECT MEDIAN(ASSETS) FROM BRANCH;
MEDIAN(ASSETS)
--------------
25000000
VARIANCE(ASSETS)
----------------
2.4632E+14
STDDEV(ASSETS)
--------------
15694501
9 rows selected.
9 rows selected.
9 rows selected.
9 rows selected.
9 rows selected.
BR_NAME
--------------------
MADURAI CENTRAL
MADURAI EAST
MADURAI NORTH
MADURAI WEST
SIVAKASI EAST
SIVAKASI MAIN
SIVAKASI MEPCO
SIVAKASI WEST
VIRUDUNAGAR EAST
9 rows selected.
BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
BR_CITY COUNT(*)
-------------------- ----------
SIVAKASI 4
VIRUDUNAGAR 1
MADURAI 4
BR_CITY COUNT(BR_CITY)
-------------------- --------------
SIVAKASI 4
VIRUDUNAGAR 1
MADURAI 4
BR_CITY COUNT(ASSETS)
-------------------- -------------
SIVAKASI 2
VIRUDUNAGAR 1
MADURAI 4
SQL> SELECT BR_CITY,MIN(ASSETS) FROM BRANCH GROUP BY BR_CITY;
BR_CITY MIN(ASSETS)
-------------------- -----------
SIVAKASI 30000000
VIRUDUNAGAR 45000000
MADURAI 2501000
MIN(ASSETS)
-----------
2501000
--GROUP BY HAVING - group rows by a specific column, and then filter the groups
based on a condition
9 rows selected.
BR_CITY TOTAL_ASSETS
-------------------- ------------
SIVAKASI 60200000
BR_CITY TOTAL_ASSETS
-------------------- ------------
SIVAKASI 60200000
VIRUDUNAGAR 45000000
MADURAI 43502000