秋月白xixi 2023-11-22 16:21 采纳率: 58.3%
浏览 28
已结题

这些sql语句应该怎么写啊?


1SQL简单查询
(1)对“课程”表进行查询,显示课程全部信息
SELECT______FROM 课程
(2)列出前5个教师的姓名和工龄。
SELECT _____ 姓名,Year(Date())-Year(工作时间) AS 工龄 FROM 教师 
(3)求出所有教师的平均年龄。
SELECT ______  AS平均年龄 FROM 教师
2.带条件查询
(1)列出成绩在80分以上的学生记录。
SELECT * FROM 选课成绩 WHERE _______
(2)求出福建住址的学生平均年龄。
SELECT AVG(年龄) AS 平均年龄 FROM 学生 WHERE______
(3)列出北京海淀区和上海住址的学生名单。
SELECT 学生编号,姓名,住址 FROM 学生 WHERE 住址 IN_____
(4)列出成绩在80分到100分之间的学生名单。
SELECT 学生编号,成绩 FROM 选课成绩 WHERE 成绩 BETWEEN ______
(5)列出所有的姓“张”的学生名单。
SELECT 学生编号,姓名 FROM 学生 WHERE 姓名 LIKE  ___________
(6)列出所有成绩为空值的学生编号和课程编号。
SELECT 学生编号,课程编号 FROM 选课成绩 WHERE 成绩______
3.排序
(1)按性别顺序列出学生编号、姓名、性别、年龄及住址,性别相同的再按年龄由大到小排序。
SELECT 学生编号,姓名,性别,年龄,住址 FROM 学生 ORDER BY  ________
(2)将学生成绩降序排序,只显示前30%的记录。
SELECT_______FROM 选课成绩 ORDER BY 成绩        
4.分组查询
(1)分别统计“学生”表中男女生人数。
SELECT 性别,COUNT(*) AS 人数 FROM 学生               
(2)按性别统计“教师”表中政治面目为非党员的人数。
SELECT 性别,COUNT(*) AS 人数 FROM 教师 WHERE______ GROUP BY 性别
(3)列出平均成绩大于75分的课程编号,并按平均成绩升序排序。
SELECT 课程编号,AVG(成绩) AS 平均成绩
FROM 选课成绩
GROUP BY 课程编号 HAVING   ______
ORDER BY AVG(成绩) ASC4)统计每个学生选修课程的门数(超过1门的学生才统计),要求输出学生编号和选修门数,查询结果按选课门数降序排列,若门数相同,按学生编号升序排列。
SELECT 学生编号,COUNT(课程编号) AS 选课门数
FROM 选课成绩
GROUP BY 学生编号 HAVING______
ORDER BY 2 DESC,1
5.嵌套查询
(1)列出选修“高等数学”的所有学生的学生编号。
SELECT 学生编号 FROM 选课成绩 WHERE 课程编号=
(SELECT______ FROM 课程 WHERE 课程名称="高等数学")
(2)列出选修“101”课的学生中成绩比选修“105”的最低成绩高的学生编号和成绩。
SELECT 学生编号,成绩 FROM 选课成绩
WHERE 课程编号="101"And 成绩>Any
 (SELECT______ FROM 选课成绩 WHERE 课程编号="105")
(3)列出选修“101”课的学生,这些学生的成绩比选修“105”课的最高成绩还要高的学生编号和成绩。
SELECT 学生编号,成绩 FROM 选课成绩
WHERE 课程编号="101" And 成绩>All 
(SELECT ________FROM 选课成绩 WHERE 课程编号="105")
(4)列出选修“高等数学”或“英语”的所有学生的学生编号。
SELECT 学生编号 FROM 选课成绩
WHERE 课程编号 IN
(SELECT 课程编号 FROM 课程 WHERE  __________         )
6.联接查询
(1)输出所有学生的成绩单,要求给出学生编号、姓名、课程编号、课程名称和成绩。
SELECT a.学生编号,姓名,b.课程编号,课程名称,成绩
FROM 学生 a,选课成绩 b,课程 c
WHERE a.学生编号=b.学生编号 And _________
(2)列出团员学生的选课情况,要求列出学生编号、姓名、课程编号、课程名称和成绩。
SELECT a.学生编号,a.姓名,b.课程编号,课程名称,成绩
FROM 学生 a,选课成绩 b,课程 c
WHERE a.学生编号=b.学生编号 And________-                           
(3)求选修“101”课程的女生的平均年龄。
SELECT AVG(年龄) AS 平均年龄 FROM 学生,选课成绩
WHERE 学生.学生编号=选课成绩.学生编号 AND ______            
7.联合查询
对“教学管理”数据库,列出选修“101”或“102”课程的所有学生的学生编号和姓名,要求建立联合查询。
SELECT 学生.学生编号,学生.姓名 FROM 选课成绩,学生
WHERE 课程编号="101" AND 选课成绩.学生编号=学生.学生编号
UNION SELECT 学生.学生编号,学生.姓名 FROM 选课成绩,学生
WHERE 课程编号="102" AND ___________________________
案例九:SQL数据定义
1.建立表结构
要求:在“教学管理”数据库中建立“教师情况”表结构:包括编号,姓名,性别,基本工资,出生年月,研究方向字段,其中出生年月允许为空值。
SQL语句如下:
CREATE TABLE 教师情况(编号 Char(7),姓名 Char(8),性别 Char(2),
基本工资 Money,出生年月 Datetime Null,研究方向 Text(50))
2.修改表结构
要求:对“课程”表的结构进行修改,完善SQL语句。
(1)为“课程”表增加一个整数类型的“学时”字段。
ALTER TABLE 课程 _____ 学时 Smallint2)删除“课程”表中的“学时”字段。
ALTER TABLE 课程_______
3.删除表
要求:在“教学管理”数据库中删除已建立的“教师情况”表,完善SQL语句。
DROP ______  教师情况
4.插入记录
要求:向“学生”表中添加记录,学生编号为“1101”,姓名为“张会”,入校日期为201291日,完善SQL语句。
INSERT INTO 学生(学生编号,姓名,入校日期) 
VALUES(                              )
5.更新记录
要求:完善对“教学管理”数据库进行如下操作的语句。
(1)将“学生”表中“叶飞”同学的住址改为“广东”。
UPDATE 学生 SET 住址="广东" WHERE  ____
(2)将所有团员学生的成绩加2分。完善SQL语句。
UPDATE 选课成绩 SET  _____
WHERE 学生编号 IN (SELECT 学生编号 FROM 学生 WHERE 团员否)
6.删除记录
要求:完善对“教学管理”数据库进行如下操作的语句。
(1)删除“学生”表所有男生的记录。
DELETE FROM 学生 WHERE  _____
(2)删除“选课成绩”表中成绩小于60的记录。
DELETE_____。

  • 写回答

