文章目录

  • 1.学生信息库1
    • 数据库名:StudentDb
    • 表名:Student(学生信息表)
    • 表设计结构:
    • 题目及代码:
  • 2.图书信息库
    • 数据库名:BooksDb
    • 表名:BookInfo(图书信息表),BookType(图书类型表)
    • 表设计结构:
    • 题目及代码:
  • 3.用户信息库
    • 数据库名:UserDb
    • 表名:UserInfo(用户信息表),RidggepoleInfo(用户楼栋表)
    • 表设计结构:
    • 题目及代码:
  • 4.学生信息库2
    • 数据库名:StudentDb
    • 表名:Student(学生信息表),Class(班级信息表)
    • 表设计结构:
    • 题目及代码:

1.学生信息库1

数据库名:StudentDb
表名:Student(学生信息表)
表设计结构:

StudentID设有标识规范,标识增量为1,标识种子为1。

题目及代码:
--向Student表中添加数据
insert Student(StudentName,Grender,Birthday,Class,Score)
select '詹三','0','2000-02-16','计算机班','89' union
select '李明明','1','2001-12-03','计算机班','79' union
select '张三丰','0','2000-03-24','生物医学工程班','89' union
select '王昌','1','2000-04-02','计算机班','89' union
select '李刚','0','2001-11-24','生物医学工程班','89' --1.查询显示所有“计算机班”性别为“0”的学生信息
select * from Student
where Class='计算机班' and Grender='0'
--2.修改StudentName为“张三丰”的学生成绩为“88”
update Student set Score='88'
where StudentName='张三丰'
--3.修改所有性别为“1”且学生成绩<60的学生年龄为“18”
update Student set Birthday='2001-01-01'
where Grender='1' and Score< '60'
--4.查询名字中包含“三”的学生全部信息
select * from Student
where StudentName like '%三%'
--5.查询姓李的学生全部信息
select * from Student
where StudentName like '李%'
--6.计算得到班级平均成绩
select avg(Score) 平均分 from Student
group by Class
--7.查找“计算机班”最高成绩和最低成绩
select max(Score) 最高分,min(Score) 最低分 from Student
where Class='计算机班'
--8.查找“李刚”比王昌小几岁
select DATEDIFF(year,'2000-04-02','2001-11-24')
--9.统计2000年出生的学生人数
select Count(Birthday) from Student
where year(Birthday)=2000
--10.查找2月份到4月份出生的全部学生信息
select * from Student
where month(Birthday)='2' or month(Birthday)='4'
--11.查找“计算机班”的学生平均年龄
select avg(year(getdate())-year(Birthday)) from Student
where Class='计算机班'

2.图书信息库

数据库名:BooksDb
表名:BookInfo(图书信息表),BookType(图书类型表)
表设计结构:

BookInfo(BookInfo与BookType通过外键BookTypeID进行关联):
BookInfo设有标识规范,标识增量为1,标识种子为1。

BookType:
BookType设有标识规范,标识增量为1,标识种子为1。

