实验六 使用T-SQL语句查询数据

一.实验目的:

熟练掌握使用SELECT语句进行数据查询。

二.实验内容:(所有题写到实验报告中)

1.对数据库stuinfo使用T-SQL命令进行如下操作:

  1.  查询student表中的学号、姓名和年龄并为列设置别名,结果按学号升序排。
    
  2.  查询班级(要求不重复)。
    
  3.  查询姓“王”的学生信息。
    
  4.  查询成绩在80-100之间的学号、课程号及成绩,结果先按课程号升序排,课程号一样的再按成绩降序排。
    
  5.  查询所有缺考的学生的学号及课程号。
    
  6.  查询 ‘3-105’课的选课人数、最高分、最低分和平均分。
    
  7.  查询每位同学的平均成绩,包括学号和平均成绩两列,结果按学号升序排。
    
  8.  查询各班各门课的平均成绩,包括班号、课程号和平均成绩三列,结果先按班升序排,班一样的再按课程号升序排。
    
  9.  查询score表中至少有5名学生选修的课程号及平均分。
    
  10. 查询其平均分高于80的学生的学号,姓名和平均分。

  11. 查询“95031”班所选课程的平均分,包括课程名和平均分。

  12. 查询所有教师的任课情况,包括教师姓名和课程名两列,如果某位教师没有任课则课程名列显示NULL。

  13. 查询其最低分大于70,最高分小于90的学生的学号、所选课程号及其分数。

  14. 查询成绩高于所选课平均分的学生学号、姓名、课程号和成绩。

  15. 查询每门课最高分的课程名、学生姓名和成绩。

  16. 查询选修其课程的学生人数多于5人的教师姓名。

  17. 查询没选“张旭”教师课的学生成绩,并按成绩递增排列。

  18. 查询没有任课的教师的姓名。

  19. 查询没有选修"6-166"课程的学生的学号和姓名。

  20. 查询出所有男生信息放入NS表中。

  21. 删除没人选的课程。

  22. 将“95031”班学生的成绩全部减去10分。

\2. 对订单管理库ordermanagement使用T-SQL命令进行下列查询。

ordermanagement数据库中有三个表,其结构如下:(加下划线的为主键)

客户表customer(客户号,客户名,地址,电话)

订单表order_list(订单号,客户号,订购日期)

订单明细表Order_detail(订单号,器件号,器件名,单价,数量)

使用SELECT语句完成下列查询:

  1. 查询2001年的所有订单信息(订单号,客户号,订购日期)。

  2. 查询订单明细中有哪些器件(即查询不重复的器件号和器件名)。

  3. 查询客户名为“三益贸易公司”的订购单明细(订单号、器件号、器件名、单价和数量),

查询结果先按“订单号”升序排,同一订单的再按“单价”降序排。

  1. 查询目前没有订单的客户信息。

  2. 查询客户名中有“科技”字样的客户信息。

  3. 查询每笔订单的订单号和总金额,查询结果按订单号升序排,查询结果存入表ZJE中。

  4. 查询订单数量超过5笔的客户号及订单数量,查询结果按订单数量降序排。

  5. 查询每种器件中单价最低的订单明细(订单号、器件号、器件名、单价和数量)。

  6. 对表order_detail建立查询,把“订单号”的尾部字母相同且“器件号”相同的订单合并

成一张订单,新的“订单号”取原来订单号的尾部字母,器件号不变,“单价”取最低价,

“数量”取合计,查询结果先按新的“订单号”升序排,再按“器件号”升序排。

  1. 查询销售总数量最多的三种器件及其总数量。

use stuinfo

select sno as '学号',sname as '姓名',DateName(year,GetDate())-DATEPART(YYYY,sbirthday) as '年龄' from student order by sno asc;

select sno as '学号',sname as '姓名', DateName(year,GetDate())-DATEPART(YYYY,sbirthday) as '年龄' from student order by sno desc

---2

select distinct sclass from student

---3

select sname from student where substring(sname,1,1)='王'

---4

select sno,cno,degree from score where degree>=80 order by cno asc,degree desc

---5

select sno,cno from score where degree is null

---6

select COUNT(*) as '选课人数',MAX(degree) as 'max',MIN(degree) as 'min',AVG(degree) as 'avg' from score

---7

select sno,AVG(degree)as 'avg' from score group by sno order by sno desc

---8

select sclass,cno,AVG(degree) as 'AVG' from student,score group by sclass,cno order by sclass,cno

