SQL Server 数据查询

news/2024/11/16 21:33:52/

文章目录

  • 前言
  • 首先在SQL Server 2008 中新建一个数据库chaxun.在库中建三个表,结构如下表所示,并且录入数据.
    • 1.
    • 2.
      • (1)在KC表中查询学分低于三分的课程信息,并按课程号升序排列
      • (2)在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列
      • (3)在XS_KC表中查询至少选修了2门课程的学生学号和姓名
      • (4)查询成绩不及格的学生的基本信息
      • (5)分别用子查询和连接查询,查询101号课程不及格的基本信息
      • (6)在XS表中查询住在同一宿舍的学生信息,即其所住宿舍电话相同
      • (7)查询XS表中的所有系名
      • (8)查询有多少名同学选修了课程
      • (9)查询与杨颖同在一个系的同学姓名
      • (10)查询选修了课程的学生的姓名、课程名与成绩
      • (11)修改经管系电话号码为3615555
      • (12)统计每门课程的选课人数和最高分
      • (13)统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列
      • (14)查询有多少名学生没有选课
  • 总结


前言

首先在SQL Server 2008 中新建一个数据库chaxun.在库中建三个表,结构如下表所示,并且录入数据.

1.

在这里插入图片描述
在这里插入图片描述

CREATE DATABASE  chaxun
ON PRIMARY                     
(NAME=chaxun_data,              FILENAME='D:\software\chaxun.mdf',SIZE=10MB,MAXSIZE=UNLIMITED,           FILEGROWTH=10% 
)LOG ON (NAME=chaxun_log,FILENAME='D:\software\chaxun.ldf',SIZE=1MB,MAXSIZE=5MB,FILEGROWTH=1MB)use chaxun create table KC
(
c_ID char(3) primary key,
c_Name char(10) not null,
c_Credit int
)create table XS
(
s_ID char(4) primary key,
s_Name char(6) not null,
s_department char(20) not null,
s_telephoe char(11)
)create table XS_KC
(
s_ID char(4) foreign key references XS(s_ID),
c_ID char(3) foreign key references KC(c_ID),
score int,
primary key(s_ID,c_ID)
)

在这里插入图片描述
KC表数据:

insert into KC values('101','语文',4)
insert into KC values('102','数学',2)
insert into KC values('103','英语',3)
insert into KC values('104','体育',1)

在这里插入图片描述
XS表数据:

insert into XS values('1001','杨颖','信息技术系','2346666')
insert into XS values('1002','王丽','信息技术系','2346666')
insert into XS values('1003','张亮','经管系','2315555')
insert into XS values('1004','刘强','会计系','2361111')

在这里插入图片描述
XS_KC表数据:

insert into XS_KC values('1001','101',89)
insert into XS_KC values('1001','102',97)
insert into XS_KC values('1001','103', 86)
insert into XS_KC values('1002', '101',56)
insert into XS_KC values('1003', '102',55)

在这里插入图片描述

2.

(1)在KC表中查询学分低于三分的课程信息,并按课程号升序排列

select * from KC
where C_Credit<3 order by c_ID ASC

在这里插入图片描述

(2)在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列

select s_ID,AVG(score) 平均分 from XS_KC 
group by s_ID
order by AVG(score) DESC

在这里插入图片描述

(3)在XS_KC表中查询至少选修了2门课程的学生学号和姓名

select  s_Name,XS.s_ID from XS_KC,XS  where XS.s_ID=XS_KC.s_ID
group by XS.s_ID,s_Name having COUNT(XS_KC.c_ID)>=2

在这里插入图片描述

(4)查询成绩不及格的学生的基本信息

方法1

select XS.* from XS,XS_KC
where XS.s_ID=XS_KC.s_ID and score<60

方法2(子查询)

select * from XS where s_ID in (select s_ID from XS_KC where score<60)

在这里插入图片描述

(5)分别用子查询和连接查询,查询101号课程不及格的基本信息

子查询

select * from XS where s_ID in(select distinct s_ID from XS_KC
where XS_KC.c_ID='101' and score <60)

在这里插入图片描述

连接查询

select XS.* from XS join XS_KC on XS.s_ID=XS_KC.s_ID  
where XS_KC.c_ID='101' and score <60

在这里插入图片描述

(6)在XS表中查询住在同一宿舍的学生信息,即其所住宿舍电话相同

select * from XS where s_telephoe in 
(select  s_telephoe from XS group by s_telephoe having COUNT(s_telephoe)>=2)

在这里插入图片描述

(7)查询XS表中的所有系名

select distinct s_department from XS

在这里插入图片描述

(8)查询有多少名同学选修了课程

select COUNT(distinct s_ID ) 已选课人数 from XS_KC

在这里插入图片描述

(9)查询与杨颖同在一个系的同学姓名

方法1

select x.s_Name from XS as x,XS as y
where x.s_department=y.s_department and y.s_Name='杨颖' and x.s_Name<>'杨颖'

