数据库的应用
数据库(MS)
关于获取沙盒路径
// 1. 获取当前的沙盒路径(Doucuments)
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];// 这样写不会越界报错,【0】若越界会报错
关于排序
desc 倒序(MS)
asc 正序
对于sqlite的查询语句可以用简写
//1.查询所有年龄大于25的学生姓名和班级编号并且按照学号从大到小排列
// NSString * selectAge = @"select from s.stu_id where ";
// select s.stu_id, s.stu_age,s.stu_name,s.class_id from t_student s where s.stu_age>25 order by stu_age desc 查询语句 t_student s将t_student简写为s
// 2.查询所有年龄大于25的班级编号为1和2的学生姓名且按照学号从小到大排序
// select s.stu_name,s.stu_id,s.stu_age,s.class_id from t_student s where s.stu_age >25 and s.class_id in (1,2) order by s.stu_id
select s.stu_name,s.stu_id,s.stu_age,s.class_id from t_student s where s.stu_age >25 and s.class_id =1 or s.class_id=2 order by s.stu_id
// 子查询3-5
// 3.查询年龄大于平均值得人员信息
// select avg(s.stu_age)from t_student s
// select s.stu_id ,s.stu_age,s.stu_name from t_student s where stu_age > (select avg(stu_age) from t_student )
// select * from t_student where stu_age > (select avg(stu_age) from t_student )
// 4.查询班级名称为“班级1”的所有学员信息(注:查此时班级编号未知)
//select * from t_student where class_id =(select class_id from t_class where class_name =‘班级1‘)
// 5.查询除了班级名称为“班级1”的所有学员信息(注意此时班级标号未知)
// select * from t_student where class_id !=(select class_id from t_class where class_name =‘班级1‘)
// 表链接(重点中重点)
//两个表的数据放在一行上需要拼接
// select stu.stu_name NAME,stu.stu_age AGE,cla.class_name ss
// from
// t_student stu,t_class cla // 关联的表用逗号分隔
// where
// stu.class_id=cla.class_id // 关联的信息,如果不写,则数据会出现重复
// 2.查询所有年龄大于25的学生和班级信息,包括(学号、姓名、班级编号、班级名称)
// select stu.stu_id,stu.stu_age,cla.class_id,cla.class_name from t_student stu,t_class cla where stu.class_id=cla.class_id and stu.stu_age>25
// 3.查询“班级1”和“班级2”学生和班级信息,包括(学号、姓名、班级编号、班级名称)
// select stu.stu_id,stu.stu_name,cla.class_id,cla.class_name from t_student stu,t_class cla where stu.class_id = cla.class_id and cla.class_name in(‘班级1‘,‘班级2‘)
// 分组
// 4.统计每个班级的人数
// select count(*)from t_student t group by t.class_id 四个结果
// select count(*)from t_student t group by t.class_id,t.stu_id 先按照班级编号分组,再对结果按学生编号分组,因为4个班有各有4个学生,所以第一次分组,4个班级4个学生,然后再按照学生编号对这4各班级的学生分组,因为每个学生编号都不同,所以16个结果
// 1.统计每个班级最大年龄
// select max(s.stu_age ),class_id from t_student s group by s.class_id
// 2.统计每个班级所有年龄之和
// select sum(s.stu_age),class_id from t_student s group by s.class_id
// 3. 统计每个班级平均年龄
// select avg(s.stu_age),class_id from t_student s group by s.class_id
// 查询平均年龄大于25的所有学生信息
// select * from t_student s where s.stu_age>(select avg(s.stu_age) from t_student s group by s.class_id)
// select * from t_student t group by t.class_id,t.stu_age having(avg(t.stu_age)>25)
// 条件:having(avg(t.stu_age)>25):having 分组特有的关键字表条件,平均分大于25的
// 分组1:t.class_id满足平均分大于25的按班级编号分组
// 分组2:t.stu_age 再按年龄分组
// select后面跟*打印table符合分组条件的所有信息,后面跟具体那一列或者几列就显示哪几列,中间用‘,’分隔
// 4.统计平均年龄大于25的班级信息和学生信息
// select * from t_student stu,t_class cla where stu.class_id = cla.class_id group by stu.stu_age having (avg(stu.stu_age)>25)
// select stu.stu_name,stu.stu_age,cla.class_name
// from
// t_student stu,t_class cla
//where
// stu.class_id = cla.class_id
// and cla.class_id in(
//
// select
// t.class_id
// from
// t_student t
// group by t.class_id
// having(avg(t.stu_age)>25)
// )
//
// // 当业务比较复杂,要用查询出的数据做成的虚表,在用这个虚表当已经存在的表来判断、链接分组等
// select A.stu_name from (
// select stu.stu_name,stu.stu_age,cla.class_name
// from
// t_student stu,t_class cla
// where
// stu.class_id = cla.class_id
// and cla.class_id in(
//
// select
// t.class_id
// from
// t_student t
// group by t.class_id
// having(avg(t.stu_age)>25)
// )
// )A
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。