--对xs表增加身份证号码属性列,要求是18位的字符类型
alter table xs
add  身份证号 char(18)
--1.查询有直接先行课的课程的课号,课名和先行课号。
select 课程号 ,课程名 ,先行课号
from kc
where 先行课号 is not null
--2.查询先行课号是“J001”号课程的课号和课名
select 课程号 ,课程名 
from kc
where 课程号 ='J001'
--3.查询所有的网络工程系姓李,张,王的同学的学号和姓名
select 学号,姓名
from xs
where 专业= '网络工程' and 姓名 like '[李,张,王]%'
--4.查询不在网络工程和信息管理专业学习的学生的学号和姓名,系别,并对查询结果按照专业的升序和学号的降序排序
select 学号,姓名
from xs
where 专业  not in ('网络工程','信息管理')
order by 专业 , 学号 DESC
--5.查询每门课不及格的学生的人数,显示课号和人数
select  课程号 , count(*) "人数"
from cj
where 成绩 < 60
group by 课程号
--6.查询年龄不在30-35之间的网络工程系的学生的学号,姓名和年龄
select 学号, 姓名 ,年龄=DATEDIFF(yy,出生时间,getdate())
from xs
where DATEDIFF(yy,出生时间,getdate()) not between 30 and 35  and 专业 = '网络工程'
--7.查询没有选修‘J001’号课程的学生的学号(注意去掉重复的元组)
select distinct 学号 
from xs
where not exists
(
  select *
  from cj
  where xs.学号=cj.学号   and 课程号 = 'J001'
  )

--8.查询每个学生的学号,姓名,出生年份,并给出生年份起别名为chusheng 
select 学号,姓名 ,year(出生时间) chusheng
from xs
--9. 查询每个学生的学号,姓名和出生日期(出生日期根据身份证号码查询)
select 学号,姓名,出生日期=SUBSTRING(身份证号,7,8)
from xs
--10.查询选修J001课程成绩排名第一的同学的学号和成绩
select top 1 学号,成绩
from cj
where 课程号 in ('j001')
order by 成绩 desc
--11. 查询所有名字中含有’明’或者’丽’的同学的学号,姓名
select 学号,姓名
from xs
where 姓名 like '%明%' or  姓名 like '%丽%'

--12. 查询信息管理专业年龄超过20岁的学生的人数
select 人数 = count(*)
from xs
where 专业 = '信息管理' and DATEDIFF(yy,出生时间,getdate())>20

--13. 查询平均成绩超过80分的课程的课程号和平均成绩
select 课程号, AVG(成绩) as 平均成绩
from cj
group by 课程号
having avg(成绩)>=80

--14. 查询每个专业所有姓张的人数
select 专业, 人数 = count(*)
from xs
where 姓名 like '张%'
group by 专业

--15. 查询各种姓氏的人数(假设没有复姓)
select 姓 = SUBSTRING(姓名,1,1) , 人数 = count(*)
from xs
group by SUBSTRING(姓名,1,1)

--16.查询选修课程超过5门的学生的学号和选课门数,以及平均成绩
select 学号, 选课门数 = count(*),AVG(成绩) as 平均成绩
from cj
group by 学号
having count(*)>5
--17. 查询选修‘J001’课程的成绩排名前五的学生的学号和成绩
select top 5 学号, 成绩
from cj
where 课程号 = 'j001'
order by 成绩 desc

--18.查询每个学生的最低分和选课门数
select 学号 ,最低分 = min(成绩), 选课门数=count(*)
from cj
group by 学号

--19. 查询各个专业各种性别的人数
SELECT xs.专业, count (case when 性别='男' THEN 1 END) 男生数,
count (case when 性别='女' THEN 1 END) 女生数
FROM xs
GROUP BY 专业

--20.查询各个专业男生的人数
select 专业, 男生人数=count (*) 
from xs
where 性别 = '男'
group by 专业
--21. 列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;
select 学号, 平均成绩= avg(成绩)
from cj
where 成绩<60 
group by 学号
having  COUNT(*)>=2

--22. 显示学号第五位或者第六位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及专业;
select 学号,姓名,性别,年龄 =  DATEDIFF(yy,出生时间,getdate()),专业
from xs
where 学号 like '____[1,2,3,4,9]%' or 学号 like '_____[1,2,3,4,9]%'

--23. 显示选修课程数最多的学号及选修课程数最少的学号;
select top 1 学号 
from cj
group by 学号
order by count(*) 
select top 1 学号 
from cj
group by 学号
order by count(*) desc

--24. 查询选修了A001或者A002或者J001或者J002课程的学生的学号和课程号
select  学号,课程号
from cj
where 课程号 = 'A001' or 课程号 = 'A002' or 课程号 = 'J001,' or 课程号 = 'J002'
--25. 查询姓名为两个字的不同姓氏的人数,输出姓氏,人数。
select 姓=SUBSTRING(姓名, 1,1),count(*)
from xs
where len(姓名)=2
group by SUBSTRING(姓名, 1,1)