16条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-11-22 16:38
    关注
    1SQL简单查询
    (1)对“课程”表进行查询,显示课程全部信息
    SELECT * FROM 课程
    (2)列出前5个教师的姓名和工龄。
    SELECT 姓名, Year(Date())-Year(工作时间) AS 工龄 FROM 教师 LIMIT 53)求出所有教师的平均年龄。
    SELECT AVG(年龄) AS 平均年龄 FROM 教师
    
    2.带条件查询
    (1)列出成绩在80分以上的学生记录。
    SELECT * FROM 选课成绩 WHERE 成绩 > 802)求出福建住址的学生平均年龄。
    SELECT AVG(年龄) AS 平均年龄 FROM 学生 WHERE 住址 = "福建"
    (3)列出北京海淀区和上海住址的学生名单。
    SELECT 学生编号, 姓名, 住址 FROM 学生 WHERE 住址 IN ("北京海淀区", "上海")
    (4)列出成绩在80分到100分之间的学生名单。
    SELECT 学生编号, 成绩 FROM 选课成绩 WHERE 成绩 BETWEEN 80 AND 1005)列出所有的姓“张”的学生名单。
    SELECT 学生编号, 姓名 FROM 学生 WHERE 姓名 LIKE '张%'6)列出所有成绩为空值的学生编号和课程编号。
    SELECT 学生编号, 课程编号 FROM 选课成绩 WHERE 成绩 IS NULL
    
    3.排序
    (1)按性别顺序列出学生编号、姓名、性别、年龄及住址,性别相同的再按年龄由大到小排序。
    SELECT 学生编号, 姓名, 性别, 年龄, 住址 FROM 学生 ORDER BY 性别, 年龄 DESC2)将学生成绩降序排序,只显示前30%的记录。
    SELECT * FROM 选课成绩 ORDER BY 成绩 DESC LIMIT (SELECT ROUND(COUNT(*) * 0.3) FROM 选课成绩)
    
    4.分组查询
    (1)分别统计“学生”表中男女生人数。
    SELECT 性别, COUNT(*) AS 人数 FROM 学生 GROUP BY 性别
    (2)按性别统计“教师”表中政治面目为非党员的人数。
    SELECT 性别, COUNT(*) AS 人数 FROM 教师 WHERE 政治面目 != '党员' GROUP BY 性别
    (3)列出平均成绩大于75分的课程编号,并按平均成绩升序排序。
    SELECT 课程编号, AVG(成绩) AS 平均成绩 FROM 选课成绩 GROUP BY 课程编号 HAVING 平均成绩 > 75 ORDER BY 平均成绩 ASC4)统计每个学生选修课程的门数(超过1门的学生才统计),要求输出学生编号和选修门数,查询结果按选课门数降序排列,若门数相同,按学生编号升序排列。
    SELECT 学生编号, COUNT(课程编号) AS 选课门数 FROM 选课成绩 GROUP BY 学生编号 HAVING 选课门数 > 1 ORDER BY 选课门数 DESC, 学生编号 ASC
    
    5.嵌套查询
    (1)列出选修“高等数学”的所有学生的学生编号。
    SELECT 学生编号 FROM 选课成绩 WHERE 课程编号 = (SELECT 课程编号 FROM 课程 WHERE 课程名称 = "高等数学")
    (2)列出选修“101”课的学生中成绩比选修“105”的最低成绩高的学生编号和成绩。
    SELECT 学生编号, 成绩 FROM 选课成绩 WHERE 课程编号 = "101" AND 成绩 > (SELECT MIN(成绩) FROM 选课成绩 WHERE 课程编号 = "105")
    (3)列出选修“101”课的学生,这些学生的成绩比选修“105”课的最高成绩还要高的学生编号和成绩。
    SELECT 学生编号, 成绩 FROM 选课成绩 WHERE 课程编号 = "101" AND 成绩 > (SELECT MAX(成绩) FROM 选课成绩 WHERE 课程编号 = "105")
    (4)列出选修“高等数学”或“英语”的所有学生的学生编号。
    SELECT 学生编号 FROM 选课成绩 WHERE 课程编号 IN (SELECT 课程编号 FROM 课程 WHERE 课程名称 IN ("高等数学", "英语"))
    
    6.联接查询
    (1)输出所有学生的成绩单,要求给出学生编号、姓名、课程编号、课程名称和成绩。
    SELECT a.学生编号, a.姓名, b.课程编号, c.课程名称, b.成绩
    FROM 学生 a
    INNER JOIN 选课成绩 b ON a.学生编号 = b.学生编号
    INNER JOIN 课程 c ON b.课程编号 = c.课程编号
    (2)列出团员学生的选课情况,要求列出学生编号、姓名、课程编号、课程名称和成绩。
    SELECT a.学生编号, a.姓名, b.课程编号, c.课程名称, b.成绩
    FROM 学生 a
    INNER JOIN 选课成绩 b ON a.学生编号 = b.学生编号
    INNER JOIN 课程 c ON b.课程编号 = c.课程编号
    WHERE a.团员否 = '是'3)求选修“101”课程的女生的平均年龄。
    SELECT AVG(a.年龄) AS 平均年龄
    FROM 学生 a
    INNER JOIN 选课成绩 b ON a.学生编号 = b.学生编号
    WHERE a.性别 = '女' AND b.课程编号 = '101'
    
    7.联合查询
    对“教学管理”数据库,列出选修“101”或“102”课程的所有学生的学生编号和姓名,要求建立联合查询。
    SELECT 学生.学生编号, 学生.姓名 
    FROM 学生
    INNER JOIN 选课成绩 ON 学生.学生编号 = 选课成绩.学生编号
    WHERE 选课成绩.课程编号 = '101'
    UNION
    SELECT 学生.学生编号, 学生.姓名 
    FROM 学生
    INNER JOIN 选课成绩 ON 学生.学生编号 = 选课成绩.学生编号
    WHERE 选课成绩.课程编号 = '102'
    
    案例九:SQL数据定义
    1.建立表结构
    要求:在“教学管理”数据库中建立“教师情况”表结构:包括编号,姓名,性别,基本工资,出生年月,研究方向字段,其中出生年月允许为空值。
    SQL语句如下:
    CREATE TABLE 教师情况(编号 Char(7),姓名 Char(8),性别 Char(2), 基本工资 Money,出生年月 Datetime Null,研究方向 Text(50))
    
    2.修改表结构
    要求:对“课程”表的结构进行修改,完善SQL语句。
    (1)为“课程”表增加一个整数类型的“学时”字段。
    ALTER TABLE 课程 ADD 学时 Smallint2)删除“课程”表中的“学时”字段。
    ALTER TABLE 课程 DROP COLUMN 学时
    
    3.删除表
    要求:在“教学管理”数据库中删除已建立的“教师情况”表,完善SQL语句。
    DROP TABLE 教师情况
    
    4.插入记录
    要求:向“学生”表中添加记录,学生编号为“1101”,姓名为“张会”,入校日期为201291日,完善SQL语句。
    INSERT INTO 学生(学生编号,姓名,入校日期) 
    VALUES('1101','张会','2012-09-01')
    
    5.更新记录
    要求:完善对“教学管理”数据库进行如下操作的语句。
    (1)将“学生”表中“叶飞”同学的住址改为“广东”。
    UPDATE 学生 SET 住址 = '广东' WHERE 姓名 = '叶飞'2)将所有团员学生的成绩加2分。完善SQL语句。
    UPDATE 选课成绩 SET 成绩 = 成绩 + 2 WHERE 学生编号 IN (SELECT 学生编号 FROM 学生 WHERE 团员否='是')
    
    6.删除记录
    要求:完善对“教学管理”数据库进行如下操作的语句。
    (1)删除“学生”表所有男生的记录。
    DELETE FROM 学生 WHERE 性别 = '男'2)删除“选课成绩”表中成绩小于60的记录。
    DELETE FROM 选课成绩 WHERE 成绩 < 60
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(15条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月22日

悬赏问题

  • ¥15 esp32驱动GC9A01循环播放视频
  • ¥15 惠普360g9的最新bios
  • ¥15 配置hadoop时start-all.sh老是启动失败
  • ¥30 这个功能用什么软件发合适?
  • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题