实验二数据查询

合集下载

实验二SQL语言——数据查询操作

实验二SQL语言——数据查询操作

实验二SQL语言——数据查询操作SQL (Structured Query Language) 是一种用于管理关系数据库系统的标准语言。

在数据查询操作方面,SQL 可以帮助用户从数据库中检索想要的数据,通过下面的实验,我们将深入了解 SQL 语言在数据查询操作中的应用。

一、SELECT语句SELECT语句是SQL中最常用的语句之一,它用于从数据库中选择需要查询的数据。

SELECT语句的基本语法如下:```SELECT列名1,列名2,...FROM表名;```例如,我们有一个名为 "Students" 的表,其中包含了学生的姓名、年龄和性别等信息。

要查询学生的姓名和年龄,我们可以使用以下SELECT 语句:```SELECT 姓名, 年龄 FROM Students;```二、WHERE子句WHERE子句用于在SELECT语句中添加过滤条件,只返回满足条件的数据。

下面是WHERE子句的基本语法:```SELECT列名1,列名2,...FROM表名WHERE条件;```例如,我们要查询年龄大于等于18岁的学生信息,可以使用以下SELECT语句:```SELECT * FROM Students WHERE 年龄 >= 18;```三、ORDERBY子句ORDERBY子句用于按照指定的列进行排序,可以按照升序或降序排列。

下面是ORDERBY子句的基本语法:```SELECT列名1,列名2,...FROM表名ORDERBY列名[ASC,DESC];```例如,我们要按照学生的年龄从小到大排序,可以使用以下SELECT语句:```SELECT * FROM Students ORDER BY 年龄 ASC;```四、GROUPBY子句GROUPBY子句用于将查询结果按照一个或多个列进行分组,并对每个组进行聚合操作。

下面是GROUPBY子句的基本语法:```SELECT列名1,列名2,...FROM表名GROUPBY列名1,列名2,...;```例如,我们要统计每个性别的学生人数```SELECT 性别, COUNT(*) FROM Students GROUP BY 性别;```五、HAVING子句HAVING子句用于在GROUPBY子句中添加过滤条件,只返回满足条件的分组。

数据库原理及应用 数据库查询 实验二

数据库原理及应用 数据库查询 实验二

《数据库原理及应用》实验报告实验名称数据库查询实验室502 实验日期求选修了课程的学生学号。

Use 学生课程GoSelect 学号from 学生where 学号in (select 学号from where 课程号 is not null)求选修1102课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。

Use 学生课程GoSelect 学号,成绩 from 课程,选课 where 课程.课程号and 课程号=1102 order by 成绩 desc,学号 asc求选修课程1102且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。

Use 学生课程GoSelect 学号,成绩*0.8 as 成绩 from选课 where 成绩 between 80 and求数学系或计算机系姓张的学生的信息。

Use 学生课程GoSelect * from 学生,课程,选课 where 学生.学号=选课.学号 and 课程号=课程.课程号and 姓名like ’张%’and (所在系=’数学’在系=’计算机’)求缺少了成绩的学生的学号和课程号。

Use 学生课程GoSelect 学号,课程号 from 选课 where 成绩 is null连接查询实验语句在“学生选课”数据库中实现下列数据连接查询操作。

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

Use 学生课程GoSelect * from 学生,选课,课程 where 学生.学号=选课.学号课程号=课程.课程号求学生的学号、姓名、选修的课程名及成绩。

Use 学生课程GoSelect 学号,姓名,课程名,成绩 from 学生,选课,课程 where学生求选修1105课程且成绩为90分以上的学生学号、姓名及成绩。

Use 学生课程GoSelect 学号,姓名,成绩 from 学生,选课 where 学生.学号=选课and 课程号=1105 and 成绩>90查询每门课的选课人数。

SQL实验二:数据库查询实验报告

SQL实验二:数据库查询实验报告

SQL实验⼆:数据库查询实验报告实验⼆数据库的查询实验⼀、实验⽬的和要求(1)掌握SQL Server查询分析器的使⽤⽅法,加深对SQL和Transact-SQL语⾔的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作⽅法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作⽅法。

⼆、实验内容和原理在实验⼀定义的“学⽣成绩数据库”中,使⽤T-SQL语句完成以下查询:(1)求计算机系学⽣的学号和姓名。

(2)求选修了数学的学⽣学号、姓名和成绩。

(3)求选修01课程的学⽣学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)查找选修课程的平均成绩位于前三名的学⽣的学号。

(5)查询计算机系的姓刘且单名的学⽣的信息。

(6)查询⾄少选修两门课程的学⽣学号。

(7)查询学⽣的学号、课程号以及对应成绩与所有学⽣所有课程的最⾼成绩的百分⽐。

