Qt SQL 学习笔记二:qt建立数据库,创建和操纵表
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数据库,数据库表的结构如下图:
Qt SQL 学习笔记二:qt建立数据库,创建和操纵表相关推荐
- PL/SQL学习笔记(二)
定义并使用变量 PL/SQL有四种类型:标量类型,复合类型,引用类型(reference),LOB(Large Obejct)类型 一.标量类型 最常用的就是标量类型,是指只能存放单个数值的变量,包括 ...
- [Spring Data MongoDB]学习笔记--建立数据库的连接
1. 有了上一篇的Mongo后,连接数据库我们还需要更多的信息,比如数据库名字,用户名和密码等. 我们可以继续来配置MongoDbFactory的实例. public interface MongoD ...
- My SQL 学习笔记二
本文主要记录这两天遇到的问题: 1.sql脚本文件存在自己的目录下,例如在F盘,通过命令:mysql> source F:/filename.sql 会弹出Failed to open fil ...
- SQL学习笔记之二:QUOTENAME函数
SQL学习笔记之二:QUOTENAME函数 --SQL学习笔记二 --函数QUOTENAME --功能:返回带有分隔符的Unicode 字符串,分隔符的加入可使输入的字符串成为有效的Microsoft ...
- 学习笔记之Qt从入门到精通(三)
整理日期: 2010年4月9日 本文是学习笔记之Qt从入门到精通(二)的接续 Part 3: 进阶学习 Qt4 学习笔记 Qt 可以运行在不同的平台,像是Unix/X11.Windows.Mac OS ...
- QT+opencv学习笔记(5)——霍夫直线检测、圆检测及椭圆检测
开发环境为:win10+QT5.8+opencv3.2 Hough变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛.最基本的Hough变换是从黑白图像中检测直线,还可以经过改进检测圆.椭 ...
- 【QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)】
[QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)] 1.说明 2.实验环境 3.参照学习链接 4.自己的学习与理解 5.学习与实践代码. (1)建立基础工程. (2)加入绘图事 ...
- Qt学习笔记,Qt国际化
Qt学习笔记,Qt国际化 Qt国际化步骤: 第一步:设置.pro文件,加入TRANSLATIONS为国际化做准备 TRANSLATIONS = language/language_en.ts\ ...
- Qt学习笔记,Qt程序架构设计要旨
Qt学习笔记,Qt程序架构设计要旨 时间过得很快,转眼学习Qt已经有一个多月了,对Qt的学习也在不断的深入中.自己手下的code也很多了,不过不得不说,还有很多的部分没有接触过,比如网络编程,2D,3 ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
最新文章
- Docker 学习笔记之二
- vba 当前文件名_值得收藏的VBA编程常用代码3640
- Office365----Project Online SKUs Change
- jmeter验证WEB页面的href链接请求
- Servlet笔记之(三)
- 53 岁张亚勤官宣:正式加入清华!
- 查看linux的机器内存大小,linux 查看机器内存方法 (free命令)
- 最新仿7881游戏装备网虚拟物品交易源码+修复版
- STM32标准库(固件库)分析
- 药店app的布局html,APP首页常用排版
- oracle共有同义词,Oracle同义词概念
- 【有利可图网】PS教程:给人物制作一种碎片打散效果
- linux连接蓝牙没声音,Linux Ubuntu18.04蓝牙没声音 org.bluez.Error.Failed, name org.PulseAudio1 already taken...
- C. Petya and Inequiations
- SQL将Json字符串转为表格
- 【制作ppt的软件】Focusky教程 | 视频全屏播放
- 阿里云导出负载均衡SLB实例数据
- 09-word不显示段落标记(去掉回车符号)取消拼写错误
- 抖音企业号seo排名优化账号矩阵系统
- 《网络渗透检测第一章 信息收集》