在这里插入图片描述
方法2

select s_Name from XS where s_department=
(select s_department from XS where s_Name='杨颖') and s_Name <>'杨颖'

在这里插入图片描述

(10)查询选修了课程的学生的姓名、课程名与成绩

方法1

select s_Name,c_Name,score from XS,KC,XS_KC
where XS.s_ID=XS_KC.s_ID and KC.c_ID=XS_KC.c_ID

在这里插入图片描述
方法2

select s_Name,c_Name,score from XS join XS_KC on XS.s_ID=XS_KC.s_ID
join KC on KC.c_ID=XS_KC.c_ID

在这里插入图片描述

(11)修改经管系电话号码为3615555

update XS set s_telephoe='3615555' where s_department='经管系'

在这里插入图片描述

(12)统计每门课程的选课人数和最高分

select c_ID,COUNT(s_ID) 选课人数,MAX(score) 最高分 from XS_KC group by c_ID

在这里插入图片描述

(13)统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列

select s_ID,COUNT(c_ID) 选课门数,SUM(score) 总成绩 from XS_KC
group by s_ID order by COUNT(c_ID) DESC

在这里插入图片描述

(14)查询有多少名学生没有选课

select COUNT(s_ID) 未选课人数 from XS where s_ID not in 
(select s_ID from XS_KC)

在这里插入图片描述


总结

今天的数据库学习内容就到这里啦,如果对友友们有帮助的话,记得点赞收藏博客,关注后续的数据库学习内容哦~👻👻👻
请添加图片描述


http://www.ppmy.cn/news/53152.html

相关文章

第二届SWCTF部分WP

1、misc &#xff08;1&#xff09;Misc1 下载附件&#xff0c;压缩包里面有两张jpg图片 解压后习惯性的放进kali里面分析一下&#xff0c;没有隐藏文件 放到Stegsolve里分析&#xff0c;因为是两张一样的图片&#xff0c;combiner也没啥发现 分别对两张图片单独分析也没有发…

小家电遇冷,苏泊尔、九阳、小熊电器求变

最近几年&#xff0c;受懒人经济、消费者居家时间变长、“一人食”潮流兴起等多方因素的共同影响&#xff0c;小家电行业迅速崛起&#xff0c;并一度在整体萎靡的家电市场中实现了逆势增长&#xff0c;成为了一颗耀眼的新星。得益于此&#xff0c;小家电行业也迎来了一波“上市…

【PaddleNLP-kie】关键信息抽取2:UIE模型做图片信息提取全流程

文章目录 本文参考UIE理论部分step0、UIEX原始模型使用网页体验本机安装使用环境安装使用docker的环境安装快速开始 step1、UIEX模型微调&#xff08;小样本学习&#xff09;数据标注&#xff08;label_studio&#xff09;导出数据转换微调训练&#xff1a;评估&#xff1a;定制…

mysql新建,更新,删除表语句

1.建表语句 一般最简单的建表语句可包含下面4个部分&#xff0c;create_definition 包含列的定义&#xff0c;索引定义等&#xff0c;table_options 包含一些选项如engine 是innodb还是myISAM等&#xff0c;CHARACTER指定字符集等选项&#xff0c;partition_options 是涉及到表…

minigpt4搭建过程记录,简单体验图文识别乐趣

引言 从3月开始&#xff0c;aigc进入了疯狂的开端&#xff0c;正如4月12日无界 AI直播 在《探索 AIGC 与人类合作的无限可能》中关于梳理的时间线一样&#xff0c;aigc的各种产品如雨后春笋般进入了不可逆的态势&#xff0c;里面有句话很形象&#xff0c;人间一日&#xff0c;…

软件保护器:Themida 3.1.14 Crack

先进的Windows软件保护系统 版本&#xff1a;3.1 版本&#xff1a;3.1.4.0 日期&#xff1a;2022 年 11 月 10 日 概述 在创建应用程序时&#xff0c;Compiler 会将应用程序源代码编译成多个由机器语言代码构成的目标文件。然后将目标文件链接在一起以创建最终的可执行文件。 与…

【笔试】备战秋招,每日一题|20230415携程研发岗笔试

前言 最近碰到一个专门制作大厂真题模拟题的网站 codefun2000&#xff0c;最近一直在上面刷题。今天来进行2023.04.15携程研发岗笔试&#xff0c;整理了一下自己的思路和代码。 比赛地址 A. 找到you 题意&#xff1a; 给定一个仅包含小写字母的 n n n\times n nn 的矩阵…

Linux内核进程管理与调度:策略优化与实践分析

Linux内核进程管理与调度 一、前言二、进程管理和多进程调度2.1 进程标识符和控制块2.2 进程状态和转换2.3 进程间通信 三、单处理器下的Linux进程调度3.1 Linux进程调度器3.2 时间片轮转调度算法3.3 最短剩余时间优先调度算法3.4 其他调度算法的不足 四、多处理器下的Linux进程…