首页 > 数据库 >sqlite 学习

sqlite 学习

时间:2024-10-05 23:33:21浏览次数:6  
标签:存储 TEXT 数据库 sqlite 学习 SQL SQLite

sqlite

SQLite是一个轻量级的嵌入式关系型数据库管理系统(RDBMS),它实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。以下是关于SQLite的详细介绍:

一、SQLite的特点
轻量级与嵌入式:SQLite是一个轻量级的数据库引擎,非常适合嵌入到各种应用程序中。它不需要独立的服务器进程,而是直接将数据库存储在主机文件系统中,从而节省了资源和提高了性能。
零配置:SQLite是一个零配置的数据库,这意味着它不需要在系统中进行任何配置即可使用。开发者只需将SQLite库嵌入到应用程序中,即可轻松使用其提供的数据库功能。
跨平台:SQLite支持多种操作系统,包括UNIX、Windows、Linux等,以及多种编程语言,如C、C++、Java、Python等。这使得开发者可以在不同的平台上使用相同的数据库技术,降低了开发成本和复杂性。
事务性:SQLite支持事务处理,确保数据的完整性和一致性。它提供了BEGIN TRANSACTION、COMMIT、ROLLBACK等事务控制语句,允许开发者在多个操作之间维护数据的一致性。
完整的SQL功能:SQLite提供了完整的SQL功能,包括数据定义语言(DDL)、数据操作语言(DML)和数据控制语言(DCL)。它支持SELECT、INSERT、UPDATE、DELETE等基本的SQL操作,以及触发器、索引、视图等高级功能。
二、SQLite的基本概念
数据库:SQLite数据库是一个存储在单一跨平台的磁盘文件中的完整数据库系统。这个文件包含了数据库的所有表、索引、视图和触发器等信息。
表:表是数据库中的基本存储单元,用于存储数据。每个表都有一个唯一的名称,并包含若干列和行。列表示数据的字段,行表示记录。
行与列:行是表中的一条记录,列是表中的字段。每条记录都包含若干个字段值,这些字段值对应着表中的各个列。
主键:主键是表中的一列或多列,其值能够唯一标识表中的一条记录。主键列的值不允许为空,且不允许重复。
外键:外键是表中的一列,其值引用另一个表的主键。外键用于维护表之间的关系和数据的一致性。
索引:索引是一种特殊的查找表,用于加快数据检索的速度。它允许数据库引擎在不需要扫描整个表的情况下,快速找到满足查询条件的记录。
三、SQLite的学习资源
官方文档:SQLite的官方网站提供了详细的文档和教程,包括SQL语法、API接口、数据类型、事务处理等方面的内容。这些文档是学习SQLite的最佳资源之一。
在线教程:有许多在线教程和网站提供了SQLite的学习资源,如菜鸟教程(Runoob)、W3Schools等。这些教程通常包含了从基础到高级的SQLite知识和示例代码,非常适合初学者入门。
书籍:有一些专门的书籍介绍了SQLite的使用和编程技巧。这些书籍通常包含了详细的示例和案例,可以帮助读者更好地理解和应用SQLite。
社区和论坛:SQLite拥有一个活跃的社区和论坛,开发者可以在这里提问、交流经验和分享代码。这些社区和论坛是学习SQLite的好去处,可以获取最新的技术动态和解决方案。
四、SQLite的学习建议
掌握基础SQL知识:在学习SQLite之前,建议先掌握基础的SQL知识,包括SQL的基本概念、语法和常用操作等。这将有助于你更好地理解SQLite的数据库功能和操作方式。
实践操作:通过编写SQL语句和程序来实践SQLite的使用。你可以创建数据库、表、索引等对象,并插入、查询、更新和删除数据。实践操作是掌握SQLite的最佳方式之一。
阅读官方文档和教程:官方文档和教程是学习SQLite的权威资源。它们提供了详细的解释和示例代码,可以帮助你更好地理解和应用SQLite的功能和特性。
参与社区和论坛:加入SQLite的社区和论坛,与其他开发者交流和分享经验。这将有助于你解决遇到的问题,并了解最新的技术动态和解决方案。
总之,SQLite是一个功能强大且易于使用的轻量级数据库引擎。通过学习SQLite,你将能够掌握关系型数据库的基本概念和操作方式,为开发高效、可靠的应用程序打下坚实的基础。

可视化工具 Navicat lite(免费)

创建一个sqlite仓库

# macos 推荐放在这个目录下
cd ~/Library/Application Support
mkdir -p SqliteStudy
qlite3 sqlitestudy.db

navicat 连接sqlite 注意事项

连接报错 14 - unable to open database file

  • 路径要用绝对路径不能是相对路径, ~/Library/Application Support/SqliteStudy/sqlitestudy.db 是错误的,应该用 Users/paul/Library/Application Support/SqliteStudy/sqlitestudy.db

sqlite 数据类型

几乎所有的DBMS(关系型数据库),都采用严格的静态类型。而 sqlite 的数据类型是动态的。遇到数据类型转换的问题,sqlite 会自动转换。
SQLite 仅有四个基元数据类型:INTEGER、REAL、TEXT 和 BLOB。

  • NULL: 表示一个NULL值
  • INTEGER: 用来存储一个整数,根据大小可以使用1,2,3,4,6,8位来存储.
  • REAL: IEEE浮点数
  • TEXT: 按照字符串来存储
  • BLOB: 按照二进制值存储,不做任何改变.

