1、 mysql 數據庫;
轉載: https://www.cnblogs.com/fuqia/p/8994080.html
mysql安裝成功后可以看到已經存在mysql、information_schema和test這個幾個數據庫。
information_schema庫中有一個名為COLUMNS的表,這個表中記錄了數據庫中所有表的字段信息。
知道這個表后,獲取任意表的字段就只需要一條select語句即可。例如:
select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your_table_name';
上述的做法有一點問題,如果多個數據庫中存在你想要查詢的表名,那么查詢的結果會包括全部的字段信息。
通過DESC information_schema.COLUMNS可以看到該表中列名為TABLE_SCHEMA是記錄數據庫名,因此下面的寫法更為嚴格
select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your_table_name' and table_schema = 'your_db_name';
取字段注釋
Select COLUMN_NAME 列名, DATA_TYPE 字段類型, COLUMN_COMMENT 字段注釋 from INFORMATION_SCHEMA.COLUMNS Where table_name = 'companies' ##表名 AND table_schema = 'testhuicard'##數據庫名 AND column_name LIKE 'c_name' ##字段名
2、sqllite數據庫
獲取sqlite數據庫的數據表字段的關鍵是 PRAGMA table_info('tablename')
bool outPutTableInfo(QString tabNmae){ QSqlQuery query; QString strTableNmae = tabNmae; QString str = "PRAGMA table_info(" + strTableNmae + ")"; query.prepare(str); if (query.exec()) { while (query.next()) { qDebug() << QString(QString::fromLocal8Bit("字段數:%1 字段名:%2 字段類型:%3")).arg(query.value(0).toString()).arg(query.value(1).toString()).arg(query.value(2).toString()); } }else{ qDebug() << query.lastError(); return false; } }