Sentiment analysis a branch of text analysis that is widely used to increase the reliability of the product and used to analyze the people‟s emotions, opinion towards the products, hot topic, any event and any organization etc. There are various social media as well as e-commerce site which are generating a large amount of data in the form of tweets, blogs, status, reviews etc. In this survey paper we have presented an elaborative hierarchy of sentiment analysis techniques and sub-techniques or mechanisms and algorithms along with their pros and cons. We have also presented here the applications of sentiment analysis in different fields along with various challenges in it to implement. The main target of this survey paper is to give full description of sentiment analysis.