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;

  • 相关阅读:
    一个购物网站的思路设计分享
    B/S和C/S的区别(转)
    TreeSet
    计算出给你一个随机乱敲的一个字符串最多的一个
    JavaScript来实现打开链接页面(转载)
    js小数计算小数点后显示多位小数(转)
    java中使用 正则 抓取邮箱
    浅谈 正则表达式
    jQuery中each()、find()、filter()等节点操作方法
    Xcode插件VVDocumenter Alcatraz KSImageNamed等安装
  • 原文地址:https://www.cnblogs.com/zhangchiblog/p/8082463.html
Copyright © 2011-2022 走看看