实验5 SQL语言之高级查询

实验5 SQL语言之高级查询
实验5 SQL语言之高级查询

实验五高级查询

【实验目的与要求】

1、熟练掌握IN子查询

2、熟练掌握比较子查询(尤其要注意ANY、ALL谓词如何用集函数代替)

3、熟练掌握EXISTS子查询(尤其是如何将全称量词和逻辑蕴含用EXISTS谓词代替)

4、熟练掌握复杂查询的select语句

【实验准备】

1.准备好测试数据

2.熟悉多表查询与嵌套查询的用法。

【实验内容】

5.1.准备工作

1.创建测试用数据库XSGL,并在其中创建三个表

本实验需用到student、course和SC表,其结构和约束如下:

Student表结构及其约束为:

表5-1 student表结构和约束

列名称类型宽度允许空值缺省值主键说明

Sno char 8 否是学号

Sname varchar 8 否学生姓名

Sex char 2 否男性别

Birth datetime 否出生年月Classno char 3 否班级号Entrance_date datetime 否入学时间Home_addr varchar 40 是家庭地址

Course表结构及其约束为:

表5-2 course表结构和约束

列名称类型宽度允许空值缺省值主键说明

cno Char 3 否是课程号

Cname varchar 20 否课程名称Total_perior int 是总学时credit int 是学分

SC表结构及其约束为:

表5-3 SC表结构和约束

列名称类型宽度允许空值缺省值主键外键说明

sno Char 8 否是学号,参照student表

cno char 3 否是课程号,参照course表

grade int 是否成绩其中成绩为百分制。

2.对表添加、修改、删除数据

向student表中插入如下数据:

表5-4 student表

Sno sname sex birth classno Entrance_date Home_addr sdept postcode 20050001 张虹男1984/09/011 051 2005/09/01 南京CS 200413 20050002 林红女1983/11/12 051 2005/09/01 北京CS 100010 20050003 赵青男1982/05/11 051 2005/09/01 上海MA 200013

向course表中插入数据:

表5-5 course表

cno Cname Total_perior credit

001 高数68 3

002 C语言程序设计75 4

003 JAVA语言程序设计68 3

向SC表中插入数据:

表5-6 SC表

Sno Cno grade

20050001 001 89

20050001 002 78

20050001 003 89

20050002 002 60

20050003 001 80

为达到更好的测试效果,请自行向数据库表中添加其它数据,使表中数据量达10条以

上,并使每个字段值表现出多样性。

5.2.复杂查询

(1)查询比“林红”年纪大的男学生信息。

SQL语句:

select *

from Student

where birth<

(

select birth

from Student

where Sname='林虹'

)and Sex='男';

(2)检索所有学生的选课信息。

SQL语句:

select Sno,Sname,Cno,Cname

from Student,Course

(3)查询已选课学生的学号、姓名、课程名、成绩。

连接查询T—SQL语句:

select distinct Student.Sno,Sname,Cname,grade

from Student,Course,SC

where SC.Sno=Student.Sno and https://www.360docs.net/doc/7a7179015.html,o=https://www.360docs.net/doc/7a7179015.html,o

(4)查询选修了“C语言程序设计”的学生的学号和姓名。

SQL语句:

select distinct Student.Sno,Sname

from Student,Course,SC

where https://www.360docs.net/doc/7a7179015.html,ame='C语言程序设计'

(5)查询与“张虹”在同一个班级的学生学号、姓名、家庭住址。

(子查询)SQL语句:

(select classno

from Student

where Sname='张虹'

);

连接查询SQL语句:

select distinct Student.Sno,Sname,Home_addr

from Student,Course,SC

where classno=

(select classno

from Student

where Sname='张虹'

);

(6)查询其他班级中比“051”班任一学生年龄大的学生的学号、姓名。

带有ANY或ALL谓词的子查询语句:

select Sno,Sname

from Student

where birth< any(select birth

from Student

where classno='051')

and classno<>051;

用聚合函数实现:

select Sno,Sname

from Student

where birth< (select MIN(birth)

from Student

where classno='051')

and classno<>051;

(7)查询选修了全部课程的学生姓名。

SQL语句:

select Sname

from Student

where not exists

(

select *

from Course

where not exists

(select *

from SC

where Student.Sno=Sno and https://www.360docs.net/doc/7a7179015.html,o=Cno

)

);

(8)查询至少选修了学生“20050002”选修的全部课程的学生的学号,姓名。

SQL语句:

select Sname,Sno

from Student

where Sno IN

