干货|Sqlite数据库知识必知必会(上篇)

Python进阶者
• 阅读 1853

大家好,我是IT共享者,人称皮皮。

前面几天给大家分享了MySQL数据库知识,没来得及看的小伙伴可以前往:Mysql查询语句进阶知识集锦一篇文章教会你进行Mysql数据库和数据表的基本操作,关于数据库的安装可以参考:手把手教你进行Mysql5.x版本的安装及解决安装过程中的bug,今天皮皮继续给大家分享数据库知识,但是换了一个主角,它就是Sqlite。

前言

前面我们学习了很多数据库,虽然它们功能非常丰富,但是占用空间比较大,使得我们的系统负荷变大,这对于我们新手小白来说不是一个理想的选择,于是乎,Sqlite闪亮登场,它受人喜爱的真正原因正是因为它足够小,无需安装和管理配置,简单容易上手,支持数据库的大小也有2TB,足够我们个人开发爱好者使用了。

一、安装

既然要学Sqlite,首先我们先安装它们,前面我们说过,安装它们无需太多过程,即免安装,下载地址:

https://u062.com/dir/7715018-39794633-fbf2ca

我们下载好后直接将Sqlite的应用程序加入到环境变量中即可随意使用了,打开CMD,看到这种字样,表示安装成功,如图:

干货|Sqlite数据库知识必知必会(上篇)

二、图形化界面管理

Sqlite已经安装上了,但是在命令提示符窗口操作总感觉不美观,小编想这时候应该需要一个图形界面工具来操纵Sqlite,这样就能更直观的显示数据了,这里我推荐SqliteAdmin,中文版的界面再加上简洁的界面设计,如图:

干货|Sqlite数据库知识必知必会(上篇)

注意,此时的软件还无法正常工作,因为它还没有可以解析Sqlite语句的动态链接库,所以你还需要下载个动态链接库,这里小编已经准备好了下载地址了,下载后直接复制到软件的目录即可,下载地址:

https://u062.com/file/7715018-452195159

三、基本语法

Sqlite不像其它的数据库以“;”结尾,而且它是以“.”开头使得式子成立的。打开我们的SqliteAdmin,下面开始我们的装逼之旅。

1.数据类型

Null         空值
SMALLLINT    短整型
INTEGER      带符号的整数 这个就是布尔类型 0(false)和 1(true)
TINYINT      长整型
REAL         浮点值
TEXT         大量文本字符串
BLOB         二进制对象       
NUMERIC      使用所有五个存储类的值
VARCHAR(n)   变动长度字符串,只能存英文,最多8000个字符
CHAR(n)      固定长度字符串
DATA         年月日
TIME         时分秒
DOUBLE       双精度浮点数
FLOAT        单精度浮点数
TIMESTAMP    存储年月日时分秒
NCHAR        存储Unicode数据类型的固长字符串 ,可存英文汉字,做多4000个字符
NVARCHAR 存储Unicode数据类型的变长字符串
NTEXT        存储Unicode数据类型的大量文本字符串
DATATIME     存储日期时间

其实它的数据类型远不止这些,更多的数据类型需要大家发掘,这里小编列举只是常用的数据类型罢了。

2.基本关键字

了解了数据类型,在创建数据库时用于操作时需要配套使用的关键字当然也必须得了解,这样才能提高开发效率。


AND   与


BETWEEN  最小值和最大值之间


EXISTS 判断是否存在


IN  判断某个值是否属于另一个值


NOT IN 判断某个值是否不属于另一个值


LIKE 使用通配符比较值与另一个值 不区分大小写 %(表示零个,一个或者多个)  _(表示一个)


GLOB  使用通配符将值与类似值进行比较,并区分大小写的 *(表示零个或多个)     ?(表示一个)


LIMIT  限制满足条件的值的数量


ORDER BY 排序  ASC(升序) | DESC(降序)


GROUP BY  数据聚合


HAVING   过滤分组,使用前一定要使用GROUP BY


DISTINCT   消除所有重复记录



NOT  不,常和in一起用