(8)查询选修“数据库”课程,且成绩在80分以上的学⽣的学号和成绩。

(9)查询所有姓“王”的同学没有选修的课程名。

(请分别⽤exists和in完成该查询)(10)查询选修了全部课程的学⽣的姓名。

(请⾄少写出两种查询语句)(11)求选修了学⽣“95001”所选修的全部课程的学⽣学号和姓名。

(12)查询每⼀门课的间接先修课。

(13)列出所有学⽣所有可能的选课情况。

(14)列出每个学⽣的学号及选修课程号,没有选修的学⽣的学号也⼀并列出。

(15)输出与“张三”同性别并位于同⼀个系的所有同学的姓名。

(请⾄少写出两种查询语句)(16)查询⾄少被两名男⽣选修的课程名。

(17)对被两名以上学⽣所选修的课程统计每门课的选课⼈数。

要求输出课程号和选修⼈数,查询结果按⼈数降序排列;若⼈数相同,按课程号升序排列。

(18)列出选修课程超过3门的学⽣姓名及选修门数。

(19)检索⾄少选修课程号为01和03的学⽣姓名。

(20)检索⾄少选修课程“数学”和“操作系统”的学⽣学号。

VF实验二关联、查询和数据库

VF实验二关联、查询和数据库

实验二关联、查询和数据库实验2-1 多表关联与查询实验目的:〔1〕理解关联的概念,掌握在数据工作期窗口中建立关联的方法。

〔2〕掌握SELECT-SQL查询命令。

〔3〕掌握用查询设计器建立查询的方法。

实验要求:〔1〕在数据工作期窗口上建立以“订单〞为父表,“订单明细〞为子表的一多关系;再建立以“订单明细〞为父表,“货物〞为子表的多一关系的二级关联。

然后查看关联后的效果。

〔2〕用SELECT-SQL命令对上述5个表作多表查询练习。

①查询联系“东南实业〞公司的员工**及联系。

②查询订购麻油的订单份数。

〔3〕用查询设计器查询公司订货情况。

实验步骤:〔1〕为“关联〞建立索引:为订单表的订单号字段建立索引,再为货物表的货号字段建立索引。

1)翻开“订单明细表〞在命令窗口里输入命令:INDE* ON 订单号 TAG ddh,执行命令就为该表建立了索引,翻开表生成器查看如下:图中显示了索引,默认是升序的。

2〕同样的方法,翻开“订单明细表〞在命令窗口里输入命令:INDE* ON 货号 TAG hh,执行命令就为该表建立了索引,〔2〕建立关联:过程方法:1〕翻开数据工作期窗口→分别用“翻开〞按钮翻开订单表、订单明细表和货物表→在“别名〞列表框中选定“订单〞,单击“关系〞按钮→在“别名〞列表框中选定“订单明细〞→随即弹出“设置南索引顺序〞对话框,其列表框中显示“订单明细.订单号〞。

选定“确定〞按钮→随即弹出“表达式生成器〞对话框,其SET RELATION框中显示“订单号〞。

选定“确定〞按钮,多一关系建立完成→选定“一对多〞按钮→在随即弹出的“创立一对多关系〞对话框中→选定“确定〞按钮,一多关系建立完成。

显示的表达式生成器如下:2)在“别名〞列表框中选定“订单明细〞→为确定以订单明细表为父表建立下一级关联,在“关系〞列表框中也选定“订单明细〞→单击“关系〞按钮→在“别名〞列表框中选定“货物〞→在随即弹出的“设置索引顺序〞对话框中选定“确定〞按钮→在“表达式生成器〞对话中选定“确定〞按钮,多一关系建立完成,如图下列图所示:〔3〕查看关联效果:分别“订单〞、“订单明细〞和“货物〞浏览窗口,并按左中右顺序排列→选定“订单〞表的*个记录,“订单明细〞和“货物〞浏览窗口的内容即会关联变化,如下列图所示。

数据库实验二数据查询

数据库实验二数据查询

实验4 数据查询一、实验目的1.掌握SELECT语句的基本语法和查询条件的表示方法;2.掌握连接查询的表示方法;3.掌握嵌套查询的表示方法;4.掌握数据汇总的方法;5.掌握ORDER BY子句的作用和使用方法;6.掌握HAVING子句的作用和使用方法;二、实验内容使用SELECT查询语句,在数据库StudentCourse的Student表、Course 表和StuCourse 表上进行各种查询,包括单表查询、连接查询、嵌套查询,并进行数据汇总,以及使用GROUP BY子句、ORDER BY子句和HAVING子句对结果进行分组、排序和筛选处理。

