数据准备
drop table if exists class;
create table class(
    class_no int(2) unsigned zerofill primary key auto_increment comment '班级编号',
    class_name varchar(30) not null comment '班级名称'
);
insert into class values(1, '培优班');
insert into class values(2, '普通班');

drop table if exists student;
create table student(
    stu_no int(2) unsigned zerofill primary key auto_increment comment '学员编号',
    stu_name varchar(30) not null comment '学员姓名',
    stu_sex varchar(3) not null comment '学员性别',
    stu_age tinyint(2) unsigned zerofill comment '学员年代',
    class_no int(2) unsigned zerofill comment '所在班级编号',
    foreign key(class_no) references class(class_no)  
);
insert into student values(01, '李白', '男', 18, 01);
insert into student values(02, '杜甫', '男', 20, 01);
insert into student values(03, '张飞', '男', 32, 02);
insert into student values(04, '韩信', '男', 26, 02);
insert into student values(05, '了龙', '男', 27, 02);
insert into student values(06, '大乔', '女', 17, 01);
insert into student values(07, '小乔', '女', 16, 01);
insert into student values(08, '小乔', '女', 16, 01);
insert into student values(09, '关哥', '男', 32, 02);
insert into student values(10, '刘备', '男', 36, null);
alter table student drop foreign key `student_ibfk_1`;

1: 查询出student表中年龄最大的学生
    select * from student where stu_age = (select max(stu_age) from student);

2: 查询出student表中年龄最小的学生
    select * from student where stu_age = (select min(stu_age) from student);

3: 查询出02号班中最大的年龄是多少
    select max(stu_age) from student where class_no = 2;

4: 查询出01号班中最小的年龄是多少
    select min(stu_age) from student  where class_no = 1;

5: 查询出01号班中有多少个学生
    select count(*) from student where class_no = 1;

6: 查询出01号班中平均年龄是多少
    select avg(stu_age) from student where class_no = 1;

7:查询出没有班级的学生
    (失败)select * from student where class_no not in ( select class_no from class);(查询出结果为空?)
    (成功)select * from student where not exists ( select distinct(class_no) from class where student.class_no = class.class_no); // null值的特殊性,不能使用not in来查询,NULL值在与任意值比较时总是假的(FALSE),并且包含NULL的一个表达式总是产生一个NULL值

8: 查询出02号班级中年龄大于30岁的男学员
    select * from student where class_no = 2 and stu_sex = '男' and stu_age > 30;

9: 查询出所有的女学员姓名,并在名字后加上‘大美女’名字
    select concat(stu_name,'大美女') from student where stu_sex = '女';

10: 查询出1号班级的所有男学员 还有 没有班级的学员
     select * from student where (class_no = 1 || class_no is null) and stu_sex = '男';
     select * from student where class_no = 1 and stu_sex = '男' || not exists ( select class_no from class where student.class_no = class.class_no);

11: 查询出年龄在20-30岁的学员
    select * from student where stu_age between 20 and 30;

12: 查询出所有名字中第二个字符是‘乔’的学员的平均工资(没有工资列,改为平均年龄或者添加工资列)
    select avg(stu_age) from student where stu_name like('_乔%');

13: 查询出班中所有学生的姓名,其中不包括重复的
    select distinct(stu_name) from student where class_no is not null;

14: 查询姓名,性别两个字段, 不包括重复的记录
    select distinct stu_name,stu_age from student;
15: 查询出1号部门中所有的学员,根据年龄升序排序,年龄相同的则按照学号降序排序
    select * from student where class_no = 1 order by stu_age asc,stu_no desc;

16: 查询出最后一条数据
    (失败)select * from student limit (select count(stu_no)-1 from student),1;// 参数不能为表达式
    select * from student order by stu_no desc limit 1;

17: 查询出学号为6的后面的3条数据
    select * from student where stu_no > 6 limit 3;

18: 查询出学号为6的前面的3条数据
    select * from student where stu_no < 6 order by stu_no desc limit 3;

19: 删除最后一条记录,(在不知道最后一条记录id的情况)
    delete from student where stu_no in (select stu_no from  (select stu_no from student order by stu_no desc limit 1) as temtable);// MySQL不能指定更新的目标表在FROM子句,所以先将删除的数据放到临时表中再进行删除

delete from student order by stu_no desc limit 1;
    
20: 删除掉学号为6的后面的3条数据(同理(19))
    delete from student where stu_no in (select stu_no from (select stu_no from student where stu_no > 6 limit 3) as temtable);

