实验七 简单SELECT语句

时间:2024.5.14

实验七 简单SELECT语句

一. 实验目的

1.观察查询结果, 体会SELECT语句实际应用;

2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。

3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

二. 实验准备

1. 完成实验四,成功建立了基本表。

2. 了解简单SELECT语句的用法。

3. 比较熟悉查询分析器中的SQL脚本运行环境。

三. 实验要求

1.完成简单查询和连接查询操作,并验收实验结果提交实验报告

四. 实验内容

所有的查询全部用Transact-SQL语句实现

1. 简单查询操作

此部分查询包括投影、选择条件表达、数据排序、使用临时表等。 对EDUC数据库实现以下查询:

① 求计算机系的学生学号和姓名;

select sname,sno

from student

where dno in(Cs);

② 求选修了课程的学生学号;

select sno

from student;

③ 求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;

Select sno,grade

From student_course

Where cno=C1

Order BY grade EDSC

If grade is the sname

Order BY sno ASC

④ 求选修课程C1 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;

Select sno,grade

From student_course

Where cno=’1’and 80<grade<90

Having count 0.75 grade;

④ 求计算机系和数学系的姓张的学生的信息;

Select *

From student

Where sname like ‘张%’and dno=’CS’and ‘MA’;

⑤ 求缺少了成绩的学生的学号和课程号。

Select sno,cno

From student_course

Where grade is null;

⑥ 将2000以后的成绩大于90分的学生成绩存入永久成绩表;将2000

年以前的成绩存入临时成绩表中。

2. 连接查询操作

对EDUC数据库实现以下查询:

① 查询每个学生的情况以及他(她)所选修的课程;

Select *

From student,student_course,course

Where student.sno=student_course.sno and

course.cno=o

② 求学生的学号、姓名、选修的课程名及成绩;

Select sno,sname,cname,grade

From stuent,course,student_course

Where student .sno=student.sno and

course.cno=student_course.cno

③ 求选修C1 课程且成绩在90 分以上的学生学号、姓名及成绩; Select sno,sname.grade

From student student_course

Where sc.sno=student.sno snd

Sc.cno=’1’and sc.grade>90;

④ 查询每一门课的间接先行课。


第二篇:实验六 SELECT语句对单一表格的查询


实验六SELECT语句对单一表格的查询

一、        实验目的

掌握使用SELECT语句对单一表格的查询方法。

二、        实验内容

1.                                查询Stu_Info Table中关于学生姓名、学号、年龄及其各种组合结果。

2.                                利用TOP关键字、计算列查询Stu_Info Table中的学生信息。

三、        实验指导

更新Stu_Info Table的内容如下图所示:

图6-1 Stu_Info Table

1.                                基础查询

 (1) 查询全体学生的详细信息

SELECT *

FROM dbo.[Stu_Info Table]

(2) 查询全体学生的学号和姓名

SELECT Number,Name

FROM dbo.[Stu_Info Table]

(3) 查询年纪为19的学生信息

SELECT *

FROM dbo.[Stu_Info Table]

WHERE Age=19

(4) 查询年纪为12的学生姓名

SELECT Name

FROM dbo.[Stu_Info Table]

WHERE Age=12

(5) 查询年纪在19至20岁之间的学生姓名

SELECT Name

FROM dbo.[Stu_Info Table]

WHERE  Age >= 19  AND  Age <= 20

或SELECT Name

FROM dbo.[Stu_Info Table]

WHERE AGE BETWEEN 18 AND 20

(6) 列出所有学生年纪的和,年纪的平均值,最大值,最小值,最大值与最小值之间的差值

SELECT AVG (Age), SUM (Age), MAX (Age), MIN (Age), MAX (Age)-MIN (Age)

FROM dbo.[Stu_Info Table]

(7) 将所有学生按学号顺序从大到小排列

SELECT *

FROM Stu_Info Table

ORDER  BY  Number  DESC

默认是从小到大ASC

(8) 计算记录的数量

SELECT COUNT(*)

FROM dbo.[Stu_Info Table]

(9) 计算某个字段的个数

SELECT COUNT(Age)

FROM dbo.[Stu_Info Table]

(10) 显示不重复的字段

SELECT DISTINCT Age

FROM dbo.[Stu_Info Table]

(11) 在表S中查询姓李的学生信息。

SELECT *

FROM dbo.[Stu_Info Table]

WHERE Name 

LIKE '李%'

(12)在Stu_Info Table中检索年龄为空值的学生的姓名。

SELECT Name

FROM dbo.[Stu_Info Table]

WHERE Age IS NULL

(13)在S中检索年龄为18或19的学生。

SELECT *

FROM dbo.[Stu_Info Table]

WHERE Age IN (18, 19)

SELECT *

FROM dbo.[Stu_Info Table]

WHERE Age =18 OR Age =19

2.                                TOP关键字

TOP关键字:用来指定只返回前面一定数量的数据。

语法:TOP integer 返回前面的几行,用integer 表示返回的行数。

          TOP integer PERCENT 用百分比表示返回的行数。

有如下数据库表:

图6-2 Stu_Info Table

(1)年龄排在前2位的学生信息

SELECT TOP 2 *

FROM dbo.[Stu_Info Table]

ORDER BY Age

(2)年龄排在前25%的学生信息

SELECT TOP 25 PERCENT *

