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 various features of tree patterns and reviews two main approaches for optimizing tree pattern matching: pattern tree minimization and holistic matching. It aims to provide a global overview of the significant research topic of tree pattern-based querying of XML data.