1.SELECT语句的基本使用;2.连接查询;3.嵌套查询;4.数据汇总;5.使用GROUP BY 子句对结果分组;6.使用ORDER BY子句对结果排序;7.使用HAVING子句对分组结果进行筛选;思考与练习:1.用SELECT语句查询Course表和StuCourse表中的所有记录。

SQL语句:select * from Course;select * from StuCourse;实验结果:2.用SELECT语句查询Course表和StuCourse表中满足指定条件的一列或若干列。

SQL语句:select 课程号,课程名 from Course where 学分=5;select 学号,课程号 from StuCourse where 成绩>80;实验结果:3.查询所有姓名中包含有“红”的学生的学号及姓名。

SQL语句:select 学号,姓名 from Student where 姓名 like '%红%';实验结果:4.用连接查询的方法查找所有选修了“2001” 或“1002”号课程的学生学号和姓名。

SQL语句:selectdistinct Student.学号,姓名from StuCourse,Studentwhere(课程号='1002'or 课程号='2001')and StuCourse.学号=Student.学号;实验结果:5.用子查询的方法查找所有选修了“2001”或“1002”号课程的学生学号和姓名。

数据库原理实验2数据查询

数据库原理实验2数据查询

课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。

四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。

一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。

这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。

1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。

这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。

1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。

其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。

1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。

其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。

1.5查询选修了课程的学生学号。

其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。

2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。

其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。

实验二查询部分及查询作业答案

实验二查询部分及查询作业答案

实验二. 数据库查询Student表:列名含义数据类型约束Sno 学号字符串,长度为7 主码Sname 姓名字符串,长度为10 非空Ssex 性别字符串,长度为2Sage 年龄整形Sdept 所在系字符串,长度为20Course表:列名含义数据类型约束Cno 课程号字符串,长度为10 主码Cname 课程名字符串,长度为20 非空Ccredit 学分字节Semester 学期字节SC表:列名含义数据类型约束Sno 学号字符串,长度为7 主码引用Student的Sno作为外码Cno 课程号字符串,长度为10 主码引用Course的Cno作为外码Grade 成绩小整形XKLB 修课类别字符串,长度为4 请写明创建以上三张基本表的语句。

3.将如下数据插入建好的三张表中。

Student表学号姓名性别年龄所在系'9512101','李勇','男',19,'计算机系''9512102','刘晨','男',20,'计算机系''9512103','王敏','女',20,'计算机系''9521101','张立','男',22,'信息系''9521102','吴宾','女',21,'信息系''9521103','张海','男',20,'信息系''9531101','钱小平','女',18,'数学系''9531102','张大力','男',19,'数学系'Course表课程号课程名学分学期'c01','计算机文化学',3,1'c02','VB',2,3'c03','计算机网络',4,7'c04','数据库基础',6,6'c05','高等数学',8,2'c06','数据结构',5,4SC表学号课程号成绩修课类别'9512101','c01',90,'必修''9512101','c02',86,'选修''9512101','c06',null,'必修''9512102','c02',78,'选修''9512102','c04',66,'必修''9521102','c01',82,'选修''9521102','c02',75,'选修''9521102','c04',92,'必修''9521102','c05',50,'必修''9521103','c02',68,'选修''9521103','c06',null,'必修''9531101','c01',80,'选修''9531101','c05',95,'必修''9531102','c05',85,'必修'请写明使用的数据插入语句。

数据查询(数据库实验2)

数据查询(数据库实验2)

数据库基础与实践实验报告实验二数据查询班级:惠普测试142学号:**********姓名:***日期:2016-11-061 实验目的:1)掌握针对单张基本表的数据查询方法;2)掌握SQL常用库函数及统计汇总查询方法;3)掌握分组查询方法和结果排序的方法;4)掌握连接查询和嵌套查询的方法。

2 实验平台:操作系统:Windows xp。

实验环境:SQL Server 2000以上版本。

3 实验内容与步骤利用实验一创建的sch_id数据库完成下列查询,并对查询语句的功能进行测试。

1.查询学号s5的同学的姓名和所在系,将查询结果的列名显示为中文。

代码:SELECT sn AS姓名,dn AS所在系FROM S,D WHERE S.sno='S5'AND S.dno=D.dno测试记录:S:D:运行结果截图:2.查询教过课程号为C2或C5的课程的教师的编号(写两个查询语句完成同样的功能)代码::SELECT tno FROM TC WHERE cno='C2'OR cno='C5'SELECT tno FROM TC WHERE cno IN('C2','C5')测试记录:运行结果截图:3.查询学号为S5的同学所学课程的平均成绩。

代码:SELECT A VG(score)AS'平均分'FROM SC WHERE sno='S5'测试记录:运行结果截图:4.查询选过课程号为C1的课程的人数。