(

select DISTINCT Sno

from SC x

where not exists

(

select Sno,Cno

from SC y

where y.Sno='20050002' and

not exists

(

select Cno,Sno

from SC z

where z.Sno=x.Sno

and https://www.360docs.net/doc/7a7179015.html,o=https://www.360docs.net/doc/7a7179015.html,o

)

)

);

(9)检索学生的学号、姓名、学习课程名及课程成绩。

SQL语句:

select distinct Student.Sno,Sname,Cname,grade

from Student,SC,Course

where SC.Sno=Student.Sno and https://www.360docs.net/doc/7a7179015.html,o=https://www.360docs.net/doc/7a7179015.html,o

(10)检索选修了“高数”课且成绩至少高于选修课程号为“002”课程的学生的学号、课程号、成绩,并按成绩从高到低次序排列。

SQL语句:

select Sno,Cno,grade

from SC

where grade>

(

select MAX(grade)

from SC

where Cno='002'

) and Cno=

(

select cno

from Course

where Cname='高数'

)

order by grade desc;

(11)检索选修3门以上课程的学生的学号、总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。

SQL语句:

select Sno,SUM(grade) as 'total_grade'

from SC

where grade>=60

group by Sno

having Sno in

(

select Sno

from SC

group by Sno

having COUNT(Cno)>3

)

order by SUM(grade) desc;

(12)检索出每位学生的学号、姓名、未修课程名。

SQL语句:

select Sno,Sname,Cname as 'Untake_course'

from Student,Course

where not exists

