SQLite数据库的一些操作


前段时间在看Android方面的书,买了本《第一行代码:Android》,手把手教学,感觉还行,就是第一次在对着书上的内容敲代码的时候经常出错,坑死我了o(╯□╰)o 不过后来去作者的csdn博客上找到了对应的源码,以后就对着作者的博客+源码,然后翻阅实体书进行Android的学习了。

上面扯了一堆废话,下面进入本文正题,在Android中使用都是SQLite数据库(听说是这样的,没有深究),之前基本上只用过MSSQL和MySQL,不清楚怎么弄SQLite,也许以后会碰到,先明白个大概,以后碰到了再深究,先来点简单的内容:

SQLITE查询数据库表结构

遇到有未知结构的数据库时,可以通过以下方法来或许数据库中详细信息:

  • .table    #该命令可以查询当前数据库中所有的表名(等价于mysql中的show tables)
  • select * from sqlite_master WHERE type=”table”;   #可以查询到当前数据库中所有表的详细结构信息(等价于mysql中的desc tablename)

1)创建数据库文件:
>sqlite3 d:test.db 回车
就生成了一个test.db在d盘。
这样同时也在SQLite3中挂载上了这个test.db

2)用.help可以看看有什么命令
>.help 回车即可

3)可以在这里直接输入SQL语句创建表格,用“;”结束,然后回车就可以看到了

4)看看数据库中有多少表
>.tables

5)看表结构
>.schema 表名

6)看看目前挂载了哪些数据库
>.database

7)如果要把查询输出到文件
>.output 文件名
> 查询语句;
查询结果就输出到了文件query.txt(具体位置依赖于打开sqlite时的CMD路径)
把查询结果用屏幕输出
>.output stdout

8)把表结构输出,同时索引也会输出
.dump 表名

9)退出
>.exit 或者.quit

普通SQL操作遵循通用标准SQL语句。


 

如果不想使用命令行,可以使用一个叫做“SQLite Database Browser”的软件,可视化编辑,下载地址:http://sourceforge.net/projects/sqlitebrowser/files/sqlitebrowser/

 

参考链接:
,

《 “SQLite数据库的一些操作” 》 有 4 条评论

  1. Magellan(麦哲伦)是Tencent Blade Team发现的一个存在于SQLite中的远程执行代码漏洞。
    https://blade.tencent.com/magellan/
    https://www.sqlite.org/releaselog/3_26_0.html
    `
    (1) 怎么判断是否受到漏洞的影响?
    如果您使用的是包含了SQLite数据库或Chromium的设备或软件,则会受到影响,比如各类PC/移动终端/IoT设备。

    (2) 此漏洞的危害是什么?
    远程代码执行,泄漏程序内存地址或导致程序崩溃。

    (3) 此漏洞是否能够成功利用?
    是的,我们成功地使用此漏洞攻破了Google Home,目前我们还没有计划披露漏洞利用代码。

    (4) 利用此漏洞的条件是什么?
    可以远程触发此漏洞,例如在浏览器中访问特定网页。

    (5) “Magellan”有公开用于攻击的案例吗?
    我们还没有发现此漏洞被公开利用。

    (6) 是否有修复方案?
    我们已向Google与SQLite官方报告了此漏洞的所有详细信息,目前他们已经迅速修复了此漏洞( commit )。如果您的产品使用了Chromium浏览器内核,请更新至官方最新稳定版本71.0.3578.80( Release updates)。如果您的产品使用了SQLite数据库,请更新至最新的3.26.0版本 ( Release updates)。
    `

  2. Date And Time Functions
    https://www.sqlite.org/lang_datefunc.html
    `
    $ sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db ‘select client,auth_value,last_modified from access where service = “kTCCServiceSystemPolicyAllFiles”‘

    $ sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db ‘select client,auth_value,datetime(last_modified,”unixepoch”,”localtime”) from access where service = “kTCCServiceSystemPolicyAllFiles”‘

    `

  3. 理查德·希普《SQLite 不为人知的故事》
    https://corecursive.com/066-sqlite-with-richard-hipp/
    `
    我写 SQLite 的时候,从来没人教过我 B 树的知识。我需要自己实现 B 树,我就从书架取下高德纳的《计算机编程艺术》,找到了 B 树的章节。他描述了算法,我就照着实现。

    有趣的是,高德纳详细介绍了搜索 B 树和插入 B 树的算法,没有提供从 B 树删除数据的算法,这是放在本章末尾的练习。所以我在实现自己的 B 树之前,还必须先做完该章的练习。谢谢高德纳,我真的很感激。
    `

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注