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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值