当前位置:文档之家› 数据库原理上机作业实验4,5

数据库原理上机作业实验4,5

数据库原理上机作业实验4,5
数据库原理上机作业实验4,5

学号:15905125 姓名:吴鑫达班级:计算机一班上机时间:2016/5/13 数据库版本:MS SQL2008R2

上机实验四——SELECT语句基本格式的使用

一、实习目的:

掌握SELECT的基本使用格式,能使用SQL Server对表作简单查询。

二、实习准备:

1. 复习第三章3.4节中SELECT语句的基本使用格式。

2. 复习SQL中五种库函数:AVG、SUM、MAX、MIN、COUNT;

3. 完成习题三第12题中的各项操作的SQL语句。

三、实习内容:

1. 验证习题三第12题中的各项操作的SQL语句。

①找出所有被学生选修了的课程号;

语句:selectdistinct Cno

From Grade;

截图:

②找出01311班女学生的个人信息;

语句:select*

From Student

Where Ssex='女'and Clno='01311';

截图:

③找出01311班、01312班的学生姓名、性别、出生年份;

语句:(六种)

1)Select Sname,Ssex,[出生年份]=(2016-Sage)

From Student

Where Clno='01312'or Clno='01311';

2)Select Sname,Ssex,[出生年份]=(2016-Sage)

From Student

Where Clno IN('01311','01312');

3)Select Sname,Ssex,’出生年份’=(2016-Sage)

From Student

Where Clno='01312'or Clno='01311';

4)Select Sname,Ssex,”出生年份”=(2016-Sage)

From Student

Where Clno='01312'or Clno='01311';

5)Select Sname,Ssex,(2016-Sage)AS'出生年份'

From Student

Where Clno='01312'or Clno='01311';

6)Select Sname,Ssex, (2016-Sage)AS“出生年份”

From Student

Where Clno='01312'or Clno='01311';

截图:

④找出所有姓李的学生的个人信息;

语句:Select*

From Student

Where Sname like'李%';

截图:

⑤找出学生李勇所在班级的学生人数;

语句:select COUNT(*)as'学生人数'

from Student

where Clno in(

select Clno

from Student

where Sname='李勇'

);

截图:

⑥找出课程名为操作系统的平均成绩、最高分、最低分;语句:select AVG(Gmark)as'平均成绩',

MAX(Gmark)as'最高分',

MIN(Gmark)as'最低分'

from Grade

where Cno in(

select Cno

from Course

where Cname='操作系统'

);

截图:

⑦找出选修了课程的学生人数;

语句:select COUNT(distinct Sno)as' 选修人数' from Grade;

截图:

⑧找出选修了课程操作系统的学生人数;

语句:select COUNT(distinct Sno)as' 选修操作系统的人数' from Grade

where Cno IN(

select Cno

from Course

where Cname='操作系统'

);

截图:

⑨找出2000级计算机软件班的成绩为空的学生姓名

语句:select Sname

from Student

where Sno IN(

select Sno

from Grade

where Gmark=null)and Clno in(select Clno

from Class

where Inyear='2000'AND Speciality='计算机软件');截图:

2. 试一下以下语句是否正确:

SELECT eno,basepay,service

FROM salary

WHERE basepay

答:不对,聚合函数(集函数)不应该出现在where 语句中。(3.4.2:带条件关系查询)

四、上机实验收获(感想):

实践是检验真理的唯一标准

五、思考题:

什么情况下需要使用关系的别名?别名的作用范围是什么?

答:在简化书写和子查询的情况下。作用范围:区分先后查询的同一关系区。

上机实验五——SELECT语句高级格式和完整格式的使用一、实习目的:

掌握SELECT语句的嵌套使用方法,能使用SQL Server2000对表作复杂查询。

二、实习准备:

1.复习第三章3.4节中SELECT语句的高级格式和完整格式的使用。

2.了解库函数在分组查询中的使用规则;

3.完成习题三第13、14题中的各项操作的SQL语句。

三、实习内容:

完成以下各项操作的SQL语句:

13.

①找出与李勇在同一个班级的学生信息;

语句:select*

from Student

where Clno in(

select Clno

from Student

where Sname='李勇')and Sname NOTIN('李勇');

截图:

②找出所有与李勇有相同选修课程的学生信息;;

语句:select*

from Student

where Sno in(

select Sno

from Grade

where Cno in(

select Cno

from Grade

where Sno=(select Sno

from Student

where Sname='李勇'

)

))and Sname NOTIN('李勇');

截图:

