SQL - Day 5 Singlerowfunction & Sub Languages
SQL - Day 5 Singlerowfunction & Sub Languages
SELECT SUBSTR(ENAME, -3 )
FROM EMP;
➢ WAQT to display first half of employee names . ➢ WAQT to display second half of employee names .
ENAME OUTPUT
ENAME OUTPUT
SMITH ITH
SMITH SM
MILLER LER
MILLER MIL
JONES NES
JONES JO
WARD RD
WARD WA
8. REPLACE ( ) : "It is used to replace a string with another string in
SELECT SUBSTR( ENAME , 1 , LENGTH( ENAME ) / 2 ) The original string.
FROM EMP ; Null
SYNTAX:REPLACE ( 'Original_String' , 'string' [, 'new_String' ] )
SMITH SUBSTR( ENAME , 1 , LENGTH( ENAME ) / 2 )
Example : REPLACE ( 'BANANA' , 'A' , 'C' ) BCNCNC
SUBSTR( 'SMITH' , 1 , LENGTH ( 'SMITH' ) / 2 )
Example : REPLACE ( 'BANANA' , 'N' , 'ABC' ) BAABCAABCA
SUBSTR( 'SMITH' , 1 , 5 / 2 )
Example : REPLACE ( 'OPPO' , 'O' , 'J' ) JPPJ
SUBSTR( 'SMITH' , 1 , 2 )
Example : REPLACE ( 'BANANA' , 'A' ) BNN
SM
Example : REPLACE ( 'ENGINEERING' , 'E' ) NGINRING
Example : REPLACE ( 'ENGINEERING' , 'E' , '123' ) 123N123123GINRING
WARD SUBSTR( ENAME , 1 , LENGTH( ENAME ) / 2 )
SUBSTR( 'WARD' , 1 , LENGTH ('WARD' ) / 2 )
SUBSTR( 'WARD' , 1 , 4 / 2 ) NOTE : if the third argument is not mentioned the default
SUBSTR( 'WARD' , 1 , 2 ) Value of it is Null .
WA
1. WAQTD the number of times char 'A' is present in BANANA !!!
2. WAQTD to count number of time 'A' is present in SELECT LENGTH('BANANA') - LENGTH ( REPLACE( 'BANANA','A' )
FROM DUAL ;
'MALAYALAM' Length ( 'BANANA' ) - LENGTH( REPLACE('BANANA','A') )
Length ('BANANA') - LENGH ('BNN' )
SELECT LENGTH('MALAYALAM') - LENGTH ( REPLACE( 6-3
'MALAYALAM','A' ) = 3 times 'A' is present in BANANA
FROM DUAL ;
9. INSTR ( ) : "it is used to obtain the position in which the string is present in the Original string ".
It is used to search for a string in the Original string if present it returns the POSITION
Else it returns 0 ".
B A N A N A
1 2 3 4 5 6
SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'A' , 1 ,1 ) > 0 ;
2. WAQTD NAMES OF THE EMPLOYEES IF THEY HAVE CHAR 'A' PRESENT ATLEAST TWICE IN
THEIR NAMES
SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'A' , 1 , 2 ) > 0 ;
3. WAQTD NAMES OF THE EMPLOYEES IF THEY HAVE CHAR 'A' PRESENT ATLEAST THRICE IN
THEIR NAMES
SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'A' , 1 , 3 ) > 0 ;
4.) WAQTD NAMES OF THE EMPLOYEES IF THEY HAVE CHAR 'A' EXACTLY TWICE
SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'A' , 1 , 2 ) > 0 AND INSTR( ENAME , 'A' , 1 , 3 ) = 0 ;
OR
SELECT ENAME
FROM EMP
WHERE ( LENGTH( ENAME ) - LENGTH( REPLACE( ENAME ,'A') ) ) = 2;
SELECT *
FROM EMP
WHERE MOD( EID , 2 ) = 1 ;
When the scale is -ve it indicated the digits before the decimal ROUND ( 8421 .12 , -1 )
And the digit count begins from 1 .
SYSDATE
17-MAY-20
17-MAY-20
SYSTIMESTAMP
TRUNC(MONTHS_BETWEEN(SYSDATE,HIREDATE))||'MONTH
473 Months
470 Months
14. LAST_DAY( ): " it is used to Obtain the last day in the particular of the given date" .
LAST_DAY
31-JUL-20
Syntax: TO_CHAR( DATE , 'Format _ Models')
Format Models :
i. YEAR : TWENTY TWENTY
ii. YYYY : 2020
iii. YY : 20
iv. MONTH : JULY
v. MON : JUL
vi. MM : 07
vii. DAY : WEDNESDAY
viii. DY : WED
ix. DD : 08
x. D : 4 ( day of the week )
xi. HH24 : 17 hours
xii. HH12 : 5 hours
xiii. MI : 22 minutes
xiv. SS : 53 seconds
xv. 'HH12:MI:SS' : 5 : 22 : 53
xvi. 'DD-MM-YY' : 17 - 05 - 20
xvii. 'MM-DD-YYYY' : 05 - 17 - 2020
A 500 + NVL ( 100 , 0 ) 500 + 100 600
16. NVL( ) : [ NULL VALUE LOGIC ] " It is used to eliminate the side effects of using null in arithmetic B 1000 + NVL ( null , 0 ) 1000 + 0 1000
operations " . C 2000 + NVL ( 200 , 0 ) 2000+200 2200
D 2000 + NVL( null , 0 ) 2000 + 0 2000
WAQTD NAME AND TOTAL SALALRY OF ALL THE EMPLOYEES?
ENAME SAL COMM After using NVL
SELECT ENAME , SAL + COMM
A 500 100 ENAME SAL+nvl(COMM ,0)
FROM EMP ;
B 1000 NULL A 600
C 2000 200 B 1000
D 2000 NULL ENAME SAL+COMM
C 2200
A 600
D 2000
B NULL
1. List employees whose name having 4 characters
C 2200 SELECT * FROM EMP
D NULL WHERE LENGTH(ENAME)=4 ;
It has 5 statements :
1. CREATE
2. RENAME
3. ALTER
4. TRUNCATE
5. DROP
Not Mandatory
Syntax to create a table :
Product
Example :
3. ALTER :" IT IS USED TO MODIFY THE STRUCTURE OF THE TABLE " Example : ALTER TABLE Cust
RENAME COLUMN CNO TO PHONE_NO ;
➢ TO ADD A COLUMN :
➢ TO MODIFY THE DATATYPE : EARLIER : CUST_NAME VARCHAR(25) NOT NULL
Syntax: ALTER TABLE Table_Name
ADD Column_Name Datatype Constraint_type ; Syntax: ALTER TABLE Table_Name
MODIFY COLUMN_NAME New_Datatype;
Example : ALTER TABLE CUSTOMER
ADD MAIL_ID VARCHAR(40) NULL;
TO DROP A COLUMN : Example : ALTER TABLE CUSTOMER
MODIFY CUST_NAME
VARCHAR(30) ;
Syntax: ALTER TABLE Table_Name
DROP COLUMN Column_Name ; ➢ TO MODIFY NOT NULL CONSTRAINTS :
Cust
TO RECOVER THE TABLE :
Cid Cname Phone_no Address
Syntax: FLASHBACK TABLE Table_Name
TO BEFORE DROP ;
TO RECOVER THE TABLE :
NOTE : DDL STATEMENTS ARE AUTO-COMMIT STATEMENTS
Syntax: FLASHBACK TABLE Table_Name
TO BEFORE DROP ;
FLASHBACK
FLASHBACK TABLE Cust
TO BEFORE DROP ;
Cust
DROP PURGE Gone
BIN$123ABC
Forever
FLASHBACK
DROP : IT WILL REMOVE THE
TABLE FROM THE DATABASE
AND SEND IT TO RECYCLE BIN
PURGE : IT WILL
PERMANENTLY IN THE
DATABASE
FLASHBACK : IT WILL
RESTORE THE TABLE
FROM THE BIN
FOLDER TO DATABASE
DATA MANIPULATION LANGUAGE ( DML )
CUSTOMER
CID CNAME CNO ADDDRESS INSERT INTO CUSTOMER (CID, CUST_NAME,
NUMBER(2) VARCHAR(10) NUMBER(10) VARCHAR(20)
PHONE_NO, CUST_ADD) VALUES
INSERT INTO CUSTOMER VALUES( 1 , 'DINGA' , 9876543210 ,'BANGALORE' ) ; (2,'DHONI',6654789654,'BANGALORE');
CID CNAME CNO ADDDRESS
NUMBER(2) VARCHAR(10) NUMBER(10) VARCHAR(20)
1 DINGA 9876543210 BANGALORE
INSERT INTO CUSTOMER VALUES( 2 , 'DINGI' , 9876543211 ,'MANGALORE' ) ;
CID CNAME CNO ADDDRESS
INSERT INTO CUSTOMER (CID, CUST_NAME, PHONE_NO,
NUMBER(2) VARCHAR(10) NUMBER(10) VARCHAR(20)
1 DINGA 9876543210 BANGALORE
CUST_ADD) VALUES (11, 'YASH', 9876543210, 'BANGALORE');
2 DINGI 9876543211 MANGALORE
PRODUCT
[Link] :It is used to modify an existing value .
PID PNAME PRICE CID
NUMBER(2) VARCHAR(10) NUMBER(6,2) NUMBER(3)
Syntax: UPDATE Table_Name
SET Col_Name = Value , Col_Name = Value ,,,,,
INSERT INTO PRODUCT VALUES( 11 , 'iPhone' , 10000 , 2 );
PID PNAME PRICE CID
[WHERE stmt ] ;
NUMBER(2) VARCHAR(10) NUMBER(6,2) NUMBER(3)
CID CNAME CNO ADDDRESS
11 iPhone 10000 2
NUMBER(2) VARCHAR(10) NUMBER(10) VARCHAR(20)
INSERT INTO PRODUCT VALUES( 22 , 'Mac Book' , 20000 , 1 );
1 ABHI 1234567890 BANGALORE
PID PNAME PRICE CID
2 ABDUL 9876543210 MANGALORE
NUMBER(2) VARCHAR(10) NUMBER(6,2) NUMBER(3)
11 iPhone 10000 2
22 Mac Book 20000 1 ➢ WAQT update the phone number of Abdul to 7778889994
UPDATE CUSTOMER
SET CNO = 7778889994
WHERE CNAME ='ABDUL' ;
UPDATE CUSTOMER
SET ADDRESS = 'MYSORE'
WHERE CID = 1 ;
5. WAQT hike the salary of the employee to 10% . If employees earn less than
2000 as a salesman .
We have 3 Statements :
1. COMMIT
2. ROLLBACK
3. SAVEPOINT
[Link] : "This statement is used to SAVE the transactions into the DB ".
Syntax: COMMIT ;
Example :
VALUES( 'C' , 300 ) ; B 200 B 200
Query WORKPLACE DATABASE COMMIT ; C 300 C 300
If you want to undo any changes before committing, you can use the ROLLBACK command.
However, once you commit, the changes are permanent.
2. ROLLBACK :
This statement is used to Obtain only the saved data from the DB .
It will bring you to the point where you have committed for the last time .
SYNTAX: ROLLBACK ;
3. SAVEPOINT :
"This statement is used to control the flow of data between the users ". We have 2 statements :
1. GRANT
2. REVOKE
Example :
EMP SELECT *
ENAME SAL FROM [Link] ;
A 100
B 200
EMP SELECT *
ENAME SAL FROM [Link] ;
A 100
B 200
SELECT *
ENAME SAL FROM [Link] ;
A 100
B 200
Thank You