Qt SQL 学习笔记二:qt建立数据库,创建和操纵表
qt工程配置Qt5中使用sql相关功能,需要在工程文件导入sql模块:QT+= sql头文件引入SQL模块类定义#include <QSqlQuery>#include <QSqlDatabase>#include <QSqlError>创建数据库qDebug()<<QSqlDataba
qt工程配置
Qt5中使用sql相关功能,需要在工程文件导入sql模块:
QT += sql
头文件引入SQL模块类定义
#include <QSqlQuery>
#include <QSqlDatabase>
#include <QSqlError>
创建数据库
qDebug()<<QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("testDB.db");
db.setUserName("root");
db.setPassword("123456");
上述第一行代码查看支持的数据库类型如下:
("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
后面几行表示创建一个名为testDB.db的SQLITE数据库,如果这个数据库不存在,则创建;数据库存在,后续的数据库操作在已有的数据库上进行。并设置数据库用户名为“root”,密码“123456”。
创建表
- 新表的名字,在关键字CREATE TABLE之后给出;
- 新表中,列的名字和定义用逗号隔开。
下面代码用来实现创建名为Customers的表。
bool isOk = db.open();
if(!isOk){
qDebug()<<"error info :"<<db.lastError();
}
else{
QSqlQuery query;
QString creatTableStr = "CREATE TABLE Customers \
( \
cust_id char(10) NOT NULL , \
cust_name char(50) NOT NULL , \
cust_address char(50) NULL , \
cust_city char(50) NULL , \
cust_state char(5) NULL , \
cust_zip char(10) NULL , \
cust_country char(50) NULL , \
cust_contact char(50) NULL , \
cust_email char(255) NULL \
);";
query.prepare(creatTableStr);
if(!query.exec()){
qDebug()<<"query error :"<<query.lastError();
}
else{
qDebug()<<"creat table success!";
}
}
db.close();
操作数据库之前,先要打开数据库,打开成功后才能执行相关数据库操作,完成后,最好关闭数据库。
操作数据库需要用到QSqlQuery类,操作前必须定义一个对象。对数据库的操作,都是通过执行SQLite的语句完成的。
创建表格语句:CREATE TABLE <table_name> (f1 type1, f2 type2,…);
从上述代码可以看到,表明Customers紧跟在关键字CREATE TABLE之后。表的定义在圆括号之中,各列之间用逗号分隔,总共有9列。每个表列有NULL和NOT NULL两种模式。允许NULL值的列允许插入时不给出该列的值,反之,NOT NULL列必须有值。注意不要把NULL值和空字符串相混淆,空字符串是一个有效的值。
最后,用DB Browser for SQLite工具打开创建的testDB.db数据库,数据库表的结构如下图:
更多推荐
所有评论(0)