当前位置: 首页 > web >正文

123123

题目1 SQL查询及结果

(1)求全体学生的学号、姓名和出生年份

SQL语句:

SELECT sno, sname, YEAR(sbirthday) AS 出生年份

FROM Student;

sno

sname

出生年份

96001

张三

2002

96002

李四

2003

96003

王五

2001

96004

赵六

2004

96005

孙七

2000

(2)求每个系的学生总人数并按降序排列

题目1 SQL查询及结果
(1)求全体学生的学号、姓名和出生年份
SQL语句:
SELECT sno, sname, YEAR(sbirthday) AS 出生年份 
FROM Student;
sno	sname	出生年份
96001	张三	2002
96002	李四	2003
96003	王五	2001
96004	赵六	2004
96005	孙七	2000
(2)求每个系的学生总人数并按降序排列
SQL语句:
SELECT sdept, COUNT(*) AS 学生人数 
FROM Student 
GROUP BY sdept 
ORDER BY 学生人数 DESC;
sdept	学生人数
CS	2
MA	2
IS	1
(3)求选修了课程号为002或003的学生的学号、课程名和成绩
SQL语句:
SELECT SC.sno, Course.cname, SC.grade
FROM SC
JOIN Course ON SC.cno = Course.cno
WHERE SC.cno IN ('002', '003');
sno	cname	grade
96001	数据结构	85
96002	大学物理	88
96002	数据结构	92
96004	大学物理	70
96005	数据结构	60
(4)检索选修某课程的学生人数多于3人的教师姓名
SQL语句:
SELECT DISTINCT Teacher.tname
FROM Course
JOIN Teacher ON Course.tno = Teacher.tno
JOIN SC ON Course.cno = SC.cno
GROUP BY Course.cno, Teacher.tname
HAVING COUNT(SC.sno) > 3;
tname
李正科
(5)查询所有未选课程的学生姓名和所在系
SQL语句:
SELECT Student.sname, Student.sdept
FROM Student
WHERE NOT EXISTS (SELECT 1 FROM SC WHERE SC.sno = Student.sno
);
sname	sdept
王明	CS
(6)求每个同学的课程成绩的最高分,查询结果项包括:学生姓名、课程号及最高分
SQL语句:
SELECT S.sname, SC.cno, MAX(SC.grade) AS 最高分
FROM Student S
JOIN SC ON S.sno = SC.sno
GROUP BY S.sname, SC.cno;
sname	cno	最高分
张三	001	90
张三	003	85
李四	002	88
李四	003	92
王五	001	75
王五	004	80
赵六	002	70
孙七	003	60
(7)求所有讲授数据结构课程的教师姓名
SQL语句:
SELECT DISTINCT T.tname
FROM Course C
JOIN Teacher T ON C.tno = T.tno
WHERE C.cname = '数据结构';
tname
李正科
(8)查询所有选修了李正科老师的课程的学生信息
SQL语句:
SELECT DISTINCT S.*
FROM Student S
JOIN SC ON S.sno = SC.sno
JOIN Course C ON SC.cno = C.cno
JOIN Teacher T ON C.tno = T.tno
WHERE T.tname = '李正科';
sno	sname	ssex	sdept	sage	sbirthday
96001	张三	男	CS	20	2002-01-01
96002	李四	女	CS	19	2003-02-02
96005	孙七	男	IS	22	2000-05-05
(9)新建一个关系表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。将表Student中在计算机系'CS'的学生数据插入到表S1中。
SQL语句:
CREATE TABLE S1 (SNO   VARCHAR(20),SNAME VARCHAR(50),SD    VARCHAR(20),SA    INT
);
INSERT INTO S1(SNO, SNAME, SD, SA)
SELECT sno, sname, sdept, sage
FROM Student
WHERE sdept = 'CS';
SNO	SNAME	SD	SA
96001	张三	CS	20
96002	李四	CS	19
(10)建立计算机系的学生的视图STUDENT_CS
SQL语句:
CREATE VIEW STUDENT_CS AS
SELECT *
FROM Student
WHERE sdept = 'CS';
sno	sname	ssex	sdept	sage	sbirthday
96001	张三	男	CS	20	2002-01-01
96002	李四	女	CS	19	2003-02-02

sdept

学生人数

CS

2

MA

2

IS

1

(3)求选修了课程号为002或003的学生的学号、课程名和成绩

SQL语句:

SELECT SC.sno, Course.cname, SC.grade

FROM SC

JOIN Course ON SC.cno = Course.cno

