一个小时内学习SQLite数据库

2023-10-30

1. 介绍

SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。如果您正在寻找一个嵌入式数据库项目或解决方案,SQLite是绝对值得考虑。

2. 安装

SQLite on Windows

1)进入 SQL 下载页面:http://www.sqlite.org/download.html

2)下载 Windows 下的预编译二进制文件包:

sqlite-shell-win32-x86-<build#>.zip
sqlite-dll-win32-x86-<build#>.zip

注意: <build#> 是 sqlite 的编译版本号

将 zip 文件解压到你的磁盘,并将解压后的目录添加到系统的 PATH 变量中,以方便在命令行中执行 sqlite 命令。

可选: 如果你计划发布基于 sqlite 数据库的应用程序,你还需要下载源码以便编译和利用其 API

sqlite-amalgamation-<build#>.zip

SQLite on Linux

在 多个 Linux 发行版提供了方便的命令来获取 SQLite:

 
 
  1. /* For Debian or Ubuntu /*  
  2. $ sudo apt-get install sqlite3 sqlite3-dev  
  3.  
  4. /* For RedHat, CentOS, or Fedora/*  
  5. $ yum install SQLite3 sqlite3-dev 

SQLite on Mac OS X

如果你正在使用 Mac OS 雪豹或者更新版本的系统,那么系统上已经装有 SQLite 了。

3. 创建首个 SQLite 数据库

现在你已经安装了 SQLite 数据库,接下来我们创建首个数据库。在命令行窗口中输入如下命令来创建一个名为 test.db 的数据库。

 
 
  1. sqlite3 test.db 

创建表:

 
 
  1. sqlite> create table mytable(id integer primary key, value text);  
  2. 2 columns were created.  

该表包含一个名为 id 的主键字段和一个名为 value 的文本字段。

注意: 最少必须为新建的数据库创建一个表或者视图,这么才能将数据库保存到磁盘中,否则数据库不会被创建。

接下来往表里中写入一些数据:

 
 
  1. sqlite> insert into mytable(id, value) values(1, 'Micheal');  
  2. sqlite> insert into mytable(id, value) values(2, 'Jenny');  
  3. sqlite> insert into mytable(value) values('Francis');  
  4. sqlite> insert into mytable(value) values('Kerk'); 

查询数据:

 
 
  1. sqlite> select * from test;  
  2. 1|Micheal  
  3. 2|Jenny  
  4. 3|Francis  
  5. 4|Kerk 

设置格式化查询结果:

 
 
  1. sqlite> .mode column;  
  2. sqlite> .header on;  
  3. sqlite> select * from test;  
  4. id          value  
  5. ----------- -------------  
  6. 1           Micheal  
  7. 2           Jenny  
  8. 3           Francis  
  9. 4           Kerk 

.mode column 将设置为列显示模式,.header 将显示列名。

修改表结构,增加列:

 
 
  1. sqlite> alter table mytable add column email text not null '' collate nocase;; 

创建视图:

 
 
  1. sqlite> create view nameview as select * from mytable; 

创建索引:

 
 
  1. sqlite> create index test_idx on mytable(value); 

4. 一些有用的 SQLite 命令

显示表结构:

 
 
  1. sqlite> .schema [table

获取所有表和视图:

 
 
  1. sqlite > .tables 

获取指定表的索引列表:

 
 
  1. sqlite > .indices [table ] 

导出数据库到 SQL 文件:

 
 
  1. sqlite > .output [filename ]  
  2. sqlite > .dump  
  3. sqlite > .output stdout 

从 SQL 文件导入数据库:

 
 
  1. sqlite > .read [filename ] 

格式化输出数据到 CSV 格式:

 
 
  1. sqlite >.output [filename.csv ]  
  2. sqlite >.separator ,  
  3. sqlite > select * from test;  
  4. sqlite >.output stdout 

从 CSV 文件导入数据到表中:

 
 
  1. sqlite >create table newtable ( id integer primary key, value text );  
  2. sqlite >.import [filename.csv ] newtable 

备份数据库:

 
 
  1. /* usage: sqlite3 [database] .dump > [filename] */  
  2. sqlite3 mytable.db .dump > backup.sql 

恢复数据库:

 
 
  1. /* usage: sqlite3 [database ] < [filename ] */  
  2. sqlite3 mytable.db < backup.sql 

原文链接:http://www.oschina.net/question/12_53183

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个小时内学习SQLite数据库 的相关文章

  • 使用扩展的ping和扩展的traceroute命令

    ping命令ping 信息包互联网探索程序 命令是排除设备的可及性的一个非常普通的方法故障 它使用二个互联网控制信息协议 ICMP 查询消息 ICMP响应请求和ICMP回音应答确定一台远端主机是否是活跃的 ping命令也测量用收到ECHO回

