365文库
登录
注册
2

实验4 数据查询

120阅读 | 4收藏 | 8页 | 打印 | 举报 | 认领 | 下载提示 | 分享:
2
实验4   数据查询第1页
实验4   数据查询第2页
实验4   数据查询第3页
实验4   数据查询第4页
实验4   数据查询第5页
实验4   数据查询第6页
实验4   数据查询第7页
实验4   数据查询第8页
福利来袭,限时免费在线编辑
转Pdf
right
1/8
right
下载我编辑的
下载原始文档
收藏 收藏
搜索
下载二维码
App功能展示
海量免费资源 海量免费资源
文档在线修改 文档在线修改
图片转文字 图片转文字
限时免广告 限时免广告
多端同步存储 多端同步存储
格式轻松转换 格式轻松转换
用户头像
我想去的地方 上传于:2024-06-20
实验3 数据查询 目的和要求 1.      了解查询的概念和方法; 2.      掌握查询分析器的使用方法; 3.      掌握SELECT语句在单表查询中的应用; 4.      掌握复杂查询的使用方法; 5.      掌握多表连接的方法; 6.      掌握SELECT语句在多表查询中的应用。 内容和步骤 一、单表查询 1.简单查询 打开查询分析器,从teacher表中分别检索出教师的所有信息,以及仅查询教工号、姓名和职称。语句及查询结果如图4.1所示: select * from teacher select 教工号,姓名 from teacher  如要查询时改变列标题的显示,则从teacher表中分别检索出教师教工号、姓名、家庭住址信息并分别加上‘教师姓名’、‘教工号’、‘家庭住址’等标题信息,语句及查询结果如下:  使用TOP关键字:分别从teacher中检索出前2条及前面67%的教师的信息。语句及查询结果如下: select top 2 * from teacher select top 67 percent * from teacher  使用DISTINCT关键字:从teacher表中检索出教师的职称并且要求显示的职称不重复。语句及查询结果如下: select distinct 职称 from teacher  6.用计算列:将teacher表中各教师的姓名、教工号及工资按95%发放的信息,第2条语句将工资按95%发放后列名该为‘预发工资’。语句如下: select 教工号,姓名,工资*0.95 from teacher select 教工号,姓名,工资*0.95 AS 预发工资 from teacher  7.使用ORDER BY子句对查询的结果进行排序 使用ORDER BY语句可以对查询的结果进行排序,ASC、DESC分别是升序和降序排列的关键字,系统默认的是升序排列。从teacher表中查询工资大于2800的教师的教工号、姓名,并按升序排列,语句及查询结果如下: select 教工号,姓名 from teacher where 工资>2800 order by 工资 ASC  2.条件查询 ⑴ 使用关系运算符:从teacher表中查询出教工号小于2130的教师资料,语句如下: select * from teacher where 教工号<2130 ⑵ 使用BETWEEN AND谓词:从teacher表中查询出教工号界于2100和2130之间的教师资料,语句如下: select * from teacher where 教工号 between 2100 and 2130 ⑶ 使用IN谓词:从teacher表中查询出职称为“教授”或“副教授”的教师的教工号、教师姓名、职称及家庭住址,语句如下: select 教工号,姓名,家庭住址,职称 from teacher where 职称 in ('教授','副教授') ⑷ 使用LIKE谓词:从teacher表中分别检索出姓伍的教师的资料,或者姓名的第2个字是寿或立的教师的资料,语句如下: select * from teacher where 姓名 like '伍%' select * from teacher where 姓名 like '_[寿,立]%'      二、多表查询 数据库各表中存放着不同的数据,用户经常需要用多个表中的数据来组合提炼出所需要的信息,如果一个查询需要对多个表进行操作,就称为关联查询,关联查询的结果集或结果表称为表之间的连接。关联查询实际上是通过各各表之间共同列的关联来查询数据的,它是关系数据库查询最基本的特征。 按照下表所示,分别在数据库test中构造student、course和student_course三张表,并写入记录。 Student表 列名称 类型 宽度 允许为空 缺省值 主键 学号 Char 8 否   是 学生姓名 Nvarchar 8 否     性别 Bit   否     出生年月 Smalldatetime   否     班级号 Char 6 否     入学时间 Smalldatetime   否     家庭住址 Nvarchar 40 是     Course表: 列名称 类型 宽度 允许为空 缺省值 主键 课程号 char 10 否   是 课程名称 Nvarchar 20 否     书标识 Char 13 否     课程总学时 Tinyint   是     周学时 Tinyint   是     课程学分 Tinyint   是     Student_course表 列名称 类型 宽度 允许为空 缺省值 主键 Sno Char 10 否   是 Cno Char 8 否   是 Grade Tinyint   否       1.SQL 2000兼容2种连接形式:用于FROM子句的ANSI连接语法和用于WHERE子句的SQL SERVER连接语法形式。 从student、course和student_course三张表中检索学生的学号、姓名、学习课程号、学习课程名及课程成绩,语句如下: select student.学号,student_course.学生姓名,student_course.课程号,course.课程名,student_course.成绩 from student, student_course,course where student.学号=student_course.学号  and course.课程号=student_course.课程号   2.使用UNION子句进行查询 使用UNION子句可以将一个或者多个表的某些数据类型相同的列显示在同一列上。如从teacher表中列出教工号、姓名并从student表中列出学号及学生姓名,语句及查询结果如下: select 学号 AS 代码,学生姓名 AS 姓名 from student union select 教工号,姓名 from teacher  3.用GROUP子句进行查询 如果要在数据检索时对表中数据按照一定条件进行分组汇总或求平均值,就要在SELECT语句中与GROUP BY子句一起使用集合函数。使用GROUP BY子句进行数据检索可得到数据分类的汇总统计、平均值或其他统计信息。 ⑴ 使用
tj