欢迎投稿

今日深度:

数据库的应用

数据库的应用


数据库(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

www.htsjk.Com true http://www.htsjk.com/DB2/20358.html NewsArticle 数据库的应用 数据库(MS) 关于获取沙盒路径 // 1. 获取当前的沙盒路径(Doucuments) NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];// 这样写不会越...
评论暂时关闭