随机推荐

  • node.js+uni计算机毕设项目基于微信小程序的健康管理系统(程序+小程序+LW)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • [转]Ubuntu自带的FTP服务器vsftpd技巧

    实现了Apache多用户的虚拟主机设置 那么一般这些用户都会选择用ftp上传的方式来管理自己的web内容 这就需要我们再为他们开设FTP服务 Ubuntu自带的FTP服务器是vsftpd 1 安装vsftpd Ubuntu安装软件倒不是件困
  • ag-gride-vue滚动条调整

    v deep ag layout normal overflow y overlay v deep ag theme alpine dark hover ag body horizontal scroll viewport margin r
  • Matlab中使用latex风格

    Matlab绘图时使用latex风格的符号和字体 往往能够使你的图形增色不少 在Matlab中 title text xlabel ylabel和legend均可使用latex风格的符号和字体 多说无益 直接上例子 title E 2 t
  • php参考文献外文文献,web of science怎么导出参考文献

    web of science导出参考文献的方法 首先登录web of Science网站 选择文献 然后选中所需要的文献 点击页面上方中间 保存至Endnote online 旁边的下拉箭头 选择保存位置即可 本文操作环境 Windows7
  • 通过apply进行数据预处理

    数据准备 这里我事先下载了一个csv文件 其中包含两列 时间戳和字符串 大小为近8000行 使用apply进行预处理 apply可以批量的改变dataframe中的数据 经过上边的处理 在df中添加了一列 全部都是a 将A列改的值为大写 a
  • 写给Android开发者的性能优化指南(Android 性能优化的方面方面都在这儿)

    众所周知 一个好的产品 除了功能强大 好的性能也必不可少 有调查显示 近90 的受访者会因为APP性能差而卸载 性能也是造成APP用户沮丧的头号原因 而且随着产品的更新迭代 功能的越发复杂 UI页面的越发丰富 性能问题变得更加严重 说实话要
  • 推荐系统-基于物品的协同过滤(Item-based CF)

    今天我们来聊一聊基于物品的协同过滤即Item based CF方法 有了上一篇的经验 你可能很容易就想到Item based CF就是通过计算物品之间的相似度 然后用户曾与那些商品发生过交互 给他推荐与这些商品最接近的东西给他 这样做有什么
  • 毕业设计-基于机器学习的软件漏洞挖掘方法

    目录 前言 课题背景和意义 实现技术思路 一 基于机器学习的软件漏洞挖掘流程 二 代码的表征形式 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近
  • getopts 可选参数_linux shell命令行选项与参数用法详解--getopt

    本文介绍了linux shell中使用命令行选项与命令行参数的方法 在bash中 可以用以下三种方式来处理命令 行参数 每种方式都有自己的应用场景 问题描述 在linux shell中如何处理tail n 10 access log这样的命
  • gsoap学习笔记一

    本文章是对gsoap中生成的cpp类型的代码框架的应用 因为要实现一些ONVIF规范中的一些功能 所以选择了gsoap生成代码框架 但是发现好多博客上都是生成的C的代码框架 使用起来很麻烦 而且引用插件功能的时候 什么时候需要修改文件内容
  • Vue各种标签的使用方法

    1 内容绑定 事件绑定 v text v html v on 1 v text 绑定内容 作用 设置标签的内容 无论内容是什么 它只会解析文本 div style color red h2 h2 h1 h1 div
  • RuoYi框架微服务版本(windows环境)二次开发环境搭建详解【小白版】

    1 需要准备的依赖环境服务 JDK gt 1 8 推荐1 8版本 Mysql gt 5 7 0 推荐5 7版本 Redis gt 3 0 Maven gt 3 0 NodeJS gt 10 以上安装配置不赘述 nacos gt 1 1 0
  • 基于Smack3.0.4+ Openfire3.10.2开发之Android 客户端之二

    我们在之前依次介绍openfire部署以及smack常用API的使用 这一节中我们着力介绍如何基于asmack开发一个Android的客户端 本篇的重点在实践 讲解和原理环节 大家可以参考前面我所发布的OpenFire和Smack的相关文章
  • FLOPS的计算

    参考 https blog csdn net qq 42309265 article details 123098538 概念 FLOPS 浮点运算数 是floating point operations per second的缩写 意指每
  • C51子函数

    子函数 将完成某一种功能的程序代码单独抽取出来形成一个模块 在其它函数中可以随时调用此模块 以达到代码的复用和优化程序结构的目的 void Function unsigned char x 返回值 函数名 形参 函数体
  • 爬虫的异常处理办法

    爬虫是一种自动化程序 用于从互联网上收集数据 然而 由于互联网的不确定性和复杂性 爬虫程序可能会遇到各种异常情况 这些异常情况可能会导致爬虫程序停止工作或者收集到错误的数据 因此 异常处理是爬虫程序开发中非常重要的一部分 本文将介绍爬虫程序
  • mysql视图总结

    1 概述 视图是指计算机数据库中的视图 是一个虚拟表 其内容由查询定义 同真实的表一样 视图包含一系列带有名称的列和行数据 但是 视图并不在数据库中以存储的数据值集形式存在 行和列数据来自由定义视图的查询所引用的表 并且在引用视图时动态生成
  • au人声处理_如何消去人声保留伴奏?

    因为有做混剪视频 经常需要把声音和背景音乐分离 所以我尝试过很多的办法 下面分享2种我觉得分离效果还行的方法 PS 先声明 目前技术只能优化声音 音乐分离 还不能完成剥离 所以人声和音乐分离后 音质肯定会有些许的损失 01 Au中置声道提取
  • 一个小时内学习SQLite数据库

    1 介绍 SQLite 是一个开源的嵌入式关系数据库 实现自包容 零配置 支持事务的SQL数据库引擎 其特点是高度便携 使用方便 结构紧凑 高效 可靠 与其他数据库管理系统不同 SQLite 的安装和运行非常简单 在大多数情况下 只要确保S