day73_oracle03_练习题

来源:互联网 发布:程序员写博客写什么 编辑:程序博客网 时间:2024/06/05 04:35

===========就一道练习题:=============

需求及表结构传智播客为了更好的管理学员成绩信息,开发《学员成绩管理系统》。表结构如下:1.班级(T_CLASS)字段名类型(位数)是否必填说明idnumber必填主键nameVarchar2(15)必填班级名称2.学员(T_STUDENT)字段名类型(位数)是否必填说明idnumber必填主键nameVarchar2(30)必填名称sexnumber(1)性别  0:女  1:男eduVarchar2(30)学历teleVarchar2(30)电话cardnoVarchar2(18)身份证号classidnumber班级编号3.课程(T_COURSE)字段名类型(位数)是否必填说明idnumber必填主键nameVarchar2(30)必填课程名称4.成绩表(T_MARK)字段名类型(位数)是否必填说明idnumber必填主键courseidnumber必填课程IDstudentidnumber必填学员IDscorenumber分数练习一:创建表、序列 并录入测试数据答案:--班级CREATE TABLE T_CLASS(ID NUMBER NOT NULL PRIMARY KEY,  NAME VARCHAR2(30) NOT NULL UNIQUE);--学生CREATE TABLE T_STUDENT( ID NUMBER NOT NULL PRIMARY KEY,   NAME VARCHAR2(30),   SEX NUMBER(1) CHECK(SEX IN (0,1)),  EDU VARCHAR2(30),  TELE VARCHAR2(30),   CARDNO VARCHAR2(18) ,  CLASSID NUMBER);--课程CREATE TABLE T_COURSE (  ID NUMBER NOT NULL PRIMARY KEY,   NAME VARCHAR2(50));--成绩CREATE TABLE T_MARK (  ID NUMBER NOT NULL PRIMARY KEY,   COURSEID NUMBER,  STUDENTID NUMBER,  SCORE NUMBER);-----序列:CREATE SEQUENCE SEQ_CLASS;CREATE SEQUENCE SEQ_STUDENT;CREATE SEQUENCE SEQ_COURSE;CREATE SEQUENCE SEQ_MARK;练习二:统计每门课程的平均成绩 --我的:分析:每门课程:按课程分组。select c.name,m.courseid, avg(m.score) avgScorefrom t_marke m,t_course cwhere m.courseid=c.idgroup by c.id,m.courseid,c.name;--【这里《按多条件分组》:实际上c.name对分组结果无影响,效果按c.id分组一样。---只为了符合group by 查询字段要求语法:多条件分组。-- 这里只是为了分组结果,多一个c.name列,更直观】--老师:select m.courseid,c.name,         round(avg(m.score)) avgscore from t_marke m,t_course c where m.courseid=c.id group by m.courseid,c.name



===================================

原创粉丝点击