FROM dbo.[Stu_Info Table]

ORDER BY Age

3.                                计算列的使用

计算列:对查询到的数据进行再次的计算处理。

注:计算列只作显示用,并不将计算结果真正存储到数据库中去。

Stu_Grade Table如下图6-3所示:

图6-3 Stu_Grade Table

将每位同学的成绩加4分处理显示的结果如下:

图6-4 分数+4处理

或者输入:

SELECT *,分数处理=Grade + 4

FROM dbo.[ Stu_Grade Table]

但这个语句会被自动优化成前一种。

四、        上机练习(给出适当的截图和程序)

建立一个班级数据库:学生 STUDENT  (学号,姓名,年龄,班号)
 1 、 建表,在定义中要求声明:(使用T-SQL语句或者管理平台)
( 1 )学生的年龄介于 15 到 40 岁之间。
( 2 )学生姓名不能为空。

2、插入12条记录:(使用T-SQL语句或者管理平台)

表格:stuinfo
    8101 ,张三, 18 , 101 ;    

8102 ,钱四, 16 , 121 ;
    8103 ,王玲, 17 , 131 ;

  8105 ,李飞, 19 , 102 ;
    8109 ,赵四, 18 , 141 ;

  8110 ,李可, 20 , 142 ;
    8201 ,张飞, 18 , 111 ;

  8302 ,周瑜, 16 , 112 ;
    8203 ,王亮, 17 , 111 ;

  8305 ,董庆, 19 , 102 ;

   8409 ,赵龙, 18 , 101 ;

  8510 ,李丽, 20 , 142  ;

3、完成以下查询功能(全部使用T-SQL语句,报告上给出程序和查询的结果图)

(1)    找出班号为‘111’的学生姓名。

(2)    找出年龄为16、18、20岁的学生。

(3)    列出所有学生年纪的和,年纪的平均值,最大值,最小值,最大值与最小值之间的差值;

(4)  计算‘102’班的学生人数。

(5)  找出年纪最大的同学的信息。

(6) 找出所有姓李的学生信息,并按其年龄由小到大排序。

(7) 统计不姓‘李’的学生的人数。

(8) 对每个人的年龄做+1处理。

、stuinfo   bottom          

更多相关推荐:
关于简单的名言

关于简单的名言1最伟大的真理最简单同样最简单的人也最伟大黑尔2最伟大的人仅仅因为简单才显得崇高丁尼生3世上本无事庸人自扰之孔子4任何事物都不及伟大那样简单事实上能够简单便是伟大爱默生5人生往往是复杂的使复杂的人...

简短的励志名言名句

简短的励志名言名句在你不害怕的时间去斗牛这不算什么在你害怕时不去斗牛也没有什么了不起只有在你害怕时还去斗牛才是真正了不起再长的路一步步也能走完再短的路不迈开双脚也无法到达有志者自有千计万计无志者只感千难万难不大...

名言警句-简单复杂篇

名言警句简单复杂篇简单的事情考虑得很复杂可以发现新领域把复杂的现象看得很简单可以发现新规律牛顿人生往往是复杂的使复杂的人生简单化除了暴力就别无他法芥川龙之介任何事物都不及伟大那样简单事实上能够简单便是伟大爱默生...

1简单 名人名言

简单名人名言1每个人都是自己的命运建筑师沙拉斯特2生活是锻灵魂的妙方勃朗宁3怎样思想就有怎样的生活爱默生4面对光明阴影就在我们身後海伦凯勒5幸运是机会的影子苏格拉底6信心是命运的主宰海伦凯勒7书是唯一不死的东西...

简单50条英语名言警句(中英文对照)

简单50条英语名言警句中英文对照1Allthingsintheirbeingaregoodforsomething天生我才必有用2Difficultcircumstancesserveasatextbookof...

简单句子

简单句子1Yousaidit你说对了2It39suptoyou你决定好了3Itsureis那当然是4AsforasIknow据我所知5Wellyoucanmakeitup你可以补上6Itisnobigdeal这...

简单英语名言警句

简单英语名言警句Wherethereisawillthereisaway有志者事竟成Wellbegunishalfdone好的开端是成功的一半Eastwesthomeisbest金窝银窝不如自己的草窝There...

sql简单语句入门

数据类型1BinaryintegryNaturalnaturalnpositivepositivensigntype2numberDecdecimaldoubleprecisionfloatintegerint...

几个简单的基本的sql语句

几个简单的基本的sql语句1数据记录筛选sqlquotselectfrom数据表where字段名字段值orderby字段名descquotsqlquotselectfrom数据表where字段名like39字段...

SQL简单语句

创建数据库创建之前判断该数据库是否存在ifexistsselectfromsysdatabaseswherename39databaseName39dropdatabasedatabaseNamegoCreat...

赞美别人的简单句子

赞美别人的简单句子1Youaresomethingelse你真是出类拔萃2Youareoutofsight你真优秀3Yourule你太牛了4YoulookgreatHaveyoubeenworkingout你气...

【原创】最简单的SQL语句

67SQL最好的汽车手自一体最好的系统手自一体最好的程序员不但善于运用框架平台中现有的技术减少开发工作量提升系统稳定性同时当框架平台无法满足需求时还会用Notepad写代码手工写SQL命令行下的基本调试一基本D...

简单名句(36篇)