.有两个表: student(sno,sname,sdept), sc(sno,cno,pscj,gmcj); 各列的含义是sno (学号) 、sname (姓名) 、sdept (院系) 、cno (课程号) 、pscj (平时成绩) 、qmcj (期末成绩)。 查询学生的学号、姓名、课程号、平时成绩、期末成绩和总评成绩。总评成绩 (total)=pscj + 0.7*qmci.使用的SQL语句是
时间: 2024-02-06 10:11:46 浏览: 82
你可以使用以下 SQL 语句查询学生的学号、姓名、课程号、平时成绩、期末成绩和总评成绩:
```
SELECT student.sno, student.sname, sc.cno, sc.pscj, sc.gmcj, sc.pscj + 0.7 * sc.gmcj AS total
FROM student, sc
WHERE student.sno = sc.sno;
```
这个查询将使用 `SELECT` 语句选择 `student` 和 `sc` 表中的列,使用 `FROM` 语句指定这两个表,并使用 `WHERE` 语句将它们连接起来。最后,它将计算每个学生的总评成绩,并将其作为 `total` 返回。
相关问题
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 "的同学所学相同的学生了。
1. 写出用Create Table创建表student1、course1、sc1 ,并按下列要求设置完整性约束。要求: (1)Student1表 属性:Sno(学号) Sname(姓名) Ssex(性别) Sage (年龄) Sdept(系部) student 的约束: 主码:sno Sname不可为空,且唯一 性别 不能为空且取值范围为{男,女} check (ssex in (‘男’,‘女’)) 年龄大于16岁 check (2) Course1表 属性:Cno(课程号) Cname(课程名) Cpno(先修课号) Ccredit(学分) course 的约束: 主码:cno Ccredit 取值范围[ 1-6 ] Course表的外码Cpno ,参照表Course的Cno (3) SC1表 属性:Sno(学号) Cno(课程号) Grade(成绩) SC1 的约束: 主码:(sno,cno) 成绩(grade)只能在 0 – 100分之间 check Sc1的外码: 外码:SC 表的sno 参照表 student 的 sno 外码:sc 表的Cno 参照表 course 的 cno
创建表student1:
```
CREATE TABLE student1 (
Sno CHAR(10) PRIMARY KEY,
Sname VARCHAR(20) UNIQUE NOT NULL,
Ssex CHAR(2) NOT NULL CHECK (Ssex IN ('男', '女')),
Sage INT CHECK (Sage > 16),
Sdept VARCHAR(20)
);
```
创建表course1:
```
CREATE TABLE course1 (
Cno CHAR(10) PRIMARY KEY,
Cname VARCHAR(20),
Cpno CHAR(10) REFERENCES course1(Cno),
Ccredit INT CHECK (Ccredit BETWEEN 1 AND 6)
);
```
创建表sc1:
```
CREATE TABLE sc1 (
Sno CHAR(10) REFERENCES student1(Sno),
Cno CHAR(10) REFERENCES course1(Cno),
Grade INT CHECK (Grade BETWEEN 0 AND 100),
PRIMARY KEY (Sno, Cno)
);
```
阅读全文