题目及代码:
--向BookInfo表中添加数据
insert BookInfo(BookName,BookAuthor,BookTypeID,BookPrice,BookDate,BookPress,BookOrigin)
select  '1984','乔治•奥威尔','3','24.3','2020-03-08','','英国' union
select  '第三帝国的兴亡','威廉•夏伊勒 (Shirer.W.L.)','3','63.2','2020-02-18','世界知识出版社','美国' union
select  '明朝那些事儿','当年明月','1','248.4','2019-08-22','北京联合出版社','中国' union
select  '万历十五年','黄仁宇','1','18.0','2019-07-29','三联书店','中国' union
select  '乡土中国','费孝通','2','19.0','2019-12-03','中华书局','中国' union
select  '言论的边界','安东尼•刘易斯','2','25.0','2020-03-07','基本书籍出版社','美国' union
select  '战争论','卡尔•冯•克劳塞维茨(Carl Von Clausewitz)','3','79.0','2020-01-08','中国人民解放军出版社','德国' union
select  '中国史学入门','顾颉刚口述,何启君整理','1','23.8','2019-07-16','上海译文出版社','中国'--向BookType表中添加数据
insert BookType(BookTypeName)
select '军事' union
select '历史' union
select '哲学' --1.将书籍表名为“中国史学入门”的出版社修改为”“上海译文出版社”
update BookInfo set BookPress='上海译文出版社'
where BookName='中国史学入门'
--2.将表书籍表中序号为3的删除
delete from BookInfo
where BookID=3
--3.查询出书籍价格在20元到30元的书籍所有信息
select * from BookInfo
where BookPrice between 20.00 and 30.00
--4.显示书籍的所有信息,按照价格进行升序排序
select * from BookInfo
order by BookPrice
--5.请查询出2020年入库的书籍所有信息
select * from BookInfo
where BookDate>='2020-01-01'
--6.显示带有出版社的书籍全部信息,并对价格进行降序排列
select * from BookInfo
order by BookPrice desc
--7.查询第一季度(1-3月)入库,价格在20元以上的书籍信息,显示书籍名称、
--  作者、出版时间、出版社、书籍起源国家
select BookName 书籍名称,BookAuthor 作者,BookDate 出版时间,BookPress 出版社,BookOrigin 书籍起源国家,BookPrice 价格 from BookInfo
where BookPrice>20 and month(BookDate) between 1 and 3
--8.请查询不同书籍类型编号的书籍数量,显示书籍类型编号,书籍数量
select BookTypeID 书籍类型编号,count(*) 书籍数量 from BookInfo
group by BookTypeID
--9.统计不同国家的的书籍数量、平均售价要求书籍数量>1并且按照从多到少排序
select BookOrigin 国家,count(*) 书籍数量,avg(BookPrice) 平均售价 from BookInfo
group by BookOrigin
having count(*)>1
order by count(*) desc
--10.查询显示:中国作者的书籍名称、作者、书籍类型名称、价格,要求书籍名称
--   字数不低于五个字按照作者名称升序排列
select BookName,BookAuthor,BookTypeName,BookPrice from BookInfo as a
join [BookType] as b on a.BookTypeID=b.BookTypeID
where len(BookName)>5 and BookOrigin='中国'
order by BookAuthor
--11.按照各个国家的不同书籍类型来统计书籍数量、平均售价、销售总价,但是入库
--   时间在300天以内并且书籍数量低于三本。显示国家、书记类型名称、书籍数量、
--   平均售价、销售总价
select BookOrigin 国家,BookTypeName 书籍类型名称,count(*) 书籍数量,avg(Bookprice) 平均售价,sum(BookPrice) 销售总价,BookDate 入库时间 from BookInfo as a
join [BookType] as b on a.BookTypeID=b.BookTypeID
group by BookOrigin,b.BookTypeName,BookDate
having count(*)<3 and DATEDIFF(day,BookDate,getdate())<300

3.用户信息库

数据库名:UserDb
表名:UserInfo(用户信息表),RidggepoleInfo(用户楼栋表)
表设计结构:

UserInfo(UserInfo与RidggepoleInfo通过外键UserRidgepole进行关联):
UserInfo设有标识规范,标识增量为1,标识种子为1。

RidggepoleInfo:
RidggepoleInfo设有标识规范,标识增量为1,标识种子为1。

