QSqlQueryModel

Класс QSqlQueryModel предназначен для реализации sql запроса к базе данных и возврату результата в виде таблицы. Это в двух словах.

фотка 1

В нем реализована ограничение на вычитывание данных, то есть порциями, чтобы не вычитать сразу 1000000  записей и не подвесить систему. 

Основная функция setQuery. Она и посылает запрос в виде строки. Потом может быть второй запрос с другим содержанием и потом еще совсем другой запрос к другой таблице. И так далее.

Соответственно возвращаемые результаты (таблицы из колонок и строк) могут быть вообще разными.

QSqlQueryModel это на самом деле обертка над классом  QSqlQuery , который и реализует работу с базой данных и через него предоставляется результат в виде QSqlResult

class QSqlQueryModelPrivate: public QAbstractItemModelPrivate
{
    Q_DECLARE_PUBLIC(QSqlQueryModel)
public:
    QSqlQueryModelPrivate() : atEnd(false) {}
    ~QSqlQueryModelPrivate();
    
    void prefetch(int);
    void initColOffsets(int size);

    mutable QSqlQuery query;  // вот здесь (через query) идет работа с базой данных
    mutable QSqlError error;
    QModelIndex bottom;
    QSqlRecord rec;           // это текущая запись при навигации
    uint atEnd : 1;
    QVector > headers;
    QVarLengthArray colOffsets; // used to calculate indexInQuery of columns
};

Далее развитие работы с базами данных приводит в Qt к QSqlTableModel.