实验三单表查询实验报告
实验三 数据库查询
12、在“学生成绩表”中列出已登记成绩的学生个数;
13、在学生成绩表中,显示所有学生记录,按照平时成绩和期末成绩降序排列;
四、分析与讨论
通过本次实验,基本掌握了数据的一些基本查询,可以对单表的简单查询和复杂查询,两表的连接查询和嵌套查询等等,在实验中要注意一下几点:
1、在写查询语句时,要注意查询的属性名称要与原表中的属性名称要一样,否则会出现错误,导致无法查询;
2、编写select语句,显示“课程信息表”中的所有字段;
3、在学生档案表中,显示“XXXX.XX.XX”的格式显示出生日期。
4、在学生档案表中查询所有湖北学生的基本信息;
5、在教学任务表中列出所有任课教师ID,将重复的记录去掉;
6、在学生档案表中列出所有学生籍贯,将重复的记录去掉;
7、在学生成绩表中,显示学生所有记录,并期末成绩降序排列;
实验内容三
实验序号:三 实验项目名称:数据库查询Βιβλιοθήκη 实验地点指导教师李晖
实验时间
一、实验目的及要求
熟练掌握SQL SELECT语句,能够运用该语句完成各种查询。
二、实验设备(环境)及要求
台式机、SQLServer2005
三、实验内容与步骤
1、编写select语句,显示“教师档案表”中的姓名、性别、职称、单位字段:
8、在学生成绩表中,求平时成绩的最大值、最小值、平均值;
9、将学生成绩表中所有期末成绩大于80分的学生的学号、课程ID、平时成绩和期末成绩的查询结果输出到“优等生成绩表”的新建表中,然后对“优等生成绩表”进行查询。
10、列出所有女教师的ID、姓名以及所带课程;
11、查询北京学生的学号、课程ID和选课类别;
实验三(查询)
实验三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数据的查询和更新实验报告报告实验三、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成绩。
数据库实验三
SELECT mat_name, amount, unit FROM stock WHERE unit BETWEEN 50 AND 100 等价
SELECT mat_name, amount, unit FROM stock WHERE unit>=50 AND unit<=100
%代表任意长度(长度可以为0)的字符串
_代表任意单个字符
【例4.20】查询存放在供电局1#仓库的物资的详细情况 SELECT * FROM stock WHERE warehouse LIKE ‘供电局1#仓库’ 等价于 SELECT * FROM stock WHERE warehouse=‘供电局1#仓库’
一、单表查询
单表查询是指仅涉及一张表的查询。 1、选择表中的若干列 选择表中的全部列或部分列,这就是关系代数的投影运算。 1)查询指定的列:在很多情况下,用户只对表中一部分属性列
感兴趣,这时可以通过在SELECT子句的<目标列表达式>中指定 要查询的属性列。 【例4.8】查询所有配电物资的物资编号、物资名称、规格 SELECT mat_num, mat_name, speci FROM stock;
请按照课本第62页的语法,演练【例4.22】、【例 4.23】、【例4.24】
(5) 涉及空值的查询
空值(NULL)在数据库中有特殊含义,它表示不确定的值。 判断取值为空的语句格式为:列名 IS NULL 判断取值不为空的语句格式为:列名 IS NOT NULL 【例4.25】 查询无库存单价的物资编号及其名称 SELECT mat_num, mat_name FROM stock WHERE unit IS NULL 注意: 这里的“IS”不能用等号(=)代替。
实验三 表的基本操作
实验三表的基本操作一、实验目的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语言标点符号时必须关掉中文输入法。
数据库系统原理及应用答案.
数据库系统原理及应用实验指导书(本科)福建工程学院计算机与信息科学系目录实验一数据定义语言 (2)实验二SQL Sever中的单表查询 (5)实验三SQL Serve中的连接查询 (8)实验四SQL Serve的数据更新、视图 (11)实验五数据控制(完整性与安全性) (16)实验六语法元素与流程控制 (19)实验七存储过程与用户自定义函数 (23)实验八触发器 (27)实验一数据定义语言一、实验目的1.熟悉SQL Server2000/2005查询分析器。
2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表的定义、删除与修改,掌握索引的建立与删除方法。
3.掌握SQL Server2000/2005实现完整性的六种约束。
二、实验内容1.启动SQL Server2000/2005查询分析器,并连接服务器。
2.创建数据库: (请先在D盘下创建DB文件夹)1)在SQL Server2000中建立一个StuDB数据库:有一个数据文件:逻辑名为StuData,文件名为“d:\db\StuDat.mdf”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB;有一个日志文件,逻辑名为StuLog,文件名为“d:\db\StuLog.ldf”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10%2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。
3.设置StuDB为当前数据库。
4.在StuDB数据库中作如下操作:设有如下关系表S:S(CLASS,SNO, NAME, SEX, AGE),其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。
写出实现下列功能的SQL语句。
《数据库原理及应用》实验报告(1-21)
数据库原理及应用实验报告实验课程:数据库原理及应用学号:学生姓名:班级:2014年月日实验一创建和维护数据库一、实验目的(1)掌握在Windows 平台下安装与配置MySQL 5.5 的方法。
(2)掌握启动服务并登录MySQL 5.5 数据库的方法和步骤。
(3)了解手工配置MySQL 5.5 的方法。
(4)掌握MySQL 数据库的相关概念。
(5)掌握使用Navicat 工具和SQL 语句创建数据库的方法。
(6)掌握使用Navicat 工具和SQL 语句删除数据库的方法。
二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;(3)1~2人为1小组,实验过程中独立操作、相互学习。
三、实验内容及步骤(1)在Windows 平台下安装与配置MySQL 5.5.36 版。
(2)在服务对话框中,手动启动或者关闭MySQL 服务。
(3)使用Net 命令启动或关闭MySQL 服务。
(4)分别用Navicat 工具和命令行方式登录MySQL。
(5)在my.ini 文件中将数据库的存储位置改为D:\MYSQL\DATA。
(6)创建数据库。
①使用Navicat 创建学生信息管理数据库gradem。
②使用SQL 语句创建数据库MyDB。
(7)查看数据库属性。
①在Navicat 中查看创建后的gradem 数据库和MyDB 数据库的状态,查看数据库所在的文件夹。
②利用SHOW DATABASES 命令显示当前的所有数据库。
(8)删除数据库。
①使用Navicat 图形工具删除gradem 数据库。
②使用SQL 语句删除MyDB 数据库。
③利用SHOW DATABASES 命令显示当前的所有数据库。
(9)使用配置向导修改当前密码,并使用新密码重新登录。
(10)配置Path 变量,确保MySQL 的相关路径包含在Path 变量中。
四、思考题My SQL的数据库文件有几种?扩展名分别是什么?五、实验总结1、收获2、存在的问题实验二管理表一、实验目的(1) 掌握表的基础知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实 验 报 告
专业:计算机应用技术 班级: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
→单击运行后显示如下结果:。