实验三单表查询实验报告
- 格式:doc
- 大小:167.11 KB
- 文档页数:8
实验三1-3为投影查询1. 查询student表中所有记录的sname、ssex和sclass列use schoolselect sname,ssex,sclassfrom student----------------------------------- 2. 查询教师所在的单位(不重复)select distinct tdepfrom teacher----------------------------------- 3. 查询student表的所有记录select *from student或者是select sno as '学号',sname as '姓名',ssex as '性别',sbirthday as '出生年月',sclass as '所在班级'from student-----------------------------------4-8为选择查询4. 查询score表中成绩在~之间的所有记录select *from scorewhere degree between 60 and 80----------------------------------- 5. 查询score表中成绩为、或的记录select *from scorewhere degree=85 or degree=86 ordegree=88或者是select *from scorewhere degree in(85,86,88)----------------------------------- 6. 查询student表中“信管”班或性别为“女”的学生记录select *from studentwhere sclass='信管' or ssex='女'----------------------------------- 7. 以sclass降序查询student表中的所有记录select *from studentorder by sclass desc---------------------------------- 8. 以cno升序、degree降序查询score表的所有记录select *from scoreorder by cno,degree desc----------------------------------- 9-13为聚合函数9. 查询“信管”班的学生人数select count(*) as '信管班人数'from studentwhere sclass='信管'----------------------------------- 10.查询score表中的最高分的学生的学号、课程号和成绩select sno as '学号',cno as '课程号',degree as '最高分'from scorewhere degree=(select max(degree) from score)----------------------------------- 11.查询编号是“080305”的课程的平均分select avg(degree) as '课程平均分' from scorewhere cno='080305'----------------------------------- 12.查询score表中至少有名学生选修并以0开头的课程号的平均分select cno,avg(degree) as '平均分' from scorewhere cno like '0%'group by cnohaving count(*)>5----------------------------------- 13.查询最低分大于,最高分小于的学号select snofrom scoregroup by snohaving min(degree)>70 and max(degree)<90-----------------------------------14 -19为连接查询14.查询所有学生的sname、cno和degree(等值连接)Selectstudent.sname,o,score.degree from student,scorewhere student.sno=score.sno------------------------------------- 15.查询所有学生的sno、cname和degree(等值连接)select x.sno,ame,x.degreefrom score x,course ywhere o=o或者是selectscore.sno,ame,score.degree from score,coursewhere o=o------------------------------------- 16.查询“信管”班所选课程的平均分(等值连接) select o,avg(degree) as '平均分' from student x,score ywhere x.sno=y.sno and x.sclass='信管' group by o------------------------------------- 17.使用下列命令建立一个grade表,并查询所有学生的sno、cno和rank(非等值连接)create table grade(low int,upp int,rank char(1))insert grade values(90,100,'A')insert grade values(80,89,'B')insert grade values(70,79,'C')insert grade values(60,69,'D')insert grade values(0,59,'E')select sno,cno,rankfrom score,gradewhere degree between low and upporder by rank------------------------------------ 18.查询选“080301”课程的成绩高于“080107”号学生成绩的所有学生成绩记录,并按成绩降序排(自连接)select o,x.sno,x.degreefrom score x,score ywhere o='080301' andx.degree>y.degree and y.sno='080107' and o='080301'order by x.degree desc或者是select cno,sno,degreefrom scorewhere cno='080301' and degree>(select degree from score where sno='080107'and cno='080301')-----------------------------------。
数据库原理实验报告实验三数据查询班级:×××姓名:×××学号:×××数据查询一、[实验目的]1.掌握SQL的单表查询操作2.掌握SQL的连接查询操作3.掌握SQL的嵌套查询操作4.掌握SQL的集合查询操作二、[实验内容]本实验的主要内容是:1.简单查询操作。
包括投影、选择条件表达,数据排序,使用临时表等。
2.连接查询操作。
包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
4.组合查询与统计查询。
(1)分组查询实验。
该实验包括分组条件表达、选择组条件的表达方法。
(2)使用函数查询的实验。
该实验包括统计函数和分组统计函数的使用方法。
(3)组合查询实验。
(4)计算和分组计算查询的实验。
三、[实验方法]1.将查询需求用Transact-SQL语言表示。
2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。
3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。
4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。
5查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。
查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。
图5- 错误!未定义书签。
SQL Server 2000查询分析器查询分析器的界面如图5- 错误!未定义书签。
所示。
在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果。
SQL数据的查询和更新实验报告报告实验三、SQL的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
使用DISTINCT保留字消除重复行。
对查询结果排序和分组。
集合分组使用集函数进行各项统计。
连接查询笛卡儿连接和等值连接。
自连接。
外连接复合条件连接。
多表连接。
嵌套查询通过实验验证对子查询的两个限制条件。
体会相关子查询和不相关子查询的不同。
考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况集合运算使用保留字UNION进行集合或运算。
采用逻辑运算符AND或OR来实现集合交和减运算。
3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。
在表Reports中保存学生的选课记录和考试成绩。
1请先输入如下元组,再对数据库进行有关的查询操作:图、Students表图、Teachers表图、Courses表图、Reports表2查询性别为“男”的所有学生的名称并按学号升序排列。
查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。
考试成绩>=60。
查询学分是3或4的课程的名称。
查询所有课程名称中含有“算法”的课程编号。
查询所有选课记录的课程号。
统计所有老师的平均工资。
实验3 使用T-SQL语言完成单表查询一、实验目的掌握使用T—SQL语言完成单表查询掌握常用谓词的用法掌握where子句的用法掌握order by 子句的用法掌握group by 子句和having短语的用法二、实验环境Microsoft SQL Server 2000。
三、实验内容和要求1.查询全体学生的详细信息。
2.查询所有课程的详细信息.3.查询所有选课记录的详细信息,要结果表中的列名以中文的形式显示,分别为:学号,课程号,成绩。
4.查询已被学生选修了的课程的编号。
5.查询系别编号为“d002”的学生的姓名和性别。
6.查询年龄在19至21岁或者性别为“女”的学生的学号和所在系别编号。
7.查询系别编号为d001、d002和d003的学生的学号和姓名。
8.查询课程名为“C_”开头的课程名和学分.9.某些学生入学后还没有确定所在的系,查询还没有确定系的学生的姓名。
10.查询成绩大于60分的学生的学号、课程号和成绩,并将查询结果按课程编号升序排列,同一课程的成绩按分数降序排列。
11.查询学校所开设的总的课程数.12.计算2号课的学生成绩总和以及平均成绩,对应的列名分别为“总成绩”和“平均成绩”。
13.查询选修了3号课程的学生的最高分和最低分,对应的列名分别为“最高分”和“最低分"。
14.求各个系别的编号以及各系的人数。
15.查询选课人数大于等于2人的课程编号以及选课的人数。
16.查询学生200215122选修课程的总成绩对应的列名为“总成绩”,并显示出学号。
17.查询有2门以上课程是80分以上的学生的学号及课程数。
18.查询选修了1号课的学生的学号和成绩,结果按成绩降序、学号升序排列.实验1 使用T-SQL语言建库、建表实验2 向表中增、删、改数据四、实验目的掌握使用T-SQL建库、建表、修改表;掌握使用T-SQL对表中数据进行插入、删除和修改.五、实验环境Microsoft SQL Server 2000.六、实验内容和要求19.建立数据库STDB20.在数据库STDB中建立四个表:Student表Department表Course表21.分别向以上四个表中增加数据。
实验三数据库的查询一、目的与要求1、掌握数据库对象的操作过程,包括创建、修改、删除2、熟悉表的各种操作,包括插入、修改、删除、查询3、熟练掌握常用SQL 语句的基本语法,加深对SQL和Transact-SQL语言的查询语句的理解。
二、实验设备与环境使用SQL Server 数据库管理系统提供的SSMS 和查询编辑器。
三、实验内容1、创建教材P82中的学生-课程数据库,并创建相应的数据表及完整性约束。
(需要在表中添加相应的记录(10条以上),请自行设计)2、在定义的“学生-课程数据库”中,使用T-SQL语句完成以下查询:(1)求计算机系(CS)学生的学号和姓名。
(2)求选修了数学的学生学号、姓名和成绩。
(3)求选修1号课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学生的学号。
(5)查询计算机系的姓刘且单名的学生的信息。
(6)查询至少选修两门课程的学生学号。
(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
(8)查询选修“数据库”课程,且成绩在80分以上的学生的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别用exists和in完成该查询)(10)查询选修了全部课程的学生的姓名。
(请至少写出两种查询语句)(11)求选修了学生“200215121”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张立”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:07173姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。
2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。
3、熟练掌握备份和还原数据库。
二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。
《数据库系统概论》实验报告实验名称:单表查询实验人:实验地点:实验楼317实验日期:2009-10-5一、实验准备1.硬件及软件环境要求为了使该实验顺利进行,需要有一台计算机,计算机必须安装Windows 2000、Windows XP或Windows NT操作系统,还必须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)。
实验开始之前,必须将实验1.2节中创建好的SCDB数据库和ShiYan数据库附加到当前SQL数据库服务器中。
2.本实验涉及的主要SQL语句的语法格式(1) SELECT子句指定由查询返回的列。
SELECT [ ALL | DISTINCT ][ TOP n [ PERCENT ] [ WITH TIES ] ]< select_list >< select_list > ::={ * |{table_name|view_name|table_alias}.*|{column_name|expression|IDENTITYCOL|ROWGUIDCOL}[[AS]column_alias] | column_alias = expression } [ ,...n ]【说明】ALL:默认设置,指定在查询结果集中可以显示重复行。
DISTINCT:指定在查询结果集中不显示重复行,空值被认为相等。
TOP n:指定只从查询结果集中输出前n行。
PERCENT:指定只从查询结果集中输出前n%行,当指定时带PERCENT,则n 的值必须介于0~100之间。
WITH TIES:指定从基本查询结果集中返回附加的行。
如果使用了ORDER BY 子句,则只能使用TOP或WITH TIES选项。
select_list:指定查询列或列表达式(即查询列表)。
各查询列表之间以逗号分隔。
*:指定在FROM 子句内返回所有表和视图内的所有列。
列按FROM 子句所指定的由表或视图返回,并按它们在表或视图中的顺序返回。
最新国家开放大学电大《数据库应用技术》实验实验目的:通过使用SSMS工具,练习对数据库中的数据表进行单表查询、多表连接查询、子查询。
对数据表中的数据进行更改和删除等操作。
实验要求:将相关的SQL 语句和运行结果的截屏保存在文件中,或填写在下面的实验报告中,并通过网络提交。
实验内容:使用SSMS工具,在“可用数据库”中选中Students数据库,完成如下实验。
1.单表查询。
写出实现如下查询的SQL语句。
(1) 查询学生选课表中的全部数据。
(2) 查询计算机系的学生的姓名、年龄。
(3) 查询成绩在70~80分的学生的学号、课程号和成绩。
(4) 查询计算机系年龄在18~20岁男生的姓名、年龄。
(5) 查询C001课程的考试成绩最高分。
(6) 查询计算机系学生的最大年龄和最小年龄。
(7) 统计各系的学生人数。
(8) 统计每门课程的选课人数和考试成绩最高分。
(9) 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
(10)查询总成绩超过200分的学生,要求列出其学号和总成绩。
(11)查询选课门数超过2门的学生的学号、平均成绩和选课门数。
2.多表连接查询。
写出实现如下查询的SQL语句。
(12) 查询选了C002课程的学生的姓名和所在系。
(13) 查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。
(14) 查询计算机系男生选修了“数据库基础”的学生的姓名和成绩。
(15) 查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。
(16) 查询哪些课程没有人选修,要求列出课程号和课程名。
(17) 查询计算机系没有选课的学生,列出学生的姓名。
3.使用TOP和CASE的查询。
写出实现如下查询的SQL语句。
(18) 列出“数据库基础”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。
(19) 查询Java考试成绩最低的学生的姓名、所在系和Java成绩。
实验三表的基本操作一、实验目的1.掌握表建立的方法以及修改表结构的方法。
2.掌握表中数据输入的方法。
3.掌握记录指针的移动方法。
4.掌握表的基本操作:追加、插入、修改、显示、删除和恢复记录。
5.掌握表中的数据访问控制方式。
6.掌握表的排序和索引及使用。
7.掌握多个工作区和多表的操作方法。
二、实验内容和步骤1.创建自由表。
(1)创建学生情况表(xsqk.dbf)表结构如下:①在D盘创建自己学号后两位和姓名的文件夹,选择“工具/选项/文件位置”把该文件夹设为VFP的默认工作目录。
②选择“文件/新建/表/新建文件”,在“创建”对话框中的输入表名文本框输入“xsqk”,单击“保存”按钮。
③进入图1所示的表设计器,依次设置表的所有字段名字、类型、宽度和小数位数。
最后单击“确定”按钮。
④系统提示现在录入记录吗,单击“是”,录入下面两条记录。
⑤录入两条记录完毕,选择“显示/浏览…”命令查看录入的两条记录。
⑥选择“显示/追加方式”命令,继续输入以下三条记录。
⑦ 选择“显示/表设计器”命令,或在命令窗口输入“MODIFY STRUCTURE ”,打开表设计器,修改表结构,在性别后加一字段籍贯(c,20)。
(2)创建课程表(kc.dbf ) ① 表结构如下:② 表结构建立完毕,输入以下记录:(3)创建成绩表(cj.dbf ) ① 表结构如下:② 在表中输入以下记录:图1 表设计器2.打开表并查看表中记录。
(1)显示学生情况表(xsqk.dbf )中的记录。
菜单操作:①选择“文件/打开”命令,在打开对话框中把文件类型设为“表(*.dbf )”,如图2所示。
② 选定“xsqk.dbf ”,单击“确定”按钮,即打开xsqk表,观察主窗口中状态栏的变化。
③ 选择“显示/浏览…”命令,即可浏览查看xsqk 表中的记录。
命令法:① 打开表: USE xsqk ② 浏览记录:BROWSE ③ 关闭表:USE(2)用菜单操作和命令两种方法显示课程表(kc.dbf )中的记录。
沈阳工程学院
学生实验报告
(课程名称:数据库系统原理)实验题目:数据查询(一)
班级学号姓名
日期地点指导教师
一、实验目的
掌握SQL查询命令:主要针对单表查询。
二、实验环境
Oracle10g数据库系统。
三、实验内容与要求
使用Select命令完成下列数据查询。
简单查询:
⑴查询全体顾客的编号和姓名。
⑵查询全部商品的详细记录。
⑶查询顾客的姓名和出生年份。
⑷查询购买了商品的顾客的编号。
⑸查询职业(g_work)为“教师”的顾客的姓名。
⑹查询“沈阳市”年龄在20岁以下的顾客的编号和年龄。
⑺查询年龄在20—22岁的顾客的编号。
⑻查询“沈阳”、“大连”、“北京”的顾客信息。
⑼查询姓"王"的顾客的信息。
⑽查询购买商品编号为“0001”的顾客的编号和购买数量,结果按顾客编号升序,购买数量降序排列。
⑾查询顾客总人数。
⑿查询购买商品编号为“0001”的一次最高购买量。
⒀查询购买3次以上商品的顾客编号。
四、实验过程及结果分析
五、成绩评定
优良中及格不及格出勤
格式
内容
分析
总评
指导教师:
年月日。
最新实验三单表查询实验报告实验目的:本实验旨在通过实践操作,加深对数据库查询语言(SQL)中JOIN语句的理解,特别是掌握内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)的使用,并通过三个表的查询操作,提高解决复杂数据问题的能力。
实验环境:- 数据库管理系统:MySQL- 开发工具:MySQL Workbench- 操作系统:Windows 10实验内容:1. 首先,创建三个表:学生表(Students)、课程表(Courses)、成绩表(Scores)。
2. 在学生表中定义学生的基本信息,如学号、姓名、年龄等。
3. 在课程表中定义课程的基本信息,如课程号、课程名、学分等。
4. 在成绩表中记录学生的选课信息和成绩。
5. 使用INNER JOIN查询所有学生的姓名及其所选课程和成绩。
6. 使用LEFT JOIN查询所有学生的所有选课记录,包括未选课程的记录。
7. 使用RIGHT JOIN查询所有课程及选课学生的姓名和成绩。
实验步骤:1. 设计表结构:- 学生表(Students):学号(ID)、姓名(Name)、年龄(Age) - 课程表(Courses):课程号(CourseID)、课程名(CourseName)、学分(Credit)- 成绩表(Scores):学号(StudentID)、课程号(CourseID)、成绩(Score)2. 插入测试数据:- 向学生表、课程表和成绩表中插入适量的测试数据。
3. 执行查询操作:- 内连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsINNER JOIN Scores ON Students.ID = Scores.StudentIDINNER JOIN Courses ON Scores.CourseID = Courses.CourseID; ```- 左连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsLEFT JOIN Scores ON Students.ID = Scores.StudentIDLEFT JOIN Courses ON Scores.CourseID = Courses.CourseID; ```- 右连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsRIGHT JOIN Scores ON Students.ID = Scores.StudentIDRIGHT JOIN Courses ON Scores.CourseID = Courses.CourseID; ```实验结果:- 内连接查询结果显示了所有学生的姓名、所选课程和成绩。
嘉应学院计算机学院一、实验目的:通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。
二、实验原理数据库查询是数据库的核心操作。
SQL语言提供了SELECT语句进行数据库的查询。
SELECT[ALL|DISTINCT]<目标列表达式〉[,<目标列表达式〉]...FROM<表名或视图名〉[,<表名或视图名〉]...[WHERE<条件表达式>][GROUP BY<列名1〉[HA VING<条件表达式>]][ORDERBY<列名2〉[ASC|DESC]]三、实验内容和方法实验用的数据库:用实验三建立的数据库:School1. 投影查询(1) 查询SC表的sno的不重复记录。
(2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。
(3) 查询STUDENT表的前3条记录(top 3)。
3. 选择查询(1) 查询成绩在60-80之间的姓名、系名和成绩。
(2) 查询信息系和计算机系的姓名和成绩。
(3) 查询计算机系或女同学的记录。
(4) 查询李姓同学的记录。
(5) 查询计算机系女同学的记录。
4. 排序查询(1)查询STUDENT表的所有字段和记录按年龄由大到小排序。
(2)查询STUDENT表的所有字段和记录按年龄由小到大排序。
5. 结合统计函数(1) 查询SC表的最高分。
(2) 统计SC表95001学生的平均分。
(3)统计SC表各课程的最低分。
(4)查询超过平均分的学生姓名和系名。
(5)查询低于平均分的学生姓名、系名和课程名。
6.其他(1)查询其他系中比计算机系某一学生小的学生姓名和年龄。
(2)查询其他系中比计算机系所有学生年龄都小的学生姓名和年龄。
(3)查询每一门课的间接先修课(先修课的先修课)。
四、实验结论1、在聚集函数遇到空值时,除COUNT(*)外,都跳过空值而只处理非空值。
此外注意WHERE子句中是不能用聚集函数作为条件表达式的。
南昌大学实验报告---实验三查询学生姓名:丁金芝学号:6100511080 专业班级:管理科学与工程类112班实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验目的1.掌握select语句的基本语法2.了解select语句中各子句的作用和特点3.掌握select语句的统计函数的作用和用法4.掌握子查询的用法5.掌握连接查询的用法二、实验内容与结果(一).简单查询1.select 选择列--1、选择所有列(*),查询学生表中的所有纪录。
--2、选择特定列,查询学生表中全体学生的学号,姓名,性别。
--3、计算列,查询选课表中给每个学生加了20分后的所有课号和成绩末分数显示出来。
重复。
--6、限制返回行数--top n 关键字;只显示表中前面n条记录。
--top n percent 关键字;只显示前n%条记录。
--显示学生表中的前3条记录。
--显示学生表中的前3%条记录2 .where 子句--1、比较运算符:(1)查询分数<80分学生的学号、成绩、课号。
(2)查询学号001学生的情况。
--2、范围运算符:查询学生分数在70-80之间的学生的学号、课号。
(包括70分、80分)--3、列表运算符: (1)查询学号为'001' 、'005'、'007' 、'008'的学生学号。
(2)查询学生成绩不在60-70之间的学生的学号、课号、成绩。
--4、匹配运算符: (1)查询姓刘学生的信息。
(2)查询姓刘单名的学生信息。
(3)查询01-03年级学生的信息。
--5、空值运算符,查询变动情况为空的学生--查询学生课程编号为'05'的课程的成绩,并按成绩的降序进行排列。
4.使用函数:--1、计算学号为001的学生总分数、平均分。
--2、集合函数 avg()、count()、count(*)、max()、min()、sum()(1)查询学期成绩表中的平均分,最大分数,最小分数,总和(前面四项为查询出的相应字段)(2)统计课程表中所有记录数和各个列中值的个数,要求不能重复。
实验三单表查询一、实验目的掌握简单SQL查询语句的应用,包括like、top、order by、compute和聚集函数的应用。
二、实验内容1.基本查询(1)查询Student表中全体学生的全部信息。
查询全体学生的学号、姓名。
2、查询时改变列标题的显示查询全体学生的学号、姓名、家庭地址信息,并分别加上“学生”、“学号”、“家庭地址”的别名信息。
3、条件查询查询成绩大于80分的学生的学号及课程号、成绩。
查询成绩介于75~80分的学生的学号及课程号、成绩。
查询选修了课程号为“002”,且成绩大于80的学生的学号。
某些学生选修某门课程后没有参加考试,所以有选课记录,但没有考试成绩,请查询缺少成绩学生的学号和相应的课程号。
4、基于IN子句的数据查询从Course表中查询出“高数”、“C语言程序设计”的所以信息。
5、基于BETWEEN AND子句的数据查询查询所以成绩在70~80之间的学生选课信息。
6、基于LIKE子句的查询从Student表中分别检索出姓张的所以同学的资料。
检索名字的第二个字是“红”或“虹”的所以同学的资料。
查询课程名为Visual_Basic的课程的学分。
(提示:使用ESCAPE短语)7、使用TOP关键字查询从选课表中检索出前3个课程信息。
从选课表中检索出前面20%的课程信息。
8、消除重复行检索出学生已选课程的课程号,要求显示的课程号不重复。
9、查询经过计算的值查询全体学生的姓名及其年龄。
(提示:利用系统函数getdate())10、使用ORDER BY语句对查询的结果进行排序显示所有学生的基本信息,按班号排列,班号相同则按学号排列。
查询全体学生的姓名及年龄,并按学生的年龄的降序排列。
11、使用聚集函数查询学生总人数。
计算“002”号课程的学生的平均成绩、最高分、最低分。
12、使用GROUP子句进行查询查询各班级总人数。
汇总总分大于150分的学生的学号及总成绩。
查询各个课程号相应的选课人数。
实验一熟悉SQL SERVER的环境(验证型实验2学时)1.目的要求:了解SQL Server management studio的使用2.实验内容:回答下面每一个问题,写出实验步骤1)在“已注册服务器窗口”中注册sql server数据库服务器在视图中点击已注册的服务器,右键点击数据库引擎新建,选择服务器注册,输入服务器名称sql server2)在“对象资源管理器”中创建名字为sc的数据库右击数据库,选择新建数据库,输入数据库名称sc3)在sc数据库中创建一个名字为student的基本表点击sc的数据库,右点击表,新建表,输入相应的属性名称,选择相应的数据类型,保存时输入表名student4)在查询窗口中里创建名为S_C的数据库输入sql语句create database S_C,然后执行5)在查询窗口中使用sql语言创建名字为course的基本表输入sql语句,create table coure3.主要仪器设备及软件:(1)PC(2)Microsoft SQL Server 2005实验二建立表格,并插入若干记录(验证型实验2学时)1.目的要求:学会使用Create Table语句和Insert语句2.实验内容:1)使用sql语言建立student,course和sc共三张表格(包括主键,外码的指定),分析具体情况适当给出一些用户自定义的约束.create database studentcreate table student(Sno char(9) primary key,Sname char(20) unique,Ssex char(2),Sage smallint,Sdept char(20));create table course(Cno char(4) primary key,Cname char(40),Cpno char(4),Ccredit smallint,foreign key (Cpno )references course(Cno));create table sc( Sno char(9),Cno char(4),Grade smallint,primary key(Sno,Cno),foreign key (Sno) references student(Sno), foreign key (Cno) references course(Cno));2)使用Insert语句向这四张表格里添加至少10条记录(数据如教材56页所示),如果出现错误,分析错误原因insert into student(Sno, Sname,Ssex,Sage ,Sdept )values('95001','李勇','男',20,'CS');insert into student(Sno, Sname,Ssex,Sage ,Sdept )values('95002','刘晨','女',19,'IS');insert into student(Sno, Sname,Ssex,Sage ,Sdept )values('95003','王敏','女',18,'MA');insert into student(Sno, Sname,Ssex,Sage ,Sdept )values('95004','张立','男',19,'IS');……插入时遇到的问题:insert语句与表的外键约束发生冲突不能正确插入;输入SQL语言标点符号时必须关掉中文输入法。
实 验 报 告
专业:计算机应用技术 班级:08计专(1)班 学号:200813131134 姓名:熊少容 课程名称:数据库原理与应用 学年200 9-201 0学期1 /2 课程类别 专业必修 限选 任选 实践 实验时间2010 年 05月 20日 实验名称
实验三 单表查询
实验目的和要求
1. 了解查询的概念和方法
2. 掌握查询分析器的使用方法
3. 掌握select 子句,from 子句的用法
4. 掌握where 子句,order by 子句,group by 子句的用法
5. 掌握top ,distinct ,in ,between 和link 等关键字的用法
6. 掌握select 语句在单表查询中的应用
7. 掌握利用企业管理器对表进行简单数据查询的实现方法
实验软硬件要求
安装windows xp 操作系统和 SQL Server 2000的计算机
实验内容、方法和步骤(可附页)
见附页
实验结果(可附页)
见附页
小结
通过本次实验,我了解了查询的概念和方法,掌握查询分析器的使用方法,对select 子句,from 子句, where 子句,order by 子句,group by 子句的用法有了一定的了解,也掌握了top ,distinct ,in ,between 和link 等关键字的用法以及select 语句在单表查询中的应用,还学会了利用企业管理器对表进行简单数据查询。
评定成绩: 批阅教师: 年 月 日
√
√
实验内容,方法和步骤:
实验内容:
针对实验数据库shiyan,完成以下单表查询操作:
查询为工程J1供应商零件的供应商号SNO。
1.查询为工程J1供应商零件J1的供应商号SNO。
2.找出所有供应商的名称和所在城市。
3.找出零件的所有信息,以及仅找出零件的颜色和重量。
4.找出使用供应商S1所供应零件的工程号码。
5.找出为供应商零件的总数量不低于500的供应商号码及供应总数量结果按供应商号码分类并且按供应总数量降序排列。
6.从J表中分别检索出第1条及前33%的工程信息。
7.统计P表中颜色为红色的零件个数,并指定该查询列的名称为“红色零件数”
8.查询P表中个零件的编号,名称及重量按86%计算后的信息,其中重量按86%计算后的查询列名改为“零件净重”。
9.查询SPJ表,要求查询结果式样为“供应商S1为工程项目J1供应零件P1的数量为300。
10.Chaxun S表STATUS值大于20且小于40,或SNAME字段值的第一个字为“精”或第三个字为“益”或“民”的供应商信息。
11.查询J表中JNAME值为三建和机车厂的工程项目信息。
12.利用企业管理器检索出SPJ表中前5条记录,检索结果按QTY值见序排列。
实验方法,步骤以及实验结果:
实验1
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
select distinct sno
from spj
where jno='j1'
执行以上脚本程序,显示实验结果为:
实验2
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select sno
from spj
where jno='j1'and pno='p1'
执行以上脚本程序,显示实验结果为:
实验3
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select sname,city
from s
执行以上脚本程序,显示实验结果为:
实验4
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select *
from p
select color,weight
from p
执行以上脚本程序,显示实验结果为:
实验5
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select jno
from spj
where sno='s1'
执行以上脚本程序,显示实验结果为:
实验6
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
go
select sno,sum(qty) TotalQTY
from spj
group by sno
having sum(qty)>=500
order by TotalQTY desc
执行以上脚本程序,显示实验结果为:
实验7 (1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select top 1 *
from j
select top 33 percent *
from j
执行以上脚本程序,显示实验结果为:
实验8
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select count(color) as '红色零件数'
from p
where color='红'
执行以上脚本程序,显示实验结果为:
实验9
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:use shiyan
select pno,pname,weight*0.86 as'零件净重'
from p
执行以上脚本程序,显示实验结果为:
实验10
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
select '供应商'+sno+'为工程项目'+jno+'供应零件'+pno+'的数量为'+ str(qty) from spj
执行以上脚本程序,显示实验结果为:
实验11
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
select *
from s
where status between 20 and 40
执行以上脚本程序,显示实验结果为:
实验12
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
select *
from j
where jname in('三建','机车厂')
执行以上脚本程序,显示实验结果为:
实验13
1)打开数据库shiyan的数据表→右击sp j→选择“打开表”下的“查询”弹出如下对话框:
→在脚本编辑处输入如下脚本:SELECT top 5 *
FROM spj order by qty desc
→单击运行后显示如下结果:。