1. 建立关系表:student(sno,sname,ssex,sdept,sage),Course(cno,cname,cpno credit) ,SC(sno,cno,grade). 2. 给每个关系设置相应的主码和外码 3. student表插入元组(95001,张三,女,计算机系,19);(95002,李四,男,信息系,18),(95003,王武,女,理学院,17),试图给student表中的插入一个学号为已经存在的学号或者空值的元组,请问数据库有何提示? 4. course表插入元组(1,数据库原理,2,4);(2,离散数学,,2);(3,Java语言,,2);试图给Course表中插入一个课程号为已经存在的课程号或者空值的元组,请问数据库有何提示?若插入的cpno列属性值在关系表Course中的cno中不存在,请问是否插入成功? 5. SC表中插入一条student中不存在的学号或者course表中不存在的课程号,或者插入学号和课程号有一个为空,请问数据库有何提示??
时间: 2023-09-25 10:11:59 浏览: 166
1. student表的主码为sno,Course表的主码为cno,SC表的主码为(sno,cno),student表中sdept列的外码为department表中的deptno列。
2. student表中sdept列的外码为department表中的deptno列;Course表中cpno列的外码为Course表中cno列;SC表中sno列的外码为student表中sno列,SC表中cno列的外码为Course表中cno列。
3. 若试图给student表中插入一个学号为已经存在的学号或者空值的元组,则数据库会提示违反唯一性约束条件。
4. 若试图给Course表中插入一个课程号为已经存在的课程号或者空值的元组,则数据库会提示违反唯一性约束条件。若插入的cpno列属性值在关系表Course中的cno中不存在,则插入不成功,因为cpno列是Course表中的外键,必须参照Course表中的cno列。
5. 若SC表中插入一条student中不存在的学号或者course表中不存在的课程号,或者插入学号和课程号有一个为空,则数据库会提示违反完整性约束条件。
相关问题
student表:Sno,sname,sage,ssex,sdept;course表:cno,cname,cpno,ccredit;SC表:sno,sno,grade查询至少有一门课与学号为"200215121 "的同学所学相同的同学
您可以使用如下SQL语句来查询至少有一门课与学号为"200215121 "的同学所学相同的学生:
```
SELECT DISTINCT s2.sno, s2.sname
FROM student s1, student s2, SC c1, SC c2
WHERE s1.sno = '200215121'
AND s1.sno = c1.sno
AND c1.cno = c2.cno
AND c2.sno = s2.sno
AND s1.sno <> s2.sno;
```
解释一下上述SQL语句:
1. 首先从student表中找到学号为“200215121”的学生,记为s1;
2. 然后从SC表中找到与s1学号相同的选课记录c1;
3. 接着从SC表中找到与c1所对应的课程相同的其他选课记录c2;
4. 然后从student表中找到与c2对应的学生,记为s2;
5. 最后输出s2的学号和姓名,注意要去重。
这样,就可以查询到至少有一门课与学号为"200215121 "的同学所学相同的学生了。
使用SQL命令创建创建以下三个关系: Student(Sno,Sname,Ssex,Sage,Sdept) Course (Cno, Cname, Cpno, Ccredit) SC(Sno, Cno, Grade)
好的,我可以为您提供SQL命令来创建这三个关系。请使用以下命令:
创建学生表:
```
CREATE TABLE Student (
Sno CHAR(10) PRIMARY KEY,
Sname VARCHAR(20) NOT NULL,
Ssex CHAR(2) NOT NULL,
Sage INT NOT NULL,
Sdept VARCHAR(20) NOT NULL
);
```
创建课程表:
```
CREATE TABLE Course (
Cno CHAR(10) PRIMARY KEY,
Cname VARCHAR(20) NOT NULL,
Cpno CHAR(10),
Ccredit INT NOT NULL
);
```
创建选课表:
```
CREATE TABLE SC (
Sno CHAR(10) REFERENCES Student(Sno),
Cno CHAR(10) REFERENCES Course(Cno),
Grade INT NOT NULL,
PRIMARY KEY (Sno, Cno)
);
```
这样就成功创建了三个关系表:Student、Course、SC。
阅读全文