③找出年龄介于学生李勇与25岁之间的学生信息(已知李勇的年龄小于25岁);语句:select*

from Student

where Sage>(select Sage

from Student

where Sname='李勇'

)and Sage< 25;

截图:

④找出选修了课程操作系统的学生学号与姓名;

语句:select Sno,Sname

from Student

where Sno in(

select Sno

from Grade

where Cno in(

select Cno

from Course

where Cname='操作系统'

)

);

截图:

⑤找出没有选修1号课程的所有学生姓名;语句:select Sname

from Student

where Sno notin(

select Sno

from Grade

where Cno='1'

);

截图:

⑥找出选修了全部课程的学生姓名。语句:

语句:select Sname

from Student

where notexists(

select*

from Course

where notexists(

select*

from Grade

where Sno=Student.Sno and Cno=https://www.doczj.com/doc/7715581895.html,o

)

);

截图:

14.针对习题10的四个表,用SQL语言完成以下各项查询:

(1)查询选修了3号课程的学生学号及其成绩,并按成绩的降序排列;语句:select Sno,Gmark

from Grade

where Cno='3'

orderby Gmark desc;

截图:

(2)查询全体学生信息,要求查询结果按班级号升序排列,同一班级学生按年龄降序排列;语句:select*

from Student

orderby Clno,Sage desc;

截图:

(3)求每个课程号及相应的选课人数;

语句:selectdistinct Cno,count(Cno)AS'选修人数' from Grade

GROUPBY Cno;

截图:

(4)查询选修了3门以上课程的学生学号。

语句:selectdistinct Sno,COUNT(Cno)

from Grade

groupby Sno

having Count(Cno)>3;

截图:

四、上机实验收获(感想):

实践是检验真理的唯一标准

五、思考题:

一:问题:使用存在量词[NOT]EXIST的嵌套查询时,何时外层查询的WHERE条件为真,何时为假?

答:取决于子查询的select语句,根据它所要查询的值在内查询中进行检查,返回一个逻辑值。

1.用UNION或UNION ALL将两个SELECT命令结合为一个时,结果有何不同?。

答:1.UNION 命令只会选取不同的值,

2.UNION ALL 命令和UNION 命令几乎是等效的

3. UNION ALL 命令会列出所有的值

2.当既能用连接词查询又能用嵌套查询时,应该选择哪种查询较好?为什么?

答:选用连接词查询。效率高。

3.库函数能否直接使用在:SELECT选取目标、HAVING子句、WHERE子句、GROUP BY列名中?

答:库函数可以使用在SELECT选取目标、HAVING字句、WHERE子句,不能使用在GROUP BY 列名

数据库上机实验7实验报告

上机实验七——视图的建立及操作 一、实习目的: 掌握创建、删除、和查询视图的方法,验证可更新视图和不可更新视图。 二、实习准备: 1.复习第三章3.6节视图 2. 完成习题三第16题中的各项操作的SQL语句。 3.了解可更新视图和不课更新视图 三、实习内容:验证习题三第16题中的各项操作的SQL语句。 ①建立01311班选修了1号课程的学生视图Stu_01311_1 CREATE VIEW Stu_01311_1 AS SELECT * FROM Grade WHERE Cno='1'AND Sno in( SELECT Sno FROM Student WHERE Clno='01311') WITH CHECK OPTION ②建立01311班选修了1号课程并且成绩不及格的学生视图Stu_01311_2 CREATE VIEW Stu_01311_2 AS SELECT * FROM Grade

