Does dgraph keep one schema for both dql & graphql?

If you define a GraphQL schema, Dgraph will generate the DQL schema and save both. If you only ever provide the DQL schema, then no GraphQL will be available. You can alter the DQL schema that is generated, but some restrictions are applied to not break the GraphQL API.

Yes, as long as you have defined a GraphQL schema. You can always query/mutate in DQL even if you have not defined any schema.