The three main formats used to represent a GraphQL schema are the GraphQL Schema Definition Language (SDL), the GraphQL introspection query result, and the GraphQL.js `GraphQLSchema` object. These formats can be converted into each other, allowing developers to work with GraphQL schemas in different contexts. The SDL is a human-readable notation used for writing down GraphQL schema definitions, while the introspection query result is a JSON representation of the schema extracted from the GraphQL API. The `GraphQLSchema` object is an intermediate representation used by the JavaScript reference implementation of GraphQL. Developers can use these formats to work with GraphQL schemas programmatically and convert between them as needed. Additionally, GraphQL.js provides utilities for working with GraphQL schemas, such as the `buildSchema` function for converting SDL to a schema object, and the `printSchema` function for converting a schema object to an SDL string.