0% found this document useful (0 votes)
6 views

DQL_DEMO_ORACLE19C_1738294641858

The document provides a comprehensive overview of SQL commands for querying a database, specifically focusing on selecting data from a 'BRANCH' and 'CUSTOMER' table. It covers various SQL operations such as selecting all columns, specific columns, unique values, arithmetic operations, and conditional selections using operators like IN, LIKE, and BETWEEN. Additionally, it illustrates the use of single-row functions to manipulate string data and handle NULL values in the database.

Uploaded by

akashkalimuthu4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

DQL_DEMO_ORACLE19C_1738294641858

The document provides a comprehensive overview of SQL commands for querying a database, specifically focusing on selecting data from a 'BRANCH' and 'CUSTOMER' table. It covers various SQL operations such as selecting all columns, specific columns, unique values, arithmetic operations, and conditional selections using operators like IN, LIKE, and BETWEEN. Additionally, it illustrates the use of single-row functions to manipulate string data and handle NULL values in the database.

Uploaded by

akashkalimuthu4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 31

--SELECT FROM SINGLE RELATION

----------------------------------------------------------------------------
--SELECT ALL ROWS ALL COULUMNS
-------------------------------------------------------------------------------
SQL> SELECT * FROM BRANCH;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000

SQL> SELECT BR_NAME,BR_CITY,ASSETS FROM BRANCH;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000

--SELECT FEW COULUMNS


-------------------------------------------------------------------------------
SQL> SELECT BR_NAME,ASSETS FROM BRANCH;

BR_NAME ASSETS
-------------------- ----------
SIVAKASI MEPCO 30000000
VIRUDUNAGAR EAST 45000000
MADURAI CENTRAL 25000000
SIVAKASI MAIN 30200000

--SELECT UNIQUE COLUMN VALUES


---------------------------------------------------------------------------------
SQL> SELECT BR_CITY FROM BRANCH;

BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
SIVAKASI

SQL> SELECT DISTINCT BR_CITY FROM BRANCH;

BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI

--RENAME COLUMNS WHILE DISPLAY


-------------------------------------------------------------------------
SQL> SELECT BR_CITY FROM BRANCH;

BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
SIVAKASI

SQL> SELECT BR_CITY CITY FROM BRANCH;

CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
SIVAKASI

SQL> SELECT BR_CITY AS CITY FROM BRANCH;

CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI
SIVAKASI

--ARITHMENTIC OPERATIONS WITH COLUMNS OF NUMBER DOMAINS


-------------------------------------------------------------------------
SQL> SELECT BR_NAME,ASSETS FROM BRANCH;

BR_NAME ASSETS
-------------------- ----------
SIVAKASI MEPCO 30000000
VIRUDUNAGAR EAST 45000000
MADURAI CENTRAL 25000000
SIVAKASI MAIN 30200000

SQL> SELECT BR_NAME,ASSETS+10000 FROM BRANCH;

BR_NAME ASSETS+10000
-------------------- ------------
SIVAKASI MEPCO 30010000
VIRUDUNAGAR EAST 45010000
MADURAI CENTRAL 25010000
SIVAKASI MAIN 30210000

SQL> SELECT BR_NAME,ASSETS+10000 INCR_ASSETS FROM BRANCH;

BR_NAME INCR_ASSETS
-------------------- -----------
SIVAKASI MEPCO 30010000
VIRUDUNAGAR EAST 45010000
MADURAI CENTRAL 25010000
SIVAKASI MAIN 30210000

SQL> SELECT BR_NAME,ASSETS-10000 DECR_ASSETS FROM BRANCH;

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

SQL> SELECT BR_NAME,ASSETS/2 DIV_ASSETS FROM BRANCH;

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

SQL> SELECT BR_NAMEASSETS FROM BRANCH;


SELECT BR_NAMEASSETS FROM BRANCH
*
ERROR at line 1:
ORA-00904: "BR_NAMEASSETS": invalid identifier
--CHECKS FOR COLUMN NAME

SQL> SELECT BR_NAME+ASSETS FROM BRANCH;


SELECT BR_NAME+ASSETS FROM BRANCH
*
ERROR at line 1:
ORA-01722: invalid number
--ONE COLUMN CHAR & OTHER IS NUMBER SO ERROR

--SELECT WITH CONDITIONS


--------------------------------------------------------------------------------
SQL> SELECT * FROM BRANCH;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000
7 rows selected.

SQL> SELECT * FROM BRANCH WHERE ASSETS=2501000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
MADURAI WEST MADURAI 2501000

SQL> SELECT * FROM BRANCH WHERE ASSETS>2501000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI NORTH MADURAI 3501000

6 rows selected.

SQL> SELECT * FROM BRANCH WHERE ASSETS>=2501000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

7 rows selected.

SQL> SELECT * FROM BRANCH WHERE ASSETS<=2501000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
MADURAI WEST MADURAI 2501000

