# Your new favorite query language https://www.sanity.io/learn/course/between-groq-and-a-hard-place/your-new-favourite-query-language.md Why you'll learn (and love) GROQ in this course, and why not GraphQL? Sanity provides two methods to query data: **GROQ** and **GraphQL**. 1. Compare [GROQ and GraphQL](https://www.sanity.io/learn/content-lake/what-about-graphql) in the documentation You'll learn GROQ in this track as it is the preferred method for querying content from Sanity and powers other features like user role permissions and filters in functions. 1. See [Roles](https://www.sanity.io/learn/user-guides/roles) for how GROQ is used to configure "Content resources" 2. See [Functions quick start](https://www.sanity.io/learn/compute-and-ai/function-quickstart) for how function invocations can be limited by a GROQ filter ## Prerequisites and assumptions * You have a Sanity Studio with `event`, `artist` and `venue` type documents, just like you created in the [Day one content operations](https://www.sanity.io/learn/course/day-one-with-sanity-studio) course. * You won’t need to know any GROQ in advance to complete these exercises. ## More resources Here are some great resources already to learn and experiment more with GROQ: 1. Visual playground [groq.dev](https://groq.dev/) 2. Free “Introduction to GROQ Query Language” course on [Egghead.io](https://egghead.io/courses/introduction-to-groq-query-language-6e9c6fc0)