zoukankan      html  css  js  c++  java
  • 麻瓜之我要学sql,啦啦啦啦

    四张表

    学生表:编号,姓名,性别,班级,生日

    CREATE TABLE IF NOT EXISTS student(
    sno TINYINT UNSIGNED NOT NULL,
    sname VARCHAR(20) NOT NULL,
    ssex ENUM('male','female') DEFAULT 'male',
    sbirthday DATE NOT NULL,
    class VARCHAR(20) NOT NULL,
    PRIMARY KEY(sno)
    )

    课程表:课程编号,课程名称,教授课程的老师编号

    CREATE TABLE IF NOT EXISTS course(
       cno TINYINT UNSIGNED NOT NULL,
       cname VARCHAR(20) NOT NULL,
       tno TINYINT UNSIGNED NOT NULL,
      PRIMARY KEY(cno)      
    )

    分数表:学生编号,课程编号,分数

    CREATE TABLE IF NOT EXISTS score(
        sno TINYINT UNSIGNED NOT NULL,
        cno TINYINT UNSIGNED NOT NULL,
       degree DECIMAL(4, 1)     
    );

    老师表:老师编号,姓名,老师性别,生日,职称,部门

    CREATE TABLE IF NOT EXISTS teacher(
       tno TINYINT UNSIGNED NOT NULL,
       tname VARCHAR(20) NOT NULL,
       tsex ENUM('male','female') DEFAULT 'male',
       tbirthday DATE,
       tprof  VARCHAR(10) NOT NULL,
       tdepart VARCHAR(20) NOT NULL,
       PRIMARY KEY(tno)          
    );

     

     开始撸题:

    • 查询student表中的所有记录的sname,ssex,class

    SELECT sname,ssex,class FROM student;

    查询教师所在的所有单位(既不重复的单位)

    SELECT tdepart is FROM teacher;(全部单位)

    SELECT DISTINCT tdepart FROM teacher;(不同的单位)

    查询student表的所有记录

    SELECT * FROM student

    查询score表中成绩在60-80之间的所有记录

    SELECT * FROM score WHERE degree BETWEEN 60 AND 80

    查询score表中成绩为30,66,10的记录

    SELECT * FROM score WHERE score.degree = 30 OR score.degree = 66 OR score.degree = 10  

    SELECT * FROM score WHERE degree IN (30,66,10)

    查询student表中'class5'班或性别为'female'的同学记录。

     SELECT * FROM student WHERE class = 'class5' OR ssex = 'female'

    以class降序查询student表中的数据

    SELECT * FROM student ORDER BY class DESC

    cno升序,degree降序查询score表中的记录

    SELECT * FROM score ORDER BY cno ASC,degree DESC

    查询“class5”班的学生人数

    SELECT COUNT(*) FROM student WHERE class = 'class5'

    查询score表中的最高分的学生学号和课程号

    SELECT sno,cno FROM score WHERE degree = (SELECT MAX(degree) FROM score )

    查询每门课的平均成绩,要按照课程进行分组,然后求每门课程的平均成绩。

    SELECT course.cno,course.cname,AVG(degree) AS degree
    FROM course
    LEFT JOIN score ON
    course.cno=score.cno
    GROUP BY score.cno;

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

    SELECT AVG(degree) FROM score
    WHERE cno LIKE '3%'
    GROUP BY cno
    HAVING COUNT(*)>=5

    查询分数大于70,小于90sno

    SELECT sno FROM score
    WHERE degree BETWEEN 70 AND 90;

  • 相关阅读:
    .NET实时2D渲染入门·动态时钟
    JAVA中抽象类的使用
    R语言中函数调试
    利用Bioperl的SeqIO模块解析fastq文件
    ASCII码表
    JAVA 中转义符的理解
    在线引物设计网站,老板推荐的,亲测好用
    列出一个买东西的好网站,值得推荐
    R语言集合操作
    R语言do.call 函数用法详解
  • 原文地址:https://www.cnblogs.com/zhangchiblog/p/8082463.html
Copyright © 2011-2022 走看看