Sentiment analysis (SA) is based on natural language processing (NLP) techniques used to extract the user’s feelings and opinions about any manufactured goods or services provided. Opinion mining is the other name for sentiment analysis. Sentiment analysis is very useful in the decision-making process. With greater Internet use, SA is a powerful tool for studying the opinions of customers about any product or services provided by any business organization or a company. Several approaches and techniques have came to existence in past years for sentiment analysis. Sentiment analysis is useful in decision making. In this paper, we offer an exhaustive description about techniques used for SA, approaches used for SA and applications of sentiment analysis.