--二:对书上第二章课后习题的4的SPJ数据库各表查询: 
--1.求供应工程J1零件的供应商号码SNO
select sno 
from spj
where jno = 'J1'
--2.求查询每个工程使用不同供应商的零件的个数

select  JNO,pno , count(sno)

from  spj

group by jno , pno

--3.求供应工程使用零件P3数量超过200的工程号JNO
select jno
from spj
where pno = 'P3' and qty >=200
--4.求颜色为红色和蓝色的零件的零件号和名称
select pno , pname 
from p
where color = ' 蓝'  or  color = ' 红' 
--5.求使用零件数量在200-400之间的工程号
select jno 
from spj

group by jno

having sum(qit)between  200 and 400
--6.查询每种零件的零件号,以及使用该零件的工程数。
select pno , count(DISTINCT jno)
from spj
group by pno

数据库实验二 ——1018相关推荐

  1. 数据库 实验二 查询

    一.实验内容 1.用SQL语句表示下列操作,在学生库中实现数据查询. (1)求数学系学生的学号和姓名. (2)求选修了课程的学生学号. (3)求选修001号课程的学生学号和成绩,并要求对查询结果按成绩 ...

  2. 删除计算机系学生的选课记录6,天津理工大学+数据库实验二.doc

    文档介绍: 实验报告学院(系)名称:计算机与通信工程学院姓名Touchkiss学号20125577专业计算机科学与技术班级2班实验项目实验二:复杂SQL数据操作课程名称数据库系统课程代码0668026 ...

  3. 数据库实验二 SQL语言

    实验二 SQL语言 实验目的 熟悉并掌握创建表,插入记录,查询记录,删除记录,修改记录. 创建索引,删除索引. 创建视图,使用视图,删除视图. 实验内容 现有一个单位内部的小型图书借阅系统,假设每本图 ...

  4. 数据库实验二之数据查询

    实验二 数据查询 一.实验目的 1.理解数据库中数据的其他查询方法和应用: 2.学会各种查询要求的实现: 3.学会各种查询的异同及相互之间的转换方法. 二. 实验内容 在实验1的基础上,练习其它查询语 ...

  5. 数据库实验二 SQL数据定义和操作

    SQL数据定义和操作 欢迎阅读本教程 一.数据定义 二.数据更新 三.数据查询 欢迎阅读本教程 掌握关系数据库语言 SQL 的使用. 使所有的 SQL 作业都能上机通过. 实现内容如下: 数据定义:表 ...

  6. 数据库 ----- 实验二:SQL的数据定义和数据更新

    实验二 SQL的数据定义和数据更新 [实验目的和要求] 1.掌握SQL Server Management Studio中以SQL 命令方式和以向导方式操作表和数据的操作: 2.掌握SQL 的数据定义 ...

  7. MySQL数据库实验二 数据基本查询

    ★观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考,. 一.实验目的 1.掌握SQL查询语句的一般格式 ...

  8. MySQL 数据库实验二

    课题 :实验二 数据库和表的管理* 目的要求 : 1. 了解MySQL数据库的逻辑结构和物理结构的特点. 2. 学会使用SQL语句创建.选择.删除数据库. 3. 学会使用SQL语句创建.修改.删除表. ...

  9. 数据库实验二--学生选课数据库(OpenGuess)

    文章目录 实验二要求: 实验二 实验内容: (一)实验目的: (二)实验内容: 学生选课数据库的数据: 过程 打开数据库 新建数据库 创建模式和数据表 查询 建立索引 实验二要求: 实验二 实验内容: ...

最新文章

  1. 手把手 docker 从零搭建 jenkins 服务器
  2. php 判断update返回为0_PHP empty函数判断0返回真还是假
  3. RPC调用和HTTP调用的区别你知道吗
  4. 2021年春招Elasticsearch面试题
  5. 数据分析 数据清理_数据清理| 数据科学
  6. HM发卡系统 十分好看的ui
  7. 读取PDF的文字--zt
  8. 再看到一则有关Anders的……
  9. JAVA中的静态成员
  10. 10、Cocos2dx 3.0游戏开发找小三之容器篇:Vector、Map、Value
  11. 如何做数据仓库的有效需求分析
  12. kettle教程,简单插入与更新
  13. 爬取分析雪球网实盘用户数据
  14. Java 8 并发篇 - 冷静分析 Synchronized(上)
  15. mysql产生随机数
  16. 深度学习之动态调整学习率LR
  17. liferay中的社区(Communities)概念
  18. 做CloudXNS产品运营的这半年 – CHINA Testers
  19. PMP与ACP有什么区别?
  20. 【杂谈与乱码】资本论-计算机时代

热门文章

  1. 社团检测之节点相似度指标
  2. java中br.readLine与 br.read的用法区别
  3. Linux 图片全屏缩放 c,RGB源数据操作: 实现图片放大、缩小
  4. 编程之美 - 电话号码对应英语单词
  5. 抓取微信小程序公众号数据包
  6. VideoScribe基础教程创建动画视频
  7. 【041_帷幕_第三四章总结】
  8. nn.Identity()
  9. Unity中的Lerp函数
  10. Karaf:简述对Karaf的认识