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);
  • 相关阅读:
    LaTeX公式编辑器
    早期和东京,京都大学高考试题
    猎犬追狐狸试题
    矩阵方程的计算求解(Matlab实现)
    高考压轴题
    何天成:从高联到IMO金牌,超详细数学竞赛学习方法
    几个精彩的数论问题
    高考试题网站
    泛函分析有什么好的教材?
    ifndef系列
  • 原文地址:https://www.cnblogs.com/wlyhy/p/10813962.html
Copyright © 2011-2022 走看看