在视图中view1中增加“学分Ccredit”属性列的sql查询语句是什么
时间: 2024-02-09 08:09:53 浏览: 29
假设你要在名为 `view1` 的视图中增加一个名为 `Ccredit` 的属性列,那么可以使用以下 SQL 查询语句:
```
ALTER VIEW view1 ADD Ccredit int;
```
这将向 `view1` 视图中添加一个名为 `Ccredit` 的整数类型属性列。如果你需要修改属性列的类型或名称,可以使用 `ALTER VIEW` 命令的其他选项。
相关问题
写出创建满足下列要求的视图 (1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。 (2)查询学生的学号、姓名、选修的课程名和考试成绩。 (3)统计每个学生的选课门数,列出学生的学号和选课门数。 (4)统计每个学生的修课总学分,列出学生的学号和总学分(说明,考试成绩大于等于60才可获得此门课程的学分)。 2.修改第1题(4)定义的视图,使其查询每个学生的学号和总的选课门数。 3.写出实现下列操作的 SQL 语句,执行这些语句,并在SSMS工具中观察语句的执行结果。 (1)在Student表的Sde
pt列添加一个默认值为1的约束。(2)在Course表的Cname列中插入一条记录,值为'计算机网络',并返回插入的记录的主键值。 (3)删除选修了编号为001的课程的学生的选课记录。 (4)将选修了编号为002的课程,且考试成绩为70分的学生的成绩修改为80分。
答:
创建视图:
CREATE VIEW StudentCourseInfo AS
SELECT s.Sno, s.Sname, s.Sdept, sc.Cno, c.Cname, c.Ccredit
FROM Student s, SC sc, Course c
WHERE s.Sno=sc.Sno AND sc.Cno=c.Cno;
CREATE VIEW StudentScoreInfo AS
SELECT s.Sno, s.Sname, c.Cname, sc.Score
FROM Student s, SC sc, Course c
WHERE s.Sno=sc.Sno AND sc.Cno=c.Cno;
CREATE VIEW StudentCourseNum AS
SELECT Sno, COUNT(*) AS CourseNum
FROM SC
GROUP BY Sno;
CREATE VIEW StudentTotalCredit AS
SELECT Sno, SUM(c.Ccredit) AS TotalCredit
FROM Student s, SC sc, Course c
WHERE s.Sno=sc.Sno AND sc.Cno=c.Cno AND sc.Score>=60
GROUP BY s.Sno;
修改视图:
ALTER VIEW StudentTotalCredit
AS
SELECT Sno, COUNT(*) AS TotalCourseNum
FROM SC
GROUP BY Sno;
SQL语句:
(1) ALTER TABLE Student ADD CONSTRAINT DF_Sdept DEFAULT '1' FOR Sdept;
(2) INSERT INTO Course(Cname) VALUES ('计算机网络'); SELECT @@IDENTITY AS new_Cno;
(3) DELETE FROM SC WHERE Cno='001';
(4) UPDATE SC SET Score=80 WHERE Cno='002' AND Score=70;
写出SQL语句,查询“95033”班学生所选所有课程的平均分,包括Cno、Cname、avgscore,avgscore表示平均成绩,将运行无误后的SQL语句写入答题文件夹中的MYSQL1.TXT保存。
假设我们有以下三个表格:
学生表格(Student):
| Sno | Sname | Ssex | Sage | Sdept |
|-----|--------|------|------|--------|
| 101 | 张三 | 男 | 18 | 计算机 |
| 102 | 李四 | 女 | 19 | 通信 |
| 103 | 王五 | 男 | 18 | 自动化 |
| 104 | 赵六 | 男 | 20 | 计算机 |
| 105 | 钱七 | 女 | 19 | 通信 |
课程表格(Course):
| Cno | Cname | Tno | Ctime | Ccredit |
|-----|---------|-----|-------|---------|
| 001 | 数据库 | 101 | 32 | 4 |
| 002 | 计算机 | 102 | 48 | 3 |
| 003 | 通信 | 103 | 32 | 3 |
| 004 | 自动化 | 104 | 64 | 4 |
成绩表格(Score):
| Sno | Cno | Score |
|-----|-----|-------|
| 101 | 001 | 90 |
| 101 | 002 | 80 |
| 101 | 003 | 85 |
| 102 | 002 | 75 |
| 103 | 002 | 88 |
| 104 | 001 | 92 |
| 104 | 003 | 82 |
| 105 | 003 | 85 |
| 105 | 004 | 88 |
要查询"95033"班学生所选所有课程的平均分,可以使用以下SQL语句:
```
SELECT Course.Cno, Course.Cname, AVG(Score.Score) AS avgscore
FROM Student, Course, Score
WHERE Student.Sno = Score.Sno AND Course.Cno = Score.Cno AND Student.Sdept = '95033'
GROUP BY Course.Cno, Course.Cname;
```
执行以上语句将得到以下结果:
| Cno | Cname | avgscore |
|-----|---------|----------|
| 001 | 数据库 | 90.0000 |
| 003 | 通信 | 83.5000 |
注意:以上语句中的第4行WHERE条件是用来筛选"95033"班学生的,如果需要查询其他班级的话,需要修改该条件。