数据库实验二 ——1018
--对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.用SQL语句表示下列操作,在学生库中实现数据查询. (1)求数学系学生的学号和姓名. (2)求选修了课程的学生学号. (3)求选修001号课程的学生学号和成绩,并要求对查询结果按成绩 ...
- 删除计算机系学生的选课记录6,天津理工大学+数据库实验二.doc
文档介绍: 实验报告学院(系)名称:计算机与通信工程学院姓名Touchkiss学号20125577专业计算机科学与技术班级2班实验项目实验二:复杂SQL数据操作课程名称数据库系统课程代码0668026 ...
- 数据库实验二 SQL语言
实验二 SQL语言 实验目的 熟悉并掌握创建表,插入记录,查询记录,删除记录,修改记录. 创建索引,删除索引. 创建视图,使用视图,删除视图. 实验内容 现有一个单位内部的小型图书借阅系统,假设每本图 ...
- 数据库实验二之数据查询
实验二 数据查询 一.实验目的 1.理解数据库中数据的其他查询方法和应用: 2.学会各种查询要求的实现: 3.学会各种查询的异同及相互之间的转换方法. 二. 实验内容 在实验1的基础上,练习其它查询语 ...
- 数据库实验二 SQL数据定义和操作
SQL数据定义和操作 欢迎阅读本教程 一.数据定义 二.数据更新 三.数据查询 欢迎阅读本教程 掌握关系数据库语言 SQL 的使用. 使所有的 SQL 作业都能上机通过. 实现内容如下: 数据定义:表 ...
- 数据库 ----- 实验二:SQL的数据定义和数据更新
实验二 SQL的数据定义和数据更新 [实验目的和要求] 1.掌握SQL Server Management Studio中以SQL 命令方式和以向导方式操作表和数据的操作: 2.掌握SQL 的数据定义 ...
- MySQL数据库实验二 数据基本查询
★观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考,. 一.实验目的 1.掌握SQL查询语句的一般格式 ...
- MySQL 数据库实验二
课题 :实验二 数据库和表的管理* 目的要求 : 1. 了解MySQL数据库的逻辑结构和物理结构的特点. 2. 学会使用SQL语句创建.选择.删除数据库. 3. 学会使用SQL语句创建.修改.删除表. ...
- 数据库实验二--学生选课数据库(OpenGuess)
文章目录 实验二要求: 实验二 实验内容: (一)实验目的: (二)实验内容: 学生选课数据库的数据: 过程 打开数据库 新建数据库 创建模式和数据表 查询 建立索引 实验二要求: 实验二 实验内容: ...
最新文章
- 手把手 docker 从零搭建 jenkins 服务器
- php 判断update返回为0_PHP empty函数判断0返回真还是假
- RPC调用和HTTP调用的区别你知道吗
- 2021年春招Elasticsearch面试题
- 数据分析 数据清理_数据清理| 数据科学
- HM发卡系统 十分好看的ui
- 读取PDF的文字--zt
- 再看到一则有关Anders的……
- JAVA中的静态成员
- 10、Cocos2dx 3.0游戏开发找小三之容器篇:Vector、Map、Value
- 如何做数据仓库的有效需求分析
- kettle教程,简单插入与更新
- 爬取分析雪球网实盘用户数据
- Java 8 并发篇 - 冷静分析 Synchronized(上)
- mysql产生随机数
- 深度学习之动态调整学习率LR
- liferay中的社区(Communities)概念
- 做CloudXNS产品运营的这半年 – CHINA Testers
- PMP与ACP有什么区别?
- 【杂谈与乱码】资本论-计算机时代