(

select Sno,Cno

from SC

where Sno=Student.Sno and Cno=https://www.360docs.net/doc/7a7179015.html,o )

order by Student.Sno;

(13)检索多于3名学生选修的并以3结尾的课程号的平均成绩。

SQL语句:

select Cno,avg(grade) as 'average_grade'

from SC

where grade in

(

select grade

from SC

where Cno in

(

select Cno

from SC

group by Cno

having

Count(Cno)>=3

)

)and https://www.360docs.net/doc/7a7179015.html,o like '__3'

group by Cno;

(14)检索最高分与最低分之差大于5分的学生的学号、姓名、最高分、最底分。

SQL语句:

select SC.Sno,Sname,max(grade) as 'Max_Grade',min(grade) as 'Min_Grade' from SC left join Student on(SC.Sno=Student.Sno)

group by SC.Sno,Sname

having SC.Sno in

(

select SC.Sno

from SC,Student

where Student.Sno=SC.Sno

)

and (max(grade)-min(grade))>5

(15)查询选修课程‘001’的学生集合与选修课程‘002’的学生集合的交集SQL语句:

select Sno

from SC

where Cno='001'

and Sno in

(

select Sno

from SC

where Cno='002'

)

(16)查询选修课程‘001’的学生集合与选修课程‘002’的学生集合的差集SQL语句:

select Sno

from SC

where Cno='001'

and Sno not in

(

select Sno

from SC

where Cno='002'

)

5.3.嵌套子查询

以下实验在前面实验中创建的CPXS数据库中完成,请根据前面实验创建的表结构和数据,完成如下嵌套查询:

查询在2004年3月18日没有销售的产品名称(不允许重复)。

用IN子查询:

写出对应SQL语句并给出查询结果:

select distinct 产品名称

from CP

where 产品编号 not in

(

select 产品编号

from CPXSB

where 销售日期='2004-3-18'

);

用EXISTS子查询:

写出对应SQL语句并给出查询结果:

select distinct 产品名称

from CP

where 产品名称!=all

(

select 产品名称

from CP

where exists

(

select 产品编号

from CPXSB

where 销售日期!='2004-03-18' and

CP.产品编号=CPXSB.产品编号

)

)

查询名称为“家电市场”的客户在2004年3月18日购买的产品名称和数量。

用IN子查询:

写出对应SQL语句并给出查询结果:

select 产品名称,数量

from CPXSB left join CP on(CPXSB.产品编号=CP.产品编号)

where 客户编号 in

(

select 客户编号

from XSS

where 客户名称='家电市场'

)

and 销售日期='2004-03-18'

用EXISTS子查询:

写出对应SQL语句并给出查询结果:

select 产品名称,数量

from CPXSB left join CP on(CPXSB.产品编号=CP.产品编号)

where CPXSB.客户编号 =

(

select 客户编号

from XSS

where 客户名称='家电市场'

)

and exists

(

select distinct 产品名称

from CP

where 销售日期='2004-03-18' and

CP.产品编号=CPXSB.产品编号

)

查询销售量大于所有2004年3月18日销售的各产品销售数量的产品编号。

用ALL谓词:

写出对应SQL语句并给出查询结果:

select 产品编号

from CPXSB

where 数量>all(select 数量

from CPXSB

where 销售日期='2004-03-18'

)

用集函数:

写出对应SQL语句并给出查询结果:

select 产品编号

from CPXSB

group by 产品编号,数量

having 数量> (select max(数量)

from CPXSB

where 销售日期='2004-03-18'

)

查询购买了所有产品的客户的名称。

写出对应SQL语句并给出查询结果:

select 客户名称

from XSS

where not exists(

select 产品编号

from CP

where not exists(

select 客户编号

from CPXSB

where CP.产品编号=CPXSB.产品编号and CPXSB.客户编号=XSS.客户编号

)

)

查询购买了客户编号为“000001”的客户购买的所有产品的客户的名称。

写出对应SQL语句并给出查询结果:

select 客户名称

from XSS

where 客户编号 in

(select distinct 客户编号

from CPXSB x

where not exists(select 客户编号

from CPXSB y

where y.客户编号='000001'

and not exists(select 客户编号 from CPXSB z

where z.客户编号=x.客户编号

and z.产品编号=y.产品编号))) and 客户编号!='000001'

5.4.集合操作

1. 准备工作

创建如下两表X和Y,并添加相应的值

图5-1 测试表X和Y

阅读并执行以下语句,理解其功能,给出运行结果。

2. 集合并:union

执行以下语句:

请给出运行结果:

3. 集合的差:minus:

执行以下语句:

请给出运行结果:

4. 集合交:intersect:

执行以下语句:

请给出运行结果:

R语言实验报告—习题详解

R语言实验报告 习题详解 学院: 班级: 学号: 姓名: 导师: 成绩:

目录 一、实验目的................................................................................................................................. 二、实验内容................................................................................................................................. 1.1问题叙述 ................................................................................................................................... 1.2问题求解 ................................................................................................................................... ............................................................................................................................................................ ............................................................................................................................................................ 1.3结果展示 ................................................................................................................................... 2.1问题叙述 ................................................................................................................................... 2.2问题求解 ................................................................................................................................... ............................................................................................................................................................ ............................................................................................................................................................ 2.3结果展示 ................................................................................................................................... 3.1问题叙述 ................................................................................................................................... 3.2问题求解 ................................................................................................................................... ............................................................................................................................................................ ............................................................................................................................................................ ............................................................................................................................................................ ............................................................................................................................................................ 3.3结果展示 ................................................................................................................................... 4.1问题叙述 ................................................................................................................................... 4.2问题求解 ................................................................................................................................... ............................................................................................................................................................ ............................................................................................................................................................ 4.3结果展示 ................................................................................................................................... 5.1问题叙述 ................................................................................................................................... 5.2问题求解 ................................................................................................................................... ............................................................................................................................................................ ............................................................................................................................................................ 5.3结果展示 ................................................................................................................................... 6.1问题叙述 ................................................................................................................................... 6.2问题求解 ................................................................................................................................... ............................................................................................................................................................ ............................................................................................................................................................ 6.3结果展示 ................................................................................................................................... 三、实验总结.................................................................................................................................

数据库实验5实验报告

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:数据库的完整性 班级:软件132 学号:2013122907 姓名:莹莹

一.目的与要求 1.掌握索引创建和删除的方法; 2.掌握创建视图和使用视图的方法; 3.掌握完整性约束的定义方法,包括primary key、foreign key等。 二.实验容 1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。 2.在salary表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。 3.建立视图view1,查询所有职工的职工号、、部门名和2004年2月工资,并按部门名顺序排列。 4.建立视图view2,查询所有职工的职工号、和平均工资; 5.建立视图view3,查询各部门名和该部门的所有职工平均工资; 6.显示视图view3的定义; 7.实施worker表的“性别”列默认值为“男”的约束; 8.实施salary表的“工资”列值限定在0~9999的约束; 9.实施depart表的“部门号”列值唯一的非聚集索引的约束; 10.为worker表建立外键“部门号”,参考表depart的“部门号”列。 11.建立一个规则sex:性别=’男’ OR 性别=’女’,将其绑定到“性别”上; 12.删除上面第7、8、9和10建立的约束; 13.解除第11题所建立的绑定并删除规则sex。 三.实验步骤 1 USE factory GO --判断是否存在depno索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='depno') DROP INDEX worker.depno GO --创建depno索引 CREATE INDEX depno ON worker(部门号) GO EXEC sp_helpindex worker GO 2 USE factory GO --判断是否存在no_date索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='no_date') DROP INDEX salary.no_date GO --创建no_date索引

R语言上机实验三