WHERE Cno='1'AND Gmark<60 AND Sno in( SELECT Sno FROM Student WHERE Clno='01311') WITH CHECK OPTION ③建立视图Stu_year,由学生学号、姓名、出生年份组成 CREATE VIEW Stu_year AS SELECT Sno,Sname,year=2001-Sage FROM Student ④查询1990年以后出生的学生姓名 SELECT Sname FROM Student WHERE 2001-Sage<1990; ⑤查询01311班选修了1号课程并且成绩不及格的学生的学号、姓名、出生年份SELECT Sno,Sname,2014-Sage FROM Student WHERE Clno=01311 AND EXISTS(

数据库原理实验报告

数据库原理 实验报告 系别电子信息系 专业计算机科学与技术班级学号4080522 姓名龚敏 指导教师李爱英

一.概要设计 1.教学数据库各表的关系模式:(加下线的属性为主键) 学生 (学号,姓名,性别, 出生日期,所在系) 英文缩写对照:student(s_no,s_name,s_sex,s_age,s_birthday,s_department) 课程 (课程号,课程名,学分) 英文缩写对照:course(c_no,c_name,c_score) 教师 (职工号,姓名,性别,职称) 英文缩写对照:teacher(t_no,t_name,t_sex,t_duty) 选课 (学号,课程号,成绩) 英文缩写对照:choice(s_no,c_no,score) 讲授 (职工号,课程号) 英文缩写对照:teaching(t_no,c_no) 2.教学数据库E-R 图: 实体:课程,学生,选课 联系:选课(学生同课程之间多对多的联系m:n),讲授(教师同课程之间多对多的联系m:n)。 二.逻辑设计 代码: use master go create database stu go use stu go n m m n 课程 教师 讲授 选课 学号 姓名 性别 出生日期 成绩 职工号 姓名 性别 职称 学分 课程号 课程名 学生

create table student (s_no char(8) not null primary key, s_name char(8) not null , s_sex varchar(8) not null, s_birthday smalldatetime not null, s_department varchar(13) not null) drop table student use stu go create table teacher (t_no char(8) not null primary key, t_name char(8) not null, t_sex varchar(8) not null, t_duty char(8) not null) create table course (c_no char(8) not null primary key, c_name char(8) not null, c_score varchar not null) create table choice( s_no char(8) not null primary key, c_no char(8) not null primary key, score varchar not null) create table teaching( t_no char(8) not null primary key, c_no char(8) not null primary key) insert student values('101','袁敏','女','1982-2-3','机电') insert student values('102','李志强','男','1983-4-5','计算机') insert student values('103','张亮','男','1984-10-9','建筑') insert student values('104','李平','女','1984-5-6','计算机') insert student values('105','王丽','女','1983-2-1','机电') insert student values('106','刘明耀','男','1982-4-16','计算机') select* from student insert course values('1011','C语言','6') insert course values('1012','数据结构','4') insert course values('1013','微机原理','6') insert course values('1014','数字电路','5') insert course values('1015','高等数学','6') select* from course insert teacher values('0511','张大维','男','副教授') insert teacher values('0512','林楠','女','讲师') insert teacher values('0513','韩晓颖','女','副教授') insert teacher values('0514','李辉','男','讲师') insert teacher values('0515','孙丽','女','助教') select* from teacher insert choice values('101','1011','82.5') insert choice values('101','1012','79') insert choice values('102','1012','92.5') insert choice

数据库上机实验报告

数据库实验 (第三次) 题目1 实验内容: 1. 检索上海产的零件的工程名称; 2. 检索供应工程J1零件P1的供应商号SNO; 3. 检索供应工程J1零件为红色的供应商号SNO; 4. 检索没有使用天津生产的红色零件的工程号JNO; 5. 检索至少用了供应商S1所供应的全部零件的工程号JNO; 6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数 量QTY降序排列。

1 select jname from j where jno in (select jno from spj where sno in (select sno from s where city ='上海' ) ); 2 select sno from spj where jno ='j1'and pno ='p1' 3

selectdistinct sno from spj where pno in (select pno from p where color='红'and pno in (select pno from spj where jno ='j1' ) ); 4 selectdistinct jno from spj where pno notin (select pno from p where color ='红'and pno in (select pno from spj where sno in (select sno from s where city ='天津' ) ) )

5 select jno from spj where sno ='s1' 6 select jno,qty from spj where pno ='p1' orderby qty desc 四﹑思考题 1.如何提高数据查询和连接速度。 建立视图 2. 试比较连接查询和嵌套查询 有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比 嵌套查询高出很多 当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。

数据库原理实验5

福建农林大学资源与环境学院实验报告 系:国土资源专业:空间信息与数字技术年级:2016 姓名:任然学号:3165706014 实验室号____507__ 计算机号44 实验时间:2018年5日指导教师签字:成绩: 报告退发(订正、重做) 实验名称:触发器、存储过程操作实验 一、实验目的和要求 (1)掌握SQL Server中的触发器的使用方法; (2)掌握存储过程的操作方法。 二、实验内容和原理 1. 基本操作实验 在读者-图书数据库中用Transact-SQL语句描述下列功能: (1)在读者表上建立一个DELETE类型的触发器lianxi_del,触发动作是显示信息(已删除读者表中的数据),执行下列语句: create trigger lianxi_del on 读者 for delete as print ‘已删除读者表中的数据’ (2)建立一个查询指定读者号的阅读信息的存储过程List_jy,输入参数为读者号,如果没有输入读者号,则要输出提示信息。建立这个存储过程的语句如下所示。 create procedure List_jy @p_dzh char(5) = null as if @p_dzh is null begin print ‘请输入一个读者号’ return end else select 编号,姓名,书名,借阅时间 from 读者,借阅,图书 where 读者.编号=借阅.读者编号 and 借阅.书号=图书.书号 and 读者.编号=@p_dzh 2. 提高操作实验 在学生-课程数据库中用Transact-SQL语句描述下列功能: (1)为学生表建立一个名TRI_INSERT的INSERT触发器。功能是当用户向学生表添加数据时,同时也把这些数据添加到stu表中。其中:学生表和表stu的结构相同。 (2)为学生表建立一个名TRI_DELETE的DELETE触发器。功能是当用户从学生表

数据库原理实验报告分析

2013级数据库原理实验报告 专业:_______计算机___ 班级:________________ 学号:______________ 姓名:_______________ 2015年5月

实验一 SQL Server 2005基本操作 一、实验目的 了解SQL Server 2005组件; 了解SQL Server数据库组成; 掌握SQL Server 2005界面基本操作。 二、实验内容 (1)开始->程序->Microsoft SQL Server 2005-> SQL Server Management Studio,打开后进入到SQL Server 2005主体界面 (2)点击?数据库?前面的?+?,可以展开查看数据库,并且可以继续展开下级目录,查看数据库中的表、视图等。 (3)了解SQL Server 2005菜单栏的一些主要工具的使用。 (4)学生动手操作SQL Server 2005,打开数据库,打开表,打开查询界面;查看数据库的属性、表的属性等。 三、实验总结 进行这次实验有遇到什么问题?怎么解决的? 答:此次实验我们一步一步按照实验内容操作的,基本上没有遇到问题。

实验二数据定义 一、实验目的 掌握SQL Server 2005的数据库创建; 掌握SQL Server数据定义语言; 掌握SQL Server 2005数据定义的SQL语言定义与管理器定义两种方式。 二、实验内容 (1)创建、修改、删除数据库。 创建要求:数据库Employee中包含一个数据库文件Empdat1.mdf和一个日志文件Emplog.ldf。其中,数据文件大小为10MB,最大为50MB,以5MB速度增长;日志文件大小为5MB,最大为25MB,以5%速度增长。 修改要求:增加第二个数据库文件Empdat2.ndf,其中,数据文件大小为5MB,最 大为25MB,以2MB速度增长。 (2)利用SQL创建人员表person、月薪表salary及部门表dept。 见上页图 要求:按表2-1、表2-2及表2-3中的字段说明创建。

数据库作业 2要点

《数据库技术与管理》上机实验报告 班级:工程管理1101班 姓名: 学号:

实验报告一 《数据库技术与管理》上机实验报告 专业:工程管理学号:姓名:班级:1101班 实验时间2012.11.24 实验地点西配楼 实验内容1.创建数据库 (1) A.使用企业管理器创建数据库 B.在Data上点击鼠标右键,选择新建数据库 C.输入数据库名称,并点击数据文件和事务日志选项卡,分别输入相应信息 D.点击确定后可以看到在SQL Server的数据库中新增加了YGKQ数据库。 (2) 使用SQL语句创建数据库 CREATE DATABASE YGKQ ON (NAME=YGKQ _Data, FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\YGKQ_Data.mdf’ SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5% ) LOG ON (NAME=YGKQ _log, FILENAME=' C:\Program Files\MicrosoftSQL Server\MSSQL\Data\YGKQ _log.ldf ', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB ) 2. 创建表 (1) 使用企业管理器创建表 第一步:在YGKQ数据库展开点击表,在所有表的展开上点击右键选择新建表 第二步:按照要求依次输入表的列名、数据类型、长度、是否允许空以及对这一列的描述。 第三步:点击鼠标右键,设置主键 第四步:将所有列信息输入完成后点击保存,输入文件名。第一张表创建完成。 可以在表展开中查看到新建的表 第五步:按照上述方法将其他表新建完成。 (2) 使用SQL语句创建表 第一步:打开事件分析器,输入SQL语句 create table qqxl ( sno char(4) primary key, --员工号 sname char(8) not null,--姓名 absent datetime,--缺勤时间(主键) absent int,--缺勤天数(主键)

《数据库原理》实验7

实验七:数据库的安全性 一、实验目的 1.掌握Windows NT认证模式下数据库用户帐号的建立与取消方法; 2.掌握混合模式下数据库用户帐号的建立与取消方法; 3.掌握数据库用户权限的设置方法; 4.熟悉数据库数据库用户帐号的权限分配、回收等方法; 5.了解数据库角色的分类、作用及使用方法。 二、实验环境 已安装SQL Server 2005 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SQL Server 2005系统安全; 2.熟悉数据库用户、服务器角色及数据库角色的用法; 3.完成实验报告; 五、实验内容及步骤 以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现以下操作,并独立写出部分题目的程序代码; 1.在当前计算机中增加一个用户zhang和cheng,密码为secret。使此用户通 过winows nt模式下登录SQL Server服务器,登录名分别为zhang和cheng; 2.新建以混合模式登录SQL Server服务器的用户登录名为stu1、stu2和stu3, 登录密码为secret,默认登录数据库为stu; 3.将帐号zhang添加为数据库stu的用户,用户名为zhang; 4.在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2 和stu3; 5.给数据库用户zhang赋予创建数据库的权限; 6.给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限; 7.给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查 询sc的操作权限,并允许再授权给其他用户; 8.收回数据库用户stu2对student表和course表的删除操作的权限; 9.若一个小组共5个成员,他们对数据库stu具有相同的操作权限,具体权限 如下: 1)对于student、course表只能进行数据查询;

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

数据库上机作业

数据库上机实验报告 Ships表 Classes表 Outcomes表 Battles表

a)找出至少有10门炮的军舰类别名和制造国家 SELECT class, country FROM Classes WHERE numGuns >= 10 b)找出所有在1918年以前下水的舰船的名字,并且把结果列名改为ShipName. SELECT name AS ShipName FROM Ships WHERE YEAR(launched)<1918 c)找出所有在战斗中被击沉的船只和那次战斗的名字。 SELECT ship AS ShipName, battle FROM Outcomes WHERE result='sunk' d)找出所有和它的类别名同名的船只。 SELECT name AS ShipName FROM Ships WHERE name = class e)找出所有以“R”字符打头的船只的名字。 SELECT name AS ShipName FROM Ships WHERE name LIKE'R%'