代码:SELECT COUNT(*)FROM SC WHERE cno='C1'测试记录:运行结果截图:5.查询计算机系学生的最大年龄,显示系名和最大年龄(查询结果的每列都要有列名且为中文)。

代码:SELECT dn AS系名,MAX(age)AS'最大年龄'FROM S,D WHERE S.dno=D.dno AND D.dn='计算机'GROUP BY dn测试记录:运行结果截图:6.查询所有教过课的老师的人数(教过多门课的同一位老师只计数1次)。

数据库实验二 简单查询

数据库实验二 简单查询

实验二简单无条件查询
一、实验目的
通过本次实验使学生掌握数据库中表数据的基本查询操作。

二、实验内容
补充:数据库的备份和还原操作
1、查询指定列
2、查询所有列
3、查询计算列
4、函数的使用
三、实验环境
1、Windows XP
2、SQL Server 2000
四、实验步骤
1、还原一个数据库,文件名为“school”
2、打开“STUDENT”数据库
3、输入如下数据:
S表
SC 表
T表
4、根据下列题目书写查询语句,调试,运行,得到正确执行结果。

1)查询所有学生的学号和姓名
2)检索出所有学生的信息
3)从选课关系中检索出学生所选的课程号
4)检索每个学生的出生年份
5)统计学生的人数
6)统计选修了课程的学生人数
7)计算出学号为0001的学生的总分、平均分、最高分和最低分。

答案:
1)Select s#,sname from s;
2)Select * from s;
3)Select distinct c# from sc;
4)Select s#,sname,year(getdate())-age as birth_year from s; 5)Select count(*) as 人数 from s;
6)Select count(distinct s#) as 选课人数 from sc;
7)Select sum(score), avg(score), max(score), min(score) from sc where s#=‘0001’;。

实验训练2数据查询操作

实验训练2数据查询操作

实验训练2:数据查询操作实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。

实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。

分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。

(2)查询ID为1的订单。

分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。

【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。

分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。

【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。

分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。

(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。

分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。

【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。

分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。

(2)查询今年新增的所有会员,结果按照用户名字排序。

分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。

【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。

分析:订单表中包含每个订单的订单总价和用户ID。

现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。

实验二 数据查询

实验二 数据查询

实验二一、实验目的了解SQL Server 查询分析器中执行T-SQL语句的方法;使用T-SQL语句创建数据表;掌握数据库查询语句SELECT语句的基本语法及使用方法;二、实验内容1.利用企业管理器中提供的“生成SQL脚本”命令生成实验一中创建的数据库中数据表对象的创建的脚本文件,作为实验结果文件保存在实验文件夹下。

2.在查询分析器中完成数据库的创建。

(可另外取名创建数据库文件)3.使用SELECT语句建立以下查询1)显示bookinfo表中所有字段的值;2)查询teacher表中所有记录的teachercode、teachername、enterdate、title字段信息;3)查询男教师的姓名(teachername),显示时将字段名改为“姓名”;4)查询2007年以后出版的教材名称(bookname)、出版日期(publishdate)和库存量(stocknum),显示时字段名称分别为教材名称、出版日期、库存量;显示结果如图1所示。

图15)查询所有教材的出版社代码(publishcode),不包括重复的记录;显示结果如图2所示。

图2 图36)查询学生订书量(stubooknum)最大的3个记录,显示教材代号(bookcode)和学生订书量(stubooknum);显示结果如图3所示。

7)查询学生订书量(stubooknum)在150~250之间的教材信息;显示结果如图4所示。

图48)查询每一种教材的学生订书总量;显示结果如图5所示。

图5 图69)查询书名为“VB程序设计”的教材的学生总订量、教师总订量及总订量;显示结果如图6所示。

10)显示教材的最高价、最低价、平均价、最高价与最低价之间的差值;显示结果如图7所示。

图711)查询出版社代号(publishcode)为10、02、31的出版社所出版的教材信息。

要求显示教材名称(bookname)、作者(author)、价格(price)、库存和出版社名称(publisher);显示结果如图8所示。

实验二 中文数据库检索

实验二   中文数据库检索

实验二中文数据库检索一实验要求1 了解图书馆购买的所有中文数据库收藏文献的类型(图书、期刊、学位论文等)。

2 学会浏览器的安装。

3 掌握中文数据库文献查询方法(初级检索、高级检索)。

4 熟练利用中文数据库进行文献查询。

5掌握图书类数据库(超星、读秀)的检索,能够熟练运用读秀的原文传递功能。

二实验内容1 caj、PDF浏览器的安装。

2数据库的使用方法(通过数据库的帮助按钮)。

3在练习中了解、掌握各检索功能的检索式写法以及检索区各按钮的作用。

4练习保存符合查询要求的结果(尤其是全文)的操作方法,如下载题录、全文下载、全文部分下载(以图像或者文字形式)等。

