有某个学生运动会比赛信息的数据库,保存了如下的表:
运动员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 默认值, <
运动员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 默认值, <