zoukankan      html  css  js  c++  java
  • MySQL练习(1)

    建表语句

    CREATE TABLE students
    (sno VARCHAR(3) NOT NULL,
    sname VARCHAR(4) NOT NULL,
    ssex VARCHAR(2) NOT NULL,
    sbirthday DATETIME,
    class VARCHAR(5))
    CREATE TABLE courses
    (cno VARCHAR(5) NOT NULL,
    cname VARCHAR(10) NOT NULL,
    tno VARCHAR(10) NOT NULL)
    CREATE TABLE scores
    (sno VARCHAR(3) NOT NULL,
    cno VARCHAR(5) NOT NULL,
    degree NUMERIC(10, 1) NOT NULL)
    CREATE TABLE teachers
    (tno VARCHAR(3) NOT NULL,
    tname VARCHAR(4) NOT NULL, tsex VARCHAR(2) NOT NULL,
    tbirthday DATETIME NOT NULL, prof VARCHAR(6),
    depart VARCHAR(10) NOT NULL)

    插入数据

    INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,'曾华' ,'' ,'1977-09-01',95033);
    INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (105 ,'匡明' ,'' ,'1975-10-02',95031);
    INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (107 ,'王丽' ,'' ,'1976-01-23',95033);
    INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (101 ,'李军' ,'' ,'1976-02-20',95033);
    INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (109 ,'王芳' ,'' ,'1975-02-10',95031);
    INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (103 ,'陆君' ,'' ,'1974-06-03',95031);
    INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('3-105' ,'计算机导论',825);
    INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('3-245' ,'操作系统' ,804);
    INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('6-166' ,'数据电路' ,856);
    INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('9-888' ,'高等数学' ,100);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (103,'3-245',86);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (105,'3-245',75);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (109,'3-245',68);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (103,'3-105',92);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (105,'3-105',88);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (109,'3-105',76);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (101,'3-105',64);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (107,'3-105',91);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (108,'3-105',78);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (101,'6-166',85);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (107,'6-106',79);
    INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (108,'6-166',81);
    INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (804,'李诚','','1958-12-02','副教授','计算机系');
    INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (856,'张旭','','1969-03-12','讲师','电子工程系');
    INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (825,'王萍','','1972-05-05','助教','计算机系');
    INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (831,'刘冰','','1977-08-14','助教','电子工程系');
    commit;

    题目

    1、 查询Student表中的所有记录的Sname、Ssex和Class列。

    2、 查询教师所有的单位即不重复的Depart列。

    3、 查询Student表的所有记录。

    4、 查询Score表中成绩在60到80之间的所有记录。

    5、 查询Score表中成绩为85,86或88的记录。

    6、 查询Student表中“95031”班或性别为“女”的同学记录。

    7、 以Class降序查询Student表的所有记录。

    8、 以Cno升序、Degree降序查询Score表的所有记录。

    9、 查询“95031”班的学生人数。

    10、查询Score表中的最高分的学生学号和课程号。

    11、查询‘3-105’号课程的平均分。

    12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

    13、查询最低分大于70,最高分小于90的Sno列。

    14、查询所有学生的Sname、Cno和Degree列。

    15、查询所有学生的Sno、Cname和Degree列。

    个人练习答案

    -- 1、 查询Student表中的所有记录的Sname、Ssex和Class列。
    SELECT
        Sname,
        Ssex,
        Class
    FROM
        students;
    
    -- 2、 查询教师所有的单位即不重复的Depart列。
    SELECT DISTINCT
        Depart
    FROM
        teachers;
    
    -- 3、 查询Student表的所有记录。
    SELECT
        *
    FROM
        students;
    
    -- 4、 查询Score表中成绩在60到80之间的所有记录。
    SELECT
        *
    FROM
        scores
    WHERE
        degree BETWEEN 60
    AND 80;
    
    -- 5、 查询Score表中成绩为85,86或88的记录。
    SELECT
        *
    FROM
        scores
    WHERE
        degree = 85
    OR degree = 86
    OR degree = 88;
    
    SELECT
        *
    FROM
        scores
    WHERE
        degree IN (85, 86, 88);
    
    -- 6、 查询Student表中“95031”班或性别为“女”的同学记录。
    SELECT
        *
    FROM
        students
    WHERE
        class = "95031"
    OR ssex = "女";
    
    -- 7、 以Class降序查询Student表的所有记录。
    SELECT
        *
    FROM
        students
    ORDER BY
        class DESC;
    
    -- 8、 以Cno升序、Degree降序查询Score表的所有记录。
    SELECT
        *
    FROM
        scores
    ORDER BY
        cno ASC,
        degree DESC;
    
    -- 9、 查询“95031”班的学生人数。
    SELECT
        count(*) AS total
    FROM
        students
    WHERE
        class = '95031';
    
    -- 10、查询Score表中的最高分的学生学号和课程号。
    SELECT
        *
    FROM
        scores
    ORDER BY
        degree DESC
    LIMIT 1;
    
    -- 11、查询‘3-105’号课程的平均分。
    SELECT
        AVG(degree)
    FROM
        scores
    WHERE
        cno = '3-105';
    
    -- 12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
    SELECT
        Cno,
        AVG(Degree)
    FROM
        Scores
    WHERE
        Cno LIKE '3%'
    GROUP BY
        Cno
    HAVING
        COUNT(Sno) >= 5;
    
    -- 13、查询最低分大于70,最高分小于90的Sno列。
    SELECT
        *
    FROM
        scores
    GROUP BY
        sno
    HAVING
        MAX(degree) < 90
    AND MIN(degree) > 70;
    
    -- 14、查询所有学生的Sname、Cno和Degree列。
    SELECT
        Sname,
        cno,
        Degree
    FROM
        students
    JOIN scores ON students.SNO = scores.SNO;
    
    -- 15、查询所有学生的Sno、Cname和Degree列。
    SELECT
        Sno,
        Cname,
        degree
    FROM
        scores
    JOIN courses ON (Scores.Cno = Courses.Cno);
  • 相关阅读:
    来自于一个问题的回答对自己的反思 php怎么发送邮件?发送邮件插件PHPMailer
    如何在github上搭建一个免费的 无限流量的静态网页博客Github pages
    sass重构响应式unofficial‘s博客轻松适应移动端
    HTML5 audio元素如何使用js与jquery控制其事件
    javascript Uncaught ReferenceError: 方法名 is not defined
    JS下计算当前日期(当天)后N天出现NAN或者undefined的情况
    前端开发环境之GRUNT自动WATCH压缩JS文件与编译SASS文件环境下Ruby安装sass常见错误分析
    pycharm 语言配置
    基本动态集合
    windows下简单使用pip
  • 原文地址:https://www.cnblogs.com/wlyhy/p/10813962.html
Copyright © 2011-2022 走看看