题目及代码:
--向UserInfo表中添加数据
select * from UserInfo
insert UserInfo(UserName,UserPwd,UserBirthday,UserAddress,UserRidgepole,HouseNumber)
select '任菲','123456','1944/10/25','上海','1','101' union
select '晚晚','123456','1973/8/15','武汉','2','102' union
select '禹城','123456','1969/8/4','上海','8','202' union
select '李小军','654321','1990/2/4','上海','3','401' union
select '干亚军','123456','1973/8/15','广州','3','202' union
select '段成星','123456','1982/9/1','上海','4','602' union
select '张山','654321','1986/7/8','武汉','4','203' union
select '刘小明','123456','1969/8/4','广州','5','201' union
select '梅一平','654321','1988/5/19','广州','1','102' union
select '许波涛','654321','1986/5/20','上海','2','302' union
select '张流星','654321','1990/2/4','广州','3','101' union
select '张华','123456','1982/9/1','深圳','3','302' union
select '陈骁','654321','1988/5/19','深圳','4','402' union
select '黄晓','123456','1982/9/1','武汉','5','402' union
select '孟德玛','123456','1973/8/15','杭州','6','502' union
select '李媛','123456','1982/9/1','广州','7','601' union
select '胡世平','123456','1973/8/15','武汉','4','602' union
select '许宏涛','654321','1989/4/12','深圳','5','201' union
select '张辉涛','654321','1988/10/2','杭州','6','401' union
select '张晓慧','123456','1982/9/1','深圳','7','502' union
select '刘欣欣','654321','1988/8/2','杭州','8','506'--向RidggepoleInfo表中添加数据
insert RidggepoleInfo(RidgepoleName)
select '一栋' union
select '二栋' union
select '三栋' union
select '四栋' union
select '五栋' union
select '六栋' union
select '七栋' union
select '八栋'--1.查询姓张的住户的姓名、密码、出生日期、楼栋号和门牌号
select UserName 姓名,UserPwd 密码,UserBirthday 出生日期,UserRidgepole 楼栋号,
HouseNumber 门牌号 from UserInfo
where UserName like '张%'
--2.查询年龄最大的5个住户的姓名、密码、出生日期、楼栋号和门牌号
select top 5 UserName 姓名,UserPwd 密码,UserBirthday 出生日期,UserRidgepole 楼栋号,
HouseNumber 门牌号 from UserInfo
order by (year(getdate())-year(UserBirthday)) desc
--3.查询所有一楼用户的资料,显示姓名、密码、出生日期、楼栋号和门牌号
select top 5 UserName 姓名,UserPwd 密码,UserBirthday 出生日期,UserRidgepole 楼栋号,
HouseNumber 门牌号 from UserInfo
where HouseNumber like '1%'
--4.删除住户“李一男”的全部资料
delete from UserInfo
where UserName='李一男'
--5.修改1985年后出生的住户密码为:654321
update UserInfo set UserPwd='654321'
where UserBirthday>'1985'
--6.查询在上海、武汉、广州工作的住户信息,显示姓名、密码、出生日期、楼栋号和门牌号
select UserName 姓名,UserPwd 密码,UserBirthday 出生日期,UserRidgepole 楼栋号,
HouseNumber 门牌号 from UserInfowhere [UserAddress] in ('上海','武汉','广州')
--7.查询每一栋楼现在有多少住户,显示楼栋名称和住户人数
select UserRidgepole 楼栋号,count(*) 住户人数 from UserInfo
group by UserRidgepole
--8.显示住户人数超过2户的楼栋名
select UserRidgepole 楼栋号,count(*) 住户人数 from UserInfo
group by UserRidgepole
having count(*)>2
--9.查询住户在不同城市工作的总人数,其中1985年后出生的住户不参与统计
select UserAddress 城市,count(*) 总人数 from UserInfo
where UserBirthday<'1985'
group by UserAddress

4.学生信息库2

数据库名:StudentDb
表名:Student(学生信息表),Class(班级信息表)
表设计结构:

Student(Student与Class通过外键ClassID进行关联):
Student设有标识规范,标识增量为1,标识种子为1。

Class:

