What QIF is
QIF is a plain text list of transactions, one field per line, each line beginning with a single letter that says which field it is. D is the date, T the amount, P the payee. A caret on its own line ends a transaction.
Quicken, and the long tail of banks and budgeting apps that still offer it because everything can read it.
What SQL is
SQL here means the statements that move a table into a database: INSERT INTO with a VALUES list, and optionally the CREATE TABLE that defines the columns.
Anyone seeding a database, moving a spreadsheet into an application, or writing a migration.
What changes when you convert QIF to SQL
Each block up to a caret becomes a row. Split transactions, which QIF writes as repeated S, E and $ lines, are joined into single cells rather than being spread across as many columns as the most-split transaction in the file has parts. The account type from the !Type header is added as a column.
String values are escaped by doubling any single quote. Statements are written in batches so a large table does not become one statement megabytes long, which many clients refuse. Ask for CREATE TABLE as well and column types are inferred: a column stays INT until a value does not fit, then widens to DECIMAL, then to VARCHAR.
What carries over from QIF to SQL
SQL can express everything QIF holds about a table, so this conversion is about shape rather than loss.
SQL wants a type for each column, and QIF does not record one, so each column is typed from what its values look like. A column of digits that should stay text - a zip code, a phone number, a leading-zero id - is the usual thing to check afterwards.
SQL marks its header cells differently from its data cells, so the first row is written with that marker.