a)找出重量超过35000吨的船只。 SELECT https://www.doczj.com/doc/7715581895.html, FROM Ships , Classes WHERE Ships.class = Classes.class AND Classes.displacement>35000 b)找出参加Guadalcanal战斗的船只的名字、排水量和火炮数量。 SELECT https://www.doczj.com/doc/7715581895.html,, C.displacement, C.numGuns FROM Ships S, Outcomes O, Classes C WHERE https://www.doczj.com/doc/7715581895.html,=O.ship AND S.class =C.class AND O.battle ='Guadalcanal' c)列出数据库在抗洪提到的所有船只。 SELECT name ShipName FROM Ships UNION SELECT ship ShipName FROM Outcomes d)找出同时拥有战列舰和巡洋舰的国家。 SELECT C1.country FROM Classes C1, Classes C2 WHERE C1.country = C2.country AND C1.type='bb'AND C2.type='bc';

8086软硬件实验报告(微机原理与接口技术上机实验)

实验一实验环境熟悉与简单程序设计 实验目的 (1)掌握DEBUG调试程序的使用方法。 (2)掌握简单程序的设计方法。 实验内容 编程将BH中的数分成高半字节和低半字节两部分,把其中的高半字节放到DH中的低4位(高4位补零),把其中的低半字节放到DL中的低4位(高4位补零)。如: BH=10110010B 则运行程序后 DH=00001011B DL=00000010B 实验准备 (1)熟练掌握所学过的指令。 (2)根据实验内容,要求预先编好程序。 实验步骤 (1)利用DEBUG程序输入、调试程序。 (2)按下表要求不断地修改BH的内容,然后记录下DX的内容。 实验报告 (1)给出程序清单。 (2)详细说明程序调试过程。

