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概念相关推荐

  1. Qt操作SQLite数据库的三种方式

    Qt访问Sqlite数据库的三种方式(即使用三种类库去访问),分别为QSqlQuery.QSqlQueryModel.QSqlTableModel,对于这三种类库,可看为一个比一个上层,也就是封装的更 ...

  2. Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作

    QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持. QSqlDatabase对象象征了数据库的关联.Qt使用驱 ...

  3. QT操作sqlite数据库汇总

    QT自带的QSqlite数据库中实现id主键自增长 QSqlite是QT自带的轻量级数据库,使用起来非常方便,对系统环境也没有任何的环境要求,可移植性非常好,适合数据量不是太大,要求不是太高的程序.本 ...

  4. QT操作Sqlite数据库修改字段名称和删除字段

    目录 一.QSqlDatabase概述 二.QSqlDatabase模块的使用 三.修改字段名称和删除字段 1.sql语句执行步骤 2.程序执行 一.QSqlDatabase概述 QSqlDataba ...

  5. QT 操作 sqlite数据库(二)----问题与其解决方案

    上一节从网络上找了一个一般的示例给大家,下面将逐步修改代码将其变为常规开发中可用的可复用代码. 首先说下上面的代码在本人实际使用过程中遇到的问题及如何结果 1.创建程序后提示"QSqlDat ...

  6. 使用qt操作sqlite,报错attempt to write a readonly database

    今天做嵌入式课设时,踩了attempt to write a readonly database的坑,我首先想到的是通过 chmod 777的方式扩大我所创建的sqlite数据库的权限,但是仍然报错. ...

  7. Qt操作SQLite数据库练习(20200215)

    #include <QCoreApplication> #include <QDebug> #include <QSqlDatabase> #include < ...

  8. QT学习:Qt操作数据库

    本节由不同Qt类支撑的三部分组成,QtSql模块层次结构如下图所示: 一.Qt操作SQLite数据库 Qt提供了一种进程内数据库SQLite.它小巧灵活,无须额外安装配置且支持大部分ANSI SQL9 ...

  9. Qt中操作SQLite数据库

    0.前言 SQLite是一款开源.轻量级.跨平台的数据库,无需server,无需安装和管理配置.它的设计目标是嵌入式的,所以很适合小型应用,也是Qt应用开发种常用的一种数据库. 1.驱动 Qt SQL ...

最新文章

  1. RDKit | RDKit 中的RECAP进行分子裂解
  2. pybind 播放h264
  3. oracle 触发器 upsert,数据库管理员
  4. Linux configure 参数解释,程序的这装,卸载
  5. 寻找冬日里的流量美食,发现了李子柒走红的秘密
  6. 15、Java并发编程:Callable、Future和FutureTask
  7. STM32 端口复用与重映射及低功耗引脚配置
  8. 在SAP CRM webclient ui右上角显示系统时间
  9. css如何调整红心样式_在JavaScript应用程序中包含CSS的多种方法「渡一」
  10. node 创建静态服务器并自动打开浏览器
  11. Windows10下python3.5的sklearn库安装
  12. 算法真的“难”吗?其实也不见得...
  13. Qt容器类之三:通用算法
  14. 商品cta策略_【钜阵CTA策略私募月报】​商品市场大幅上涨 CTA策略表现优异
  15. 个性化密码破解字典生成工具:cupp
  16. 【工赋开发者社区】产业互联网和工业互联网的区别
  17. CAESAR II 5.00 USB加密锁运行稳定完整功能版/
  18. 体验卡优惠券生成核销系统思路
  19. iOS 上传苹果商店失败记录
  20. 【CSS3】 CSS3实现“图片阴影”效果

热门文章

  1. java parseint null_java.lang.NumberFormatException: null Integer.parseInt的方法错误 具体问题代码在补充 到底怎么更改...
  2. golang语言变量定义、打印、占位符
  3. java 管理员命令模式_java中命令模式详解和使用方法
  4. 武大计算机学院八零后博导张翔,走近名校新生状元 武大张翔:学贵有恒
  5. Java面试面向对象三大特征,Java面试经典基础问答三
  6. 列宽一字符等于多少厘米_字符串匹配算法总结——BF、KMP、BM
  7. 重磅!双腿机器人Digit v2视频流出,自主搬卸货物噪音极小
  8. 这些元器件基础知识都不懂,怎么混电子圈!
  9. hpe服务器稳定性,hpe服务器安装与配置
  10. c语言一个一个读取文件字节,C语言中二进制文件的读取