day_05_鼠标和键盘、数据库sqlite

常用类库:

显示:QLable QFrame QMessageBox
输入:QLineEdit
按钮:QPushButton QDialogButtonBox
事件处理:
  void paintEvent(QPaintEvent*) // 绘图事件
  void timerEvent(QTimerEvent*) // 定时器事件
  mousePressEvent(QMouseEvent*) // 鼠标按下
  mouseReleaseEvent(QMouseEvent*) // 鼠标抬起
  mouseMoveEvent(QMouseEvent*) // 鼠标移动
其它:QDir QTime QVector(容器) QString …

十一、鼠标和键盘

1、鼠标事件处理

……

2、键盘事件处理

void keyPressEvent(QKeyEvent*);    // 按下
void keyReleaseEvent(QKeyEvent*);  // 抬起

int key() const       // 获取按键代码
QString text() const  // 获取按键文本

案例:按键测试
工程名:Keyboard
类名:KeyboardDialog
……


十二、数据库(sqlite)

1、数据库简介

1)概念

  数据库指的是以一定方式存储在一起,能为多个用户共享、具有尽可能小的冗余度的特点,与应用程序彼此独立的数据集合;

2)数据库相关术语

  DB - - - - - - - - - - - - 数据库(database)
  DBMS - - - - - - - - – 数据库管理系统(DataBaseManageSystem)
  DBA - - - - - - - - - - - 数据库管理员(DataBaseAdministartor)
  RDB - - - - - - - - - - - 关系型数据库
  RDBMS - - - - - - - – 关系型数据库管理系统

3)数据库分类(根据存储方式)

  层次式数据库
  网络式数据库
  关系式数据库(普遍使用)

4)常见的数据库

商业数据库:

a. 甲骨文Oracle,市场占有率50%
b. IBM的DB2,市场占有率20%
c. 微软的SqlServer,市场占有率15%

非商业数据库:

a. Sun公司的Mysql,被Oracle收购;
b. SQLite数据库,轻量级的数据库;

2)Sqlite数据库

2.1 安装

1)离线安装

$ sudo dpkg -i libsqlite3-dev_3.7.9-2ubuntu1.2_amd64.deb // 64位

2)在线安装

$ sudo apt-get install sqlite3

3)测试

$ splite3  // 查看sqlite版本信息并进入命令行操作界面

2.2 常用的命令

$ splite3 xx.db // 操作指定的数据文件

注意:
  在命令行界面可以输入两种指令,一种是sqlite3自身的指令,以"."开始,输入".help"可以看到这些指令的帮助文档;另一种是对数据的操作指令,比如创建数据表,或者对数据表的数据进行增删改查等操作,称为SQL语句,以";"结束。

sqlite> .databases        // 查看数据库的名字和文件路径
sqlite> .exit             // 退回到终端
sqlite> .help             // 查看帮助提示
sqlite> .header on        // 显示数据标题栏
sqlite> .mode column/list // 设置显示模式
sqlite> .quit             // 退回到终端
sqlite> .tables           // 列出数据表名字
sqlite> .schema           // 查看数据表创建语句(了解数据表详细信息)

eg:

sqlite> SELECT * FROM company; //

3、在命令行使用SQL语句操作数据库

1)创建数据库

语法:

sqlite3 数据文件名.db  // 创建数据文件并进入命令行操作界面
2)创建数据表

语法:

CREATE TABLE 表名(列名1 类型 [约束], 列名2 类型 [约束], 列名3 类型 [约束]);

类型:
  INT(整型数)、TEXT(文本字符串)、REAL(浮点数)
约束:
  PRIMARY KEY - - - - - - - 主键约束,表示该列的数据唯一,并且可以加快数据的访问;
  NOT NULL - - - - - - - - – 非空约束,表示该列的数据不能为空;

3)删除数据表

语法:

DROP TABLE 表名;

注意:数据表一旦删除里面的数据也将消失;

4)插入数据

语法:

INSERT INTO 表名 (列名1, 列名2,..) VALUES (数值1,数值2,..);
5)删除数据

语法:

DELETE FROM 表名 WHERE 条件表达式;

eg:sqlite> DELETE FROM company WHERE salary<1000 or salary>8000;

6)修改数据

语法:

UPDATE 表名 SET 列名1=数值1, 列名2=数值2.. WHERE 条件表达式
7)查询数据

语法:

SELECT 列名1, 列名2... FROM company;
SELECT 列名1, 列名2... FROM company WHERE 条件表达式 ORDER BY 列名 排序方式;

注意:排序方式ASC(升序)、DESC(降序)

练习:
  创建一个menu.db的数据库文件,打开后建立学生成绩数据表,列的字段依次为学号(ID)、姓名(Name)和成绩(Score)

4、在QT中使用Sqlite数据库

1)建立qt程序和数据库的连接:QSqlDatabase
// 添加数据库驱动
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
// 设置数据库名字,对于sqlite就是数据文件名字xx.db
db.setDatabaseName("menu.db");
// 打开数据库
db.open();
2)执行SQL语句:QSqlQuery
QSqlQuery query;
query.exec("sql语句字符串");
3)执行查询SQL语句,遍历结果集:QSqlQueryModel

eg:

QSqlQueryModel model;
// 执行查询语句,并将结果集保存到model中
model.setQuery("SELECT语句");
// 显示结果集到界面
QTableView* view = new QTableView;
view->setModel(&model);

案例:学生成绩管理系统
工程名:Sqlite
类名:SqliteDialog

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值