QT操作sqlite概念
SQLite数据库 '增、删、改、查'
1. 数据库简介
数据库指的是以一定方式存储在一起,能为多个用户共享,具有尽可能小的冗余度的特点,是与应用程序彼此独立的数据集合。
// 一定方式:可以理解为策略、算法
// 网盘相同的文件是以 MD5 码的形式标记相同的文件,以网络共享。
2. 和数据相关的术语
DBMS '数据库管理系统'
DBA '数据库管理员'
DB '数据库'
RDB '关系型数据库'
RDBMS '关系型数据库管理系统'
3. 数据分类
层次型数据库 - 有序二叉树,现在用的少
网络型数据库 - 网状结构,用的也少
关系型数据库 - '二维表格形式',现在普遍使用的。
4. 常见数据库
商业数据库:
- 甲骨文 Oracle , 市场占有率 50%
- IBM DB2 , 市场占有率 20%
- 微软 Sqlserver , 市场占有率 15%
非商业数据库:
- Sun Mysql ---> 被Oracle收购,甲骨文旗下产品
- 开源SQLite,轻量级嵌入式领域关系型数据库
5. 数据库的操作语言
'SQL' 结构化查询语言
是一种特殊目的的编程语言,实现数据库的查询和程序设计,常用于关系型数据库系统,实现数据增、删、改、查等操作。
三、SQLite 数据库的操作
1. 安装
在线安装 $: sudo apt-get install sqlite3
离线安装
$: sudo dpkg -i /home/tarena/Downloads/sqlite3/sqlite3_3.7.9-2ubuntu1.2_amd64.deb
2. 在终端输入 sqlite3 ,进入sqlite命令行操作界面
$: sqlite3
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
sqlite>
...
3. sqlite指令 instructions 指令
.help // 帮助手册,列出所有sqlite所有帮助信息
.quit // .e 或 .exit 退出
Ctrl + L // 实现清理屏幕
; // 英文分号代表sqlite语句命令结束,回到正常sqlite命令行
四、在命令行使用SQL语句操作sqlite数据库
1. 创建数据库文件(DB)
$: sqlite3 DatabaseName.db
创建成功后,会自动进入sqlite命令行的界面" sqlite> "
eg:
$: sqlite3 testDB.db // 打开名为testDB的数据文件,不存在则创建
2. 输入" .database " 查看数据库文件信息
seq // 序号
name // 数据库名
file // 数据库文件名
文件权限:- rw- r-- r--
3. 创建数据表 '语法'
CREATE TABLE table_name (
列名1 类型1 [约束],
列名2 类型2 [约束],
...);
【注】sql语句中不区分大小写,习惯把'关键字'(create table)写成大写
eg:
创建一个公司员工信息表company,
列包含:ID、姓名、年龄、地址、薪资
sqlite> CREATE TABLE company(
...> id INT PRIMARY KEY NOT NULL,
...> name TEXT NOT NULL,
...> age INT NOT NULL,
...> address TEXT,
...> salary REAL NOT NULL);
sqlite> .table ---> ' .table ' // 查看表的名字 .ta
company
sqlite> .schema ---> ' .schema ' // 查看创建表详细信息 .sc
CREATE TABLE company(
id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address TEXT,
salary REAL NOT NULL);
'[约束]':
PRIMARY KEY // 主键约束,数据唯一,并且可以加快数据访问
NOT NULL // 非空,限制插入数据不能为空
'类型关键字':
INT 整型
TEXT 文本字符串
REAL 浮点数
练习:
创建学生成绩的数据表
表名:Student
列名:ID(INT) NAME(TEXT) SCORE(REAL)
要求ID唯一,每一列的数据非空。
sqlite> create table Student(
...> ID INT PRIMARY KEY NOT NULL,
...> NAME TEXT NOT NULL,
...> SCORE REAL NOT NULL);
4. 删除数据库表 '语法'
DROP TABLE 表名;
eg:
DROP TABLE Student;
将Student表删除,里面的数据也会被删除,且数据恢复比较困难。
5. 插入数据 '语法'
INSERT INTO 表名
(列名1, 列名2, 列名3...)
VALUES(数据1, 数据2, 数据3...);
eg:向company表中插入数据
10086 "张飞" 30岁 "四川" 800.5
10011 "关羽" 31岁 801.5
INSERT INTO company
(id, name, age, address, salary)
VALUES(10086, "张飞", 30, "四川", 800.5);
INSERT INTO company
(id, name, age, salary)
VALUES(10011, "关羽", 31, 800.5);
6. 查询数据 '语法'
select * from company;
eg:
sqlite> select * from company ;
10011|关羽|31|成都|801.5
10011|关羽|31|成都|801.5
10086|张飞|30|四川|800.5
10000|曹操|35||999.9
10002|刘备|34|河南|855.5
10013|关兴|28|湖南|600.5
10015|刘禅|18|北京|300.0
10014|曹植|16|广东|1200.5
10008|赵云|26|上海|888.8
7. 删除数据 '语法'
DELETE FROM 表名 WHERE [条件] // 一般使用唯一属性进行匹配删除
eg:// 比如 id
DELETE FROM company WHERE id = 10000;
8. 修改数据 '语法'
UPDATE 表名 SET 列名1 = 数值1, 列名2 = 数值2... WHERE [条件];
// 一般使用唯一属性进行匹配修改单条信息
eg:
UPDATE company SET age= 26 WHERE id= 10014;
UPDATE company SET address= "上海" WHERE id < 10014;
// 算数:+ - * / % 比较:== = != <> > < >= <= !< !>
// 逻辑:AND BETWEEN EXISTS IN LIKE
// 逻辑:GLOB NOT OR IS UNIQUE
9. 查询数据 '语法'
// 所有列,可以用 * 替换
SELECT 列名1, 列名2, 列名3... FROM 表名;
SELECT 列名1, 列名2, 列名3... FROM 表名 WHERE [条件];
SELECT 列名1, 列名2, 列名3... FROM 表名 WHERE [条件]
ORDER BY 列名 ASC/DESC ; // ASC 升序,DESC 降序
eg:
SELECT id, name FROM company;
SELECT id, name FROM company WHERE id > 10014;
SELECT * FROM company WHERE salary < 1000;
SELECT id,name FROM company ORDER BY id ASC;
10. 扩充SQLite数据库操作,了解命令: LIKE / LIMIT / DISTINCT
QT操作sqlite概念相关推荐
- Qt操作SQLite数据库的三种方式
Qt访问Sqlite数据库的三种方式(即使用三种类库去访问),分别为QSqlQuery.QSqlQueryModel.QSqlTableModel,对于这三种类库,可看为一个比一个上层,也就是封装的更 ...
- Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作
QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持. QSqlDatabase对象象征了数据库的关联.Qt使用驱 ...
- QT操作sqlite数据库汇总
QT自带的QSqlite数据库中实现id主键自增长 QSqlite是QT自带的轻量级数据库,使用起来非常方便,对系统环境也没有任何的环境要求,可移植性非常好,适合数据量不是太大,要求不是太高的程序.本 ...
- QT操作Sqlite数据库修改字段名称和删除字段
目录 一.QSqlDatabase概述 二.QSqlDatabase模块的使用 三.修改字段名称和删除字段 1.sql语句执行步骤 2.程序执行 一.QSqlDatabase概述 QSqlDataba ...
- QT 操作 sqlite数据库(二)----问题与其解决方案
上一节从网络上找了一个一般的示例给大家,下面将逐步修改代码将其变为常规开发中可用的可复用代码. 首先说下上面的代码在本人实际使用过程中遇到的问题及如何结果 1.创建程序后提示"QSqlDat ...
- 使用qt操作sqlite,报错attempt to write a readonly database
今天做嵌入式课设时,踩了attempt to write a readonly database的坑,我首先想到的是通过 chmod 777的方式扩大我所创建的sqlite数据库的权限,但是仍然报错. ...
- Qt操作SQLite数据库练习(20200215)
#include <QCoreApplication> #include <QDebug> #include <QSqlDatabase> #include < ...
- QT学习:Qt操作数据库
本节由不同Qt类支撑的三部分组成,QtSql模块层次结构如下图所示: 一.Qt操作SQLite数据库 Qt提供了一种进程内数据库SQLite.它小巧灵活,无须额外安装配置且支持大部分ANSI SQL9 ...
- Qt中操作SQLite数据库
0.前言 SQLite是一款开源.轻量级.跨平台的数据库,无需server,无需安装和管理配置.它的设计目标是嵌入式的,所以很适合小型应用,也是Qt应用开发种常用的一种数据库. 1.驱动 Qt SQL ...
最新文章
- RDKit | RDKit 中的RECAP进行分子裂解
- pybind 播放h264
- oracle 触发器 upsert,数据库管理员
- Linux configure 参数解释,程序的这装,卸载
- 寻找冬日里的流量美食,发现了李子柒走红的秘密
- 15、Java并发编程:Callable、Future和FutureTask
- STM32 端口复用与重映射及低功耗引脚配置
- 在SAP CRM webclient ui右上角显示系统时间
- css如何调整红心样式_在JavaScript应用程序中包含CSS的多种方法「渡一」
- node 创建静态服务器并自动打开浏览器
- Windows10下python3.5的sklearn库安装
- 算法真的“难”吗?其实也不见得...
- Qt容器类之三:通用算法
- 商品cta策略_【钜阵CTA策略私募月报】​商品市场大幅上涨 CTA策略表现优异
- 个性化密码破解字典生成工具:cupp
- 【工赋开发者社区】产业互联网和工业互联网的区别
- CAESAR II 5.00 USB加密锁运行稳定完整功能版/
- 体验卡优惠券生成核销系统思路
- iOS 上传苹果商店失败记录
- 【CSS3】 CSS3实现“图片阴影”效果
热门文章
- java parseint null_java.lang.NumberFormatException: null Integer.parseInt的方法错误 具体问题代码在补充 到底怎么更改...
- golang语言变量定义、打印、占位符
- java 管理员命令模式_java中命令模式详解和使用方法
- 武大计算机学院八零后博导张翔,走近名校新生状元 武大张翔:学贵有恒
- Java面试面向对象三大特征,Java面试经典基础问答三
- 列宽一字符等于多少厘米_字符串匹配算法总结——BF、KMP、BM
- 重磅!双腿机器人Digit v2视频流出,自主搬卸货物噪音极小
- 这些元器件基础知识都不懂,怎么混电子圈!
- hpe服务器稳定性,hpe服务器安装与配置
- c语言一个一个读取文件字节,C语言中二进制文件的读取