sqlite 有一套判断规则
如果声明的类型中包含 "INT",则为 INTEGER
如果声明的类型中包含 "CHAR", "CLOB" 或 "TEXT",则为 TEXT
如果声明的类型中包含 "BLOB",或者没有声明类型,则为 BLOB
如果声明的类型中包含 "REAL", "FLOA" 或 "DOUB",则为 REAL
其他情况,则为 NUMERIC

sqlite没有布尔值类型,布尔值被存储为整数 0(false)和 1(true)。

sqlite没有Date 与 Time 数据类型,但 SQLite 能够把日期和时间存储为 TEXT、REAL 或 INTEGER 值。

  • TEXT:格式为 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。
  • REAL:从公元前 4714 年 11 月 24 日格林尼治时间正午开始算起的天数。
  • INTEGER:从 1970-01-01 00:00:00 UTC 算起的秒数。

您可以以任何上述格式来存储日期和时间,并且可以使用内置的日期和时间函数来自由转换不同格式。

sql 学习网站

了解sqlite 与myysql、sqlserver 的区别
SQL学习网站

标签:存储,TEXT,数据库,sqlite,学习,SQL,SQLite
From: https://www.cnblogs.com/wanglei1900/p/18448729

相关文章

  • [模电]基本放大器学习博客V2.0
    [模电]基本放大器学习博客V2.0任务目标Multisim学习三极管的选型因为我想使用9013NPN三极管进行焊接,但是主数据库内又没有9013,所以根据电气属性分析,有如下选择1.2N2222类型:NPN最大集电极电流:800mA最大集电极-发射极电压:40V功率:625mW工作频率:250MHz......
  • Nodered学习记录-MQTT
    安装EMQXEMQX(以前称为EMQ)是一个开源的、高度可扩展且高可用的分布式MQTT消息代理,专为物联网(IoT)、机器对机器(M2M)通信和移动应用程序设计。它支持MQTT和其他IoT协议如CoAP/LwM2M,能够处理数百万并发连接,并提供强大的消息路由能力。通过docker安装官方文档$dockerpullem......
  • idea源码学习记录-vfs
    参考https://plugins.jetbrains.com/docs/intellij/virtual-file-system.html注:我写笔记用的源码版本是232.8660.185我的idea版本为241.17011.79当前的官方文档用的版本是242.23339.11vfs是idea的虚拟文件系统(VirtualFileSystem)TheVirtualFileSystem(VFS)isa......
  • 《深度强化学习入门指南》
    文章目录前言一、什么是强化学习?二、深度强化学习的诞生三、关键概念解析1.状态(State)2.行动(Action)3.奖励(Reward)4.策略(Policy)四、学习过程五、应用领域结语前言在当今人工智能飞速发展的时代,深度强化学习以其强大的学习能力和广泛的应用前景,吸引了众多研究者和开......
  • springboot+vue基于SpringBoot的经典诗文学习平台【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,传统文化的学习与传播方式正经历着深刻的变革。经典诗文作为中华文化的瑰宝,承载着千年的智慧与情感,对于提升国民文化素养、增强民族认同感具有重要意义。然而,传统的学习方式如翻阅纸质书籍、参加诗词讲座等,在时......
  • AI工具的学习使用
    你知道或使用过什么AI大模型平台?答:智普清言如果有AI大模型平台助力学习的经历,举例说明AI如何提升你的学习效率的?答:解答疑惑:解答抽象和门的概念设计logo:帮助我设计课堂团队的logo作诗:利用AI作了一首诗思考AI如何助力你学好密码技术,密码系统设计与实现?答:可以解答我的问......
  • TensorFlow-图像深度学习实用手册-全-
    TensorFlow图像深度学习实用手册(全)零、前言TensorFlow是谷歌广受欢迎的机器学习和深度学习产品。它已经迅速成为一种流行的工具选择,用于执行快速、高效和准确的深度学习任务。本书向您展示了现实世界项目的实际实现,教您如何利用TensorFlow的功能来执行高效的深度学习。在本......
  • 【机器学习】集成学习——提升模型准确度的秘密武器
    【机器学习】集成学习——提升模型准确度的秘密武器1.引言集成学习(EnsembleLearning)是一种通过结合多个弱模型来提升整体预测准确性的技术。通过将多个模型的预测结果进行组合,集成学习在复杂任务中展现了极强的泛化能力。本文将探讨集成学习的主要方法,并通过代码示例演......
  • 1.2 监督学习
    前言:我往后看了看这本书,发现很多机器学习的术语定义出现,我推测这门课是机器学习的先修课程,有趣的是我们学校在上机器学习之前没有上过这门课,怪不得看的时候云里雾里,因此我觉得改变计划,把接下来的重心放到统计学习方法上来。1.2监督学习在统计学习中,学习方法主要包括监......
  • 「分数规划」学习笔记及做题记录
    「分数规划」学习笔记及做题记录做题时发现不会分数规划,赶紧来学一下。分数规划用于求解下面一类问题:有\(n\)个物品,第\(i\)个物品的价值为\(a_i\),费用为\(b_i\)。从中选择若干个物品,使得价值与费用的比值\(\dfrac{\suma}{\sumb}\)最大/最小。另一种更严谨的表示方......