阅读:
表1.Employee:
EID Name Department Job Email Password
10001 李明 SBB EG
10003 李筠平 LUKE ITM
11045 李洁 SBB EG
10044 胡斐 MTD ETN
10009 徐仲刚 SBB EG
10023 李燕 SBB ETN
20460 陆明生 MTD ETN
20078 张青 MMM EG
20001 李立 LUKE ETN 表2.Training
CourseID EID Course Grade Order
1 10001 T-SQL 60
3 11045 Oracle 71
2 20460 Java 34
1 10003 T-SQL 59
3 10001 Oracle 90
2 20001 Java 12
2 20078 Java 76
2 10003 Java 78
3 30001 Oracle 71
3 20048 Oracle 36 回答41~42题:
41、建表Employee与Training,分析表1和表2的结构,自行设置主键。(6分)
42、列出所有员工参加培训的情况,要求显示EID、Name、Department、Course,用一条SQL语句完成。(6分)
43、根据成绩排出各课自己的名次,并更新到表2的Order列(允许出现并列的情况),用过程或函数完成,过程或函数内部需使用游标。(8分)

解决方案 »

  1.   

    --建表
    create table Employee(EID int,
    Name varchar2(20) not null,
    Department varchar2(20) not null,
    Job varchar2(20) not null,
    Email varchar2(20),
    Password varchar2(20) not null,
    constraint PK_EID primary key (EID)
    create table Training(
    CourseID int,
    EID int,
    Course varchar2(20) not null,
    Grade number(5,2) not null,
    Order int,
    constraint PK_EID_CID primary key (EID,CourseID),
       constraint FK_EID_REFE foreign key (EID)
          references Employee (EID))
    二、列出所有员工参加培训的情况
    select e.EID,Name,Department,Course
    from Employee e,Training t
    where e.EID=t.EID