This paper provides a comprehensive survey of research on tree patterns (TPs) and related issues for querying XML data over the past 10 years. Tree patterns are graphical representations of queries over data trees that are matched against an input data tree to answer queries. The paper outlines and compares features of different tree pattern models and reviews two main approaches for optimizing tree pattern matching: pattern tree minimization and holistic matching. It aims to give a global overview of the significant research on using tree patterns to query XML data.