OR   或


IS NULL  判断是否等于空值,类型运算符


IS  相当于‘=’


IS NOT  判断是否不等于 相当于“!=”


UNIQUE    不重复

UNION     消除所有重复行

UNIONALL  不消除重复行

WHERE   用于满足某个条件时

SELECT  选择

FROM   来自

INSERT INTO 插入表数据

PRIMARY Key  主列

DEFAULT 默认值

CHECK 检查

3.数据库相关操作

1).创建数据库文件

首先我们要创建一个数据库文件,以“.db”结尾的文件,如下:

干货|Sqlite数据库知识必知必会(上篇)

干货|Sqlite数据库知识必知必会(上篇)

我们还可以在命令提示符里面创建数据库,如下所示:

干货|Sqlite数据库知识必知必会(上篇)

这样就创建了一个"test"的数据库文件了,我们创建之后我们就进入了"test"数据库中了,然后就可以进行其它操作了。

2).查看数据库

.database   .databases 两者即可

干货|Sqlite数据库知识必知必会(上篇)

3).退出数据库

.quit

干货|Sqlite数据库知识必知必会(上篇)

4).导出数据库

sqlite3 test.db .dump > test.sql

干货|Sqlite数据库知识必知必会(上篇)

5).创建附加数据库

ATTACH DATABASE 'test1.db' as 'test1';
ATTACH DATABASE 'test2.db' as 'test2';

上述操作是将所有数据库数据都存放在了数据库文件“test.db”中了,不过实际开发中不建议这么做,建议多做几个数据库,或者将数据库嵌入到其它数据库中。

6).显示附加数据库

.database   .databases 两者即可

干货|Sqlite数据库知识必知必会(上篇)

7).分离数据库

DETACH DATABASE 'test1';

干货|Sqlite数据库知识必知必会(上篇)

四、总结

这篇文章主要介绍了Sqlite数据库的安装、图形化管理系统、基本数据类型、基本关键字和数据库的相关操作,介绍了创建数据库、查看数据库、退出数据库、导出数据库、创建附加数据库、显示附加数据库和分离数据库的方法,干货多多。下一篇文章继续给大家分享Sqlite数据库的数据表、索引、视图、触发器和事务操作知识,敬请期待!

我是皮皮,如果觉得文章不错,记得三连噢。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Python进阶者 Python进阶者
3年前
干货|Sqlite数据库知识必知必会(下篇)
大家好,我是IT共享者,人称皮皮。前面几天给大家分享了MySQL数据库知识,没来得及看的小伙伴可以前往:,,关于数据库的安装可以参考:。上篇文章主要给大家介绍了Sqlite数据库的安装、图形化管理系统、基本数据类型、基本关键字和数据库的相关操作,,今天皮皮紧接上篇文章,继续给大家分享数据库知识,一起来看看吧。前言前面我们学习了很多数据库,虽然它们功能非常丰
Irene181 Irene181
3年前
干货|Sqlite数据库知识必知必会(上篇)
大家好,我是IT共享者,人称皮皮。前面几天给大家分享了MySQL数据库知识,没来得及看的小伙伴可以前往:,,关于数据库的安装可以参考:,今天皮皮继续给大家分享数据库知识,但是换了一个主角,它就是Sqlite。前言前面我们学习了很多数据库,虽然它们功能非常丰富,但是占用空间比较大,使得我们的系统负荷变大,这对于我们新手小白来说不是一个理想的选择,于是乎
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Irene181 Irene181
3年前
干货|Sqlite数据库知识必知必会(下篇)
大家好,我是IT共享者,人称皮皮。前面几天给大家分享了MySQL数据库知识,没来得及看的小伙伴可以前往:,,关于数据库的安装可以参考:。上篇文章主要给大家介绍了Sqlite数据库的安装、图形化管理系统、基本数据类型、基本关键字和数据库的相关操作,,今天皮皮紧接上篇文章,继续给大家分享数据库知识,一起来看看吧。前言前面我们学习了很多数据库,虽然它们功能非常
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这