首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【测试SQLite】测试SQLite支持的SQL语句分类

还要注意,decimal_sum() 不是内置于 SQLite 核心中的;它是一个可加载的扩展。...注意,对于字符串,length(X) 函数返回字符串的字符长度,不是字节长度。字符长度是字符串中的字符数。...每个表的一组 SQL 约束SQLite 支持 UNIQUE,不是 NULL、CHECK 和 FOREIGN KEY 约束。 (可选)生成的列约束。 该表是否为 WITHOUT ROWID 表。...为了在面对历史SQL语句时具有弹性,SQLite有时会放宽上述引用规则: 如果在允许标识符但不允许字符串字面值的上下文中使用单引号中的关键字(例如:‘key’或’glob’),那么该标记将被理解为标识符不是字符串字面值...未来的SQLite版本可能会引发错误,不是接受上述例外情况覆盖的格式不正确的语句。 下面列出了任何SQLite版本中可能使用的所有关键字,不考虑编译时选项。

5000
您找到你想要的搜索结果了吗?
是的
没有找到

关于女神SQLite的疑惑(1)

更完整的回答是:如果你在一个表中,声明了一个 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 来创建表时对域的类型的定义,并不成为日后插入数据的约束条件。所有的域都可以储存任意长度的文本字符串

94810

关于MySQL的一些基础

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

59710

centos sqlite3安装及简单命令

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 – 条件检查: 约束该列的值必须符合条件才可存入

3K20

SQLite 带你入门

是的,它的出现并不是为了和 Mysql,Oracle等数据库竞争,而是为了解决不同的问题;那么哪些场景适合使用SQLite,哪些场景又适合client/server型数据库呢?...博主虽然不是做嵌入式开发的,但是用了一下SQLite发现特别小巧好用,建议大家如果应用程序是并发量不是特别高本地应用,完全可以尝试使用SQLite这种轻量的数据库来代替,也省去了安装繁重的数据库服务对系统资源的占用...这样就有点意思了,也就是说电脑上的一切目录文件只要你心情好都可以建立连接当成数据库来使用,太腻(bian)害(tai)了吧?...SQLite比较特殊的其实在于它粗放式的数据存储类型,而且并不强制的进行类型约束,这点和其他关系型数据库有很大的不同。...基于上述近似类型的列叙,可以看出SQLite是从声明类型的字符串中去匹配列的近似类型来决定数据的存储类的,因此SQLite很有意思的是创建表时类型声明可以很随意,比如我可以声明一个不存在类型的字符串”chenbenbuyi

1.7K50

Sqlite基本命令集合(linuxfedoraubuntu)

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 - 条件检查: 约束该列的值必须符合条件才可存入

2.7K40

Android中SQLite数据库小计

那些以“.”开头的命令只能在命令行执行,它们是sqlite3 命令行工具,不是execSQL可执行的SQL语句。 execSQL每次只能执行一个有效的SQL语句。...update和delete在违反关系数据库的一些约束时会抛出SQLiteException表达执行错误。 可以使用insertOrThrow来主动抛出执行错误的异常。...外键约束和事务 SQLite默认不开启外键约束,可以使用setForeignKeyConstraintsEnabled来开启外键约束。但是不同API版本的行为和设置方式会有差异。...最基本的,主键和列的唯一约束,自增等都是支持的。应该保持SQLite的轻量级和高效,可以在代码中自行组合方法来完成约束的实现。...创建数据库:使用SQLiteOpenHelper 在典型的网站后台这样的应用中,数据库的设计和创建是一项独立且完整的任务,这些过程更像是软件部署的一个环节,不是程序执行的一部分。

2K90

sqlite3的C语言使用(三)

,作用就是将字符串类型的数据绑定到通配符?...;第二个参数是通配符的索引(也就是给第几个通配符绑定值),从1开始;第三个参数是待绑定的字符串;第四个参数是字符串长度,我填-1表示“字符串从第一个字符开始到第一个\0结束”;第五个参数我填入SQLITE_STATIC...,意思是“当本函数执行失败就释放通配符”。    ...继续看循环体,我写的if语句的作用主要是防止有重复的密码出现(因为我的字段pass_text是unique约束,如果密码重复INSERT语句就会出错)。如果有重复密码出现,让用户决定是否继续运行程序。...刚才介绍的时候我跳过了两条语句sqlite3_exec(db, "begin;",NULL,NULL,NULL);和sqlite3_exec(db, "commit;",NULL,NULL,NULL);

1.5K10

MySQL数据库的基本使用

:轻量级数据库,主要应用在移动平台 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

4.2K20

Android 优化——存储优化

可以在建表的时候用 static 变量记住某列的 index,直接调用相应 index 不是每次查询。...SQLiteOpenHelper 维持一个单例 因为 SQLite 对多线程的支持并不是很完善,如果两个线程同时操作数据库,因为数据库被另一个线程占用, 这种情况下会报“Database is locked...少用 AUTOINCREMENT 主键加上 AUTOINCREMENT 后,可以保证主键严格递增,但并不能保证每次都加 1,因为在插入失败后,失败的行号不会被复用,会造成主键有间隔,继而使 INSERT...通常情况下都不是必需的。 事务 使用事务的两大好处是原子提交和更优性能: 原子提交:意味着同一事务内的所有修改要么都完成要么都不做,如果某个修改失败,会自动回滚使得所有修改不生效。...onCreate 或是 onUpgrade 中直接 excuSql 创建语句,如 CREATE INDEX mycolumn_index ON mytable (myclumn) 间接创建: 定义主键约束或者唯一性键约束

1.2K20

SQL命令 CREATE TABLE(三)

NULL和空字符串('') IRIS中是不同的值。可以在接受字符串的字段中输入空字符串,即使该字段定义了NOT NULL限制也是如此。不能在数值字段中输入空字符串。...SQL空字符串('')被视为数据值,因此在应用了UNIQUE数据约束的情况下,任何两条记录都不能包含此字段的空字符串值。NULL不被视为数据值,因此唯一数据约束不适用于多个NULL。...如果插入操作为字段数据值提供NULL,则采用NULL不是默认数据值。因此,为同一字段同时指定DEFAULT和NOT NULL数据约束是很常见的。 默认值可以作为文字值或关键字选项提供。...如果未指定默认值,则隐含的默认值为NULL。如果字段具有空数据约束,则必须显式或默认地为该字段指定值。不要将SQL零长度字符串(空字符串)用作空默认值。...DEFAULT函数在准备/编译CREATE TABLE语句时(不是在执行语句时)使用有效的时间精度设置。

1.2K20

微信为什么使用 SQLite 保存聊天记录?

接下来,本文将与大家共同探讨 SQLite 在过去一年中最新的 SQL 功能。 SQLite “只是”一个库,它不是传统意义上的服务器。因此,在某些场合下,它确实不合适。..., 'IGNORE NULLS') ,这里是字符串参数。...图片 Insert … on conflict (“Upsert”) SQLite 从版本3.24.0开始,引入了“upsert”概念:它是一个insert语句,可以优雅地处理主键和唯一约束的冲突。...这是一个特有的SQL扩展,即它不是标准SQL的一部分,因此在下面的矩阵中是灰色的。但是,SQLite遵守与PostgreSQL相同的语法来实现此功能0。该标准提供了对merge语句的支持。...如果你看好一个事情,一定是坚持了才能看到希望,不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

1.8K10

微信为什么使用 SQLite 保存聊天记录?

接下来,本文将与大家共同探讨 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语句的支持。

2.5K20
领券