delete from student where stu_no > 6 limit 3;

Mysql查询小作业的更多相关文章

  1. mysql之连接查询小作业

    #数据准备drop table if exists class;create table class(    class_no int(2) unsigned zerofill primary key ...

  2. mysql 查询小技巧

    数据字段中存放的是id集,形如  1,2,15,35   也可类推json格式 查询时不用拆分了, 用上 instr.concat搜索和连接字符串 查询fids中包含15的 select * from ...

  3. mysql 查询小demo

    两张表的的结构如下,需求是写出从one表到two表和从two表到one表的查询转换. create table student_one( name varchar(50) default '' not ...

  4. mysql查询小技巧

    如果所传bookTypeName为空则执行select * from t_bookType(搜索框里未输入信息) 否则追加 and bookTypeName like  '%"+bookTy ...

  5. MySQL 表记录查询小练习

    表记录查询小练习 查看岗位是teacher的员工姓名.年龄 查看岗位是teacher且年龄大于26岁的员工姓名.年龄 查看岗位是teacher且薪资在12000-16000范围内的员工姓名.年龄.薪资 ...

  6. 《MySQL面试小抄》查询缓存机制终面

    <MySQL面试小抄>查询缓存机制终面 我是肥哥,一名不专业的面试官! 我是囧囧,一名积极找工作的小菜鸟! 囧囧表示:小白面试最怕的就是面试官问的知识点太笼统,自己无法快速定位到关键问题点 ...

  7. mysql查询常用小语句

    mysql  查询某个库里表的数量 在mysql中有个数据库information_schema下的表tables记录了所有数据库中所有的表相关信息 TABLE_SCHEMA 数据库名称 SELECT ...

  8. 数据库MySQL(课下作业,必做)

    数据库MySQL(课下作业,必做) 题目要求: 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入 ...

  9. mysql查询性能优化

    mysql查询过程: 客户端发送查询请求. 服务器检查查询缓存,如果命中缓存,则返回结果,否则,继续执行. 服务器进行sql解析,预处理,再由优化器生成执行计划. Mysql调用存储引擎API执行优化 ...

随机推荐

  1. id 选择器

    id 选择器 1.id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式. (即也可以说,可以将已经预先定义的特定样式,通过id选择器,赋值指向HTML 元素) 2.HTML元素以id属性 ...

  2. RabbitMQ 发布订阅持久化

    RabbitMQ是一种重要的消息队列中间件,在生产环境中,稳定是第一考虑.RabbitMQ厂家也深知开发者的声音,稳定.可靠是第一考虑,为了消息传输的可靠性传输,RabbitMQ提供了多种途径的消息持 ...

  3. js计时功能

    //个位秒加 function time4jia() { //分钟60为上限 所有加停止 if (sz(a('time1').innerHTML) == 6) { return; } var m4 = ...

  4. 201621123031 《Java程序设计》第9周学习总结

    作业09-集合与泛型 1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 一.泛型的基本概念 泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Paramet ...

  5. 《高级软件测试》云平台Jira的配置

    首先点击进入以下网址: https://www.atlassian.com/ondemand/signup/form?product=jira-software.ondemand 填写好信息,Star ...

  6. VS Code 常用命令记录

    1. 创建解决方案 例:dotnet new sln -o HelloWorld.Solutions 其中 -o 表示输出文件夹 2.创建类库.web.mvc.webapi等项目 例:dotnet n ...

  7. Django rest framework源码分析(4)----版本

    版本 新建一个工程Myproject和一个app名为api (1)api/models.py from django.db import models class UserInfo(models.Mo ...

  8. zuul入门(2)zuul的过滤器分类和加载

    一.Groovy编写的Filter 1.可以放到指定目录加载 创建一个pre类型的filter,在run方法中获取HttpServletRequest 然后答应header信息 在代码中加入groov ...

  9. 十个你需要在 PHP 7 中避免的坑

    1. 不要使用 mysql_ 类函数 终于,你不用再看到建议不要使用 mysql_ 函数的提示了.因为 PHP 7 从核心上完全移除了它们,这意味着请你移步至更好的 mysqli_ 类函数,或者更灵活 ...

  10. 三十天学不会TCP,UDP/IP网络编程 -- RTT的计算

    欢迎去gitbook(https://www.gitbook.com/@rogerzhu/)看到完整版. 如果对和程序员有关的计算机网络知识,和对计算机网络方面的编程有兴趣,虽然说现在这种“看不见”的 ...