SQL> SELECT * FROM BRANCH WHERE ASSETS<>2501000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI NORTH MADURAI 3501000

6 rows selected.

--FOR BETWEEN NOTE RANGE VALUES ARE INCLUDED

SQL> SELECT * FROM BRANCH WHERE ASSETS BETWEEN 20000000 AND 40000000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000

SQL> SELECT * FROM BRANCH WHERE ASSETS NOT BETWEEN 20000000 AND 40000000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

--equivalent to between operator


SQL> SELECT * FROM BRANCH WHERE ASSETS>=20000000 AND ASSETS<=40000000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000

SQL> SELECT * FROM BRANCH WHERE ASSETS>=20000000 OR ASSETS<=40000000;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

7 rows selected.

--IN OPERATOR IS EQUAL TO CHECKING MULTIPLE CONDITIONS USING OR

SQL> SELECT * FROM BRANCH WHERE BR_CITY IN('SIVAKASI','VIRUDUNAGAR');

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
SIVAKASI MAIN SIVAKASI 30200000

SQL> SELECT * FROM BRANCH WHERE BR_CITY LIKE 'SIVAKASI' OR BR_CITY LIKE
'VIRUDUNAGAR';

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
SIVAKASI MAIN SIVAKASI 30200000

SQL> SELECT * FROM BRANCH WHERE BR_CITY NOT IN('SIVAKASI','VIRUDUNAGAR');

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
MADURAI CENTRAL MADURAI 25000000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

--LIKE OPERATOE HAS PATTERN SYMBOLS _(UNDERSCORE) - O OR ONE CHAR, % - O OR MORE


CHARS

SQL> SELECT * FROM BRANCH WHERE BR_CITY LIKE '%D%';

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

SQL> SELECT * FROM BRANCH WHERE BR_CITY LIKE '__D%';

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
MADURAI CENTRAL MADURAI 25000000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

SQL> SELECT * FROM BRANCH WHERE BR_CITY NOT LIKE '__D%';

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
SIVAKASI MAIN SIVAKASI 30200000

SQL> SELECT * FROM CUSTOMER;

CUS_NAME CUS_CITY PHONE


-------------------- -------------------- ----------
EMAIL DOB AGE
----------------------------------- --------- ----------
KAVI MADURAI
21-MAR-25 0

KAVI PRIYA MADURAI


21-MAR-81 43

SQL> SET LINESIZE 120;


SQL> INSERT INTO CUSTOMER
VALUES('PRIYA','SIVAKASI',9842295563,'[email protected]','21-MAR-1981');
INSERT INTO CUSTOMER
VALUES('PRIYA','SIVAKASI',9842295563,'[email protected]','21-MAR-1981')
*
ERROR at line 1:
ORA-00947: not enough values
SQL> INSERT INTO CUSTOMER
VALUES('PRIYA','SIVAKASI',9842295563,'[email protected]','21-MAR-1981');
INSERT INTO CUSTOMER
VALUES('PRIYA','SIVAKASI',9842295563,'[email protected]','21-MAR-1981')
*
ERROR at line 1:
ORA-00947: not enough values

SQL> INSERT INTO CUSTOMER(CUS_NAME,CUS_CITY,PHONE,EMIAL,DOB)


VALUES('PRIYA','SIVAKASI',9842295563,'[email protected]','21-MAR-1981');
INSERT INTO CUSTOMER(CUS_NAME,CUS_CITY,PHONE,EMIAL,DOB)
VALUES('PRIYA','SIVAKASI',9842295563,'[email protected]','21-MAR-1981')
*
ERROR at line 1:
ORA-00904: "EMIAL": invalid identifier

SQL> INSERT INTO CUSTOMER(CUS_NAME,CUS_CITY,PHONE,EMAIL,DOB)


VALUES('PRIYA','SIVAKASI',9842295563,'[email protected]','21-MAR-1981');

1 row created.

SQL> SELECT * FROM CUSTOMER;

CUS_NAME CUS_CITY PHONE EMAIL


DOB AGE
-------------------- -------------------- ----------
----------------------------------- --------- ----------
KAVI MADURAI
21-MAR-25 0
KAVI PRIYA MADURAI
21-MAR-81 43
PRIYA SIVAKASI 9842295563 [email protected]
21-MAR-81

--TO CHECK COLUMNS WITH NULL VAUES USE IS NULL OPERATOR

SQL> SELECT * FROM CUSTOMER WHERE AGE IS NULL;

CUS_NAME CUS_CITY PHONE EMAIL


DOB AGE
-------------------- -------------------- ----------
----------------------------------- --------- ----------
PRIYA SIVAKASI 9842295563 [email protected]
21-MAR-81

SQL> SELECT * FROM CUSTOMER WHERE AGE IS NOT NULL;

CUS_NAME CUS_CITY PHONE EMAIL


DOB AGE
-------------------- -------------------- ----------
----------------------------------- --------- ----------
KAVI MADURAI
21-MAR-25 0
KAVI PRIYA MADURAI
21-MAR-81 43

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

