建表、更新、查询综合练习

有某个学生运动会比赛信息的数据,保存了如下表:

  • 运动员 sporter (运动员编号 sporterid , 运动员姓名 name , 运动员性别 sex , 所属系号 department)

  • 项目 item (项目编号 itemid , 项目名称 itemname , 项目比赛地点 location)

  • 成绩 grade (运动员编号 id , 项目编号 itemid , 积分 mark)

请用 SQL 语句完成如下功能:
 1、建表,并在相应字段上增加约束;
  | - 定义各表的主键个外键约束;
  | - 运动员的姓名和所属系别不能为空
  | - 积分要么为空值,要么为 6,4,2,0, 分别代表第一,二,三名和其他名次的积分,注意名次可以有并列名次,后面的排名不往前提升,例如,如果有两个并列第一,则没有第二名。
 2、向表中插入指定数据;

运动员( 
    1001, 李明,男,计算机系
    1002,张三,男,数学系
    1003, 李四,男,计算机系
    1004, 王二,男,物理系
    1005, 李娜,女,心理系
    1006, 孙丽,女,数学系)
项目( 
    x001, 男子五千米,一操场
    x002,男子标枪,一操场
    x003, 男子跳远,二操场
    x004, 女子跳高,二操场
    x005, 女子三千米,三操场)
积分(  
1001,  x001, 6
1002,  x001, 4
1003,  x001, 2
1004,  x001, 0
1001,  x003, 4
1002,  x003, 6
1004,  x003, 2
1005,  x004, 6
    1006,  x004, 4
    1003,  x002, 6 
    1005 ,  x002,4 
    1006,  x002,2 
1001,  x002,0)

 3、完成如下查询要求:
  A、 求出目前积分最高的惜命,及其积分。
  B、 找出在以操场进行比赛的各项目名称及其冠军的姓名。
  C、 找出参加了张三所参加的所有项目的其他同学的姓名。
  D、 经查张三因为使用了违禁药品,其成绩记0分,请在数据库中做出相应修改。
  E、 经组委会协商,需要删除女子跳高比赛项目。


1、建表:

  建表的时候一定需要存在约束,同时按照数据库脚本的创建标准来完成。

// 删除数据表
DROP TABLE grade PURGE;
DROP TABLE item PURGE;
DROP TABLE sporter PURGE;

// 创建数据表
CREATE TABLE sporter(
    sporterid NUMBER(4) ,
    name VARCHAR2(20) NOT NULL ,
    sex VARCHAR2(10) ,
    department VARCHAR2(20) NOT NULL ,
    CONSTRAINT pk_sporterid PRIMARY KEY(sporterid) ,
    CONSTRAINT ck_sex CHECK(sex IN('男','女'))
);
CREATE TABLE item(
    itemid VARCHAR2(4) ,
    itemname VARCHAR2(20) NOT NULL ,
    location VARCHAR2(20) NOT NULL ,
    CONSTRAINT pk_item PRIMARY KEY(itemid)
);
CREATE TABLE grade(
    sporterid NUMBER(4) ,
    itemid VARCHAR2(2) ,
    mark NUMBER(1) ,
    CONSTRAINT fk_sporterid FOREIGN KEY(sporterid) REFERENCES sporter(sporterid) ON DELETE CASCADE  ,
    CONSTRAINT fk_itemid FOREIGN KEY(itemid) REFERENCES item(itemid) ON DELETE 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值