当前位置: 首页 > news >正文

数据库:数据查询

1 实验目的

掌握SQL语言的数据查询语句,具体包括:
       SELECT语句的基本用法
       使用WHERE子句进行有条件的查询
       使用IN,NOT IN,BETWEEN等谓词查询
       利用LIKE子句实现模糊查询
       利用ORDER子句为结果排序
       用SQL Server的统计函数进行统计计算
       用GR0UP BY子句实现分组查询的方法
       连接查询的方法

2 实验任务

将学生成绩数据库(XSCJ)导入SQL SERVER 2012,并做如下查询:

       查询选修了课程的学生的学号;

       查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;

       查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。

       查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

       用LIKE查询课程名为DB_S程的课程号和学分。

       查所有有成绩的学生学号和课程号。

       查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄升序排列

       查询选修了课程的学生人数。

       计算1号课程的学生平均成绩。

       查询有3人以上(含3人)同学选修课程的课程号。

       查询1号课程的间接先修课。

       查询每个学生的学号、姓名、选修的课程名及成绩。

       找出每个学生等于他选修课程平均成绩的课程号。

拓展练习:将以下数据录入上次实验建立的BSXT数据库,并完成以下查询:

  1. 查询全体学生的学号和姓名和电话。
  2. 查询全体学生的基本情况。
  3. 查询带了毕业生的老师的教师号。
  4. 查询教师“朱龙”基本情况。
  5. 查询所有姓“王”同学的基本情况。
  6. 统计每种学历老师的人数。
  7. 查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业设计题目)(注:1组老师只能带1组的学生)
  8. 查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教师名称。(注:要求老师的组号和学生的组号相一致.)

3 相关知识

       数据查询是数据库的核心操作。SQL提供了SELECT语句进行数据查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:

SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]……

FROM<表名或视图名>……|(<SELECT语句>)[AS]<别名>

[WHERE<条件表达式>][GROUP BY<列名1>][HAVING<条件表达式>]

[ORDER BY<列名2>[ASC|DESC]];

整个SELECT语句的含义是根据WHERE子句的条件表达式以FROM子句指定的基本表、视图或派生表中找出满足条件的元组,再按SELECT子句中的目标列表达式选出元组中的属性值形成结果表。

       如果有GROUP BY子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组,通常会在每组中作用聚集函数。如果GROUP BY子句带HAVING短语,则只有满足指定条件的组才予以输出。如果有ORDER BY子句,则结果还要按<列名2>的值升序或降序排序。SELECT语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。

       单表查询是指仅涉及一个表的查询,若一个查询同时涉及两个以上的表,则称之为连接查询。连接查询是关系数据库中最主要的查询,包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询等。

4 实验内容与实验结果

SELECT DISTINCT SnoFROM SC;
SELECT  Sname  XM , 2015-Sage  CSNF
FROM Student;
SELECT Sno, Sname,Sdept
FROM     Student
WHERE   Sage BETWEEN 18 AND 20;
SELECT Sname,SsexFROM  StudentWHERE Sdept IN ( 'IS','MA','CS' );
SELECT Cno,CcreditFROM CourseWHERE Cname LIKE '数据%' ESCAPE '\';
SELECT Sno,CnoFROM  SCWHERE  Grade IS NOT NULL;
SELECT  *FROM  StudentORDER BY Sdept,Sage DESC;
SELECT COUNT(DISTINCT Sno)FROM SC;
SELECT AVG(CAST(Grade as int))FROM SCWHERE Cno= 1;
SELECT SnoFROM  SCGROUP BY SnoHAVING  COUNT(*) >=3;
SELECT  FIRST.Cno,SECOND.CpnoFROM  Course  FIRST,Course  SECONDWHERE FIRST.Cpno = SECOND.Cno and FIRST.Cpno='1';
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROM  Student  LEFT OUTER JOIN SC ON (Student.Sno=SC.Sno);
SELECT Sno, CnoFROM  SC  xWHERE Grade >=(SELECT AVG(CAST(Grade as int)) FROM  SC yWHERE y.Sno=x.Sno);

SELECT Sno,Sname,Stel
FROM Student;
SELECT *
FROM Student;
SELECT DISTINCT Tno
FROM Topic;
SELECT *
FROM Teacher
WHERE Tname = '朱龙';
SELECT *
FROM Student
WHERE Sname LIKE '王%';
SELECT Tdegree,COUNT(*) as number
FROM Teacher
GROUP BY Tdegree;
SELECT Student.Sno,Sname,Teacher.Tname,Hname
FROM Student LEFT OUTER JOIN Topic ON(Student.Sno = Topic.Sno),Teacher
WHERE Teacher.Troup = '1' AND Student.Sgroup = Teacher.Troup AND Teacher.Tno = Topic.Tno;
SELECT Student.Sno,Sname,Hname,Tname
FROM Student LEFT OUTER JOIN (SELECT Hname,Tname,Sno,Troup
FROM Topic,Teacher
WHERE Topic.Tno = Teacher.Tno) TEMP ON(Student.Sno = TEMP.Sno)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Android大脑--systemserver进程
  • 杂项:WPF编程指南 第一章
  • Linux - 基础工具使用
  • 18. 基于ES实战海量数据检索
  • Java实习记录 8 ——使用 XSSFWorkbook 实现复杂表格下载(背景色、对齐方式、单元格合并等操作)
  • 《机器学习by周志华》学习笔记-决策树-03连续值与缺失值
  • CoCoOp(论文解读):Conditional Prompt Learning for Vision-Language Models
  • 蓝盆花:神秘而迷人的自然之美
  • speech语音audio音频
  • Maven坐标
  • 十四、OpenCVSharp视频处理
  • 抽象代数精解【13】
  • 《向量数据库指南》——AI应用部署落地与权限安全差别
  • Qt/QML学习-SwipeView
  • 机器学习课程学习周报八
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • express.js的介绍及使用
  • Go 语言编译器的 //go: 详解
  • javascript从右向左截取指定位数字符的3种方法
  • Javascript设计模式学习之Observer(观察者)模式
  • MySQL的数据类型
  • php ci框架整合银盛支付
  • PHP CLI应用的调试原理
  • python大佬养成计划----difflib模块
  • Quartz初级教程
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • ucore操作系统实验笔记 - 重新理解中断
  • vue的全局变量和全局拦截请求器
  • 聊一聊前端的监控
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 通过git安装npm私有模块
  • 写给高年级小学生看的《Bash 指南》
  • # Redis 入门到精通(一)数据类型(4)
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #ifdef 的技巧用法
  • #数学建模# 线性规划问题的Matlab求解
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)(1.9) MSP (version 4.2)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (独孤九剑)--文件系统
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)ssm高校实验室 毕业设计 800008
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (篇九)MySQL常用内置函数
  • (四)React组件、useState、组件样式
  • (算法)Travel Information Center
  • (转)jQuery 基础
  • (转)四层和七层负载均衡的区别
  • .Net Core 中间件验签
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET 常见的偏门问题
  • .NetCore项目nginx发布
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点