5了解翻译助手、外文文献检索、参考文献格式管理、E-Learning、文献下载和被引频次、文献统计分析等功能。

6超星、读秀数据库的使用,练习读秀的原文传递功能(一定要掌握)。

三作业题请用检索与自己专业有关的文献(首选中国知网),要求:(1)写出所用的检索词和检索项(检索字段)(2)以参考文献的著录格式列出其中的中文期刊文献(2篇)和学位论文文献(2篇)注意:由于网速和并发用户的限制问题,如果中国知网登录不上去的话,可以选择中文科技期刊全文数据库(注意其原文传递功能)或万方数据资源系统。

实验时,以一个数据库为主,力求做到弄懂并能够熟练使用。

只有这样,才能做到触类旁通。

绝对不要贪多。

有问题请及时提出来。

参考文献著录格式:期刊文章:[顺序号] 主要责任者(列前三位). 文献题名[J]. 刊名,年,卷(期):起止页码.示例:[1]何龄修. 读顾诚南明史[J]. 中国史研究, 1998, 21 (3): 167-173.[2]雷启迪, 钟玉华, 杨慧凡, 等. 沙棘在小叶杨人工林中的供氮效应[J]. 林业实用技术, 1983 (4): 21-24.[3]李铁军. 杨树沙棘混交林生长调查研究[J]. 辽宁林业科技, 1986 (3): 10, 15-21.[4]金广涛,张国霖,张宝玺. 辽西北干旱风沙区杨树沙棘混交林气候生态效应和混交数学模型[J]. 沈阳农业大学学报, 1992, 23 (S1): 12-16.[5]李晓东, 张庆红, 叶瑾琳. 气候学研究的若干理论问题[J].北京大学学报:自然科学版, 1999, 35(1): 101-106.[6]亚洲地质图编目组. 亚洲地层与地质历史概述[J]. 地质学报, 1978, 3: 194-208.[7]]陶仁骥. 密码学与数学[J]. 自然杂志, 1984, 7(7): 527.[8]DOWLER L. The research university's dilemma; resource sharing and research in a trans): 5-26.注意:[顺序号]责任者(列前三位). 文献题名[J]. 刊名, 年, 卷(期): 起止页码.-------年卷期齐全2011,35 (3):[顺序号] 责任者(列前三位). 文献题名[J]. 刊名, 年, 卷: 起止页码.-------没有期号2011,35:[顺序号] 责任者(列前三位). 文献题名[J]. 刊名, 年(期): 起止页码.-------没有卷号2011 (3):学位论文[顺序号] 责任者. 文献题名[D]. 授予地:授予单位, 出版年.示例:[1]张志祥. 间断动力系统的随机扰动及其在守恒律方程中的应用[D]. 北京: 北京大学,1998.[2]张和生. 地质力学系统理论[D]. 太原: 太原理工大学, 1998.。

实验二 数据检索

实验二  数据检索

实验二数据检索一、目的与要求1.掌握使用SQL SERVER 2008查询语句实现简单数据查询的方法,巩固基本查询的语法;2.练习使用排序、分组、聚合等运算符实现特殊查询;3.练习多表连接查询、联合查询以及子查询的使用方法;二、实验准备1创建自己的项目数据库和表;2.向表中插入数据,以备查询使用;3.熟悉各种查询运算符的用法;4.设计与项目相关的查询题目,以备在实验室中调试完成。

三、实验内容1.登录到SQL SERVER服务器;2.将实验一创建的数据库附加到服务器上,用作实验数据库;3.在SSMS中新建查询,打开查询设计窗口,完成如下查询请求:1)查询选修“高等数学”课程的学生同时还选修了哪些课程。

2)查询“JAVA”课程的平均成绩、最高最低分、前十名学生的信息。

3)统计每个学生的选课门数(包括没选课的学生),列出学号、选课门数和选课情况,其中选课情况显示规则为:如果选课门数大于或等于6门,则选课情况为:“多”;如果选课门数在3-5门之间,则选课情况为:“一般”;如果选课门数大于或等于6门,则选课情况为:“较差”;如果没有选课,则选课情况为:“未选课”。

4)修改全部课程的学分,修改规则如下:如果是第1-2学期开设的课程,则学分增加5分;如果是第3-4学期开设的课程,则学分增加3分;如果是第5-6学期开设的课程,则学分增加1分;对于其他学期开设的课程,学分不变。

5)查询每位学生得分最高的课程信息,列出学生学号、课程号、课程名和成绩。

6)查询选修了计算机文化学而没有选修JAVA课程的学生信息。

7)查询同时选修数据结构和JAVA两门课程的学生信息。

8)查询计算机系学生的信息,列出姓名、所在系、出生日期以及该学生的年龄排名(按从大到小)。

