`.Exec()` returns a `Result`. `.Query()` returns `*Rows` which has `.Next()` and `.Scan()`. It could (and IMO should) decode the output and return the right data types. So from the API, similar to a `SELECT`.