嵌入式数据库开发编程(三)——sqlite3数据类型和存储类型

简介: 嵌入式数据库开发编程(三)——sqlite3数据类型和存储类型

导航


SQL语法

创建数据库

数据查询御酒

数据操纵语言

C API


一、SQL语言


数据定义(DDL) :用户定义、删除和修改数据模式

数据查询(DQL) :用于查询数据

数据操纵(DML) :用于增、删、改数据

数据控制(DCL) :用于控制数据访问权限

0a2653c851af460fa595bd959398a8f1.png

SQL的语法很像自然语言。每个语句都是一一个祈使句,以动词开头,表示所要做的动作。

2d65d23f6d4748949b924e4057485923.png

SQL由命令组成,每个命令以分号(;)结束,例如

2e9b90b2ca334476abebe75bafe6eeaa.png


1.1 数字类型


0a2653c851af460fa595bd959398a8f1.png


有三种:字符串常量、数据常量和二进制常量


1.1.1 整型


2d65d23f6d4748949b924e4057485923.png


1.1.2 浮点型


2e9b90b2ca334476abebe75bafe6eeaa.png


整型、浮点型、定点型

浮点型:float(M, D); double(M, D)


D表示浮点型数据小数点之后的精度,假如超过D位则四舍五入,即1.233四舍五入为1.23, 1.237四舍五入为1.24

M表示浮点型数据总共的位数,D-2则表示总共支持五位,即小数点前只支持三位数


create table test_float{
  num float(5, 2)
}; 
-- engine = innodb charset = utf8;
insert into test_float values(1.233)
insert into test_float values(1.237)
insert into test_float values(10.233)
insert into test_float values(100.233)
insert into test_float values(1000.233)


1.1.3 定点型


定点型(金融行业)decimal

decmal在不指定M. D时默认为decmal(10,0)


create table test_decimal{
  float_num float(10, 2),
  double_num double(20, 2),
  decimal_num decimal(20, 2)
}; 
insert into test_decimal values(123546565.23112, 16000000.33, 66666666.12)
insert into test_decimal values(1235465655.23112, 1600000000.33, 6665566666.12)


1.1.4 浮点型和定点型


浮点型VSdecimal

float、double类型存在精度丢失问题,即写入数据库的数据未必是插入数据库的数据

decimal无论写入数据中的数据是多少,都不会存在精度丢失问题,decimal类型常见于银行系统、互联网金融系统等对小数点后的数字比较敏感的系统中


1.2 日期类型


0a2653c851af460fa595bd959398a8f1.png


create table test_time{
  date_value date,
  time_value time,
  year_value datetime,
  datetime_value datetime,
  timestamp_value timestamp
}
insert into test_time values(now(), now(), now(), now(), now());


1.3 字符串类型


CHAR和VARCHAR

char是固定长度字符串,其长度范围为0~255且与编码方式无关,无论字符实际长度是多少,都会按照指定长度存储,不够的用空格补足

varchar为可变长度字符串(用的最多),在utf8编码的数据库中其长度范围为0~21844,如:1024

char实际占用的字节数即存储的字符所古用的字节数,varchar实际占用的字 节数为存储的字符+1或+2或+3

MySQL处理char类型数据时会将结尾的所有空格处理掉而varchar类型数据则不会

SQL 7

BINARY和VARBINARY(用不到)

BLOB和TEXT


二、SQLite 存储类


SQLite 数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列,每个变量和表达式都有相关的数据类型。

可以在创建表的同时使用这些数据类型。SQLite 使用一个更普遍的动态类型系统。在 SQLite 中,值的数据类型与值本身是相关的,而不是与它的容器相关。image.png

image.png


2.1 Boolean 数据类型


SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)


2.2 Date 与 Time 数据类型



image.png

相关文章
|
11天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
79 15
|
1月前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
28天前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
29 1
|
1月前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
1月前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
47 4
|
1月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
43 8
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
62 2
|
1月前
|
监控 Java 数据库连接
在Java开发中,数据库连接管理是关键问题之一
在Java开发中,数据库连接管理是关键问题之一。本文介绍了连接池技术如何通过预创建和管理数据库连接,提高数据库操作的性能和稳定性,减少资源消耗,并简化连接管理。通过示例代码展示了HikariCP连接池的实际应用。
21 1
|
2月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
2月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
42 4