SQLite语法与Android数据库操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQLite语法与Android数据库操作
学习android的小伙伴们在使用Android的SQLiteDatabase类进行数据库操作的时候总会有一些力不从心,特别是对于初涉数据库的小伙伴来说更是如此。
这是因为Android的SQLiteDatabase原本就不是依赖于Android而存在的,而是单独的作为一个个体而存在的,有着自己特有的体系和语言,而这就是SQL 语法了。
关于SQLite数据库的理论知识网上一搜一大片,这里就不多说。SQLite是一个轻量型的数据库,它对于大型数据库来说功能少,因此只需要学习一些通用的SQL语法就能够轻松掌握,而这些SQL语法对于其他的数据库来说也是基本不变化的。
但SQLite有个缺点,那就是作为轻量级选手的它,如果要保存大量数据会力有不及,因此它在android中适合保存个人设置等没有大量数据的信息。
好了,下面就是正式学习SQLite了,只有掌握了SQLite,掌握SQL语法,才能对Android中的数据库操作运用自如。
SQLite的数据类型
与Java语言一样,SQLite也有其特有的数据类型,当然相比MySQL来说只有5种数据类型算是很少了
NULL:空值相当于Java中的null
INTEGER:带符号的整型,相当于Java中的int型
REAL:浮点数字,相当于Java中float/double型
TEXT/VARCHAR:字符串文本,相当于Java中String类
BLOB:二进制对象,相当于Java中的byte数组,用于存放图片、声音等文件
Sqlite3中的约束
SQLite的约束是什么呢?约束就是限定数据库字段的条件,如果有个student数据表,它里面有一个age年龄的属性字段,我们要求数据库保存age 这个字段的时候必须有值,不能为空,那么就可以设置为:"age INTEGER NOT NULL"。这句话的意思就是age字段是不能为空的整型
NOT NULL :非空
UNIQUE :唯一
PRIMARY KEY :主键
FOREIGN KEY : 外键
CHECK :条件检查
DEFAULT : 默认
创建表,此时可对表里的结构和字段进行约束限定,将约束条件放在需要约束的字段之后
创建表
数据库是数据库,数据表是存放在数据库中存放信息的容器,这点大家要区分。
语法:
create table tabname(col1 type1 [not null][primary key], col2 type2[not null], ··· )
注:
tabname为表名
col1、col2为字段名字
type1、type2为字段类型
在[]中的约束条件是可以选的
例:
字段名类型长度约束说明
id INTEGER 主键,自增长编号
name VARCHAR 20 非空姓名
cid INTEGER 所在班级
age INTEGER 大于18且小于60 年龄
gender BIT 默认为1,表示男性别
score REAL 成绩
create table student(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(20) NOT NULL,
cid INTEGER,
age INTEGER CHECK(age>18 and age<60),
gender BIT DEFAULT(1),
score REAL);
注:SQL中不区分大小写
insert插入语句
数据库的操作无非四大类,增删改查这几种,因此必须要掌握这几种语句,insert增加也就是在数据表中添加信息
语法
insert into table1(field1, field2) values(value1, value2);
语法详解,在表名为table1的表的field1和field2字段分别插入value1和value2的值
例:
给student表中的各个字段插入值
insert into student (name, cid, age, gender, score) values ('tom', 1, 20, 1, 80.0);
注:其实可以在student后面不带有字段名,即name,cid···等,但如果不携带字段信息但看insert语句就无法直接明了的知道插入的value是给哪个字段赋值
update更新语句
语法:
update table1 set field1=value1 where 范围
语法详解:set后面是某个字段要更改的值,where表示限定field1字段value值在某个范围内才需要修改
set表示要修改哪个字段的值
where表示修改字段值的范围
例:
update student set name='jack' where name='tom';
将student表中name字段中value为tom的值修改为jack
select查询语句
select查询方法可以说是在数据库操作中使用最频繁的操作了,无论是想获取数据还是得知数据库中的信息都必须使用select语句,同时select语句也算得上在SQL语法中最复杂的语句了。
语法:
基础查询:
select * from table1 where 范围
语法详解:* 代表通配符,即所有的字段
select col1, col2, col3 from table1 where 范围;
查看col1, col2, col3字段的信息
例:
select * from student where name="jack"
查询student表中名字叫jack的所有字段的信息
select id, name, score from student;
查询student表中所有学生的编号、名字、分数
限制查询:
LIMIT关键字
select * from table1 LIMIT 5;