9)定义一个统计每门课程的考试平均成绩和选课人数的CTE,并利用该CTE查询选课人数超过2人的课程。

10)查询course表中的全部数据并将其保存到一个新表NewCourse中,然后为NewCourse表增加一个先修课程列PriorCno,该列表明了当前课程的先修课程编号,NULL 表示该门课程没有先修课程。

数据库实验二:简单查询和连接查询(供河南科技大学学生用)

数据库实验二:简单查询和连接查询(供河南科技大学学生用)

实验二:简单查询和连接查询一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。

二、实验内容:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。

③查询工程名称中含有“厂”字的工程明细。

(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。

②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

③笛卡尔积:求s和p表的笛卡尔积④左连接:求j表和spj表的左连接。

⑤右连接:求spj表和j表的右连接。

三、完成情况:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;select*from swhere city='天津'②查询所有“红色”的14公斤以上的零件select*from pwhere color='红'andweight>'14'③查询工程名称中含有“厂”字的工程明细select*from jwhere jname like'%厂'(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。

select s.*,j.*from s,jwhere s.city=j.city②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

select sname,jname,pnamefrom s,p,j,spjwhere spj.sno=s.sno andspj.pno=p.pno andspj.jno=j.jno③笛卡尔积:求s和p表的笛卡尔积select*from s,p④左连接:求j表和spj表的左连接select j.jno,jname,city,spj.sno,pno,QTYfrom j left join spj on(j.jno=spj.jno)⑤右连接:求spj表和j表的右连接select j.jno,jname,city,spj.sno,pno,QTYfrom spj right join j on(j.jno=spj.jno)四、实验结果:(一)①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件③查询工程名称中含有“厂”字的工程明细(二)①等值连接:求s表和j表的相同城市的等值连接②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

实验二 查询数据库

实验二  查询数据库

实验二查询数据库一、实验目的熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询二、实验内容和要求使用SQL查询分析器查询数据,练习查询语句的使用,掌握SELECT 语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法。

三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/xp;2.数据库管理系统:SQL sever 2000/2005;四、实验方法、步骤及结果测试对实验一建立的数据库表进行查询。

实验题目:题目1、查询学生的系别,用小写字母表示。

题目2、查询所有刘姓学生的学号、系别。

实现代码及查询结果截图:select Sno,Sdept from S where Sname like'刘%';题目3、查询教师姓名第二个字是“一”的教师姓名,所教课程名。

实现代码及查询结果截图:select Tname,Cname from C where Tname like'_一_';题目4、查询没有成绩的学生学号,学号降序排列。

实现代码及查询结果截图:select Sno from Sc where Grade is null order by Sno desc;题目5、各科选修课考试成绩及格的人数。

实现代码及查询结果截图:select Count(Sno)from Sc where Grade>60 group by Cno题目6、各学院男生人数,超过2人的输出学院名和人数,并按男生人数降序排列实现代码及查询结果截图:select Sdept,Count(Sno)from S where Ssex='男'group by Sdept having Count(Sno)>2 order by Count(Sno)desc;题目7、查询IS系男女学生人数各是多少实现代码及查询结果截图:select S.Ssex As'性别',count(*) As'IS系人数' from S where S.Sdept='IS'group by Ssex;题目8、找出年龄>23岁,平均成绩不及格的学生学号和平均分实现代码及查询结果截图:select Sno,avg(Grade)from Sc where Sno in(select Sno from S where year(getdate()-Sbirth)>23)group by Sno having avg(Grade)<60题目9、显示所有学生信息,如果该生选修过课程,显示其选修课号和考试成绩实现代码及查询结果截图:select S.*,o,Sc.Grade from S left join Sc on(SC.Sno=S.Sno)题目10、查询每门课都是80分以上的学生的学号与姓名。

实验二-数据的查询、更新

实验二-数据的查询、更新

实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。

三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。

sp_addtype char20,'varchar(20)',null提示:sp_addtype [@typename=]用户自定义类型的名字[, @phystype=]系统类型名[, [@nulltype=] ' not null | null '] [, [@owner=] '拥有该类型的用户名'] 例:自定义一个名为address的类型,其所属系统类型为varchar,长度为80,不能为空。

sp_addtype address,' varchar(80)', ' not null '2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。

create database学生课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 其中Sno 为主键、Ssex取值为男或女、SageSno Sname Ssex Sage Sdept95001 李敏勇男20 CS95002 刘晨女19 IS95003 王敏女18 MA95004 张立男18 IScreate table student(sno int primary key,sname char(10),ssex char(2)constraint ssex_ch check(ssex in('男','女')),sage int constraint sage_ch check(sage>=15 andsage<=30),sdept char(10))insert into studentvalues(95001,'李敏勇','男',20,'CS')insert into studentvalues(95002,'刘晨','女',19,'IS')insert into studentvalues(95003,'王敏','女',18,'MA')insert into studentvalues(95004,'张立','男',18,'IS')课程表:Course(Cno,Cname,Cpno,Credeit,remarks) 其中Cno为主键、Teacher的类型为Cno Cname Cpno Credit Teacher1 数据库 5 4 王芳2 数学NULL 2 刘新3 信息系统 14 刘新4 操作系统 6 3 高升5 数据结构7 4 宋明6 数据处理NULL 2 张彬7 Pascal语言 6 4 李磊create table course(cno int primary key,cname char(15),cpno int null,credit int,teacher char20)insert into coursevalues(1,'数据库',5,4,'王芳')insert into coursevalues(2,'数学',NULL,2,'刘新')insert into coursevalues(3,'信息系统',1,4,'刘新')insert into coursevalues(4,'操作系统',6,3,'高升')insert into coursevalues(5,'数据结构',7,4,'宋明')insert into coursevalues(6,'数据处理',NULL,2,'张彬')insert into coursevalues(7,'PASCAL语言',6,4,'李磊')学生选修表:SC(Sno,Cno,Grade) 其中Sno,Cno为主键同时又为外键、Grade值在0到100;Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095003 2 5595004 2 70create table sc(sno int,cno int,grade int constraint grade_ch check(grade between 0 and100),primary key(sno,cno),constraint fk_sno foreign key (sno)references student(sno),constraint fk_cno foreign key (cno)references course(cno),)insert into scvalues(95001,1,92)insert into scvalues(95001,2,85)insert into scvalues(95001,3,88)insert into scvalues(95002,2,90)insert into scvalues(95003,2,55)insert into scvalues(95004,2,70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存insert into studentvalues(95030,'谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分update scset grade=98where o=(select ofrom coursewhere ame='数据库'and sno=(select snofrom studentwhere sname='李敏勇'))3) 删除学生表Student中谢非的记录并保存deletefrom studentwhere sname='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录?不能, sc表中列sno是外码,参照student表的sno列。

数据库实验二,sql查询语句

数据库实验二,sql查询语句

实验二:数据查询语言实验内容SQL数据查询语句:例5-1:(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。

select sno,sname,sex,sage from student;例5-2:(不选择重复行) 求选修了课程的学生学号。

select distinct cno from sc where cno is not null;例5-3:(选择表中的所有列) 求全体学生的详细信息。

select * from student;例5-4:(使用表达式) 求全体学生的学号、姓名和出生年份。

select sno,sname,birthday from student;例5-5:(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。

select sno as"学号",birthday as"出生年份" from student;例5-6:(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。

select sname,age from studentwhere age>19;例5-7:(比较大小条件) 求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。

select sname,depname ,agefrom student,departmentwhere student.depno=department.depnoand age>18;例5-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。

select sno,age from studentwhere age in(19,22);例5-9:(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。

select sno,age from studentwhere age not in(19,22);例5-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。

实验二 数据查询与属性数据编辑

实验二    数据查询与属性数据编辑

实验二数据查询与属性数据编辑
一、实验类型
验证性实验
二、实验目的
1、熟悉ArcView软件的各种数据查询功能。

2、熟悉ArcView软件的属性数据输入、编辑等功能。

三、实验要求
1、掌握空间和属性数据的单项查询、开窗查询、条件查询等功能。

2、掌握ARCVIEW软件的属性编辑功能。

四、实验原理与步骤:
1、属性编辑:
(1)新建TABLE文件,添加field,添加record,修改,删除
(2)打开view视图中与图形对应的table,添加field,添加record,修改,删除
(3)练习表的显示设定。

打开属性对话框,练习隐藏、别名,思考有什么用。

(4)生成统计图
(5)属性汇总
(6)练习Join与Link,思考两个的区别是什么。

(7)练习热连接功能。

2、查询:
(1)属性查询方法:点击查询(select record)、查找特定要素(find,只能是字符字段,忽略大小写,输出符合要求的第一个要素或记录)和编辑条件查询(query biulder)。

(2)图形要素查询方法:点击查询(Identity)、点击开窗查询(select feature矩形查询)和图形查询(select feature by graph)
五、实验仪器设备
电脑、ArcView软件
六、实验结果与分析
提交实验过程报告。

实验训练2:数据查询操作

实验训练2:数据查询操作

实验二MySQL数据库操作实验实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL 运算符、函数、谓词,练习Select语句的操作方法。

实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。

分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。

(2)查询ID为1的订单。

分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。

【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。

分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。

【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。

分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。

(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。

分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。

【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。

分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。

(2)查询今年新增的所有会员,结果按照用户名字排序。

分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。

【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。

分析:订单表中包含每个订单的订单总价和用户ID。

现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二数据查询(4学时)
实验目的:
(1)掌握SQL语言的数据查询语句
实验内容:
(1)将学生成绩数据库(XSCJ)导入SQL SERVER 2008,并做如下查询。

(注:数据文件和日志文件从服务器上下载直接导入))
1)查询选修了课程的学生的学号;
2)查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;
3)查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。

4)查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

5)用LIKE查询课程名为DB_S程的课程号和学分。

6)查所有有成绩的学生学号和课程号。

7)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄
升序排列
8)查询选修了课程的学生人数。