WHERE SC.cno IN ('002', '003');

sno

cname

grade

96001

数据结构

85

96002

大学物理

88

96002

数据结构

92

96004

大学物理

70

96005

数据结构

60

(4)检索选修某课程的学生人数多于3人的教师姓名

SQL语句:

SELECT DISTINCT Teacher.tname

FROM Course

JOIN Teacher ON Course.tno = Teacher.tno

JOIN SC ON Course.cno = SC.cno

GROUP BY Course.cno, Teacher.tname

HAVING COUNT(SC.sno) > 3;

tname

李正科

(5)查询所有未选课程的学生姓名和所在系

SQL语句:

SELECT Student.sname, Student.sdept

FROM Student

WHERE NOT EXISTS (

    SELECT 1 FROM SC

    WHERE SC.sno = Student.sno

);

sname

sdept

王明

CS

(6)求每个同学的课程成绩的最高分,查询结果项包括:学生姓名、课程号及最高分

SQL语句:

SELECT S.sname, SC.cno, MAX(SC.grade) AS 最高分

FROM Student S

JOIN SC ON S.sno = SC.sno

GROUP BY S.sname, SC.cno;

sname

cno

最高分

张三

001

90

张三

003

85

李四

002

88

李四

003

92

王五

001

75

王五

004

80

赵六

002

70

孙七

003

60

(7)求所有讲授数据结构课程的教师姓名

SQL语句:

SELECT DISTINCT T.tname

FROM Course C

JOIN Teacher T ON C.tno = T.tno

WHERE C.cname = '数据结构';

tname

李正科

(8)查询所有选修了李正科老师的课程的学生信息

SQL语句:

SELECT DISTINCT S.*

FROM Student S

JOIN SC ON S.sno = SC.sno

JOIN Course C ON SC.cno = C.cno

JOIN Teacher T ON C.tno = T.tno

WHERE T.tname = '李正科';

sno

sname

ssex

sdept

sage

sbirthday

96001

张三

CS

20

2002-01-01

96002

李四

CS

19

2003-02-02

96005

孙七

IS

22

2000-05-05

(9)新建一个关系表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。将表Student中在计算机系'CS'的学生数据插入到表S1中。

SQL语句:

CREATE TABLE S1 (

    SNO   VARCHAR(20),

    SNAME VARCHAR(50),

    SD    VARCHAR(20),

    SA    INT

);

INSERT INTO S1(SNO, SNAME, SD, SA)

SELECT sno, sname, sdept, sage

FROM Student

WHERE sdept = 'CS';

SNO

SNAME

SD

SA

96001

张三

CS

20

96002

李四

CS

19

(10)建立计算机系的学生的视图STUDENT_CS

SQL语句:

CREATE VIEW STUDENT_CS AS

SELECT *

FROM Student

WHERE sdept = 'CS';

sno

sname

ssex

sdept

sage

sbirthday

96001

张三

CS

20

2002-01-01

96002

李四

CS

19

2003-02-02

http://www.xdnf.cn/news/13394.html

相关文章:

  • 【Java】动态加载数据库驱动:灵活连接
  • IMX6ULL--EPIT 定时器理论
  • 打卡第41天:训练和测试的规范写法
  • C/C++八股文
  • 面试题 - 日志(Java)
  • 网络爬虫学习心得
  • 智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
  • 二维数组判断空的情况
  • uniapp自定义导航栏,采用粘性定位
  • STM32 PID控制
  • python打卡训练营打卡记录day50
  • 林清轩以研发为核,用专利技术筑就高端国货护肤壁垒
  • 函数02 day11
  • AI赋能农业
  • 第十六章 I2C
  • 【PhysUnits】17.6 Unit基础结构(unit.rs)
  • <component :is=““>
  • CentOS7下的ZooKeeper部署
  • 55. Jump Game
  • Redis持久化策略介绍,以及如何选择?
  • 第二十四章 通用同步异步收发器(USART)
  • java异步编程难题拆解
  • Java 中 switch-case 语句的执行逻辑与避坑指南
  • Java判断规则工具类
  • 工作日记总结-transaction is aborted, commands ignored until end of transaction block
  • [软件测试]:什么是自动化测试?selenium+webdriver-manager的安装,实现你的第一个脚本
  • Kotlin基础语法二
  • 大数据学习(136)-数据埋点
  • 玄机 日志分析-Tomcat日志分析 WriteUp
  • G-Star公益行 | 公益组织入门开源技术,六月北京点燃改变的星火