SQL命令 “学生”数据库中有 “学生表”、“课程表”和 “成绩表”。 “学生表”中包含学号、姓名

SQL命令
“学生”数据库中有 “学生表”、“课程表”和 “成绩表”。
“学生表”中包含学号、姓名、性别、专业和班级五个字段。
“课程表”中包含有课程编号、课程名和任课教师三个字段,“成绩表”中包含有学号、课程编号和成绩三个字段。 

写出创建学生表的sql语句,其中的字段均为字符型,长度自定,学号为主键,其他字段均可取空值
查询学生表中所有姓刘的学生的信息
查询年龄在18—23岁的全部学生信息
修改成绩表的数据,将成绩不及格的学生的成绩改为60
向学生表添加如下一条记录:
学号 姓名 专业 班级 
 20070506 徐华 电子商务 091
6. 查询出所有选修2号课程的学生的姓名,性别和年龄
7. 修改学生表的结构,添加一字段:年龄,整型
8. 删除学生表中的专业为计算机应用的学生数据
9. 查询成绩不为空的学生信息
10.显示前五条学生信息的记录

1、首先在电脑上打开数据库软件。然后附加有学生表和成绩表的数据库。

2、然后选中数据库,右键选择新建查询。在右边的空白框,输入命令select 学生表.学号,avg(成绩) as 平均分。

3、将学生表和成绩表关联起来。命令为from 学生表 join 成绩表 on 学生表.学号=成绩表.学号。

4、用group by 命令对学生表中的学号进行分组。命令为group by 学生表.学号。

5、用having命令。输出平均分大于80分的条件。

6、然后在表中没有平均分一项。所以要用as命令进行附加。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-09
--SQL命令
--“学生”数据库中有 “学生表”、“课程表”和 “成绩表”。
--“学生表”中包含学号、姓名、性别、专业和班级五个字段。
--“课程表”中包含有课程编号、课程名和任课教师三个字段,“成绩表”中包含有学号、课程编号和成绩三个字段。 
CREATE TABLE 学生表
(学号 CHAR(8) PRIMARY KEY,
姓名 CHAR(10),
性别 CHAR(2),
专业 CHAR(20),
班级 CHAR(10))
GO

CREATE TABLE 课程表
(课程编号 CHAR(3) PRIMARY KEY,
课程名 CHAR(20),
任课教师 CHAR(10))
GO

CREATE TABLE 成绩表
(学号 CHAR(8) REFERENCES 学生表,
课程编号 CHAR(3) REFERENCES 课程表,
成绩 INT,
PRIMARY KEY(学号,课程编号))
GO

--查询学生表中所有姓刘的学生的信息
SELECT * FROM 学生表 WHERE 姓名 LIKE '刘%'

--7. 修改学生表的结构,添加一字段:年龄,整型
ALTER TABLE 学生表 ADD 年龄 INT

--查询年龄在18—23岁的全部学生信息
SELECT * FROM 学生表 WHERE 年龄 BETWEEN 18 AND 23
--注:题出的有问题,学生表中无年龄字段,却让查询年龄在18—23岁的全部学生信息,无法做,所以将后面第7题放在了此题全面做。

--修改成绩表的数据,将成绩不及格的学生的成绩改为60
UPDATE 成绩表 SET 成绩=60 WHERE 成绩<60

--向学生表添加如下一条记录:
--学号 姓名 专业 班级 
-- 20070506 徐华 电子商务 091
INSERT INTO 学生表(学号,姓名,专业,班级) VALUES('20070506','徐华','电子商务','091')

--6. 查询出所有选修2号课程的学生的姓名,性别和年龄
SELECT 姓名,性别,年龄
FROM 学生表
WHERE 学号 IN(SELECT 学号 FROM 成绩表 WHERE 课程编号='2')

--8. 删除学生表中的专业为计算机应用的学生数据
DELETE FROM 学生表 WHERE 专业='计算机应用'

--9. 查询成绩不为空的学生信息
SELECT *
FROM 学生表
WHERE 学号 IN(SELECT 学号 FROM 成绩表 WHERE 成绩 IS NOT NULL)

--10.显示前五条学生信息的记录
SELECT TOP 5 * FROM 学生表本回答被提问者采纳
相似回答