实验6 数据查询 一、实验目的 1、掌握select语句及其各子句的语法; 2、掌握数学函数、字符函数及日期时间函数的应用; 3、熟练使用各种常用运算符。 二、实验内容 1、单表查询 2、多表查询 3、条件查询 4、排序、分组、计算 三、实验步骤 说明: (1)下列操作均在student数据库中进行。请先附加数据库student。 (2)SQL命令请写入实验报告的实验步骤处。 1、单表查询 (1)以“学生表”为数据源,输出学号、姓名列。 USE student SELECT 学号,姓名 FROM 学生表 (2)输出每个学生的学号,姓名,年龄。 select 学号,姓名,YEAR(GETdate())-year(出生日期) AS年龄 FROM学生表 (3)查询“学生表”中的学生姓氏有几个?(提示:使用distinct) SELECT distinct left(姓名,1) as 姓氏 FROM 学生表 2、多表查询 (1)以“学生表”、“成绩表”为数据源,查询学生的姓名、成绩。 SELECT 姓名,成绩 from 学生表,成绩表 where 学生表.学号=成绩表.学号 (2)以“学生表”、“课程表”、“成绩表”为数据源,查询学生的学号、姓名、课程名称、成绩。 SELECT 学生表.学号,姓名,课程名称,成绩 from 学生表,课程表,成绩表 where 学生表.学号=成绩表.学号 and 课程表.课程号=成绩表.课程号 3、条件查询 (1)查询身高大于160的女生,输出他们学号,课程名称和成绩。 select 学生表.学号,课程名称,成绩 from 学生表,课程表,成绩表 where 学生表.学号=成绩表.学号 and 课程表.课程号=成绩表.课程号 and 身高>160 and 性别= '女' (2)查询身高在180到200之间的学生。 select * from 学生表 where 身高 between 180 and 200 (3)查询不在1979-1980年这个时间段出生的同学,输出他们的姓名,出生日期。 select 姓名,出生日期 from 学生表 where 出生日期 not between 1979 and 1980 (4)查询2月或8月出生的同学,显示姓名、出生日期两列。 select 姓名,出生日期 from 学生表 where month(出生日期)=2 or month(出生日期)=8 (5)在学生基本情况表中查找姓“李”的名字为单名的学生的学号和姓名 select 姓名,学号 from 学生表 where 姓名 like '李%'。 (6)查询不姓“孙”也不姓“李”的同学,输出他们的姓名、班级号。 select 姓名,班级号 from 学生表 where 姓名 not like'[李孙]%' (7)查询成绩不是80也不是90分的所有信息。 select * from 成绩表,学生表,课程表 where 成绩 not like'80 and 90' (8)查找出生日期未知的学生的学号、姓名。 select 学号,姓名 from 学生表 where 出生日期 is null 4、排序 (1)显示学号,姓名,身高,出生日期四列,按身高的升序进行排序,若身高相同,则按出生日期的降序排序。 select * from 学生表 order by 身高 ,出生日期 desc (2)创建查询,显示学号、姓名、成绩列。按“学号”列升序排序,学号相同的情况下,再按“成绩”列降序排序。 select 学生表.学号,姓名,成绩 from 学生表,成绩表 order by 学生表.学号 ,成绩 desc (3)查询身高最高的前3名同学。 SELECT TOP 3 * FROM 学生表 ORDER BY 身高 desc (4)查询成绩最高的前3名同学,显示他们的学号和成绩。 SELECT TOP 3 * FROM 成绩表 ORDER BY 学号 desc,成绩 ASC (5)查询年龄最大的5名同学,显示他们的姓名和出生日期。 SELECT TOP 3 姓名,出生日期 FROM 学生表 ORDER BY 出生日期 ASC 5、分组与计算 (1)查找男女人数,显示性别、人数两列。 (2)求各班的平均身高,显示班级号及统计数据。 (3)查询每个同学的平均分,显示学号、姓名、平均分三列。 本文来源:https://www.wddqw.com/doc/4f1f83b5af51f01dc281e53a580216fc700a53b4.html