When should I use shared lock over exclusive lock? I know the difference between shared lock and exclusive lock.

But I am not able to figure out a use case when I should go for shared lock instead of exclusive lock. Because using exclusive lock and using normal select query select * from wmployee where id=4; serves the purpose of reading data when exclusive lock is applied. 

So in which case should I be using shared lock?
Please could someone explain with a MySQL example statement?
In general you should not worry about such.  This pattern covers most common cases adequately.

BEGIN;
SELECT ... FOR UPDATE; -- touch the rows you _might_ update
do some stuff
UPDATE ...;    -- then update them (or not)
COMMIT;


Note that shared locks get 'promoted' in some circumstances for you.

If you would like to explain your situation we can be more specific.