程序: CODE SEGMENT START : MOV BH,00111111B MOV AL,BH MOV CL,4 SHR AL,CL MOV DH,AL MOV AL,BH AND AL,00001111B MOV DL,AL MOV CL,0 CODE ENDS END START

实验二简单程序设计 实验目的 (3)掌握DEBUG调试程序的使用方法。 (4)掌握简单程序的设计方法。 实验内容 试编写一个汇编语言程序,要求实现功能:在屏幕上显示:Hello world My name is Li Jianguo 参考程序如下:(有错) data segment out1 db 'Hello world' ax db 'My name is Li Jianguo' data ens code segment assume cs:code;ds:data lea dx,out1 mov ah,2 int 21h mov dl,0ah mov ah,2

数据库上机实验报告4

数据库上机实验报告 4 学号:姓名:日期:年月日 实验目的:(1)练习连接查询;(2)练习视图的创建与使用;(3)学习使用ODBC的方法;(4)体验T-SQL的功能;体验存储过程的功能;体验表值函数、标量值函数的作用;体验ranking等功能。 1 练习视图及连接查询。 (1)创建一个视图,视图名为viNF,视图内容为select id,count(*) as nf from friends group by id。执行成功后,将SQL语句复制到下方。 (2)基于viNF视图,查找拥有最多好友的用户、最少好友的用户。执行成功后,将SQL语句复制到下方。 (3)基于users表和viNF视图进行连接查询。分别进行内连接、全外连接、左外连接、右外连接四种操作。执行成功后,将SQL语句复制到下方,并回答:四种结果表,哪两个的结果是一致的,为什么? (4)将题(3)中全外连接保存为一个新的视图viUAF。 2 通过ODBC用Excel打开users表。 3 体验T-SQL。 回顾实验2中的题目: 定义最低价格为成本价;依据此成本价做如下计算: 连接Goods,Goods_Extent,Sellers表,按照总利润,输出前10名;要求输出表的格式为(商品名称,卖家名称,商品价格,运费,卖家信誉,卖家好评率,历史销量,历史利润,期内销量,期内利润,总销量,总利润) 利用如下语句进行查询,体会和之前有什么不同。如感兴趣,自己可以仿照写一个变量定义、赋值及应用的例子。 declare @cost as float; select @cost=min(good_price)from goods; select top 10 good_name as商品名称, goods.seller_name as卖家名称, good_price as商品价格, good_shipping as运费,

