Wow. What a requirement!
Anyways, I got a couple of questions for you. If you answer this I might be able to provide you a simpler approach :)
Questions
1. Does this table has any relationship to any other table by the ID?
2. Is the "S.No" an auto increment field? or do you set it manually?
2. Why do you need the Names and the "S.No"s to be sorted to match each other? Just out of curiosity, I want to know :)
Based on your answers :)
What you need to do is very simple. Let's say the new name is "Jennifer" and the s.no is "4" and the name of your table is "some_table"
1. Run this SQL to update the values
UPDATE some_table SET s.no = s.no + 1 WHERE s.no >= 4
This will result something similar to
s.no name
1 adi
2 ajay
3 balu
5 bhanu
6 deepak
7 jhon
8 striker
2. Run this SQL to insert your value
INSERT INTO some_table (s.no, name) VALUES (4, 'Jennifer');
This will result to
s.no name
1 adi
2 ajay
3 balu
4 Jennifer
5 bhanu
6 deepak
7 jhon
8 striker
Hope this helps you :) Regards