T-SQL程序设计
更新时间:2023-09-24 17:13:01 阅读量: IT计算机 文档下载
- t-shⅰrt英语怎么读推荐度:
- 相关推荐
T-SQL程序设计
一、 目的
1. 通过对SELECT的使用,掌握SELECT语句的结构及其应用
二、 要求
1. 实训前做好上机实训的准备,针对实训内容,认真复习与本次实训有关的知识,完成实训内容的预习准备工作;
2. 能认真独立完成实训内容;
3. 实训后做好实训总结,根据实训情况完成总结报告。
三、 学时
2学时
四、 操作及流程分析
在众多的SQL语句中,SELECT语句是使用频率最高的一个。SELECT语句 主要被用来对数据库进行查询并返回符合用户查询要求的结果数据集。
1、检索单个表中的所有数据
当查询没有限制条件时,不需要编写WHERE子名,此时返回或显示表中的所有数据,这是SELECT语句最简单的情况。
例6.1 检索XSQK表中的所有记录数据。
要返回学生情况表(XSQK)中已存在的所有记录数据,可以使用下面的语句实现。
SELECT * FROM XSQK 其实现步骤为:
(1)进入SQL SERVER查询分析器界面。在查询分析器上部的“选择数据库”组合中选择XS_KC。
(2)在“查询编辑框”窗口中输入如下SQL语句。 SELECT * FROM XSQK
(3)单击工具栏上的查询按钮执行上述SQL语句。语句执行后,在结果显示窗格中显示每个学生的情况。如图6.1所示。
图6.1
2、用WHERE条件从句进行选择查询
一个数据表中存放着大量相关的记录数据。实际使用时,往往只需要其中满足要求的部分记录,这时就需要用到WHERE条件从句。
例6.2 查询班级为“计算机0203”的学生情况。
要返回学生情况表(XSQK)中班级为“计算机0203”的学生情况,可以使用下面的语句实现。
SELECT * FROM XSQK WHERE 班级=‘计算机0203’ 其实现步骤为:
(1)在“查询编辑框”窗口中输入如下SQL语句。 SELECT * FROM XSQK WHERE 班级=‘计算机0203’
(2)单击工具栏上的查询按钮执行上述SQL语句。语句执行后,在结果显示窗格中显示班级为“计算机0203”的学生情况。如图6.2所示。
例6.3查询姓名中含有“红”字的学生情况。
图6.2
要返回学生情况表(XSQK)中姓名内含有“红”字的学生情况,可以使用下面的语句实现。
SELECT * FROM XSQK WHERE 姓名 LIKE‘%红%’ 其实现步骤为:
(1)在“查询编辑框”窗口中输入如下SQL语句。 SELECT * FROM XSQK WHERE 姓名 LIKE‘%红%’
(2)单击工具栏上的查询按钮执行上述SQL语句。语句执行后,在结果显示窗格中显示姓名中含有“红”字的学生情况。如图6.3所示。
图6.3
3、用ORDER BY子名
一般存放在数据表中的记录是无法确定次序的。但返回的数据集进行排序是常有的事。可以通过ORDER BY子句对SELECT语句检索出来的数据按要求进行排序。
例6.4 查询出生年月在“1981-01-01”至“1982-05-01”之间的学生情况,并以出生年月按降序排列。
要返回学生情况表(XSQK)中出生年月在“1981-01-01”至“1982-05-01”之间的学生情况,并出生年月按降序排列,可以使用下面的语句实现:
SELECT * FROM XSQK WHERE 出生年月 BETWEEN ‘1981-01-01’ AND ‘1982-05-01’
ORDER BY 出生年月 DESC 其实现步骤为:
(1)在“查询编辑框”窗口中输入如下SQL语句。
SELECT * FROM XSQK WHERE 出生年月 BETWEEN ‘1981-01-01’ AND ‘1982-05-01’
ORDER BY 出生年月 DESC
(2)单击工具栏上的查询按钮执行上述SQL语句。语句执行后,在结果显示窗格中显示出生年月在“1981-01-01”至“1982-05-01”之间的学生情况。如图6.4所示。
图6.4
4、使用汇总数据
数据汇总是数据库应用程序的重要组成部分。SQL语句能将数据表中的数据按照一定规律和条件进行分类汇总,从而得到所需的统计结果。
GROUP BY子句把检索出来的记录按条件进行分组,HAVING子句对GROUP BY子句检索出来的记录进行约束和限制。
例6.5 统计学生情况表(XSQK)表中“计算机0203”的班级有多少人。 要统计“计算机0203”的班级有多少人,可以使用下面的语句实现: SELECT COUNT(*)计算机0203的人数 FROM XSQK WHERE 班级=’ 计算机0203’
其实现步骤为:
(1)在“查询编辑框”窗口中输入如下SQL语句。
SELECT COUNT(*)计算机0203的人数 FROM XSQK WHERE 班级=’ 计算机0203’
(2)单击工具栏上的查询按钮执行上述SQL语句。语句执行后,在结果显示窗格中显示“计算机0203”的班级人数,如图6.5所示。
图6.5
例6.6 统计学生成绩表(XSCJ)表中每门课程的最低分,最高分和平均分。 要统计每门课程的最低分,最高分和平均分,需要使用GROUP BY子名、MAX、MIN和AVG函数,可以使用下面的语句实现:
SELECT 课程号,MIN(成绩)最低分,MAX(成绩)最高分,AVG(成绩)平均分FROM XSCJ GROUP BY 课程号
其实现步骤为:
(1)在“查询编辑框”窗口中输入如下SQL语句。
SELECT 课程号,MIN(成绩)最低分,MAX(成绩)最高分,AVG(成绩)平均分FROM XSCJ GROUP BY 课程号
(2)单击工具栏上的查询按钮执行上述SQL语句。语句执行后,在结果显示窗格中显示每门课程的最低分,最高分和平均分,如图6.6所示。
图6.6
5、使用子查询
可以将一个完整的SELECT语句嵌套在其他的SQL语句中,构成子查询,它通常用于一个操作需要依赖于另一个检索到的数据的场合。
例6.7 检索有一门或以上功课不及格的学生的学号、姓名、专业、班级。 可以使用以下SELECT语句从学生成绩(XSCJ)表中返回有一门或以上功
课不及格的学生的学号:
SELECT 学号 FROM XSCJ WHERE 成绩<60 GROUP BY 学号 HAVING COUNT(*)>=1
因以上SQL语句返回的记录数可能多于一个,因此在子查询中需使用IN关键字,实现语句为:
SELECT 学号,姓名,专业,班级 FROM XSQK WHERE 学号 IN ( SELECT 学号 FROM XSCJ WHERE 成绩<60 GROUP BY 学号 HAVING COUNT(*)>=1)
其实现步骤为:
(1)在“查询编辑框”窗口中输入如下SQL语句。
SELECT 学号,姓名,专业,班级 FROM XSQK WHERE 学号 IN ( SELECT 学号 FROM XSCJ WHERE 成绩<60 GROUP BY 学号 HAVING COUNT(*)>=1)
(2)单击工具栏上的查询按钮执行上述SQL语句。语句执行后,在结果显示窗格中显示有一门或以上功课不及格的学生的学号、姓名、专业、班级,如图6.7所示。
图6.7
五、 项目
XS_KC数据库中相关表如下: XSCJ(学号,课程号,成绩,学分)
XSKC(课程号,课程名,开课学期,学时,学分)
XSQK(系别,班级,专业,学号,姓名,性别,出生年月,总学分,备注) 1、查询学生成绩表(XSCJ)中的所有信息
2、显示学生情况表中(XSQK)的姓名,性别,班级,学号
3、查询所有学生的年龄(用YEAR(出生年月)可求能相应出生年份) 4、显示学生成绩表(XSCJ)中学号,课程号,成绩,并将成绩列列名显示
为“考试成绩”
5、查询学生成绩表(XSCJ)中成绩在60分以上的信息
6、查询学生情况表中(XSQK)中总学分在10分以上的学生的姓名,学号,
班级
7、查询学生课程表(XSKC)表中数据结构课程的学分和学时 8、查询学生情况表中(XSQK)中姓“张”的学生的姓名和班级
9、查询学生情况表中(XSQK)中出生年月在1980-01-01后或系别为计算 机的学生的信息
10、查询数据结构这门课的考试成绩,要求显示学号,课程名,成绩并按成 绩进行排序
11、查询每个学生的平均成绩 12、查询每学期开设课程的总学分 13、统计每个班的学生人数
14、查询王玲玲同学所学课程的总成绩和平均成绩 15、查询开课学期为2的课程学生考试的成绩 六、 思考题
(一) SELECT中的WHERE子句中可以使用哪几种条件?
(二) GROUP BY子句的作用是什么?HAVING子句和WHERE子句中的条件有何不同?
正在阅读:
T-SQL程序设计09-24
北师大版四年级上册语文期末试卷53附答案01-04
《商山早行》公开课教案11-17
2、2012黄加忠在全市办公室培训班开班仪式上的讲话10-21
新闻组8 4()06-23
工程移交证书定稿12-16
手机拍照知识大普及03-06
2019-2025年中国休闲服装行业深度调研与行业发展趋势报告(定制版)目录12-25
实验三 - 算符优先分析算法的设计与实现11-10
- 供应商绩效评价考核程序
- 美国加州水资源开发管理历史与现状的启示
- 供应商主数据最终用户培训教材
- 交通安全科普体验教室施工方案
- 井架安装顺序
- 会员积分制度
- 互联网对美容连锁企业的推动作用
- 互联网发展先驱聚首香港
- 公司文档管理规则
- 机电一体化系统设计基础作业、、、参考答案
- 如何选择BI可视化工具
- 互联网产品经理必备文档技巧
- 居家装修风水的布置_家庭风水布局详解
- 全省基础教育信息化应用与发展情况调查问卷
- 中国石油--计算机网络应用基础第三阶段在线作业
- 【知识管理专题系列之五十八】知识管理中如何实现“场景化协同”
- 网络推广方案
- 中国石油--计算机网络应用基础第二阶段在线作业
- 汽车检测与维修技术专业人才培养方案
- 详解胎儿颈透明层
- 程序设计
- SQL
- 学生交通安全承诺书
- 调车组复习题-hu
- 天地协竞赛题 - 图文
- 2009年一级建造师考试建设工程经济预测试题及答案
- 企业绩效管理存在的问题及对策
- 第三部分(湖南省建设工程计价办法及有关工程消耗量标准统一解释汇总及勘误(第2辑))
- 2015-2020年中国月子中心行业市场分析及投资趋势研究报告 - 图文
- 基于busybox制作mini2440根文件系统及使用nfs挂载 - 图文
- 10个最疯狂背单词的方法,不信你试试
- 企业安全生产自查表
- 第五章 受弯构件正截面承载力答案
- 大工13春成本会计在线作业1
- 表面工程学实验指导书
- 企业安全检查的分类及方法 docx
- 苏州农业职业技术学院2014年文化育人工作实施方案 修改
- 2015版导与练二轮专题复习检测题—常见等值线的判读与应用
- 2011语文一轮实效课时学案:名篇名句
- 学年论文范文:“美”“乐”合一,水涨船高? - 国美收购永乐对股东财富影响的案例研究
- 深圳杯数学建模夏令营题目
- 井架物料提升机施工方案