数据库初学者的福音——SQLite
导读:数据库操作应该算是所有程序员的基本功了,写的一手好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
相关文章