数据库初学者的福音——SQLite

2022-03-15 00:00:00 数据库 操作 简单 是一个 中为

导读:数据库操作应该算是所有程序员的基本功了,写的一手好SQL对于数据分析师而言更是安身立命之本。前期,个人惯用的是MySQL,近日由于工作需要对Sqlite使用更为频繁,所以便简单了解了一下,发现sqlite当真有其好用的一面,堪称是数据库初学者的福音。做以简单纪要。

01 sqlite简介

sqlite是一款简单便携的内置数据库,无论是PC端还是移动端,都无需安装即可直接存储、访问和更改。编程语言中一般也都内置了相应引擎库,例如python中对应的模块为sqlite3。使用sqlite数据库的几大核心优势:

  • 配置环境极其简单,实际上若无需图形化界面而仅仅使用代码操作的话,其实无需任何安装操作。但一般还是要安装个数据库IDE,例如Navicat
  • 数据库文件简洁直观、可跨平台,sqlite数据存储在本地的一个.db文件中,可以像对待其他任何文件一样完成拷贝、传输和移动等操作,在图形化界面(如Navicat)中建立连接也仅需指定文件地址即可
  • 支持关系型数据库中的绝大部分通用语法和操作,例如SQL中的CRUD4大类基本操作、也支持ACID4大特性

基于以上特性,当临时使用新的开发环境而不想配置的话,那么sqlite会是一个明智的选择。

02 常用基本操作

sqlite的CRUD常用操作(DCL+DQL)与其他关系型数据库是一致的,所以包括create、drop、select、join、groupby、update、delete、insert等关键字的用法是一致的。

主要存在些许的不同包括:

1.部分数据库和数据表查询操作

  • 显示数据库:.database,对应MySQL中为show databases
  • 显示数据表:.tables,对应MySQL中为show tables
  • 查询建表语句:.schema table_name,对应MySQL中为show create table table_name
  • 退出命令行:.quit,对应MySQL中为exit;
  • 查看帮助:.help,对应MySQL中为help

可见,sqlite中.是一个重要的命令起始符。

2.部分函数和语法,例如:

  • 字符串拼接:sqlite中为 str1 || str2,而MySQL中一般用concat函数
  • glob通配符的用法,与Like的区别在于前者区分大小写,而like不区分

03 sqlite的不足

sqlite体积小巧、配置简单、多平台使用,且支持了SQL中的绝大部分功能,但实际上也是存在一定的不足的,主要包括如下:

  • 不支持right join,当然left join是完全可以替代的
  • 视图(view)、触发器(trigger)功能受限
  • 事务处理能力受限(相较MySQL中的4种隔离级别而言)
  • 安全性不高,不具有MySQL中详细的权限管理功能,甚至sqlite数据文件的访问无需用户名密码

然而,尽管sqlite在功能完整性方面并不足以与其他关系型数据库相媲美,但考虑其拿来即用的特点,难道不正是数据库初学者的福音吗?

来源 https://zhuanlan.zhihu.com/p/343199689

相关文章