zoukankan      html  css  js  c++  java
  • mysql(4.有关sql查询练习题1)

    创建几张表如下代码如下:

    创建如下几张表

    course表:

    score表:

    student表:

    teacher

    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for course
    -- ----------------------------
    DROP TABLE IF EXISTS `course`;
    CREATE TABLE `course` (
      `c_id` int(10) NOT NULL,
      `c_name` varchar(255) DEFAULT NULL,
      `t_id` int(11) DEFAULT NULL,
      PRIMARY KEY (`c_id`),
      KEY `t_id` (`t_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of course
    -- ----------------------------
    INSERT INTO `course` VALUES ('1', 'python', '1');
    INSERT INTO `course` VALUES ('2', 'java', '1');
    INSERT INTO `course` VALUES ('3', 'linux', '3');
    INSERT INTO `course` VALUES ('4', 'web', '2');
    
    -- ----------------------------
    -- Table structure for score
    -- ----------------------------
    DROP TABLE IF EXISTS `score`;
    CREATE TABLE `score` (
      `sc_id` int(11) NOT NULL AUTO_INCREMENT,
      `s_id` int(10) DEFAULT NULL,
      `c_id` int(11) DEFAULT NULL,
      `s_score` double DEFAULT NULL,
      PRIMARY KEY (`sc_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of score
    -- ----------------------------
    INSERT INTO `score` VALUES ('1', '1', '1', '79');
    INSERT INTO `score` VALUES ('2', '1', '2', '78');
    INSERT INTO `score` VALUES ('3', '1', '3', '35');
    INSERT INTO `score` VALUES ('4', '2', '2', '32');
    INSERT INTO `score` VALUES ('5', '3', '1', '66');
    INSERT INTO `score` VALUES ('6', '4', '2', '77');
    INSERT INTO `score` VALUES ('7', '4', '1', '68');
    INSERT INTO `score` VALUES ('8', '5', '1', '66');
    INSERT INTO `score` VALUES ('9', '2', '1', '69');
    INSERT INTO `score` VALUES ('10', '4', '4', '75');
    INSERT INTO `score` VALUES ('11', '5', '4', '75');
    
    -- ----------------------------
    -- Table structure for student
    -- ----------------------------
    DROP TABLE IF EXISTS `student`;
    CREATE TABLE `student` (
      `s_id` varchar(20) NOT NULL,
      `s_name` varchar(255) DEFAULT NULL,
      `s_age` int(10) DEFAULT NULL,
      `s_sex` char(1) DEFAULT NULL,
      PRIMARY KEY (`s_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of student
    -- ----------------------------
    INSERT INTO `student` VALUES ('1', '鲁班', '12', '');
    INSERT INTO `student` VALUES ('2', '貂蝉', '20', '');
    INSERT INTO `student` VALUES ('3', '刘备', '35', '');
    INSERT INTO `student` VALUES ('4', '关羽', '34', '');
    INSERT INTO `student` VALUES ('5', '张飞', '33', '');
    
    -- ----------------------------
    -- Table structure for teacher
    -- ----------------------------
    DROP TABLE IF EXISTS `teacher`;
    CREATE TABLE `teacher` (
      `t_id` int(10) NOT NULL,
      `t_name` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`t_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of teacher
    -- ----------------------------
    INSERT INTO `teacher` VALUES ('1', '张雪峰');
    INSERT INTO `teacher` VALUES ('2', '老子');
    INSERT INTO `teacher` VALUES ('3', '墨子');
    创建表的代码
    -- 1、查询课程编号“001”比课程编号“002”  成绩高的所有学生的学号;

    -- select a.s_id from (select s_score ,s_id from score where c_id='1') as a,
    (select s_score,s_id from score where c_id='2')as b where a.s_id=b.s_id AND a.s_score>b.s_score


    2、查询平均成绩大于60分的同学的学号和平均成绩;

    select s_id,AVG(s_score) from score GROUP BY s_id HAVING AVG(s_score)>66


    3、查询所有同学的学号、姓名、选课数、总成绩;
    #做这类题的时候先看一下题目要求牵扯到几张表,如果有几个字段都在一张表,那么
    -- 先在一张表中把要查的字段查出来,在连接另一张表
    -- 学号、选课数和总成绩在一张表中,然后再连接另一张表将所要求的字段全部查出来
    -- SELECT DISTINCT s.s_name,sc.s_id,COUNT(1),SUM(s_score) from score as sc,student
    as s where sc.s_id=s.s_id GROUP BY s_id


    -- 4查询含有"子"的老师的个数;

    -- SELECT COUNT(1) from teacher where t_name like '%子%'


    5、查询没学过“老子”老师课的同学的学号、姓名;

    select DISTINCT s.s_id,s.s_name from student as s,score sc where sc.s_id not in (
    select s_id from score where c_id in
    (SELECT c.c_id from teacher t ,course c where t.t_id=c.t_id and t_name='老子')
    )


  • 相关阅读:
    《Think in Java》(七)复用类
    书单2017
    React 获取真实Dom v8.6.2版本
    vue-waterfall2 实现瀑布流,及总结的问题
    vue CSS使用/deep/
    vue.config.js 配置 scss,less,sass全局配置 vuecli3
    postcss 将px转换成rem vuecli3+vant+vue+postcss
    px转rem vue vscode
    轮播模仿臭美APP,vue,swiper
    瀑布流 懒加载 组件 vue js
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/8044727.html
Copyright © 2011-2022 走看看