数据库的应用

10 篇文章 0 订阅

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值