一、SQLite
SQLite是一個輕量級的嵌入型數據庫,不需要服務端,可以運行在很多資源非常小的嵌入式系統中。
SQLite的管理客戶端,可以使用:
- SQLite官方命令行工具
- SQLite Database Browser
- SQLite Administrator
- SQLite Studio
- SQLiteSpy
- 火狐SQLite插件
- Navicate
- SQLite Expert Professional
等。
二、QT使用SQLite過程
1. 引入sqlite
修改.pro文件:
<code>QT += sql/<code>
引用的頭文件:
<code>#include #include #include #include /<code>
2. 查看支持的數據庫類型
<code>qDebug() << QSqlDatabase::drivers();/<code>
我的電腦輸出的值有:
<code>("QSQLITE", "QODBC", "QODBC3", "QPSQL", "QPSQL7")/<code>
裡面的QSQLITE表示支持SQLite數據庫。
3. 連接、打開數據庫
<code> //建立並打開數據庫 QSqlDatabase database; database = QSqlDatabase::addDatabase("QSQLITE"); database.setDatabaseName("test.db"); if (!database.open()) { qDebug() << "Error: Failed to connect database." << database.lastError(); } else { qDebug() << "Succeed to connect database." ; }/<code>
- 數據庫test.db不存在時會自動創建文件。
- 使用完注意關閉連接。
4. 執行sql語句 QSqlQuery::exec()
(1) 創建表
<code> //創建表格 QSqlQuery sql_query; if(!sql_query.exec("create table users(id int primary key, name text, age int)")) { qDebug() << "Error: Fail to create table."<< sql_query.lastError(); } else { qDebug() << "Table created!"; }/<code>
(2) 插入數據
<code> if(!sql_query.exec("INSERT INTO users VALUES(1, "張三", 30)")) { qDebug() << sql_query.lastError(); } else { qDebug() << "inserted success!"; } if(!sql_query.exec("INSERT INTO users VALUES(2, "李四", 30)")) { qDebug() << sql_query.lastError(); } else { qDebug() << "inserted success!"; }/<code>
(3) 查詢語句
<code> //查詢數據 sql_query.exec("select * from users"); if(!sql_query.exec()) { qDebug()(4) 刪除數據
<code> sql_query.exec("delete from users where id = 1"); if(!sql_query.exec()) { qDebug()(5) 更新數據
<code> sql_query.exec("update users set name = "myname" where id = 1"); if(!sql_query.exec()) { qDebug() << sql_query.lastError(); } else { qDebug() << "updated!"; }/<code>(6) 刪除表
<code> sql_query.exec("drop table users"); if(sql_query.exec()) { qDebug() << sql_query.lastError(); } else { qDebug() << "table droped"; } /<code>5. 關閉連接
<code> database.close();/<code>運行效果:會自動生成一個test.db數據庫文件。