What are the main differences between machine learning and data mining, why we use them, and could we consider machine learning one of data mining technique?
You can data mine with machine learning but you can do other things with machine learning as well. So, ML is not 'a data mining technique' but a 'a technique for data mining'. All ML leverages data, true. But that doesn't mean the end objective of all ML models is data mining. Conversely, you can data mine without ML. So it's not a hypernym/hyponym relationship in any direction.
Data mining is the process of loading data from multiple sources and in different forms. Then preparing and cleaning the data for analysis. And finally, studying the data and extract results and trends. In the final phase, one can apply machine learning methods in order to classify, predict and forcast information. However, Machine learning is the field of making intelligent systems.
Data Mining is about using Statistics as well as other programming methods to find patterns hidden in the data so that you can explain some phenomenon. Machine Learning uses Data Mining techniques and other learning algorithms to build models of what is happening behind some data so that it can predict future outcomes.
Data mining is to extract hidden predictive information from large databases. Research in data mining tries to fulfill this need using methods of several research areas (specially machine learning and statistics) to propose some solutions for the extraction of significant and potentially useful patterns from these large collections of data. (i.e. machine learning techniques are the techniques or tools uses to extract patterns from data)
IMO, Data Mining is essentially to uncover patterns in the data (generate some preliminary insights from the data which were unknown - the goal is usually undefined) whereas Machine Learning uses Data Mining techniques alongside other algorithms to build models with the ability to predict future outcome (the objective is defined beforehand).