DNS查询是什么样的?

I'd like to make a simple DNS server using Go. I know how DNS works but I'm not 100% sure as to how a DNS query actually looks.

For example, a HTTP GET request looks like this:

GET /index.html HTTP/1.1

So my question is, does a DNS query look something like this:

QUERY google.com A

Or do DNS servers interpret the binary representation the domain name being queried?

You could check out the miekg/dns project.
It builds Msg compose of a MsgHdr which includes the QUERY code (amongst other OpCodes).

That follows the Message Header you can see in "Chapter 15 DNS Messages".