---9

select cno,AVG(degree) from score group by cno having COUNT(*) >= 5

---10

select student.sno as '学号', sname as '姓名' ,AVG(degree) as 'AVG' from student,score where student.sno=score.sno group by student.sno,student.sname having AVG(degree)>=80

---11

select course.cname as '课程名',AVG(degree) as '平均分' from student,course,score where student.sno=score.sno and sclass='95031' group by course.cno,course.cname

---12

select tname as '教师姓名',cname as '课程名' from teacher left join course on teacher.tno = course.tno group by tname,cname

---13

select sno as '学号',cno as '课程号',degree as '分数' from score a WHERE (SELECT MIN(degree) FROM score b where a.sno=b.sno)>70 and (SELECT MAX(degree)FROM score c where a.sno=c.sno)<90 and degree is not NUll

---14

select score.sno,sname,cno,degree from student,score where student.sno=score.sno and degree>(select AVG(degree) from score,course where score.cno=course.cno)

---15

select cname '课程名',sname '姓名',degree '成绩' from student,course,score where student.sno=score.sno and course.cno=score.cno and degree=(select MAX(degree)from score where score.cno=course.cno)

---16

select tname as 教师姓名 from teacher,course where teacher.tno=course.tno and (select COUNT(*) from score where score.cno=course.cno)>5

---17

select score.degree from score,teacher,course where teacher.tno=course.tno and course.cno=score.cno and tname!='张旭' order by degree

---18

select tname from teacher except select tname from teacher,course where teacher.tno=course.tno

---19

select student.sno,student.sname from student,course,score where score.sno not in (select sno from score where cno='1-166') group by student.sno,student.sname

---20

select student.sno as 学号,student.sname as 学生姓名,ssex as 性别,sbirthday as 生日,sclass as 班级,cname as 课程,degree as 成绩 into NS from student,score,course where student.sno=score.sno and ssex='男' and course.cno=score.cno order by student.sno

---21

delete course where course.cno not in (select cno from score)

---22

update score set degree = degree - 10 from student,score where student.sno=score.sno and student.sclass='95031'

第二题

use OrderManagement

---1

select * from order_list

---2

select distinct 器件号, 器件名 from order_detail

---3

select order_detail.订单号, order_detail.器件号, order_detail.器件名, order_detail.单价, order_detail.数量 from Customer, order_detail, order_list

where Customer.客户名 = '三益贸易公司' and Customer.客户号 = order_list.客户号 and order_list.订单号 = order_detail.订单号

order by 订单号, 单价 desc

---4

select * from Customer where Customer.客户号 not in (select 客户号 from order_list)

---5

select * from Customer where 客户名 like '%科技%'

---6

select 订单号, sum(单价 * 数量) as '总金额' into ZJE from order_detail group by 订单号 order by 订单号

---7

select 客户号, COUNT(订单号) from order_list group by 客户号 having count(订单号) > 5 order by COUNT(订单号) desc

---8

select * from order_detail a where 单价 in (select MIN(单价) from order_detail b where a.器件名=b.器件名)

---9

select RIGHT(订单号, 1) as 订单号, 器件号, MIN(单价)as 最低价,SUM(数量) as 数量 from order_detail group by 订单号, 器件号 order by 订单号, 器件号

---10

select top 3 器件号, 器件名, SUM(数量) as 数量 from order_detail group by 器件号, 器件名 order by 数量 desc

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • 1).创建数据库 create database学生选课数据库 2).创建四张表 Create table Stu...
    blvftigd阅读 1,563评论 0 0
  • 最近打算采用关系型数据库来理一下公司的运营数据,先拿点东西练手找感觉。下面是几个关于学生课业的表,需要建立一个数据...
    九天朱雀阅读 966评论 0 3
  • 单表查询 只在一个表中查询数据 多表查询 同时查询多个表 说明:这是在学生表student和成绩表SC中查询成绩大...
    爱撒谎的男孩阅读 1,168评论 0 2
  • 介绍多表查询等复杂SQL语句。 关系数据库的查询结果都是一个结果表(也是关系) 集聚函数 基本语法 统计元组个数C...
    zealscott阅读 823评论 0 0
  • 周末时间,趁着天气很好,于是去西南大学逛了一圈 随手一拍,没有美图,没有滤镜(如果漂亮的话,那一定是校园本身就很美...
    只有冬夏没有春秋阅读 414评论 0 1