目录 1 问题 2 实现 1 问题 返回给前端的数据,如果数据库的字段没有数据,给返回的是null 要变成这个,全局都变成这样 2 实现 springboot返回给页面的json数据中,如果有数据为null...,则返回空字符串。...org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import java.io.IOException; /** * 处理 jackson 返回的null
还要注意,decimal_sum() 不是内置于 SQLite 核心中的;它是一个可加载的扩展。...注意,对于字符串,length(X) 函数返回字符串的字符长度,而不是字节长度。字符长度是字符串中的字符数。...每个表的一组 SQL 约束。SQLite 支持 UNIQUE,而不是 NULL、CHECK 和 FOREIGN KEY 约束。 (可选)生成的列约束。 该表是否为 WITHOUT ROWID 表。...为了在面对历史SQL语句时具有弹性,SQLite有时会放宽上述引用规则: 如果在允许标识符但不允许字符串字面值的上下文中使用单引号中的关键字(例如:‘key’或’glob’),那么该标记将被理解为标识符而不是字符串字面值...未来的SQLite版本可能会引发错误,而不是接受上述例外情况覆盖的格式不正确的语句。 下面列出了任何SQLite版本中可能使用的所有关键字,而不考虑编译时选项。
而更完整的回答是:如果你在一个表中,声明了一个 INTEGER PRIMARY KEY 的域,那么无论何时当你插入一个NULL到该域时,NULL都将被自动转换为一个整数,并且其值为该域中的最大值+1,...另外,如果最大的键值已经被使用过了无法在递增,那么此时的 INSERT 操作将会失败,并且返回错误码 SQLITE_FULL 。 2. 问:SQLite究竟支持什么数据类型? 2....答: SQLite有所谓动态类型匹配机制,数据库中的数据可以被储存为 INTEGER(整数), REAL(实数), TEXT(文本字符串), BLOB(二进制数据), 或者 NULL。 3....问:我刚刚将一个文本字符串插入了一个整型(INTEGER)域中!怎么回事? 3. 答:别紧张,相信我这绝对是一个特色,而不是一个BUG。 SQLite 支持所谓动态类型匹配。...在你使用命令 CREATE TABLE 来创建表时对域的类型的定义,并不成为日后插入数据的约束条件。所有的域都可以储存任意长度的文本字符串。
注意 约束 sqlite delete 约束: 唯一约束unique autoincrement 主键约束 域约束:默认值 时间戳默认值 NOT NULL 约束 check 约束 check 约束 复杂...> [注意]:字段个数要匹配,数据类型也要匹配: 否则,失败。...> insert into maxed_out values (NULL,'will not work'); Error: database or disk is full sqlite> 主键约束 约束...视图不是基本表,尽管感觉起来与表是一样的。基本表的内容是持久的,视图是动态产生的。...,执行失败则回滚。
列级约束仅适用于列,表级约束被应用到整个表 (1)以下是在 SQLite 中常用的约束 NOT NULL 约束:确保某列不能有 NULL 值。...(3)实例: constraint.txt create table tab_test ( ID INT PRIMARY KEY NOT NULL, -- 主键 非空 NAME TEXT NOT NULL...(7)比较:(不知道这样算不算正确,我也不是理解的太深刻) 交叉连接后结果非常多,慎用 左外连接会填充NULL,内连接不会 4, SQLite Unions子句:用于合并两个或多个 SELECT 语句的结果...要修改的表必须存在于同一数据库中,作为触发器被附加的表或视图,且必须只使用 tablename,而不是database.tablename。...语句的准备失败。
key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常 3、数据类型附录表 1、整数类型 类型 字节大小 有符号范围 无符号范围...:varchar、char 日期类型:date、time、datetime 枚举类型(enum) 常见的约束: 主键约束 primary key 非空约束 not null 惟一约束 unique 默认约束...where (not id between 3 and 8) and gender=‘男’; 6、空判断查询 判断为空使用:is null 判断非空使用:is not null 例1:查询没有填写身高的学生...= null 判断非空 null不等于''空字符串 7、小结 常见的比较运算符有> = <= !...判断为空使用:is null 判断为非空使用:is not null 排序 1、排序查询算法 排序查询语法: select * from 表名 order by 列1 asc|desc [,列2 asc
: sqlite>.show 退出sqlite终端命令: sqlite>.quit 或 sqlite>.exit 3、sqlite3指令 sql的指令格式:所有sql指令都是以分号(;)结尾...如: sqlite>create studen_table(Stu_no interger PRIMARY KEY, Name text NOT NULL, Id interger UNIQUE, Age...3.1 sqlite3存储数据的类型 NULL:标识一个NULL值 INTERGER:整数类型 REAL:浮点数 TEXT:字符串 BLOB:二进制数 3.2 sqlite3存储数据的约束条件...Sqlite常用约束条件如下: PRIMARY KEY – 主键: 1)主键的值必须唯一,用于标识每一条记录,如学生的学号 2)主键同时也是一个索引,通过主键查找记录速度较快 3)主键如果是整数类型...,该列的值可以自动增长 NOT NULL – 非空: 约束列记录不能为空,否则报错 UNIQUE – 唯一: 除主键外,约束其他列的数据的值唯一 CHECK – 条件检查: 约束该列的值必须符合条件才可存入
现在这种方式,sql语句的解析和编译只执行了一次,而sqlite3_step执行多次,整体的效率势必大大提升。...Table or record not found */ #define SQLITE_FULL 13 /* 数据库满而插入失败,Insertion failed because database.../* 数据大小超限,String or BLOB exceeds size limit */ #define SQLITE_CONSTRAINT 19 /* 约束违反,Abort due to constraint..._bind的第2给参数超出范围,2nd parameter to sqlite3_bind out of range */ #define SQLITE_NOTADB 26 /* 不是数据库文件...形参5:是用于BLOB和字符串绑定后的 析构函数,用于在sqlite处理完blob或字符串之后处理它,一般可以设置为NULL。
是的,它的出现并不是为了和 Mysql,Oracle等数据库竞争,而是为了解决不同的问题;那么哪些场景适合使用SQLite,哪些场景又适合client/server型数据库呢?...博主虽然不是做嵌入式开发的,但是用了一下SQLite发现特别小巧好用,建议大家如果应用程序是并发量不是特别高本地应用,完全可以尝试使用SQLite这种轻量的数据库来代替,也省去了安装繁重的数据库服务对系统资源的占用...这样就有点意思了,也就是说电脑上的一切非目录文件只要你心情好都可以建立连接当成数据库来使用,太腻(bian)害(tai)了吧?...SQLite比较特殊的其实在于它粗放式的数据存储类型,而且并不强制的进行类型约束,这点和其他关系型数据库有很大的不同。...基于上述近似类型的列叙,可以看出SQLite是从声明类型的字符串中去匹配列的近似类型来决定数据的存储类的,因此SQLite很有意思的是创建表时类型声明可以很随意,比如我可以声明一个不存在类型的字符串”chenbenbuyi
sqlite3 查看版本信息: #sqlite3 -version —————————————— 2 、sqlite3常用命令 当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端...如: sqlite>create studen_table(Stu_no interger PRIMARY KEY, Name text NOT NULL, Id interger UNIQUE, Age...3.1 sqlite3存储数据的类型 NULL:标识一个NULL值 INTERGER:整数类型 REAL:浮点数 TEXT:字符串 BLOB:二进制数 3.2 sqlite3存储数据的约束条件...Sqlite常用约束条件如下: PRIMARY KEY - 主键: 1)主键的值必须唯一,用于标识每一条记录,如学生的学号 2)主键同时也是一个索引,通过主键查找记录速度较快 3)主键如果是整数类型...,该列的值可以自动增长 NOT NULL - 非空: 约束列记录不能为空,否则报错 UNIQUE - 唯一: 除主键外,约束其他列的数据的值唯一 CHECK - 条件检查: 约束该列的值必须符合条件才可存入
sqlite3 是SQLite的python接口,由Gerhard Häring编写,属于python的标准库,无需额外安装。下面介绍sqlite3的用法。...(值唯一) #NOT NULL 值非空约束 c.execute('''CREATE TABLE IF NOT EXISTS pets (id INTEGER PRIMARY...KEY, name TEXT , type TEXT NOT NULL, sex CHAR(1), weight real)''') sqlite 和 python的数据类型对照表: ?...INTO pets VALUES (1,'Tom', '猫', 'male', 5)") #可以只给定部分值,未给定值的为Null(当然,有非空约束的不能为空), 对应python类型 None c.execute...("INSERT INTO pets(id, name, type) VALUES (2,'喜洋洋', '羊')") #可以用普通的 python 字符串格式化: c.execute("INSERT
加载一个扩展库 .log FILE|off 开启或关闭日志,可以是stderr或stdout .mode MODE ?TABLE?...值的地方输出 STRING 字符串 .once ?...逐字地输出 STRING 字符串 .progress N Invoke progress handler after every N opcodes .prompt MAIN...columnN datatype, ); 例如,创建一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL: sqlite> CREATE TABLE...NOT NULL, ADDRESS CHAR(50), SALARY REAL ); 然后可以使用 .tables命令来验证表是否已成功创建 sqlite
注意该参数是c字符串而不是OC....如果SQL命令字符串包含多条SQL语句,同时参数pzTail不为NULL,那么它将指向SQL命令字符串中的下一条SQL语句。如果错误发生,它被置为NULL。...它们的优点也仅仅是使用方便,而不是具有很好的性能。...没有被绑定的通配符将自动取NULL值。使用sqlite3_bind_*()来给这些参数绑定值,用sqlite3_clear_bindings重设这些绑定。 SQL语句字符串可以带?...此参数有两个常数,SQLITE_STATIC告诉sqlite3_bind_text函数字符串为常量,可以放心使用;而SQLITE_TRANSIENT会使得sqlite3_bind_text函数对字符串做一份拷贝
那些以“.”开头的命令只能在命令行执行,它们是sqlite3 命令行工具,不是execSQL可执行的SQL语句。 execSQL每次只能执行一个有效的SQL语句。...而update和delete在违反关系数据库的一些约束时会抛出SQLiteException表达执行错误。 可以使用insertOrThrow来主动抛出执行错误的异常。...外键约束和事务 SQLite默认不开启外键约束,可以使用setForeignKeyConstraintsEnabled来开启外键约束。但是不同API版本的行为和设置方式会有差异。...最基本的,主键和列的唯一约束,自增等都是支持的。应该保持SQLite的轻量级和高效,可以在代码中自行组合方法来完成约束的实现。...创建数据库:使用SQLiteOpenHelper 在典型的网站后台这样的应用中,数据库的设计和创建是一项独立且完整的任务,这些过程更像是软件部署的一个环节,而不是程序执行的一部分。
,作用就是将字符串类型的数据绑定到通配符?...;第二个参数是通配符的索引(也就是给第几个通配符绑定值),从1开始;第三个参数是待绑定的字符串;第四个参数是字符串长度,我填-1表示“字符串从第一个字符开始到第一个\0结束”;第五个参数我填入SQLITE_STATIC...,意思是“当本函数执行失败就释放通配符”。 ...继续看循环体,我写的if语句的作用主要是防止有重复的密码出现(因为我的字段pass_text是unique约束,如果密码重复INSERT语句就会出错)。如果有重复密码出现,让用户决定是否继续运行程序。...刚才介绍的时候我跳过了两条语句sqlite3_exec(db, "begin;",NULL,NULL,NULL);和sqlite3_exec(db, "commit;",NULL,NULL,NULL);
:轻量级数据库,主要应用在移动平台 Python中常用的数据库: mysql,关系型数据库,一般用来做网站, redis一般用来做缓存, MongoDB,非关系型数据库,一般做爬虫,用来存储非关系型数据...小数占2位 char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab ' varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab' 字符串...主键primary key:物理上存储的顺序 非空not null:此字段不允许填写空值 惟一unique:此字段的值不允许重复 默认default:当不填写此值时会使用默认值,如果填写时以填写为准...外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常 说明:虽然外键约束可以保证数据的有效性,但是在进行数据的...列名 类型及约束; 例: alter table students modify birth date not null; 修改表-删除字段 alter table 表名 drop 列名; 例: alter
可以在建表的时候用 static 变量记住某列的 index,直接调用相应 index 而不是每次查询。...SQLiteOpenHelper 维持一个单例 因为 SQLite 对多线程的支持并不是很完善,如果两个线程同时操作数据库,因为数据库被另一个线程占用, 这种情况下会报“Database is locked...少用 AUTOINCREMENT 主键加上 AUTOINCREMENT 后,可以保证主键严格递增,但并不能保证每次都加 1,因为在插入失败后,失败的行号不会被复用,会造成主键有间隔,继而使 INSERT...通常情况下都不是必需的。 事务 使用事务的两大好处是原子提交和更优性能: 原子提交:意味着同一事务内的所有修改要么都完成要么都不做,如果某个修改失败,会自动回滚使得所有修改不生效。...onCreate 或是 onUpgrade 中直接 excuSql 创建语句,如 CREATE INDEX mycolumn_index ON mytable (myclumn) 间接创建: 定义主键约束或者唯一性键约束
NULL和空字符串('') IRIS中是不同的值。可以在接受字符串的字段中输入空字符串,即使该字段定义了NOT NULL限制也是如此。不能在数值字段中输入空字符串。...SQL空字符串('')被视为数据值,因此在应用了UNIQUE数据约束的情况下,任何两条记录都不能包含此字段的空字符串值。NULL不被视为数据值,因此唯一数据约束不适用于多个NULL。...如果插入操作为字段数据值提供NULL,则采用NULL而不是默认数据值。因此,为同一字段同时指定DEFAULT和NOT NULL数据约束是很常见的。 默认值可以作为文字值或关键字选项提供。...如果未指定默认值,则隐含的默认值为NULL。如果字段具有非空数据约束,则必须显式或默认地为该字段指定值。不要将SQL零长度字符串(空字符串)用作非空默认值。...DEFAULT函数在准备/编译CREATE TABLE语句时(而不是在执行语句时)使用有效的时间精度设置。
接下来,本文将与大家共同探讨 SQLite 在过去一年中最新的 SQL 功能。 SQLite “只是”一个库,它不是传统意义上的服务器。因此,在某些场合下,它确实不合适。..., 'IGNORE NULLS') ,这里是字符串参数。...图片 Insert … on conflict (“Upsert”) SQLite 从版本3.24.0开始,引入了“upsert”概念:它是一个insert语句,可以优雅地处理主键和唯一约束的冲突。...这是一个特有的SQL扩展,即它不是标准SQL的一部分,因此在下面的矩阵中是灰色的。但是,SQLite遵守与PostgreSQL相同的语法来实现此功能0。该标准提供了对merge语句的支持。...如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。
接下来,本文将与大家共同探讨 SQLite 在过去一年中最新的 SQL 功能。 SQLite “只是”一个库,它不是传统意义上的服务器。因此,在某些场合下,它确实不合适。...0:只支持true,false.不支持notknown,如果需要,用null代替 1:不支持is [not] unknown,如果需要,用is [not] null代替 窗口函数 SQLite 3.25.0..., 'IGNORE NULLS') ,这里是字符串参数。...Insert … on conflict (“Upsert”) SQLite 从版本3.24.0开始,引入了“upsert”概念:它是一个insert语句,可以优雅地处理主键和唯一约束的冲突。...这是一个特有的SQL扩展,即它不是标准SQL的一部分,因此在下面的矩阵中是灰色的。但是,SQLite遵守与PostgreSQL相同的语法来实现此功能0。该标准提供了对merge语句的支持。
领取专属 10元无门槛券
手把手带您无忧上云