学生信息数据库有3个表,如下所示(表的第一行表示:字段名和字段的数据类型)。 student 学号(char (8)) 20180101 20180102 20180203 20180207 姓名(varchar (20)) 李宇凯 张玥玥 宋小丽 李亚菲 性别(char (2)) 男 女 女 女 出生日期(date) 2000-6-1 1999-11-6 2000-1-9 2000-6-23 院系(varchar (20)) 信息系 计算机系 电子系 电子系 course 课程号(char (4)) 1001 1002 1003 课程名称(varchar (30)) 数据库技术与应用 Java 程序设计 专业英语 学分(int) 4 2 2 SC 学号(char (8)) 20180101 20180102 20180102 20180203 20180203 20180207 课程号(char (4)) 1001 1001 1002 1001 1003 1003 成绩(real) 90 85 76 87 S6 90 (2)以下 T - SOL 语句创建存储过程stproc2,查询平均成绩小于80分的学生的学号、平均成绩,结果集标题为学号、平均成绩。完善该语句。 CREATE PROCEDURE stproc2 AS BEGIN SELECT ____ FROM sc GROUP BY 学号 ____ END
时间: 2024-02-13 15:03:27 浏览: 125
以下是完整的T-SQL语句创建存储过程stproc2,查询平均成绩小于80分的学生的学号、平均成绩,结果集标题为学号、平均成绩。
```sql
CREATE PROCEDURE stproc2
AS
BEGIN
SELECT SC.学号, AVG(SC.成绩) AS 平均成绩
FROM SC
GROUP BY SC.学号
HAVING AVG(SC.成绩) < 80
END
```
这个存储过程使用`AVG`函数计算每个学生的平均成绩,并将结果集的标题设置为学号、平均成绩。在查询中使用`GROUP BY`子句将结果按学号分组,并使用`HAVING`子句筛选平均成绩小于80分的学生。
相关问题
学生信息数据库有3个表,如下所示(表的第一行表示:字段名和字段的数据类型)。 student 学号(char (8)) 20180101 20180102 20180203 20180207 姓名(varchar (20)) 李宇凯 张玥玥 宋小丽 李亚菲 性别(char (2)) 男 女 女 女 出生日期(date) 2000-6-1 1999-11-6 2000-1-9 2000-6-23 院系(varchar (20)) 信息系 计算机系 电子系 电子系 course 课程号(char (4)) 1001 1002 1003 课程名称(varchar (30)) 数据库技术与应用 Java 程序设计 专业英语 学分(int) 4 2 2 SC 学号(char (8)) 20180101 20180102 20180102 20180203 20180203 20180207 课程号(char (4)) 1001 1001 1002 1001 1003 1003 成绩(real) 90 85 76 87 S6 90 (1) 写出创建存储过程stproc1的 T - SQL 命令,使之可以查询所有学生的学号、姓名和年龄。要求查询结果集的标题为学号、姓名、年龄。
以下是创建存储过程stproc1的T-SQL命令:
```sql
CREATE PROCEDURE stproc1
AS
BEGIN
SELECT student.学号, student.姓名, DATEDIFF(year, student.出生日期, GETDATE()) AS 年龄
FROM student
END
```
这个存储过程通过使用`DATEDIFF`函数来计算每个学生的年龄,并将结果集的标题设置为学号、姓名、年龄。在查询中使用`GETDATE`函数获取当前日期,从而计算年龄。
学生数据库有3个表,其数据结构如下: student 字段名 学号 姓名 性别 出生日期 院系 数据类型 char (8) varchar (20) char (2) date varchar (20) 说明 主键 非空 无 无 无 course 字段名 课程号 课程名称 学分 数据类型 char (4) varchar (30) int 说明 主键 非空 无 sc 字段名 学号 课程号 成绩 数据类型 char (8) char (4) real 说明 外键 外键 无 其中, sc 表的学号与课程号为主键。 (1) 以下创建数据表 course 的 T - SQL 语句中,有一个错误行,请写出错误的行号并更正(如行号表示为3#)。 1#: CREATE DATABASE course 2#:( 3#:课程号 char (4) PRIMARY KEY , 4#:课程名称 varchar (30) NOT NULL , 5#:学分 int 6#:) (2)写出创建 sc 表的 T - SQL 语句。 (3)写出从 student 表中删除院系字段的 T - SQL 语句。
(1) 正确的创建数据表 course 的 T-SQL语句应该是:
CREATE TABLE course (
课程号 char(4) PRIMARY KEY,
课程名称 varchar(30) NOT NULL,
学分 int
);
错误行为第2行,应该删除括号。
(2) 创建 sc 表的 T-SQL 语句如下:
CREATE TABLE sc (
学号 char(8),
课程号 char(4),
成绩 real,
PRIMARY KEY (学号, 课程号),
FOREIGN KEY (学号) REFERENCES student(学号),
FOREIGN KEY (课程号) REFERENCES course(课程号)
);
(3) 从 student 表中删除院系字段的 T-SQL 语句如下:
ALTER TABLE student DROP COLUMN 院系;
阅读全文