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);
  • 相关阅读:
    Hive join操作优化
    php中 date 函数中的格式参数
    Mysql分表之后的聚合统计
    使用Elasticsearch-Dump工具复制ES库
    Json Path 语法详解(Java)
    Json Path 语法
    关于qt5.2~qt5.8的下载地址
    RTL8812AU双频无线网卡在ubuntu19和20上的驱动安装
    使用vscode对threejs的本地调试
    ThreeJS中创建文字的几种方法
  • 原文地址:https://www.cnblogs.com/wlyhy/p/10813962.html
Copyright © 2011-2022 走看看