理学院实验报告 班级:学号:姓名:实验编号: 实验三:概率和分布的R实现 一、实验目的与要求: 1、会用R给出常见分布的概率密度、概率、分位数和随机数。 2、会利用sample命令进行随机抽样,prod,choose命令计算概率。 3、会利用R绘制各类分布的图形。 4、会利用choose,prod命令计算古典概率。 二、实验内容: 1.从一副扑克牌(52张)中随机抽5张,求下列概率 (1) 抽到的是10,J,Q,K,A; > 4/choose(52,5) [1] 1.539077e-06 (2) 抽到的是同花顺。 > 9*choose(4,1)/choose(52,5) [1] 1.385169e-05 注:同花顺是指5张同一色牌能按从小到大连续排序,如2<3<4<5<6,3<4<5<6<7,…,10 x<-rbinom(1000,1,0.5) > x (2)用函数ifelse( )将上面随机数中的0替换成-1; > ifelse(x==0,-1,1 )

(3)用函数cumsum( )作出累积和; > y<-ifelse(x==0,-1,1 ) > cumsum(y)

(4)使用命令plot( ) 作出随机游动的示意图. > plot(cumsum(y))

3.在同一个图形中画出统计的四大分布密度曲线(dnorm, dchisq, dt, df),注意不同分布有不 同的线型、颜色和宽度,还有图形都要在同一方框中,最后用图例说明(legend)。 > curve(dnorm(x,0,1),xlim=c(-1,5),ylim=c(0,0.5),col=1,lwd=1,lty=1) > curve(dchisq(x,1),xlim=c(-1,5),ylim=c(0,0.5),lwd=2,lty=2,col=2,add=T) > curve(dt(x,1),xlim=c(0,8),ylim=c(0,0.5),lwd=3,lty=3,col=3,add=T) > curve(dt(x,1,1),xlim=c(0,8),ylim=c(0,0.5),lwd=4,lty=4,col=4,add=T) > legend('topright',c("dnorm","dchisp","dt","df"),lty=c(1,2,3,4),col=c(1,2,3,4),lwd=c(1,2,3,4)) > curve(dnorm(x,0,1),xlim=c(-1,5),ylim=c(0,0.5),col=1,lwd=1,lty=1) > curve(dchisq(x,1),xlim=c(-1,5),ylim=c(0,0.5),lwd=2,lty=8,col=2,add=T) > curve(dt(x,1),xlim=c(0,8),ylim=c(0,0.5),lwd=5,lty=3,col=7,add=T) > curve(dt(x,1,1),xlim=c(0,8),ylim=c(0,0.5),lwd=4,lty=4,col=4,add=T) > legend('topright',c("dnorm","dchisp","dt","df"),lty=c(1,8,3,4),col=c(1,2,7,4),lwd=c(1,2,5,4)) > 4. 除本章给出的标准分布外, 非标准的随机变量X的抽样可通过格式点离散化方法实现.

数据库实验报告五

数据库原理及应用实验报告(五) 实验题目:过程 专业:数字媒体技术 班级:1306班 姓名:***************

运城学院实验报告 专业:数字媒体技术系(班):计算机科学与技术系1306班姓名:************* 课程名称:数据库原理及应用 实验项目:过程实验类型:验证型指导老师:***** 实验地点:软件实验室一时间:2015年12月10日 一、实验目的: 掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。 二、实验内容: (1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示: create procedure pro_s @stu_sdept varchar(5) //这是带参数的过程,参数不用()括 As select count(*) as 人数from student where sdept = @ stu_sdept 1、存储过程的执行 execute pro_s 实参//实参可以是变量,也可以是常量 (2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示: create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output的是输出参数as select @stu_avg = avg(grade) //将平均值给了变量 from student,sc where student. sno = sc. sno and student.sno=@stu_sno 1.存储过程的执行 declare @stuavg float //用于存放输出变量内容的 execute pro_stu ‘1000’,@stuavg output// 输出参数必须是变量 select @stuavg //看结果 (3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用

R语言判别分析实验报告

R语言判别分析实验报告 The latest revision on November 22, 2020

R语言判别分析实验报告 班级:应数1201 学号: 姓名:麦琼辉 时间:2014年11月28号 1实验目的及要求 1)了解判别分析的目的和意义; 2)熟悉R语言中有关判别分析的算法基础。 2实验设备(环境)及要求 个人计算机一台,装有R语言以及RStudio并且带有MASS包。 3实验内容 企业财务状况的判别分析 4实验主要步骤 1)数据管理:实验对21个破产的企业收集它们在前两年的财务数据,对25 个财务良好的企业也收集同一时期的数据。数据涉及四个变量:CF_TD(现金/总债务);NI_TA(净收入/总资产);CA_CL(流动资产/流动债务); CA_NS(流动资产/净销售额),一个分组变量:企业现状(1:非破产企业,2:破产企业)。 2)调入数据:对数据复制,然后在RStudio编辑器中执行如下命令。 case5=read.table(‘clipboard’,head=T) head(case5) 3)Fisher判别效果(等方差,线性判别lda):采用Bayes方式,即先验概 率为样本例数,相关的RStudio程序命令如下所示。 library(MASS) ld=lda(G~.,data=case5);ld#线性判别 ZId=predict(ld) addmargins(table(case5$G,ZId$class)) 4)Fisher判别效果(异方差,非线性判别--二次判别qda):再次采用