微机原理上机实验答案

实验01A 将FFFFH送到AX,BX,CX,DX,SI,DI,BP寄存器 程序如下: CODE SEGMENT ASSUME CS:CODE START PROC FAR STT:PUSH DS SUB AX,AX PUSH AX ;============================== MOV AX,0FFFFH MOV BX,AX MOV CX,AX MOV DX,AX MOV SI,AX MOV DI,AX MOV BP,AX ;============================== RET START ENDP CODE ENDS END STT 实验01B 将FFH送到内存1000H,1001H,1002H,1003H,1004H单元中程序如下: DA TA SEGMENT ORG 1000H H1 DB 5 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA START PROC FAR STT:PUSH DS SUB AX,AX PUSH AX ;============================== MOV AL,0FFH MOV DI,1000H MOV CX,5 ;循环5次 LP1:MOV [DI],AL ;FF放入1000H-1004H中 INC DI

DEC CX JNZ LP1 ;============================== RET START ENDP CODE ENDS END STT 实验02A 编写一个加法程序,在数据段偏移地址1000H处开始,存放有两个3字节长的数据(高位对应高地址,低位对应低地址),求这两数据(十六进制数)的和,并将结果放在两数据之后,利用DEBUG调试程序,并求解:CCBBAAH+223344H=?CCBBAA+554433H=? 程序如下: DA TA SEGMENT ORG 1000H H1 DB 10 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA START PROC FAR STT:PUSH DS SUB AX,AX PUSH AX Mov ax,dseg Mov ds,ax ;============================== MOV SI,1000H ;不带最高位进位的全加器 MOV DI,1003H MOV BX,1006H MOV CX,3 CLC AA: MOV AL,[SI] ADC AL,[DI] MOV [BX],AL PUSHF ;保护FR,这里其实没有必要,因为INC不会产生进位 INC SI INC DI INC BX POPF LOOP AA

数据库上机(实验一)作业

