AndroidSqlite增删改查语法SQLite的数据类型
sqlite只有5中数据类型:
NULL:空值相当于Java中的null
INTEGER:带符号的整型,相当于Java中的int型
REAL:浮点数字,相当于Java中float/double型
TEXT/VARCHAR:字符串⽂本,相当于Java中String类
BLOB:⼆进制对象,相当于Java中的byte数组,⽤于存放图⽚、声⾳等⽂件
SQLite的约束
PRIMARY KEY:主键
FOREIGN KEY : 外键
NOT NULL :⾮空
UNIQUE :唯⼀
CHECK :条件检查
DEFAULT : 默认
SQLite的创建表
创建表,此时可对表⾥的结构和字段进⾏约束限定,将约束条件放在需要约束的字段之后
语法:
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>18and age<60),
gender BIT DEFAULT(1),
score REAL);
注:SQL中不区分⼤⼩写
SQLite的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是给哪个字段赋值
SQLite的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
SQLite的select查询语句
语法:
基础查询:
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;
查询table1中前5⾏中的数据,LIMIT关键字后⾯加数字可限定返回多少条数据
OFFSET关键字
select * from table1 limit 5 offset 5;
查询table1中从第5⾏起的5⾏数据,OFFSET前⾯必须有LIMIT限定
例⼦:
select * from student limit 5;
查询table1中前5⾏中的数据
select * from limit 5 offset 5;
查询table1中从第5⾏起的5⾏数据
排序查询:
ORDER BY关键字
select * from table1 order by col1;
查询table1中所有数据,然后按照col1字段的升序排列(A-Z, 0-9)
select * from table1 order by col1, col2;
查询table1中所有数据,然后先按照col1字段的排列,然后按照col2字段排序
例⼦:
select * from student order by score;
查询student中所有数据,然后按照score字段的升序排列
select * from student order by name, score;
查询student中所有数据,然后先按照name字段的排列,然后按照score字段排序
DESC关键字
select * from student order by name, score DESC;
查询student中所有数据,然后先按照name字段的排列,然后按照name字段降序排序
注:DESC为降序排序,即(Z-A,9-0),DESC是DESCENDING缩写。
DESC必须跟着ORDER BY关键字后⾯;
DESC关键字只应⽤在直接位于其前⾯的列名;
与DESC相反的是ASC(即ASCENDING),在升序排序时可指定ASC,但这⼀关键字并没什么⽤处,因为升序是默认的
SQLite的delete删除语句
语法:
delete from table1 where范围
语法详解:从table中删除某⼀范围内的数据(只能⼀条⼀条的删除,不能删除某个字段中的值)
注:不要漏掉where,否则会清空整个表中的信息
例:
delete from student where name='tom';
从student表中删除名字为tom的信息
delete from student where score< 90;
从student表中删除分数⼩于90分的信息
SQLite的where过滤语句
where是过滤语句,数据会根据where⾃居的搜索条件进⾏过滤,⼀般情况下where跟在insert、delete、update、select后⾯。这是⼀个需要值得注意的语句,使⽤它能够极⼤的提⾼查询数据库的效率,⽽使⽤delete语句如果不带上过滤语句,则会把数据表中的所有信息删除!
注:当ORDER BY关键字和where⼀起使⽤的时候,ORDER BY应该位于where后⾯,否则会报错。
where⼦句后⾯跟着的是过滤条件,过滤条件可使⽤逻辑符号,即>、<、=、!=等等逻辑符号,与计算机通⽤的逻辑符合并没有什么不同
例⼦:
select * from student where score>70.0ORDER BY name;
查询student表中成绩⼤于70分的数据,同时按照名字升序排列
⾼级过滤:
AND关键字:必须满⾜前后两个条件的数据
select * from student where score>60and score< 100;
查询student表中成绩⼤于60分并且⼩于100分的数据
OR关键字:只要满⾜前后任意⼀个条件即可
select * from student where score>90or score<70;
查询student表中成绩⼤于90分并且或者⼩于70分的数据
AND和OR连⽤(and的优先级⽐or要⾼,两者连⽤的时候最后在各⾃的条件中添加圆括号()进⾏分组)select * from student where (score>90or score<70) and (age>19);
BETWEEN关键字:
select * from student where score between 70and80;
查询student表中分数在70⾄80分之间的数据
IN关键字:⽤于指定范围,范围中的每个条件都进⾏匹配,IN由⼀组逗号分隔、括在圆括号中的合法值select * from student where name in('tom', 'Denesy');
查询student表中名字为tom和Denesy的数据
注:在指定要匹配值得清单的关键字中,IN和OR功能相当
IN可与and和or等其他操作符使⽤
IN操作符⽐⼀组OR操作符执⾏快
可以包含其他的SELECT语句
NOT关键字:否定其后条件的关键字
基本的增删改查语句select * from student where not name='tom';
获取不包含名字为tom的信息
select * from student where not score>80;
获取分数不是⼤于80分的信息
空值检查:
select * from student where score is not null;
查询student表中score字段不为空的信息

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。