Bayes 方式,相关的RStudio 程序命令如下所示。 library(MASS) qd=qda(G~.,data=case5);qd#二次判别 Zqd=predict(qd) addmargins(table(case5$G,Zqd$class)) 5实验结果 表1线性判别lda 效果 原分类 新分类 12合计 1 24 1 25 2 3 18 21 合计 27 19 46 符合率 91.30% 由表1和表 2可知,qda (二次判别---非线 性判别)的效果比lda (一次判别)要好。 6实验小结 通过本次实验了解了判别分析的目的和意义,并熟悉R 语 言中有关判别分析的算法基础。 表2二次判别qda 效果 原分类 新分类 12合计 1 24 1 25 2 2 19 21 合计 26 20 46 符合率 93.50%

数据库实验报告

数据库实验报告

武汉理工大学 学 生 实 验 报 告 书 实验课程名称 数据库系统概论 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 学生学号 实验课成绩

2013 — 2014 学年第二学期实验课程名称:数据库系统概论 实验项目名称SQL SEVER 2000的系 统工具及用户管理 实验 成绩 实验者专业班 级 组别 同组者实验 日期 2014年4 月24日

第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000工具创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 二、实验基本原理与设计(包括实验方案设计,实 验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (2)创建数据库和查看数据库属性。 (3)创建表、确定表的主码和约束条件。 (4)查看和修改表的结构。 (5)向数据库输入数据,观察违反列级约束时出现的情况。 (6)修改数据。 (7)删除数据,观察违反表级约束时出现的情况。 三、主要仪器设备及耗材 Windows XP SQL SERVER 2000

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录, 实验现象记录,实验过程发现的问题等) 没有错误 错误:未能建立与WORKEPLACE\XUMENGXING的链接SQL Server 不存在或访问被拒绝 原因:未启动数据库服务 二、实验结果及分析(包括结果描述、实验现象分 析、影响因素讨论、综合分析和结论等) 实验结果部分截图:

数据库实验98235

数据库原理实验指导 实验前准备: 请设计一个企业销售管理据库,其中需要保存的信息如下: 员工信息,包括:员工编号、员工姓名、性别、所属部门、职称、到职日、生日、薪水、填表日期; 客户信息,包括:客户号,客户名称,客户住址,客户电话、邮政编码; 产品信息,包括:产品编号,产品名称; 员工和客户可以签订订单,每签订一个订单,就要保存订单信息,包括:订单编号、客户号、业务员编号、订单金额、订货日期、出货日期、发票号码。 此外,每个订单可能涉及到多种产品,每种产品可能被多个订单订购。因此需要每个订单中每类产品的销售明细,包括每种产品的销售数量、单价、订单日期;要求: (1)给出系统的ER图(可以用word或其它画图工具,如Visio画),要求画出所有的实体,联系,属性以及联系的类型; (2)将ER图转换为关系模型; 实验一 实验名称:数据定义(2课时)

一、实验目的 1、理解数据库模式的概念,通过使用SQL SERVER企业管理器或者My Sql建立数据库和基本表。模式为人事表、客户表、销售表、销售明细表、产品表。熟悉SQL SERVER 企业管理器的使用,并将得到的表生成脚本,然后保存。 2、理解上述基本表之间的关系,建立关系表。 3、掌握修改表结构的基本方法 4、掌握索引和视图的创建方法 二、实验环境 MS SQL SERVER或者My Sql。 三、实验内容与步骤 1、建立一个数据库和五张表的表结构。 (1)/*员工人事表employee */

Create datebase sale; create table employee( emp_no char(5) Not null primary key, emp_name char(10) Not null, sex char(1) Not null, dept char(4) null, title char(6) null, date_hired datetime null, birthday datetime null, salary int null, addr char(50) null, Mod_date datetime Default 0, constraint c1 check(性别in('男','女')) ); (2)/*客户表customer */ create TABLE customer( cust_id char(5) Not null primary key, cust_name char(20) Not null, addr CHAR(40) Not null, tel_no char(10) Not null, zip char(6) null ); (3)/*销售主表sales */