在订单数据库OrderDB中,完成如下的查询: (1)查询员工的姓名、职务和薪水。 select employeeName 员工姓名,headShip 职务,salary 薪水 from Employee (2)查询姓名中含有“有限”的客户名称和所在地。 select customerName 客户名称,address 所在地 from customer where customerName like'%有限%' (3)查询出姓“张”并且姓名的最后一个字为“梅”的员工。 select employeeNo 编号,sex 性别,birthday 出生日期,address 地址,telephone 联系电话,employeeName 员工姓名,headShip 职务,salary 薪水 from Employee where employeeName like'张%梅' (4)查询住址中含有“上海”或“南昌”的女员工,并显示其姓名、所属部门、职务、住址、出生日期和性别。如果出生日期为空,则显示“不祥”,否则按格式 “yyyy—mm—dd”显示,性别用“男”和“女”显示。 select employeeName 员工姓名,department 所属部门,headShip 职务,address 地址, case sex when'F'then'女' when'M'then'男' end性别, isnull(convert(char(10),birthday,120),'不详')出生日期 from Employee where sex like'F'and address like'上海%'or sex like'F'and address like'南昌%' (5)查询出职务为“职员”或职务为“科长”的女员工的信息。 select employeeNo 员工编号,employeeName 员工姓名, case sex when'F'then'女' when'M'then'男' end性别,birthday 出生日期,address 地址,telephone 联系电话,hireDate 雇佣时间,department 所属部门,headShip 职务,salary 薪水 from Employee where sex like'F'and headShip like'职员'or sex like'F'and headShip like'科长' (6)选取编号不在C20050001~C20050004之间的客户编号、客户名称、客户地址。 select customerNo 客户编号,customerName 客户名称,address 地址 from Customer where customerNo not between'C20050001'and'C20050004' (7)在表OrderMaster中挑选出销售金额大于等于5000元的订单。 先统计订单主表中的订单金额,使用命令:

数据库原理实验报告(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语句写在下方(标明题号)。

微机原理及应用实验报告

微机原理及应用实验报告标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

微机原理及应用实验报告 班级: 姓名: 学号: 中南大学 机电工程学院精密测控实验室

实验二软件程序设计 1.实验目的: 1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。 2.实验内容: 1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 2.、编写多字节加法程序并上机调试通过。 8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结 果存入以20H为起始地址的区域中(低字节在前)。 3.实验设备名称、型号: 4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单: 程序1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。

解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次 后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如 果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列 了。则可以退出循环,结束程序。 程序结构框图和程序代码如下:

数据库原理实验一

电子信息工程学系实验报告 课程名称: 《数据库原理》 实验项目名称:表的创建和管理 实验时间: 班级: 姓名: 学号: 实 验 目 的: (1)了解SQL Server 的基本数据类型。 (2)学会在企业管理器中创建数据库及表。 (3)学会使用T-SQL 语句创建数据库及表。 (4)学会在企业管理器中修改表的定义。 (5)学会使用SQL 语句修改表的定义 实 验 环 境: winXP +Sql server 2000 实 验 内 容 及 过 程: (1)用企业管理器,建立的数据库SCHOOL ,建立如书本75页的P,S,J,SPJ 四张表,并添加数据。 (2)用企业管理器删除所建立的SPJ 和J 两张表。 (3)在查询分析器中用sql 语句删除表S 和表P,S ,删除数据库SPJ 。 (4)在查询分析器中用sql 语句创建数据库SPJ ,用SQL 语句创建各书本75页的P,S,J,SPJ 四张表,用insert 命令分别向四张表里面添加如75页所示的数据。 (5)将以上用到的SQL 命令以 “实验一.SQL ”文件的形式保存。 (6)用企业管理器备份数据库SPJ 到备份文件SPJ.bak 。 实 验 结 果 及 分 析: (1)

(2) (3) DROP TABLE P; DROP TABLE S; DROP DA TABASE SPJ; (5)

实验心得: 附录: CREATE DATABASE SPJ ON ( NAME=pSPJ, FILENAME='H:\SQL\MSSQLDATA\mydb.mdf',SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1 MB ) LOG ON ( NAME=logSPJ, FILENAME='H:\SQL\MSSQLDATA\mydb.ldf',SIZE=100MB,MAXSIZE=1000MB,FILEGROWTH= 10MB ) go use SPJ CREATE TABLE S( Sno CHAR(2) NOT NULL, --供应商代码不能为空 Sname V ARCHAR(20), Status int , City V ARCHAR(20) , CONSTRAINT S_pk PRIMARY KEY(Sno) --应商代码为主键 ); CREATE TABLE P( Pno CHAR(2) NOT NULL, --零件代码不能为空

微机原理上机实验报告3

201406 微机原理上机实验报告 实验三 班级:物联网1班 姓名:邓笑游 学号: 01210261y11 成绩:

实验3:8086 典型习题的上机求解实验 一、实验目的 1、了解8086指令的特点。 2、学会用Debug和源程序的上机方法求解作业答案的方法。 二、预习要点 1、习题的现场 2、选用工具的方法 三、实验项目 在DOS下利用Debug调试工具和MASM、LINK工具和模版验证求解典型习题的答案。 四、实验设备环境 PC机1台,DOS操作系统,Debug调试工具 五、实验方法 1.现有数据段如下: DAT1 SEGMENT ORG 0020H A1 DW 12H , 23H A2 DB 11H , 21H A3 EQU 1234H A4 EQU $+8 A5 DW 31H , A2 DAT1 ENDS 该数据段占有多少字节的存储空间?A5的偏移地址是何值?A4的值是多少? 2.若48H和93H是无符号数。 SOUR DB 48H,93H MZ DB ?

MOV AL,SOUR CMP AL,SOUR+1 JA K1 MOV AL,SOUR+1 K1: MOV MZ,AL 试问:①(MZ)=_____________ ②48H和93H是有符号数,JA K1指令应改为什么指令? 3.编程序统计某班100个学生英语考试分数高于等于85分以上的人数,结果存入MN字节中。 六、实验要求 将习题1、2、3改造上机求解答案

实验3报告习题1的上机源程序 习题1的汇编、链接

习题1的代码段 已看到答案,该数据段占有10个字节的存储空间?A5的偏移地址是0026H?A4的值是002EH 习题2的源程序

《数据库原理》实验4

实验四:数据库综合查询 一、实验目的 1.掌握SELECT语句的基本语法和查询条件表示方法; 2.掌握查询条件种类和表示方法; 3.掌握连接查询的表示及使用; 4.掌握嵌套查询的表示及使用; 5.了解集合查询的表示及使用。 二、实验环境 已安装SQL Server 2008 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SELECT语句的基本语法格式和执行方法; 2.了解连接查询的表示及使用; 3.了解嵌套查询的表示及使用; 4.了解集合查询的表示及使用; 5.完成实验报告; 五、实验内容及步骤 以数据库原理实验2数据为基础,请使用T-SQL 语句实现进行以下操作: 1.查询以‘DB_’开头,且倒数第3个字符为‘s’的课程的详细情况; 2.查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名; 3.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修 课程号及成绩; 4.查询缺少成绩的所有学生的详细情况; 5.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息; 6.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成 绩; 7.按照?学号,姓名,所在院系,已修学分?的顺序列出学生学分的获得情况。 其中已修学分为考试已经及格的课程学分之和; 8.列出只选修一门课程的学生的学号、姓名、院系及成绩; 9.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号; 10.只选修?数据库?和?数据结构?两门课程的学生的基本信息;

11.至少选修?数据库?或?数据结构?课程的学生的基本信息; 12.列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩; 13.查询只被一名学生选修的课程的课程号、课程名; 14.检索所学课程包含学生‘张向东’所学课程的学生学号、姓名; 15.使用嵌套查询列出选修了?数据结构?课程的学生学号和姓名; 16.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和 院系; 17.使用ANY、ALL 查询,列出其他院系中比CS系所有学生年龄小的学生; 18.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息; 19.使用集合查询列出CS系的学生以及性别为女的学生名单; 20.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集; 21.使用集合查询列出选修课程1的学生集合与选修课程2的学生集合的交集; 22.思考题:按照课程名顺序显示各个学生选修的课程(如200515001 数据库数 据结构数学); 六、出现问题及解决办法 如:某些查询操作无法执行,如何解决? 1、查询以‘DB_’开头,且倒数第三个字符为‘s’的课程的详细情况 select * from course where cname like 'DB\_%s__' 2、查询名字中第二个字为“阳”的学生姓名和学号及选修的课程号、课程名 select student.sno ,student.sname ,https://www.doczj.com/doc/7715581895.html,o,cname from student,course,sc where sname like '_阳%'and student.sno=sc.sno and https://www.doczj.com/doc/7715581895.html,o=https://www.doczj.com/doc/7715581895.html,o 3、列出选修了‘数学’或‘大学英语’的学生学号、姓名、 select student.sno,sname,sdept,https://www.doczj.com/doc/7715581895.html,o,cname,grade from student,sc,course where student.sno=sc.sno and https://www.doczj.com/doc/7715581895.html,o=https://www.doczj.com/doc/7715581895.html,o and sc.sno in(select sc.sno from sc,course where (cname='大学英语'or cname='数学')and https://www.doczj.com/doc/7715581895.html,o=https://www.doczj.com/doc/7715581895.html,o group by sc.sno) select student.sno,sname,sdept,cno,grade from student,sc where Cno in (select Cno from course where cname='数学'or cname='大学英语')and sc.sno=student.sno 4、查询缺少成绩的所有学生的详细情况; select * from student,sc where Grade is null and student.sno=sc.sno 5、查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息; select * from student where sage <>(select sage from student where sname='张力') 6、查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩 select student.sno,sname,平均成绩=A VG(grade) from student ,sc

相关主题
文本预览
相关文档 最新文档