LOWER(CUS_NAME) UPPER(CUS_NAME) INITCAP(CUS_NAME)


-------------------- -------------------- --------------------
kavi KAVI Kavi
kavi priya KAVI PRIYA Kavi Priya
priya PRIYA Priya

SQL> SELECT INITCAP('MY DEAR STUDENTS') FROM DUAL;

INITCAP('MYDEARS
----------------
My Dear Students

-- concat(string1,string2) - TO CONCATENATE TWO STRINGS

SQL> SELECT CONCAT('DR.',CUS_NAME) FROM CUSTOMER;

CONCAT('DR.',CUS_NAME)
-----------------------
DR.KAVI
DR.KAVI PRIYA
DR.PRIYA

--CAN NOT CONCATENATE MORE THAN 2 STRINGS DIRECTLY

SQL> SELECT CONCAT('DR.','S','.',CUS_NAME) FROM CUSTOMER;


SELECT CONCAT('DR.','S','.',CUS_NAME) FROM CUSTOMER
*
ERROR at line 1:
ORA-00909: invalid number of arguments

--USE NESTED CONCAT()

SQL> SELECT CONCAT('DR.',CONCAT('S',CONCAT('.',CUS_NAME))) FROM CUSTOMER;

CONCAT('DR.',CONCAT('S',C
-------------------------
DR.S.KAVI
DR.S.KAVI PRIYA
DR.S.PRIYA

SQL> SELECT CONCAT('DR.',CONCAT('S',CONCAT('.',CUS_NAME))) AS FORMAL_NAME FROM


CUSTOMER;

FORMAL_NAME
-------------------------
DR.S.KAVI
DR.S.KAVI PRIYA
DR.S.PRIYA

--SUBSTR(string, start_position, length) - EXTRACTS STRING OF DETERMINED LENGTH


SQL> SELECT SUBSTR(CUS_NAME,1,3) FROM CUSTOMER;

SUBSTR(CUS_N
------------
KAV
KAV
PRI

SQL> SELECT SUBSTR(CUS_NAME,2,2) FROM CUSTOMER;

SUBSTR(C
--------
AV
AV
RI

--TO FIND LENGTH OF STRING COLUMNS

SQL> SELECT LENGTH(CUS_NAME) FROM CUSTOMER;

LENGTH(CUS_NAME)
----------------
4
10
5

--

SQL> SELECT CUS_NAME FROM CUSTOMER;

CUS_NAME
--------------------
KAVI
KAVI PRIYA
PRIYA

--INSTR(string, substring) - Finds numeric position of a named character

SQL> SELECT INSTR(CUS_NAME,'R') FROM CUSTOMER;

INSTR(CUS_NAME,'R')
-------------------
0
7
2

--LPAD(string, length, pad_string) / RPAD (string, length, pad_string) - Pads the


character value left-justfied / right-justified

SQL> SELECT LPAD(CUS_NAME, 20, '*') AS Padded_CUS_NAME FROM CUSTOMER;

PADDED_CUS_NAME
--------------------------------------------------------------------------------
****************KAVI
**********KAVI PRIYA
***************PRIYA

SQL> SELECT RPAD(CUS_NAME, 20, '*') AS RPAD_CUS FROM CUSTOMER;


RPAD_CUS
--------------------------------------------------------------------------------
KAVI****************
KAVI PRIYA**********
PRIYA***************

--Trim(string)/LTRIM(string)/RTRIM(string) - Removes leading and trailing spaces

SQL> SELECT CUS_NAME FROM CUSTOMER;

CUS_NAME
--------------------
KAVI
KAVI PRIYA
PRIYA

SQL> SELECT TRIM(CUS_NAME) FROM CUSTOMER;

TRIM(CUS_NAME)
--------------------
KAVI
KAVI PRIYA
PRIYA

SQL> SELECT TRIM(' MEPCO ') FROM CUSTOMER;

TRIM(
-----
MEPCO
MEPCO
MEPCO

SQL> SELECT TRIM(' MEPCO ') FROM DUAL;

TRIM(
-----
MEPCO

SQL> SELECT ' MEPCO ' FROM DUAL;

'MEPCO'
-----------------
MEPCO

SQL> SELECT TRIM(' MEPCO ') FROM DUAL;

TRIM(
-----
MEPCO

SQL> SELECT RTRIM(' MEPCO ') FROM DUAL;

RTRIM('MEP
----------
MEPCO

SQL> SELECT LTRIM(' MEPCO ') FROM DUAL;

LTRIM('MEPCO
------------
MEPCO

--REPLACE(string, old_substring, new_substring)


--Replaces all occurrences of a substring within a string with another substring.

SQL> SELECT REPLACE(CUS_NAME,'K','R') FROM CUSTOMER;

REPLACE(CUS_NAME,'K'
--------------------
RAVI
RAVI PRIYA
PRIYA

SQL> SELECT REPLACE(CUS_NAME,'KAVI','PAVI') FROM CUSTOMER;

REPLACE(CUS_NAME,'KAVI','PAVI')
--------------------------------------------------------------------------------
PAVI
PAVI PRIYA
PRIYA

SQL> SELECT REPLACE(CUS_NAME,'KAVI','PAVITHRA') FROM CUSTOMER;

REPLACE(CUS_NAME,'KAVI','PAVITHRA')
-----------------------------------------------------------------------------------
-------------------------------------
PAVITHRA
PAVITHRA PRIYA
PRIYA

--ASCII(string) - Returns the ASCII (or Unicode) value of the first character in a
string

SQL> SELECT ASCII(CUS_NAME) FROM CUSTOMER;

ASCII(CUS_NAME)
---------------
75
75
80

SQL> SELECT ASCII('A') FROM CUSTOMER;

ASCII('A')
----------
65
65
65

SQL> SELECT ASCII('KA') FROM CUSTOMER;

ASCII('KA')
-----------
75
75
75

SQL> SELECT ASCII('KAVI') FROM DUAL;


ASCII('KAVI')
-----------
75

--NUMBER FUNCTIONS
-----------------------------------------------------------------------------
SQL> SELECT * FROM BRANCH;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000
SIVAKASI NORTH SIVAKASI 1255348.89
SIVAKASI WEST SIVAKASI 148.88956
SIVAKASI EAST SIVAKASI 485599149

10 rows selected.

-- ROUND(number,decimals) - Rounds value to specified decimal

-- NO DECIMALS

SQL> SELECT ROUND(ASSETS) FROM BRANCH;

ROUND(ASSETS)
-------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255349
149
485599149

10 rows selected.

SQL> SELECT ROUND(ASSETS,0) FROM BRANCH;

ROUND(ASSETS,0)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255349
149
485599149
10 rows selected.

--2 DECIMALS

SQL> SELECT ROUND(ASSETS,2) FROM BRANCH;

ROUND(ASSETS,2)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.89
148.89
485599149

10 rows selected.

--ROUND OFF TO NEAREST 10'S

SQL> SELECT ROUND(ASSETS,-1) FROM BRANCH;

ROUND(ASSETS,-1)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255350
150
485599150

10 rows selected.

--ROUND OFF TO NEAREST 100'S

SQL> SELECT ROUND(ASSETS,-2) FROM BRANCH;

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.

--TRUNC(number, decimals) - Truncates value to specified decimal

SQL> SELECT ASSETS FROM BRANCH;

ASSETS
----------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.89
148.88956
485599149

10 rows selected.

SQL> SELECT TRUNC(ASSETS) FROM BRANCH;

TRUNC(ASSETS)
-------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348
148
485599148

10 rows selected.

SQL> SELECT TRUNC(ASSETS,0) FROM BRANCH;

TRUNC(ASSETS,0)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348
148
485599148

10 rows selected.

SQL> SELECT TRUNC(ASSETS,1) FROM BRANCH;

TRUNC(ASSETS,1)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.8
148.8
485599149

10 rows selected.

SQL> SELECT TRUNC(ASSETS,2) FROM BRANCH;

TRUNC(ASSETS,2)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.88
148.88
485599149

10 rows selected.

SQL> SELECT TRUNC(ASSETS,3) FROM BRANCH;

TRUNC(ASSETS,3)
---------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255348.89
148.889
485599149

10 rows selected.

--TRUNCATE TO NEAREST 10'S

SQL> SELECT TRUNC(ASSETS,-1) FROM BRANCH;

TRUNC(ASSETS,-1)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255340
140
485599140

10 rows selected.

--TRUNCATE TO NEAREST 100'S

SQL> SELECT TRUNC(ASSETS,-2) FROM BRANCH;

TRUNC(ASSETS,-2)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255300
100
485599100

10 rows selected.

--TRUNCATE TO NEAREST 1000'S

SQL> SELECT TRUNC(ASSETS,-3) FROM BRANCH;

TRUNC(ASSETS,-3)
----------------
30000000
45000000
25000000
30200000
12500000
2501000
3501000
1255000
0
485599000
10 rows selected.

--TRUNCATE TO NEAREST 10000000000'S

SQL> SELECT TRUNC(ASSETS,-10) FROM BRANCH;

TRUNC(ASSETS,-10)
-----------------
0
0
0
0
0
0
0
0
0
0

10 rows selected.

--MOD(number, divisor) - Returns remainder of division

SQL> SELECT MOD(ASSETS,11) FROM BRANCH;

MOD(ASSETS,11)
--------------
8
1
3
6
7
7
8
6.88958
5.88956
1.88956

10 rows selected.

SQL> SELECT MOD(ASSETS,10) FROM BRANCH;

MOD(ASSETS,10)
--------------
0
0
0
0
0
0
0
8.88958
8.88956
8.88956

10 rows selected.

--ABS(number) - Returns the absolute value of a number


SQL> select abs(-23.6) from dual;

ABS(-23.6)
----------
23.6

SQL> select ceil(23.6),floor(23.6) from dual;

--CEIL(number) /FLOOR(number) - Returns the largest/smallest integer greater than


or equal to a given number

CEIL(23.6) FLOOR(23.6)
---------- -----------
24 23

--POWER(base, exponent) - Raises a number to the power of another number


--SQRT(number) - Returns the square root of a number

SQL> select power(2,3),sqrt(16) from dual;

POWER(2,3) SQRT(16)
---------- ----------
8 4

SIGN(number) - Returns 1 if the number is positive, 0 if the number is zero or -1


if the number is negative

SQL> select sign(23),sign(-23),sign(0) from dual;

SIGN(23) SIGN(-23) SIGN(0)


---------- ---------- ----------
1 -1 0

--LN(number) - Returns the natural logarithm (log base e) of a number


--LOG(base, number) - Returns the logarithm of a number to a specified base

SQL> select ln(20),log(10,100) from dual;

LN(20) LOG(10,100)
---------- -----------
2.99573227 2

--EXP(number) - Returns e raised to the power of the given number.

SQL> SELECT EXP(1) FROM dual;

EXP(1)
----------
2.71828183

SQL> SELECT EXP(23.6) FROM dual;

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

SQL> SELECT GREATEST(2,3,10), LEAST(2.3,4.6,7.9) FROM DUAL;

GREATEST(2,3,10) LEAST(2.3,4.6,7.9)
---------------- ------------------
10 2.3

--DBMS_RANDOM Package - Generates a random number between 0 and 1

SQL> SELECT DBMS_RANDOM.VALUE FROM dual;

VALUE
----------
.309657988

SQL> SELECT DBMS_RANDOM.VALUE FROM dual;

VALUE
----------
.996486261

--DATE FUNCTIONS
---------------------------------------------------------------------------------

SQL> select sysdate from dual;

SYSDATE
---------
28-JAN-25

SQL> select CURRENT_date from dual;

CURRENT_D
---------
28-JAN-25

SQL> SELECT CURRENT_TIMESTAMP FROM dual;

CURRENT_TIMESTAMP
---------------------------------------------------------------------------
28-JAN-25 10.07.15.718000 AM +05:30

--Arithmetic with Dates


----------------------------------------------------------------------------
--Date+Number will return a date (ADDS a number of days to a date)
--Date-Number will return a date (SUBTRACTS a number of days to a date)
SQL> select sysdate+5 from dual;

SYSDATE+5
---------
02-FEB-25

SQL> select sysdate-5 from dual;

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

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)

SQL> SELECT SYSDATE - TO_DATE('16-01-25', 'DD-MM-YY') AS day_difference FROM dual;

DAY_DIFFERENCE
--------------
12.4248495

SQL> SELECT TRUNC(SYSDATE - TO_DATE('16-01-25', 'DD-MM-YY')) AS day_difference FROM


dual;

DAY_DIFFERENCE
--------------
12

SQL> SELECT TRUNC(SYSDATE - TO_DATE('16-01-24', 'DD-MM-YY')) AS day_difference FROM


dual;

DAY_DIFFERENCE
--------------
378

SQL> SELECT TRUNC(SYSDATE - TO_DATE('16-01-24', 'DD-MM-YY'))/7 AS WEEK_difference


FROM dual;

WEEK_DIFFERENCE
---------------
54

SQL> SELECT TRUNC(SYSDATE - TO_DATE('16-01-24', 'DD-MM-YY'))/30 AS YEAR_difference


FROM dual;

YEAR_DIFFERENCE
---------------
12.6

--DATE FUNCTIONS
-------------------------------------------------------------------------------
--TO_DATE('string', 'format_mask’) - Converts a string into a date format

SQL> SELECT TO_DATE('2025-01-21', 'YYYY-MM-DD’) FROM DUAL;

TO_DATE('
---------
21-JAN-25
--TO_CHAR(date_value, 'format_mask’) - Converts a date (or number) into a string
with a specified format

SQL> SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;

TO_CHAR(SYSDATE,'YY
-------------------
2025-01-28 10:17:28

SQL> SELECT TO_CHAR(SYSDATE, 'YY-MM-DD HH24:MI:SS') FROM dual;

TO_CHAR(SYSDATE,'
-----------------
25-01-28 10:17:45

SQL> SELECT TO_CHAR(SYSDATE, 'YY-MM-DD') FROM dual;

TO_CHAR(
--------
25-01-28

--ADD_MONTHS(date, n) - Adds (if n positive) or subtracts (if n negative) a


specified number of months to a date

SQL> SELECT ADD_MONTHS(SYSDATE, 3) FROM dual;

ADD_MONTH
---------
28-APR-25

SQL> SELECT ADD_MONTHS(SYSDATE, -3) FROM dual;

ADD_MONTH
---------
28-OCT-24

SQL> SELECT ADD_MONTHS(SYSDATE, 0) FROM dual;

ADD_MONTH
---------
28-JAN-25

MONTHS_BETWEEN(date1, date2) - Returns the number of months between two dates


(positive or negative) (non-integer part of the result represents a portion of the
month)

SQL> SELECT MONTHS_BETWEEN('01-SEP-95', '11-JAN-94') FROM DUAL;

MONTHS_BETWEEN('01-SEP-95','11-JAN-94')
---------------------------------------
19.6774194

SQL> SELECT TRUNC(MONTHS_BETWEEN('01-SEP-95', '11-JAN-94')) FROM DUAL;

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

SQL> SELECT ROUND(MONTHS_BETWEEN('01-SEP-95', SYSDATE)) FROM DUAL;

ROUND(MONTHS_BETWEEN('01-SEP-95',SYSDATE))
------------------------------------------
-353

SQL> SELECT ROUND(MONTHS_BETWEEN(SYSDATE,SYSDATE+300)) FROM DUAL;

ROUND(MONTHS_BETWEEN(SYSDATE,SYSDATE+300))
------------------------------------------
-10

SQL> SELECT ROUND(MONTHS_BETWEEN(SYSDATE,SYSDATE-300)) FROM DUAL;

ROUND(MONTHS_BETWEEN(SYSDATE,SYSDATE-300))
------------------------------------------
10

--NEXT_DAY (date, ‘'day_name'’) - Returns the next specified day of the week after
a given date

SQL> SELECT NEXT_DAY(SYSDATE, 'MONDAY’) FROM DUAL;

NEXT_DAY(
---------
03-FEB-25

SQL> SELECT NEXT_DAY(SYSDATE, 'TUESDAY’) FROM DUAL;

NEXT_DAY(
---------
04-FEB-25

SQL> SELECT NEXT_DAY(SYSDATE,'SATURDAY') FROM DUAL;

NEXT_DAY(
---------
01-FEB-25

--LAST_DAY(date)-Returns the last day of the month for the specified date

SQL> SELECT LAST_DAY(SYSDATE) FROM DUAL;

LAST_DAY(
---------
31-JAN-25

SQL> SELECT LAST_DAY(SYSDATE+20) FROM DUAL;

LAST_DAY(
---------
28-FEB-25
SQL> SELECT LAST_DAY(SYSDATE+50) FROM DUAL;

LAST_DAY(
---------
31-MAR-25

--TRUNC(date_value, 'format_mask’) - Truncates a date to a specific unit of measure


(like day, month, year).

--Truncated to current date


SQL> SELECT TRUNC(SYSDATE, 'DD') FROM dual;

TRUNC(SYS
---------
28-JAN-25

--Truncated to current MONTH

SQL> SELECT TRUNC(SYSDATE, 'MM') FROM dual;

TRUNC(SYS
---------
01-JAN-25

--Truncated to current YEAR

SQL> SELECT TRUNC(SYSDATE, 'YY') FROM dual;

TRUNC(SYS
---------
01-JAN-25

--EXTRACT(unit FROM date) - Extracts a specific component (such as year, month,


day, hour,minute,second) from a date

--EXTRACT DAY

EXTRACT(DAYFROMSYSDATE)
-----------------------
28
--EXTRACT MONTH

SQL> SELECT EXTRACT(MONTH FROM SYSDATE) FROM dual;

EXTRACT(MONTHFROMSYSDATE)
-------------------------
1

--EXTRACT YEAR

SQL> SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual;

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

SQL> SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP) FROM dual;

EXTRACT(HOURFROMCURRENT_TIMESTAMP)
----------------------------------
5
--EXTRACT MINUTES
SQL> SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) FROM dual;

EXTRACT(MINUTEFROMCURRENT_TIMESTAMP)
------------------------------------
2

--EXTRACT SECONDS

SQL> SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP) FROM dual;

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

SQL> SELECT ROUND(sysdate, 'YYYY') FROM dual;

ROUND(SYS
---------
01-JAN-25

SQL> SELECT ROUND(sysdate, 'MON') FROM dual;

ROUND(SYS
---------
01-FEB-25

SQL> SELECT ROUND(sysdate, 'MM') FROM dual;

ROUND(SYS
---------
01-FEB-25

SQL> SELECT ROUND(sysdate, 'DD') FROM dual;

ROUND(SYS
---------
28-JAN-25

SQL> SELECT ROUND(sysdate, 'DAY') FROM dual;

ROUND(SYS
---------
26-JAN-25

SQL> SELECT ROUND(sysdate, 'HH') FROM dual;


ROUND(SYS
---------
28-JAN-25

SQL> SELECT ROUND(sysdate, 'MI') FROM dual;

ROUND(SYS
---------
28-JAN-25

--TO_NUMBER - Converts a character string containing digits to a number

SQL> SELECT TO_NUMBER('123') FROM dual;

TO_NUMBER('123')
----------------
123

--TO_CHAR - Converts a number or date value to a VARCHAR2 character string

SQL> select to_char(sysdate,'yyyy') from dual;

TO_C
----
2025

SQL> select to_char(sysdate,'yy') from dual;

TO
--
25

SQL> select to_char(sysdate,'YEAR') from dual;

TO_CHAR(SYSDATE,'YEAR')
------------------------------------------
TWENTY TWENTY-FIVE

SQL> select to_char(sysdate,'MM') from dual;

TO
--
01

SQL> select to_char(sysdate,'MON') from dual;

TO_CHAR(SYSD
------------
JAN

SQL> select to_char(sysdate,'MONTH') from dual;

TO_CHAR(SYSDATE,'MONTH')
------------------------------------
JANUARY

SQL> select to_char(sysdate,'DD') from dual;


TO
--
28

SQL> select to_char(sysdate,'DAY') from dual;

TO_CHAR(SYSDATE,'DAY')
------------------------------------
TUESDAYP-;/

--DECODE(expression, search_value1, result1, search_value2, result2, ...,


default_value)
-----------------------------------------------------------------------------------
------'

SQL> SELECT BR_NAME, BR_CITY, DECODE(BR_CITY, 'SIVAKASI', 'RURAL',


'MADURAI','METRO','OTHER') AS DECODE FROM BRANCH;

BR_NAME BR_CITY DECOD


-------------------- -------------------- -----
SIVAKASI MEPCO SIVAKASI RURAL
VIRUDUNAGAR EAST VIRUDUNAGAR OTHER
MADURAI CENTRAL MADURAI METRO
SIVAKASI MAIN SIVAKASI RURAL
MADURAI EAST MADURAI METRO
MADURAI WEST MADURAI METRO
MADURAI NORTH MADURAI METRO

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;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

7 rows selected.

SQL> INSERT INTO BRANCH(BR_NAME,BR_CITY) VALUES('SIVAKASI EAST','SIVAKASI');

1 row created.

SQL> INSERT INTO BRANCH(BR_NAME,BR_CITY) VALUES('SIVAKASI WEST','SIVAKASI');

1 row created.

SQL> SELECT * FROM BRANCH;


BR_NAME BR_CITY ASSETS
-------------------- -------------------- ----------
SIVAKASI EAST SIVAKASI
SIVAKASI WEST SIVAKASI
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

9 rows selected.

SQL> SELECT COUNT(*) FROM BRANCH;

COUNT(*)
----------
9

SQL> SELECT COUNT(BR_CITY) FROM BRANCH;

COUNT(BR_CITY)
--------------
9

SQL> SELECT COUNT(ASSETS) FROM BRANCH;

COUNT(ASSETS)
-------------
7

--avg(COLUMN_NAME):average value, min(COLUMN_NAME): minimum value,


max(COLUMN_NAME):maximum value,sum(COLUMN_NAME):sum of
values,stddev(COLUMN_NAME):standard deviation of values, variance(): variance of
values, median(): median of values
SQL> SELECT AVG(ASSETS) FROM BRANCH;

AVG(ASSETS)
-----------
21243142.9

SQL> SELECT SUM(ASSETS) FROM BRANCH;

SUM(ASSETS)
-----------
148702000
SQL> SELECT MIN(ASSETS) FROM BRANCH;

MIN(ASSETS)
-----------
2501000

SQL> SELECT MAX(ASSETS) FROM BRANCH;

MAX(ASSETS)
-----------
45000000
SQL> SELECT MEDIAN(ASSETS) FROM BRANCH;

MEDIAN(ASSETS)
--------------
25000000

SQL> SELECT VARIANCE(ASSETS) FROM BRANCH;

VARIANCE(ASSETS)
----------------
2.4632E+14

SQL> SELECT STDDEV(ASSETS) FROM BRANCH;

STDDEV(ASSETS)
--------------
15694501

-- ORDER BY - ARRANGE ELEMENTS IN ASCENDING/DESCENDING ORDER


------------------------------------------------------------------
SQL> SELECT * FROM BRANCH ORDER BY BR_NAME;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
MADURAI CENTRAL MADURAI 25000000
MADURAI EAST MADURAI 12500000
MADURAI NORTH MADURAI 3501000
MADURAI WEST MADURAI 2501000
SIVAKASI EAST SIVAKASI
SIVAKASI MAIN SIVAKASI 30200000
SIVAKASI MEPCO SIVAKASI 30000000
SIVAKASI WEST SIVAKASI
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000

9 rows selected.

SQL> SELECT * FROM BRANCH ORDER BY BR_NAME ASC;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
MADURAI CENTRAL MADURAI 25000000
MADURAI EAST MADURAI 12500000
MADURAI NORTH MADURAI 3501000
MADURAI WEST MADURAI 2501000
SIVAKASI EAST SIVAKASI
SIVAKASI MAIN SIVAKASI 30200000
SIVAKASI MEPCO SIVAKASI 30000000
SIVAKASI WEST SIVAKASI
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000

9 rows selected.

SQL> SELECT * FROM BRANCH ORDER BY BR_NAME DESC;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
SIVAKASI WEST SIVAKASI
SIVAKASI MEPCO SIVAKASI 30000000
SIVAKASI MAIN SIVAKASI 30200000
SIVAKASI EAST SIVAKASI
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000
MADURAI EAST MADURAI 12500000
MADURAI CENTRAL MADURAI 25000000

9 rows selected.

SQL> SELECT * FROM BRANCH ORDER BY BR_NAME,ASSETS DESC;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
MADURAI CENTRAL MADURAI 25000000
MADURAI EAST MADURAI 12500000
MADURAI NORTH MADURAI 3501000
MADURAI WEST MADURAI 2501000
SIVAKASI EAST SIVAKASI
SIVAKASI MAIN SIVAKASI 30200000
SIVAKASI MEPCO SIVAKASI 30000000
SIVAKASI WEST SIVAKASI
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000

9 rows selected.

SQL> SELECT * FROM BRANCH ORDER BY BR_NAME,ASSETS ASC;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
MADURAI CENTRAL MADURAI 25000000
MADURAI EAST MADURAI 12500000
MADURAI NORTH MADURAI 3501000
MADURAI WEST MADURAI 2501000
SIVAKASI EAST SIVAKASI
SIVAKASI MAIN SIVAKASI 30200000
SIVAKASI MEPCO SIVAKASI 30000000
SIVAKASI WEST SIVAKASI
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000

9 rows selected.

--GROUPING USING GROUP BY


SQL> SELECT * FROM BRANCH GROUP BY BR_NAME;
SELECT * FROM BRANCH GROUP BY BR_NAME
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression

SQL> SELECT BR_NAME FROM BRANCH GROUP BY BR_NAME;

BR_NAME
--------------------
MADURAI CENTRAL
MADURAI EAST
MADURAI NORTH
MADURAI WEST
SIVAKASI EAST
SIVAKASI MAIN
SIVAKASI MEPCO
SIVAKASI WEST
VIRUDUNAGAR EAST

9 rows selected.

SQL> SELECT BR_NAME FROM BRANCH GROUP BY BR_CITY;


SELECT BR_NAME FROM BRANCH GROUP BY BR_CITY
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression

SQL> SELECT BR_CITY FROM BRANCH GROUP BY BR_CITY;

BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI

SQL> SELECT BR_CITY,ASSETS FROM BRANCH GROUP BY BR_CITY;


SELECT BR_CITY,ASSETS FROM BRANCH GROUP BY BR_CITY
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression

SQL> SELECT BR_CITY FROM BRANCH GROUP BY BR_CITY;

BR_CITY
--------------------
SIVAKASI
VIRUDUNAGAR
MADURAI

SQL> SELECT BR_CITY,COUNT(*) FROM BRANCH GROUP BY BR_CITY;

BR_CITY COUNT(*)
-------------------- ----------
SIVAKASI 4
VIRUDUNAGAR 1
MADURAI 4

SQL> SELECT BR_CITY,COUNT(br_city) FROM BRANCH GROUP BY BR_CITY;

BR_CITY COUNT(BR_CITY)
-------------------- --------------
SIVAKASI 4
VIRUDUNAGAR 1
MADURAI 4

SQL> SELECT BR_CITY,COUNT(ASSETS) FROM BRANCH GROUP BY BR_CITY;

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

SQL> SELECT MIN(ASSETS) FROM BRANCH;

MIN(ASSETS)
-----------
2501000

--GROUP BY HAVING - group rows by a specific column, and then filter the groups
based on a condition

SQL> SELECT * FROM BRANCH;

BR_NAME BR_CITY ASSETS


-------------------- -------------------- ----------
SIVAKASI EAST SIVAKASI
SIVAKASI WEST SIVAKASI
SIVAKASI MEPCO SIVAKASI 30000000
VIRUDUNAGAR EAST VIRUDUNAGAR 45000000
MADURAI CENTRAL MADURAI 25000000
SIVAKASI MAIN SIVAKASI 30200000
MADURAI EAST MADURAI 12500000
MADURAI WEST MADURAI 2501000
MADURAI NORTH MADURAI 3501000

9 rows selected.

SQL> SELECT BR_CITY, SUM(ASSETS) AS TOTAL_ASSETS FROM BRANCH GROUP BY BR_CITY


HAVING SUM(ASSETS) >= 50000000;

BR_CITY TOTAL_ASSETS
-------------------- ------------
SIVAKASI 60200000

SQL> SELECT BR_CITY, SUM(ASSETS) AS TOTAL_ASSETS FROM BRANCH GROUP BY BR_CITY;

BR_CITY TOTAL_ASSETS
-------------------- ------------
SIVAKASI 60200000
VIRUDUNAGAR 45000000
MADURAI 43502000

You might also like