数据库实验报告1

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1'

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch;

R语言实验报告习题详解

R语言实验报告习题详 解 标准化工作室编码[XX968T-XX89628-XJ668-XT689N]

R语言实验报告 习题详解 学院: 班级: 学号: 姓名: 导师: 成绩:

目录

一、实验目的 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具; 本次试验要求掌握了解R语言的各项功能和函数,能够通过完成试验内容对R语言有一定的了解,会运用软件对数据进行分析; 通过本实验加深对课本知识的理解以及熟练地运用R语言软件来解决一些复杂的问题。 二、实验内容 1.1问题叙述 将1,2,…,20构成两个4×5阶的矩阵,其中矩阵A是按列输入,矩阵B 是按行输入,并做如下运算. C=A+B; D=A*B; F是由A的前3行和前3列构成的矩阵; G是由矩阵B的各列构成的矩阵,但不含B的第3列. 1.2问题求解 1.2.1创建按列、行输入的4×5矩阵; 程序求解 1.3结果展示

2.1问题叙述 已知有5名学生的数据,如下表所示.用数据框的形式读入数据. 2.2问题求解 StudentData数据框 程序求解 2.3结果展示 3.1问题叙述 3.2问题求解 直方图; 3.2.2运用lines函数绘制密度估计曲线;

3.2.3运用plot 函数绘制经验分布图; 3.2.4运用qqnorm 函数绘制QQ 图 3.3结果展示 直方图 密度估计曲线 经验分布图 QQ 图 4.1问题叙述 甲、乙两种稻谷分别播种在10块试验田中,每块实验田甲乙稻谷各种一半.假设两稻谷产量X ,Y 均服从正态分布,且方差相等.收获后10块试验田的产量 求出两稻种产量的期望差 12μμ- 的置信区间(0.05α= ). 4.2问题求解 框 t.test 函数求解 4.3结果展示 由以上程序运行得两稻种产量的期望差12μμ-的95%置信区间为 [ 7.53626, 20.06374]. 5.1问题叙述

数据库实验五

西南石油大学实验报告 注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。 一、实验课时:2 二、实验目的 (1) 学习如何编写简单的Transact-SQL程序。 (2) 掌握函数的使用。 (3) 学习如何执行Transact-SQL程序。 (4) 掌握简单存储过程的编写方法。 (5) 掌握简单自定义函数的编写方法。 三、实验要求 (1) 使用SQL Server 2008查询分析器。 (2) 严格依照操作步骤进行。 四、实验环境 (1) PC机。 (2) SQL Server 2008。 五、实验内容及步骤 1.使用局部变量、全局变量 (1)定义一个tinyint的整型变量,为其赋值45,并显示变量的值。DECLARE@LENGTH tinyint SET@LENGTH= 45

PRINT@LENGTH; (2)定义一个长度为20的可变长度型字符变量,为其赋值“Welcome to SWPU”,并显示变量的值。 DECLARE@str nchar(20) SET@str='Welcome to SWPU' PRINT@str (3)查询当前数据库服务器名。 select@@SERVERNAME

(4)查询当前数据库管理系统版本。 SELECT@@VERSION; 2.函数的使用 (1) 数学函数的使用 分别用函数求出-3的绝对值,16的平方根,5的三次方。DECLARE@i int; SET@i=-3; SELECT ABS(@i); GO select sqrt(16)

select power(5,3) (2) 字符串函数的使用 1)分别将字符串“china”、“MACHINE”转换成大写、小写字母; select upper('china') select lower('MACHINE')

数据库原理实验报告(5)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验五嵌套子查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)掌握多表查询和子查询的方法。 (2)熟练使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 (3)理解不相关子查询和相关子查询的实现方法和过程。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作: a)查询选修了数据结构与算法的学生学号和姓名。 b)查询07294002课程的成绩低于孙云禄的学生学号和成绩。 c)查询和孙云禄同年出生的学生的姓名和出生年份。 d)查询其他系中年龄小于数学与信息技术学院年龄最大者的学生。 e)查询其他系中比数学与信息技术学院学生年龄都小的学生。 f)查询同孙云禄数据库原理与应用课程分数相同的学生的学号和姓名。 g)查询选修了07294002课程的学生姓名。 h)查询没有选07294002课程的学生姓名。 i)查询同时选修了07295006和07295007课程的学生的学号。 j)查询所有未授课的教师的工号、姓名和院系,结果按院系升序排列。 扩展实验: a)查询和10060101选修的全部课程相同的学生的学号、课程号、期末考试 成绩。 b)查询至少选了10060101选修的全部课程的学生的学号。 c)查询年龄比所在院系平均年龄小的学生的学号、姓名、年龄、院系,按 院系和年龄升序排列。 d)查询每门课都在80分以上的学生的学号和姓名。 (2)在SQL Server Management Studio中新建查询,尽可能用多种形式表示实验中的查询语 句,并进行比较。 (3)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 将调试成功的T-SQL语句写在下方(标明题号)。

