学习使用SQLite(版本3.7.4)(中F)
来源:互联网 发布:sql最大值函数 编辑:程序博客网 时间:2024/05/17 22:28
高级SQL:
插入记录:insert into table_name(column_name) values (value_list) ;
其中,column_name是用逗号隔开的字段,value_name是用逗号隔开的即将插入的数据。
比如:
这里,注意id是主键,插入的时候,只管插入type_id 和name , id是自动生成的;当然也可以这样写:insert into foods values (null , 2 , ‘糖葫芦’),已经验证,这样写是可以的。
这是插入一组值的写法:
这是查询结果:
插入多行:
,你会发现,foods2的字段、内容和foods是一样的。
创建和原来表一样的表的方式,也即插入方式,也是最快捷的:
创建临时表时,可以将选择和插入并成一步:
更新记录:
语法:update table_name set update_list where predicate ;
删除记录:
delete from table_name where predicate ;
实体完整性:
用于定义和保护表内部和表之间的数据关系。一般有四种完整性:实体完整性(涉及表中的行)、域完整性( 涉及控制字段内的值 )、应用完整性(涉及表之间的行,即外键关系)、用户自定义完整性(比较复杂)。
首先来看约束的种类:
字段级的约束:not null , unique , primary key , foreign key , check , collate 。
表一级的约束: primary key , unique , check 。
(1),实体完整性:
数据库的所有的域都是唯一的、可定位的,域可寻址,则行是可寻址的,行在某种方式上是唯一的,主键来完成这样的功能。主键行要求在某种方式上,与表中的其他行是不同的。这样表中的数据基本上就是有组织的。
唯一性约束:unique,也是主键的基础。一个值或者一个字段的值都是不同的。
主键约束:在SQLite中,定义一个表时则定义一个主键。其实,表里总有一个字段是主键,不管你有没有定义主键,这个字段是一个64为的整型字段,rowid(),也即_rowid_ , oid,其魔女工人取值按照增序则自动生成。主键在SQLite里具有自动增长机制。如果你定义了主键,那么定义的新的主键将会取代rowid()字段,不一定按照严格的顺序增长。当达到最大的值时,SQLite将要自动搜索还未使用的值,并且作为将要插入的值,如果要从表中删除记录,那么rowid()将会被回收在后面的插入中使用。
如果要SQLite使用唯一的自动主键值,而不是填补空白,那么可以在主键定义关键字integer primary key 中加入autoincrement。这样,SQLite使用不同的主键生成算法,该算法可能会阻止rowid 的回收,为insert 产生新的非回收rowid,创建表的时候,如果字段包含autoincrement约束,那么SQLite会在一个名为sqlite_sequence的系统表中记录该字段的最大值。在后面的insert语句中,只是使用比该最大值大的,如果达到了绝对最大值,SQLite会在后面的insert语句中返回sqlite_full。
注意,id超过了最大值了,所以就返回了一个错误。其实,可以将自增长字段作为整型主键,鼓励这样做。
那么,我们也可以看见sqlite_sequence的用法:
主键约束可以定义在多个字段中,不一定用整型:
建议在合适的地方适用实际字段作为主键。
- 学习使用SQLite(版本3.7.4)(中F)
- 学习使用SQLite(版本3.7.4)(中A)
- 学习使用SQLite(版本3.7.4)(中B)
- 学习使用SQLite(版本3.7.4)(中C)
- 学习使用SQLite(版本3.7.4)(中D)
- 学习使用SQLite(版本3.7.4)(中E)
- 学习使用SQLite(版本3.7.4)(中G )
- 学习使用SQLite(版本3.7.4)(中H ) ?
- 学习使用SQLite(版本3.7.4)(中I )
- 学习使用SQLite(版本3.7.4)(中J)
- 学习使用SQLite(版本3.7.4)(上A)
- 学习使用SQLite(版本3.7.4)(上B)
- 5.3.4 F# 中使用选项(option)类型
- SQLite学习笔记(9)-SQLite的简单使用
- sqlite学习笔记(4)使用TCL测试脚本
- cocos2dx学习笔记(sqlite的使用)
- python学习笔记(十一)使用SQLite
- android中sqlite的使用(一)
- 短链接
- 我怀念的是
- 我的两个自动注入@Autowired,在控制层和服务层
- hdu 过山车(匈牙利算法)
- SEDA介绍与分析
- 学习使用SQLite(版本3.7.4)(中F)
- C#生成随机验证码
- Bitmap和Drawable相互转换方法
- log buffer —— log file switch completion
- 基于主特征空间相似度计算的切分算法
- Spring For Android初体验
- python 将python程序编译成可执行文件
- ios 编码规范
- cvs如何忽略掉已添加的目录