一、数据库
1、数据库概述
2、数据库操作语句
二、Qt SQL简介
1、 Qt SQL对数据库支持
2、SQLite数据库初识
3、 Qt SQL模块数据库类接口
**一、数据库
**
1、概述
数据库也是应用程序的重要部分,一个完整的应用程序几乎都包含数据库。
当前主流的数据库有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。
Sqlite是一款轻型的数据库,它的设计目标是嵌入式,方便我们使用。
2、数据库操作语句
语句:
SELECT * FROM menu WHERE id>20
INSERT INTO menu VALUES(102, HELLO)
DELETE FROM menu WHERE name="wj"
UPDATE menu SET name="weijie"
二、Qt SQL简介
1、Qt SQL对数据库支持
在Qt中,Qt为SQL数据库提供支持的基本模块。Qt SQL的API分为不同的层:
·驱动层
·SQL API层
·用户接口层
(1)驱动层
对于Qt是基于C++来实现的框架,该层主要包括QSqlDriver,QSqlDriverCreator,QSqlDriverCreatorBase,QSqlDriverPlugin,and QSqlResult。这一层提供了特定数据库和SQL API层之间的底层桥梁。
(2)SQL API层
对于SQL API层提供了数据库的访问相关类,其中,QSqlDatabase类进行连接,QSqlQuery可以完成与数据库的交互。除此之外,还提供了QSqlError,QSqlField,QSqlIndex,and SQqlRecord类。
(3)用户接口层
用户接口层的几个类实现了将数据库中的数据链接到窗口部件上,这些类是使用模型/视图框架实现的,他们是更高层次的抽象,主要包括QSqlQueryModel,QSqlTableModel,and QSqlRelationTableModel。
2、SQLite数据库初识
对于数据库操作流程主要分为:
第一步:在项目管理文件(.pro)中,增加数据库模块
QT += core gui sql
第二步:查看Qt对数据库的驱动的类型的支持
QStringList drivers = QSqlDatabase::drivers();//获取到qt中所支持的数据库驱动类型
foreach(QString driver,drivers)
{
qDebug() << driver;
}
第三步:连接和打开数据库
db = QSqlDatabase::addDatabase("QSQLITE"); //QSQLITE----他来告诉系统,连接的数据库是sqlite3数据库
//连接成功,返回一个数据库对象(QSqlDatabase)
db.setDatabaseName("test.db"); //设置数据库名,数据库文件后缀为.db
db.setUserName("admin"); //设置数据库用户名
db.setPassword("admin"); //设置数据库密码
//如果想要进一步操作数据库,那么就必须进行数据库打开操作
if (!db.open())
{
qDebug()<<"Error failed to open" <<db.lastError();
return false;
}
else
{
qDebug() << "open success";
}
第四步:访问数据库
访问数据库的操作主要包括:
(1)创建表;
(2)向数据库表中插入数据;
(3)删除数据;
(4)更新数据;
(5)查询数据。
对于数据库中的表,通常只需要创建一次,而其他的操作是可以重复。
(1)创建表
QSqlQuery query;//在创建该对象时,系统会自动完成跟数据库的关联
//定义一个创建表的sql语句 表名:staff 表中的字段:id name age
QString sqlCreate = "create table staff(id integer primary key autoincrement,"
"name varchar(20),"
"age int);";
query.exec(sqlCreate);
使用图形化工具查看的程序结果:
(2)向数据库表中插入数据
插入操作语法:
INSERT INTO TABLE_NAME(column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN)
INSERT INTO ------关键字
TABLE_NAME ------表名
VALUES -------关键字
插入数据操作实例:
//插入操作
QString sqlInset = QString("insert into staff(name,age) values('张三',20);");
if(!query.exec(sqlInset))
{
qDebug() << "insert data error" << db.lastError();
}
(3)删除数据
数据库删除操作:
基本语法:
DELETE FROM table_name WHERE [condition]
DELETE FROM ---- 关键字
table_name ---- 表名
WHERE ---- 条件的关键字
[condition] ---- 条件表达式
删除数据操作实例
//删除操作
QString sqlDelete = QString("DELETE FROM staff where id = 2;");
if(!query.exec(sqlDelete))
{
qDebug() << "delete data error" << db.lastError();
}
(4)更新数据
数据库更新操作:
基本语法:
UPDATE table_name SET column1 = value1, column2 = value2,...,column = valueN WHERE [condition];
UPDATE ---- 关键字
Table_name ----表名
SET -----关键字
column1 = value1 ------- 要修改的字段名和所对应的值
WHERE ----- 条件的关键字
[condition] --- 条件表达式
-
嵌入式
+关注
关注
5073文章
19038浏览量
303586 -
数据库
+关注
关注
7文章
3769浏览量
64292 -
MySQL
+关注
关注
1文章
802浏览量
26456
发布评论请先 登录
相关推荐
评论