R语言实验一

实验1 R基础(一) 一、实验目的: 1.熟悉实验报告书的书写要求; 2.熟悉R的界面及基本操作。 二、实验内容: 1.熟悉R官方网站及下载安装方法; 2.熟悉R的界面及菜单功能; 3.掌握R的简单操作; 4.利用R 软件进行一些简单的数学运算。 练习: 要求:①完成练习并粘贴运行截图到文档相应位置(截图方法见下),并将所有自己输入文字的字体颜色设为红色(包括后面的思考及小结),②回答思考题,③简要书写实验小结。④修改本文档名为“本人完整学号姓名1”,其中1表示第1次实验,以后更改为2,3,...。如文件名为“1305543109张立1”,表示学号为1305543109的张立同学的第1次实验,注意文件名中没有空格及任何其它字符。最后连同数据文件、源程序文件等(如果有的话,本次实验没有),一起压缩打包发给课代表,压缩包的文件名同上。 截图方法: 法1:调整需要截图的窗口至合适的大小,并使该窗口为当前激活窗口(即该窗口在屏幕最前方),按住键盘Alt键(空格键两侧各有一个)不放,再按键盘右上角的截图键(通常印有“印屏幕”或“Pr Scrn”等字符),即完成截图。再粘贴到word文档的相应位置即可。 法2:利用QQ输入法的截屏工具。点击QQ输入法工具条最右边的“扳手”图标,选择其中的“截屏”工具。) 1.访问R的官方网站,了解网站基本框架和内容:https://www.360docs.net/doc/7a7179015.html,/。 2.在镜像网站CRAN下载最新版R安装程序。选择离自己最近的国内的镜像网站, 点击进入其中一个镜像网站后,下载最新版的Windows下的安装程序。

3. 安装R 程序(如果实验电脑已经安装,则可跳过此步骤)。双击R-3.2.3-win.exe (目 前最新版)开始安装。一直点击下一步,各选项默认。 4. 在R 中进行简单的计算。 实验基本原理与方法: (1) R 的基本界面是一个交互式命令窗口,命令提示符是一个大于号“>”,命令的结 果马上显示在命令下面。 (2) R 命令主要有两种形式:表达式或赋值运算(用“<-”表示)。在命令提示符后键 入一个表达式表示计算此表达式并显示结果。赋值运算把赋值号右边的值计算出来赋给左边的变量。<- 表示赋值,c( )用来构建向量(一维数组),用来将多个值存储在一个变量(向量)中,X<-c( )即表示将一组数据赋给变量 X 。 (3) R 语言区分大小写,即 X 与 x 不同。 (4) 一行中允许有多个命令,多个命令由(;)分隔;基本命令由({和})合并成复合表达式。 (5) 注释以“#”开始,到行末结束;命令未结束,R 给出提示符(+)。 (6) 可以用向上光标键来找回以前运行的命令再次运行或修改后再运行。 完成以下基本计算(将输入和输出一起截图) (1) -9的3次方乘以 5再除以 6;(^,*,/) (2) 3 的算术平方根; (sqrt()) (3) 10 的自然对数;(log()) (4) 以 10 为底的3+2π 的对数;(log10(),pi ) (5) 以自然对数为底的3.2 的指数;(exp()) (6) 三角函数cos 2π的值;(cos()) (7) 连乘计算:①47P ,即7*6*5*4 ;(prod(7:4)) ②3!; ③7*6*5*4/3! ; (8) 组合数计算:① 26C ; ② 1/26C 。(利用上一题) 运行结果截图:

数据库实验报告五

数据库实验报告五

数据库原理及应用实验报告(五) 实验题目:过程 专业:数字媒体技术 班级:1306班 姓名:***************

