Oracle 课堂四

    有某个学生运动会比赛信息的数据库,保存了如下的表:
    运动员sporter表:(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系department)
    项目item表(项目编号itemid,项目itemname,loc地区)
    成绩grade表(运动员编号sporterid,项目编号itemid,积分mark)
    
1.求出总积分最高的系名及总积分
SELECT department,sum(mark)
FROM sporter s,grade g
WHERE s.sporterid=g.sporterid
GROUP BY department
HAVING sum(mark)=(SELECT max(sum(mark))
                  FROM sporter s,grade g
                  WHERE s.sporterid=g.sporterid
                  GROUP BY department);

2.查询在一操场进行比赛的项目名称及其冠军的姓名
SELECT itemname,NAME
FROM sporter s,item i,grade g
WHERE s.sporterid=g.sporterid and i.itemid=g.itemid and loc='一操场' and mark=6;
 
3.找出参加了王玥所参加过的项目的其他同学的姓名
SELECT NAME
FROM sporter s,grade g
WHERE s.sporterid=g.sporterid
      AND itemid IN(SELECT itemid
                    FROM sporter s,grade g
                    where s.sporterid=g.sporterid and name='王玥') and name!='王玥';

4.经查,王玥因为使用了违禁药品,其成绩都记为0分,请在数据库中做出相应修改
update grade set mark=0 where sporterid=(select sporterid from sporter where name='王玥');

5.经组委会协商,需要删除女子跳高比赛项目

一、约束
1、not NULL:非空约束,不允许为null值
建表时创建:
CREATE TABLE 表名(
  列名 数据类型 DEFAULT 默认值 NOT NULL,
  ...
);

修改表时创建非空约束:
ALTER TABLE  表名 MODIFY(列名 NOT NULL);

由not NULL 修改为null
ALTER TABLE  表名 MODIFY(列名 NULL);

CREATE TABLE A(
  ID NUMBER(4) DEFAULT 1 NOT NULL,
  NAME VARCHAR2(20) NOT NULL
);

INSERT INTO A(NAME) VALUES('aaa');
INSERT INTO A(ID) VALUES(5);

2、主键:又称为唯一索引键 不允许主键列的值为Null且不允许重复
PRIMARY KEY.
建表时创建:
CREATE TABLE 表名(
  列名 数据类型 DEFAULT 默认值 primary key,
  ...
);

CREATE TABLE 表名(
  列名 数据类型 DEFAULT 默认值,
  ...
  列名 数据类型 DEFAULT 默认值,
  constraint 约束名 primary key(约束内容)
);

修改表时创建:
ALTER TABLE  表名 ADD CONSTRAINT 约束名 PRIMARY KEY(约束内容);

删除主键约束:
ALTER TABLE  表名 DROP CONSTRAINT 约束名;

DROP TABLE A;
CREATE TABLE A(
  ID NUMBER(4) PRIMARY KEY,
  NAME VARCHAR2(20)
);

INSERT INTO A(NAME) VALUES('aaa');
INSERT INTO A(ID,NAME) VALUES(1,'aaa');

DESC A;
ALTER TABLE A MODIFY(ID NULL);    ---不能将主键约束的not null修改为null

ALTER TABLE A DROP CONSTRAINT SYS_C009789;

3、唯一约束 : 不允许重复值
建表时创建:
CREATE TABLE 表名(
  列名 数据类型 DEFAULT 默认值 unique,
  ...
);

CREATE TABLE 表名(
  列名 数据类型 DEFAULT 默认值, <
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值