9)计算1号课程的学生平均成绩。

10)查询有3人以上(含3人)同学选修课程的课程号。

11)查询1号课程的间接先修课。

12)查询每个学生的学号、姓名、选修的课程名及成绩。

13)找出每个学生等于他选修课程平均成绩的课程号。

(2)将以下数据录入上次实验建立的BSXT 数据库,并完成以下查询。

Student(学生表)
Teacher (教师表)
Topic (选题情况表)
1) 查询全体学生的学号和姓名和电话。

2) 查询全体学生的基本情况。

3) 查询带了毕业生的老师的教师号。

4)
查询教师“朱龙”基本情况。

5) 查询所有姓“王”同学的基本情况。

6) 统计每种学历老师的人数。

7)
查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业设计题目)(注:1组老师只能带1组的学生)
8) 查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教
师名称。

(注:要求老师的组号和学生的组号相一致.)
--1) 查询选修了课程的学生的学号;
SELECT DISTINCT Sno FROM SC
*/
/*
--2) 查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;
SELECT Sname XM,2017-Sage CSNF FROM Student
*/
/*
--3) 查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。

SELECT Sno,Sname,Sdept
FROM Student
WHERE Sage BETWEEN 18 AND 20
*/
/*
--4) 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

SELECT Sname,Ssex
FROM Student
WHERE Sdept IN ('IS','MA','CS')
*/
/*
--5)用LIKE查询课程名为DB_S程的课程号和学分。

SELECT Cno,Ccredit
FROM Course
WHERE Cname LIKE 'DB_S'
*/
/*
--6)查所有有成绩的学生学号和课程号。

SELECT Sno,Cno
FROM SC
*/
/*
--7)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄升序排列SELECT *
FROM Student
ORDER BY Sdept,Sage
*/
--8)查询选修了课程的学生人数。