题目及代码:
--向Student表添加数据
insert Student(StudentName,Grender,Birthday,ClassID,Score)
select '张三','男','2000-08-17','1802','90' union
select '李四','男','1999-05-01','1803','80' union
select '王豆豆','女','2001-11-18','1803','85' union
select '赵六','男','2000-09-03','1803','55' union
select '李磊','男','1998-03-08','1803','68' union
select '韩梅梅','女','2001-01-01','1805','95' union
select '周强','男','2000-12-31','1805','70' union
select '胡丽丽','女','2000-07-01','1805','66'--向Class表添加数据
insert Class(ClassID,ClassName,ClassSiez)
select '1802','计应二班','40' union
select '1803','计应三班','41' union
select '1804','计应四班','41' union
select '1805','计应五班','39' union
select '1806','计应六班','40' union
select '1807','计应七班','40' union
select '1808','计应八班','41' union
select '1809','计应九班','40' union
select '1810','计应十班','38'--1.将Stundent表中“韩梅梅”的成绩修改为95
update Student set Score=95
where StudentName='韩梅梅'
--2.查询Class表中全部班级的平均人数,最低人数,总人数(显示三列数据)
select avg(ClassSiez) 平均人数,min(ClassSiez) 最低人数,sum(ClassSiez) 总人数 from Class
--3.查询Student表中1805班分数小于70的女生
select * from Student
where Score<70 and Grender='女'
--4.查询Stundnt表中 1803班成绩前两位的学生信息
select top 2 * from Student
order by Score desc
--5.查询班级名称是“计应三班”的学生信息,且只显示名字是两个字且分数大于70的学生信息(需要联表查询,显示班级名称和学生所有信息)
select ClassName,StudentID,StudentName,Grender,Birthday from Student a
join Class b on a.ClassID=b.ClassID
where ClassName='计应三班' and len(StudentName)=2 and Score>70
--6.按班级号统计 各班级的人数,最高分,按人数降序排列,且只显示班级人数大于2 的信息(显示班级号,班级人数,班级最高分)
select a.ClassID 班级号,count(b.ClassID) 班级人数,max(Score) 班级最高分 from Class a
join Student b on a.ClassID=b.ClassID
group by a.ClassID
having count(a.ClassID)>2
order by count(a.ClassID) desc
--7.按班级名称统计 各班级的男生人数,男生平均分,男生最低分,按男生平均分降序
select count(b.ClassID) 男生人数,avg(Score) 男生平均分,min(Score) 男生最低分 from Class a
join Student b on a.ClassID=b.ClassID
where Grender='男'
order by min(Score) desc
--8.按班级名称和性别 统计人数,最高分,最低分,按人数升序,最高分降序,且不显示
-- 计应二班的,只显示人数大于1的信息(显示班级名称,性别,统计人数,最高分,最低分)
select ClassName,Grender,count(*) 人数,max(Score) 最高分,min(Score) 最低分 from Student a
join Class b on a.ClassID=b.ClassID
group by ClassName,Grender
having ClassName!='计应二班' and Count(*)>1
order by Count(*),min(Score) desc
--9.查询王豆豆和李四的生日年份(显示 姓名 生日年份)
select StudentName,Birthday from Student
where StudentName='王豆豆' or StudentName='李四'
--10.查询 王豆豆 比 张三 小几个月(显示 小几个月)
select datediff(month,'2000-08-17','2001-11-18')
--11.查询1803班级男学生的 平均年龄(显示 班级名称 性别 平均年龄)
select ClassName 班级名称,Grender 性别,avg(Datediff(year,Birthday,getdate())) 平均年龄 from Student a
join Class b on a.ClassID=b.ClassID
where a.ClassID='1803' and Grender='男'
group by ClassName,Grender

