假设表为course(cno,cname,cpno,ccredit),sc(sno,cno,grade),student(sno,sname,ssex,sage,sdept),请给我数据库将李勇的数据库成绩改为85的代码
时间: 2024-01-04 18:02:12 浏览: 94
假设李勇的学号为'1001',他修读的课程编号为'001',可以使用以下SQL语句将他的成绩修改为85:
```
UPDATE sc SET grade = 85 WHERE sno = '1001' AND cno = '001';
```
其中,`UPDATE` 是修改操作的关键字,`sc` 是成绩表的表名,`SET` 后面跟着需要修改的字段名和新值,`WHERE` 后面跟着需要修改的记录的筛选条件。
相关问题
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 "的同学所学相同的学生了。
CREATE DATABASE if NOT EXISTS xskc CHARSET UTF8 COLLATE UTF8_GENERAL_CI; use xskc; CREATE TABLE STUDENT ( Sno char(9)primary key, Sname char(20), Ssex char(2)check(Ssex in('男','女')) , Sage smallint check(Sage>=10 and Sage<=60), Sdept char(20) ); insert into STUDENT(Sno,Sname,Ssex,Sage,Sdept)values(201215121,'李勇','男',20,'CS'); insert into STUDENT(Sno,Sname,Ssex,Sage,Sdept)values(201215122,'刘晨','女',19,'IS'); insert into STUDENT(Sno,Sname,Ssex,Sage,Sdept)values(201215123,'王敏','男',18,'MA'); insert into STUDENT(Sno,Sname,Ssex,Sage,Sdept)values(201215124,'张立','男',19,'CS'); select * from STUDENT; CREATE TABLE COURSE ( Cno char(4)primary key, Cname char(40), Cpno char(4), foreign key(Cpno)references COURSE(Cno), Ccredit smallint ); insert into COURSE(Cno,Cname,Cpno,Ccredit)values(1,'数据库',NULL,4); insert into COURSE(Cno,Cname,Cpno,Ccredit)values(2,'数学',NULL,2); insert into COURSE(Cno,Cname,Cpno,Ccredit)values(3,'信息系统',1,4); insert into COURSE(Cno,Cname,Cpno,Ccredit)values(4,'操作系统',2,3); insert into COURSE(Cno,Cname,Cpno,Ccredit)values(5,'数据结构',3,4); insert into COURSE(Cno,Cname,Cpno,Ccredit)values(6,'数据分析',NULL,4); insert into COURSE(Cno,Cname,Cpno,Ccredit)values(7,'PASCAL语言',6,4); select * from COURSE; CREATE TABLE SC ( Sno char(9), Cno char(4), Grade smallint check(Grade>=10 and Grade<=100), primary key(Sno,Cno), foreign key(Sno) references STUDENT(Sno), foreign key(Cno) references COURSE(Cno) ); insert into SC(Sno,Cno,Grade)values(201215121,1,92); insert into SC(Sno,Cno,Grade)values(201215121,2,85); insert into SC(Sno,Cno,Grade)values(201215121,3,88); insert into SC(Sno,Cno,Grade)values(201215122,2,90); insert into SC(Sno,Cno,Grade)values(201215122,3,80);
好的,我看到您创建了三张表:`STUDENT`、`COURSE` 和 `SC`,并向它们插入了一些数据。表 `STUDENT` 存储了学生的基本信息,表 `COURSE` 存储了课程的信息,表 `SC` 存储了学生选课的成绩信息。接下来,您可以使用 SQL 语句来查询学生的成绩信息,如下:
1. 查询学生 `201215121` 的选课情况和成绩:
```
SELECT c.Cname, sc.Grade
FROM SC sc
JOIN COURSE c ON sc.Cno = c.Cno
WHERE sc.Sno = 201215121;
```
执行该 SQL 语句后,将会返回学号为 `201215121` 的学生选课的课程名称和成绩信息。
2. 查询课程 `数据库` 的选课学生情况和成绩:
```
SELECT s.Sname, sc.Grade
FROM SC sc
JOIN STUDENT s ON sc.Sno = s.Sno
JOIN COURSE c ON sc.Cno = c.Cno
WHERE c.Cname = '数据库';
```
执行该 SQL 语句后,将会返回选修了 `数据库` 课程的学生的姓名和成绩信息。
3. 查询所有学生的选课情况和成绩:
```
SELECT s.Sno, s.Sname, c.Cname, sc.Grade
FROM SC sc
JOIN STUDENT s ON sc.Sno = s.Sno
JOIN COURSE c ON sc.Cno = c.Cno;
```
执行该 SQL 语句后,将会返回所有学生的选课情况和成绩信息。
阅读全文