一、sqlite3存储数据类型
null:标识一个null值;
interger:整数类型;
real:浮点数;
text:字符串;
blob:二进制数。
约束
primary key : 主键(唯一,用于标识每一条记录);
not null:非空;
unique:唯一;
check:条件检查(约束该列的值必须符合条件才可存入);
default:默认值。
二、基础指令
1、建立数据表
create table if not exists table_name(field1 type1,field2 type2......);
2、添加数据记录
insert into table_name(field1,field2...)values(val1,val2,...);
3、修改数据记录
update table_name set field1=val1,field2=val2 where experssion;
4、删除数据记录
delete from table_name where expression;
5、查询数据记录
select * from table_name where expression;
查询所有:select * from table_name;
限制输出数据记录数量(分页):
select * from table_name limit val;
升序输出数据记录:
select * from table_name order by field asc;
降序输出数据记录:
select * from table_name order by field desc;
条件查询:
select * from table_name where field in ('val1','val2','val3');
select * from table_name where field between val1 and val2;
查询记录的数目:
select count(*) from table_name [where expression];
区分列数据(distinct去掉重复项将列中各字段值单独列出):
select distinct field from table_name;
6、简历索引
当数据表存在大量记录,索引有助于加快查找数据表速度。
create index index_name on table_name(field);
如:为学生表stu_no字段建立一个索引:create index s_index on t_stu(stu_no);
7、删除数据表或索引
drop table table_name;
drop index index_name;
8、模糊查询 like
select * from t_stu where sName like '张%';
select * from t_stu where sName like '%李%';
select * from t_stu where sName like '%[]%'--[0-9] [a-z] [123];
9、分组 group by
select sClassId,count(sId),max(sAge) from t_stu group by sClassId;
10、having :对分组后的数据进行筛选
select sClassId,count() from t_stu group by sClassId having count()>3;//按照sClassId分组,然后选出数据数目3条以上的;
11、嵌套查询(子查询)
在子查询中,一般使用in 代替=使用:
select employee_id,employee_name from t_employee where department_id in (select department_id from t_department where department_name='销售部');
12、连接查询(内连接、左连接、右连接、交叉连接)
内连接:inner(outer) join...on...:查询满足on后面条件的数据;
左连接:left(right) join...on...:先查出左表中的所有数据,再使用on后面的条件对数据过滤。
交叉连接:cross join:每一个表的每一行和后面表的每一行进行连接,没有条件。
三、新增指令
1、增加一个列
alter table t_name add column col type;
2、添加主键
alter table t_name add primary key(col);
alter table t_name drop primary key(col);
3、创建视图
create vire viewname as select statement;
drop view viewname;
4、高级查询运算符
union:组合其他两个结果表并消除表中任何重复行而派生出一个新的结果表。(union all 不排除重复)
except:通过包括所有在table1中但不在table2中的行并消除所有重复行而派生出一个结果表。
intersect:只包括table1和table2中都有的行并消除所有重复行而派生出一个结果表。
5、in 使用方法
select ** from table1 where a [not] in ('val1','val2','val3','val4'...);
6、top 查出最前多少数据
select top 10 ** from table1 where expression;//前10条数据.
网友评论