SQL 小练习(简单:基础语句)—合集相关推荐

  1. CTF 六大方向基础工具合集

    本文中提到的所有工具在ctf部落中均有,加入方式见文末. CTF 六大方向基础工具合集 今天来为大家分享CTF 六大方向基础工具简介集合. 一.MISC方向 杂项往往是不能被归到其他类别里的题目,所以 ...

  2. 大学“电路分析基础”试题合集第三章

    大学"电路分析基础"试题合集第一章 大学"电路分析基础"试题合集 第二章 "电路分析基础"试题合集第三章 一.填空题(每空0.5分) 1.凡 ...

  3. 大学“电路分析基础”试题合集第二章

    大学"电路分析基础"试题合集第一章  "电路分析基础"试题合集第二章 一.填空题(每空1分) 1.电流所经过的路径叫做 电路 ,通常由 电源 . 负载 和 中间 ...

  4. python基础语法合集-Python基础语法合集.zip

    [实例简介]精心整理的Python基础语法合集,变量,循环,输入输出等等都有,主要是知道概念和怎么用的 如果打开文件后有文字变成符号的,先把字体改为宋体就正常了 [实例截图] [核心代码] 目录 了解 ...

  5. 微信小程序原生开发功能合集一:微信小程序开发介绍

    一.专栏介绍   本专栏主要内容为微信小程序常用功能开发过程的介绍说明,包括开发微信小程序常用组件的封装.常用功能的开发等,提供源代码.开发过程讲解视频.完整的课程等.   组件封装: 下拉选择组件. ...

  6. 大学“电路分析基础”试题合集第四章

    大学"电路分析基础"试题合集第一章 大学"电路分析基础"试题合集第二章 大学"电路分析基础"试题合集第三章 "电路分析基础&quo ...

  7. 大学“电路分析基础”试题合集第六章(文末附PDF文档与Word文档)

    大学"电路分析基础"试题合集第一章 大学"电路分析基础"试题合集第二章 大学"电路分析基础"试题合集第三章 大学"电路分析基础&q ...

  8. 大学“电路分析基础”试题合集第一章

    "电路分析基础"试题合集第一章         答案见文末 一.单项选择题(在每个小题的4个备选答案中,选出一个正确答案,并将正确答案的号码填入提干的括号内.每小题2分,共40分) ...

  9. 大学“电路分析基础”试题合集第五章

    往期回顾 大学"电路分析基础"试题合集第一章 大学"电路分析基础"试题合集第二章 大学"电路分析基础"试题合集第三章 大学"电路分 ...

  10. 大学“电路分析基础”试题合集第七章

    "电路分析基础"试题合集第七章 一.填空题(每空1分) 1.当流过一个线圈中的电流发生变化时,在线圈本身所引起的电磁感应现象称 自感 现象,若本线圈电流变化在相邻线圈中引起感应电压 ...

最新文章

  1. ----------------学习进度表---------------------------------
  2. openpyxl写入一行数据_老板让我从几百个Excel中查找数据,我用Python一分钟搞定!...
  3. java职业技能了解精通_如何通过精通数字分析来提升职业生涯的发展,第8部分...
  4. mysql中用来取余数的函数是_MySQL常用函数-单行处理函数-字符串处理函数(更新中...)...
  5. mysql80配置环境变量_MySQL:安装与配置
  6. android 开源 高斯模糊_Android实现带毛玻璃效果(高斯模糊)背景的Dialog
  7. 矩池云上使用nvidia-smi命令教程
  8. Spring Cloud Alibaba Nacos集群和持久化配置
  9. 【笑话】男生追女生的数学模型
  10. 为什么华为,腾讯,阿里等大公司都有外包员工?
  11. jmeter压力测试报告—模板
  12. 浙江大学2020计算机考研复试线,浙江大学2020考研复试分数线已公布
  13. iOS 应用架构 (二)
  14. 【React Native】react-native-vector-icons用法避坑
  15. 求鸡翁,鸡母,鸡雏的方案有几种,亲
  16. c++中如何将数组赋值给vector
  17. 服务器不能复制粘贴文件的处理方式
  18. 摩尔斯电码转换python编码_python转换字符串为摩尔斯电码的方法
  19. adb install 安装APK Failure INSTALL_FAILED_ALREADY_EXISTS Attempt to re-install without first
  20. mysql及格率70以上_五个 SQL 查询性能测试题,只有 40% 及格率,你敢来挑战吗?| 原力计划...

热门文章

  1. java黄金分割数的解题思路_java 实现黄金分割数的示例详解
  2. javaWeb-百斯特电子商城-在jsp页面中侧边栏点击,右边进行变化(java实现)(持续完善)
  3. 【面经】腾讯和YY实习生面试总结
  4. t6服务器修改权限,用友t6服务器设置权限名称
  5. java jfif格式图片转为jpg
  6. linux-acls-给一个目录添加用户
  7. 区块连原理设计与应用读书笔记
  8. Python简单逻辑语法作业
  9. Dropbox Linux 客户端安装
  10. 非黑!也不是刺激战场粉!我来说说我用安卓模拟器玩全军出击那些事儿