将course 表中课程名以计算开始的课程学分加2分
时间: 2024-05-16 22:18:33 浏览: 16
假设你使用的是 MySQL 数据库,可以使用以下 SQL 语句实现:
```
UPDATE course SET credit = credit + 2 WHERE course_name LIKE '计算%';
```
这个 SQL 语句会将 course 表中课程名以“计算”开头的课程学分加 2 分。如果你使用的是其他数据库,语法可能略有不同,但是基本思路是一样的。
相关问题
为course表创建一个insert触发器,要求“插入的课程记录中,学分不能低于2分,如果低于2分,则自动将其更改为2分”。
没有问题,这是一个技术问题,我可以回答。以下是SQL Server中创建触发器的代码:
CREATE TRIGGER trg_InsertCourse
ON course
AFTER INSERT
AS
BEGIN
IF NOT EXISTS (SELECT 1 FROM deleted)
BEGIN
UPDATE course
SET credit = 2
FROM inserted i
WHERE course.course_id = i.course_id
AND i.credit < 2;
END
END
这个触发器会在向course表中插入记录之后执行。如果插入的课程学分低于2分,触发器会自动将其更改为2分。
在st_2中建立Course_2表,并按照course表设置课程号、课程名、先行课及学分。其中先行课参照课程号,课程名取唯一值。再在st_2中建立SC_2表,并按照SC设置学号、课程号及成绩。成绩限制在0~100分之间;Sno参照student_2表sno,并进行删除级联设置和更新级联设置;cno参照Course_2表cno,并进行更新级联设置和拒绝删除设置。
好的,您的问题是如何在st_2中建立Course_2表和SC_2表,并按照要求设置参照和限制?
对于建立Course_2表,您可以使用以下的SQL语句:
```
CREATE TABLE Course_2 (
cno INT PRIMARY KEY,
cname VARCHAR(50) UNIQUE,
prerequisite INT REFERENCES Course_2(cno),
credit INT
);
```
这个表包含四个列,分别是课程号(cno)、课程名(cname)、先行课(prerequisite)和学分(credit)。其中,课程号是主键,课程名是唯一值,先行课参照课程号。
对于建立SC_2表,您可以使用以下的SQL语句:
```
CREATE TABLE SC_2 (
sno INT REFERENCES student_2(sno) ON DELETE CASCADE,
cno INT REFERENCES Course_2(cno) ON UPDATE CASCADE ON DELETE RESTRICT,
grade INT CHECK (grade >= 0 AND grade <= 100),
PRIMARY KEY (sno, cno)
);
```
这个表包含三个列,分别是学号(sno)、课程号(cno)和成绩(grade)。其中,学号参照student_2表的sno并设置了删除级联;课程号参照Course_2表的cno并设置了更新级联和拒绝删除。成绩的范围限制在0~100分之间。
希望这个回答能够解决您的问题。如果您还有其他问题,欢迎继续提问。