运城学院实验报告 专业:数字媒体技术系(班):计算机科学与技术系1306班 姓名:************* 课程名称:数据库原理及应用 实验项目:过程实验类型:验证型指导老师:***** 实验地点:软件实验室一时间:2015年12月10日 一、实验目的: 掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。 二、实验内容: (1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示: create procedure pro_s @stu_sdept varchar(5) //这是带参数的过程,参数不用()括 As select count(*) as 人数from student where sdept = @ stu_sdept

1、存储过程的执行 execute pro_s 实参//实参可以是变量,也可以是常量 (2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示: create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output 的是输出参数 as select @stu_avg = avg(grade) //将平均值给了变量 from student,sc where student. sno = sc. sno and student.sno=@stu_sno 1.存储过程的执行 declare @stuavg float //用于存放输出变量内容的execute pro_stu ‘1000’,@stuavg output// 输出参数必须是变量 select @stuavg //看结果 (3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用

北邮大三下数据库实验报告5

北京邮电大学 实验报告 课程名称数据库系统原理 实验内容实验5 数据库完整性与安全性实验 班级2013211***姓名 *** 指导老师成绩_________ 2016年05月20日

实验5 数据库完整性与安全性实验 实验目的: 1.通过对完整性规则的定义实现,熟悉了解SQL SERVER中完整性保证的规则和实现方 法,加深对数据完整性的理解。 2.通过对安全性相关内容的定义,熟悉了解SQL SERVER中安全性的内容和实现方法, 加深对数据库安全性的理解 实验内容 完整性实验与要求: 1.分别定义数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; 定义主键: 方法一:使用Enterprise Manager设置主键(以book表为例) ①光标移到book表的位置,右键->设计 ②在你要选的属性列右键->设置主键,完成。

方法二:使用SQL语句。 ①右键数据库,新建查询 设置外键: 方法一:使用Enterprise Manager设置外键(以student表为例) ①单击student表,鼠标移到“键”文件夹,单击右键,选择“新建外键”。 ②选择“表和列规范”进行设置

③我们想在student表设置class_id属性为外键,按照下图选择,点击确定,保存即可。 方法二:SQL语句 新建查询,输入如图语句。

2.向学生表插入具有相同学号的数据,验证其实体完整性约束; Student表的主键是学号,所以不能插入有相同学号的学生。 3.向学生表中插入一条数据,班级号是学生表的外键,验证参照完整性约束; Class表中没有“2013211302”这个班级,所以无法插入。改变班级号为class表中存在的,则能够进行插入,结果如下: 4.删除教师表中的所有数据,验证参照完整性约束;

数据库实验5

实验5 SQL的数据操纵功能 实验目的 学会使用MS SQL SERVER 2000的查询分析器完成SQL的数据操纵功能,主要包括数据插入、删除与修改。 知识点拨: 1.数据插入语法格式: 2.数据修改语法格式: 3.数据删除语法格式: 4.SELECT … INTO…语句的使用: 实验内容 1.数据插入 2.数据修改 3.数据删除 4.SELECT … INTO…语句: 实验步骤 1.选择数据库JX; 注意:以下操作请验证结果! 2.数据插入: 1)向学生表加入一条记录,其学号、姓名、性别和系别分别为:(’06011’,’王文 娟’,’女’,’计算机’); insert into Student(Sno,Sname,Sex,Sdept) values ('06011','王文娟','女','计算机') 2)向学生表加入一条记录,其姓名、性别和系别分别为:(’王娟’,’女’,’计算 机’),观察运行结果; 3)创建一个与学生信息表结构完全相同的基本表CP_Student,用以存储计算机和外 国语系学生信息; create table CP_Student ( Sno char(10) not null, SName varchar(10), Sex char(2), Sbirth smalldatetime, Sdept varchar(20), total smallint )

4)将Student中计算机系和外国语系的学生信息插入到CP_Student; insert into CP_Student select * from Student where Sdept='CS'or Sdept='外国语系' 3.数据修改: 1)把教师“王芳”改为“王芳龄”; update Teacher set Tname='王芳龄' where Tname='王芳' 2)将职称是副教授的教师工资提高2%; update Teacher set Tpay=Tpay*(1+0.02) where Tprof='副教授' 3)将计算机系和外国语系学生的考试成绩分别下调4%和增加2分; update Student set Total=total*(1-0.04) where Sdept='CS' update Student set Total=Total+2 where Sdept='外国语系' 4)把李强同学的所有分数都加1分;(可使用UPDATE。。。FROM 。。。WHERE。。。) update SC set Grade=Grade+1 where Sno=( select Sno from Student where SName='李强' ) 5)选做题:对课程表中的学分进行修改,修改方式为:学分低于3分的加0.4分,高 于3分的减去0.5分,3分的加0.2分; update Course set Credit=Credit+0.4 where Credit<3 update Course set Credit=Credit-0.5 where Credit>3

相关文档
最新文档