SELECT COUNT(DISTINCT Sno)
FROM SC
*/
/*
--9)计算1号课程的学生平均成绩。

SELECT AVG(Grade)
FROM SC
WHERE Cno='1'
*/
/*
--10)查询有3人以上(含3人)同学选修课程的课程号。

SELECT Cno
FROM SC
GROUP BY Cno
HAVing COUNT(*)>=3
*/
/*
--11)查询1号课程的间接先修课。

SELECT
FROM Course FIRST,Course SECOND
WHERE ='1' AND =
*/
/*
--12)查询每个学生的学号、姓名、选修的课程名及成绩。

SELECT ,Sname,Cname,Grade
FROM Student,SC,Course
WHERE = AND =
*/
/*
--13)找出每个学生等于他选修课程平均成绩的课程号。

SELECT Sno,Cno
FROM SC x
WHERE Grade=(SELECT AVG(Grade)
FROM SC y
WHERE =
*/
--------------------------------------------------------
/*
--1)查询全体学生的学号和姓名和电话。

SELECT Sno,Sname,Stel
FROM Student
*/
/*
--2)查询全体学生的基本情况。

SELECT *
FROM Student
*/
/*
--3)查询带了毕业生的老师的教师号。

SELECT DISTINCT Tno
FROM Topic
*/
/*
--4)查询教师“朱龙”基本情况。

SELECT *
FROM Teacher
WHERE Tname='朱龙'
*/
/*
--5)查询所有姓“王”同学的基本情况。

SELECT *
FROM Student
WHERE Sname LIKE '王%'
*/
/*
--6)统计每种学历老师的人数。

SELECT Tdegree,COUNT(*)
FROM Teacher
GROUP BY Tdegree
*/
/*
--7)查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业设计题目)(注:1组老师只能带1组的学生)
SELECT ,Sname,,Tname,Hname
FROM Student LEFT OUTER JOIN TOPIC ON=,Teacher
WHERE ='1' AND = AND =
*/
/*
8)查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教师名称。

(注:要求老师的组号和学生的组号相一致.)
SELECT ,Sname,Hname,Tname
FROM Student LEFT OUTER JOIN (SELECT Hname,Tname,Sno
FROM Topic,Teacher
WHERE = TEMP ON =
*/。

相关文档
最新文档