数据库上机实验总结(含代码)

数据库上机实验总结(含代码)
数据库上机实验总结(含代码)

实验一

(1)无条件单表查询

select sname NAME,'year of birth:' BIRTH,2004-sage BIRTHDAY,LOWER(sdept) DEPARTMENT FROM student;

(2)有条件单表查询

SELECT sname,sdept,sage FROM student WHERE sage NOT BETWEEN 20 AND 23;

(3)单表嵌套(一层)查询

SELECT sno,sname,sdept FROM student WHERE sdept IN(SELECT sdept FROM student WHERE sname='刘晨');

(4)复合条件多表查询

SELECT student.sno,sname,cname,grade FROM student ,sc,course WHERE student.sno=sc.sno AND https://www.360docs.net/doc/1d12638454.html,o=https://www.360docs.net/doc/1d12638454.html,o;

(5)使用COUNT()的单表查询

SELECT COUNT(*) FROM student;

(6)使用AVG()的单表查询

SELECT AVG(grade) '平均成绩' from SC where CNO='1';

(7)查询结果分组

SELECT cno,COUNT(sno) '人数' FROM sc GROUP BY cno;

(8)查询结果排序

SELECT * FROM student ORDER BY sdept,sage DESC;

(9)使用通配符的查询

SELECT sname,sno,ssex FROM student WHERE sname NOT LIKE'刘%';

(10)使用换码字符的单表查询

SELECT cno,ccredit FROM course WHERE cname LIKE 'DB\_Design'ESCAPE'\';

(11)插入单个元组

插入一个新学生元组

Insert into student (sno,sname,ssex,sdept,sage) values ('200215128','陈冬','男','IS',18)

(12)插入子查询结果

对每一个系,求学生平均年龄,并把结果存入数据库

Create table dept_age(sdept char(15),avg_age int)

Insert into dept_age(sdept,avg_age) select sdept,avg(sage) from student group by sdept

(13)修改某个元组的值

将学生200215121的年龄改为22岁

Update student set sage=’22’ where sno=’200215121’

(14)修改多个元组的值

将所有学生的年龄增加一岁

Update student set sage=sage+1

(15)删除一个元组的值

删除学号为200215128的学生记录

delete from student where sno='200215128'

(16)建立视图

建立信息系学生的视图

create view is_student as select sno,sname,sage from student where sdept='IS'

×(17)查询视图

查询选修了1号课程的信息系学生信息

Select is_student.sno,sname from is_student,sc where is_student.sno=sc.sno and https://www.360docs.net/doc/1d12638454.html,o=’1’

×(18)更新视图

将信息系学生视图is_student中学号为95001的学生姓名改为李楠

update is_student set sname='李楠' where sno='95002'

将下列问题用SQL命令表示:

1.查询‘IS’系学生的学号、姓名、性别。

SELECT sno,sname,ssex FROM student WHERE sdept='IS';

2.查询‘IS’系年龄在20岁以下的学生。

SELECT * FROM student WHERE sdept='IS'AND sage<20;

3.查询所有不姓‘刘’的学生的学号、姓名、性别。

SELECT sname,sno,ssex FROM student WHERE sname NOT LIKE'刘%';

4. 查询student表中学生的总人数。

SELECT COUNT(*) '总人数' FROM student;

5. 查询和‘李勇’同性别的所有同学的姓名。

SELECT sname from student where ssex in(select ssex from student where sname='李勇');

6. 查询和‘李勇’同性别并同系的所有同学的姓名。

Select sname from student where ssex in (select ssex from student where sname='李勇') and sdept in (select sdept from student where sname='李勇')

7. 查询选修2号课程的学生的学号。

Select sno from sc where cno='2'

8. 求3号课程的平均成绩。

Select avg(grade) from sc where cno=’3’

9.查询选修2号课程的学生的最高分。

Select max(grade) from sc where cno=’2’

10.按成绩降序排列,输出‘IS’系学生选修了2号课程的学生的姓名和成绩。

Select sname,grade from student,sc where sdept='IS' and cno='2' and student.sno=sc.sno order by grade

SQL查询分析器下建数据库的命令代码:

create database 霍双双200826352

on(name='霍双双200826352_data',filename='E:\霍双双20082635\霍双双200826352_data.mdf',size=10mb,maxsize=50mb,filegrowth=10%)

log on(name='霍双双200826352_log',filename='E:\霍双双20082635\霍双双200826352_log.ldf',size=10mb,maxsize=50mb,filegrowth=10%)

在查询分析器重建立各表的命令代码:

建立student表:

create table student

(sno char(5) primary key,sname char(20),ssex char(2),sage int,sdept char(15))

建立course表:

create table course

(cno char(2)primary key,cname char(15),cpno char(2),ccredit int)

建立cs表:

use 霍双双200826352

create table sc

(sno char(5),cno char(2),grade smallint,primary key(sno,cno),foreign key(sno)references student(sno),foreign key(cno)references course(cno))

实验二

T-SQL查询、存储过程、触发器、完整性上机作业题

第一部分:T-SQL程序设计

(1).如果3号课程的平均成绩在80分以上,则输出“3号课程成绩良好”,否则输出“3号成绩一般”declare @avg float set @avg=(select avg(grade)from sc where cno='3')if @avg>80print'3号课程成绩良好'else print'3号成绩一般'

(2)计算并输出95003号学生的平均成绩,若无该生信息,则显示“该生未选课”,提示信息.

declare @avg float if(select count(*)from sc where sno='95003')=0 print '该生未选课' else begin select @avg=avg(grade)from sc where sno='95003' print'95003号学生平均成绩' print @avg end

(3).如果有成绩在90分以上的学生,则显示他的学号,课程和成绩,否则显示“没有学生的课程成绩在90分以上”提示信息

declare @text char(10) if exists(select grade from SC where grade>90)select Sno,Cno,Grade from SC where Grade>90 else begin set @text='没有学生的课程成绩在90分以上' print @text end

×(4).利用游标逐行显示student表中的记录。

declare stu cursor for select *from student open stu fetch next from stu while @@fetch_status=0 fetch next from stu close stu deallocate stu

(5).用自定义函数计算全体男生的平均年龄

create function avg_age(@sex char(2)) returns int

as begin declare @aver int select @aver=(select avg(Sage) from Student where Ssex=@sex )return @aver end

declare @aver1 int,@sex char(2) set @sex='男' select @aver1=dbo.avg_age(@sex)

select @aver1 as '全体男生的平均年龄'

go

(6).显示course表中课程名的前2个字符。

select substring(Cname,1,2) from Course

(7).在一列中显示student中各元组的学号中的年级,列名显示为“年级”;另一列中显示学号中的学生序列号,列名显示为“序号”。

select substring(Sno,1,2) 年级,substring(Sno,3,len(Sno)-1) 序号 from Student order by Sno

(8).在选课表中显示学号、课程号,并根据成绩:0-59显示“不合格”;60-79显示“合格”;80-89显示“良好”;90-100显示“优秀。”

select Sno as '学号',Cno as '课程号', grade =case when Grade<=59 then '不合格' when Grade>=60 and Grade<=79 then '合格' when Grade>=80 and Grade<=89 then '良好' else '优秀' end from SC

第二部分:存储过程

(1)创建一个为worker表添加职工记录的存储过程Addworker

go

if exists(select name from sysobjects where name='Addworker' and type='P') drop procedure Addworker go

create proc Addworker @职工号char(4),@姓名char(8),@性别char(2),@出生日期datetime,@党员否char(2),@参加工作 datetime,@部门号 char(4)

as

insert into worker(职工号,姓名,性别,出生日期,党员否,参加工作,部门号)values(@职工号,@姓名,@性别,@出生日期,@党员否,@参加工作,@部门号)

go

exec Addworker '16','王璐','女','1988-11-20','否','2010-08-21','11'

(2)创建一个存储过程Delworker删除worker表中指定职工号的记录

go

if exists(select name from sysobjects where name='Delworker' and type='P') drop procedure Delworker

go

create procedure Delworker @职工号char(4) as delete from worker where 职工号=@职工号

go

exec Delworker '16'

(3)显示存储过程Delworker的定义信息。

Sp_helptext Delworker

(4)删除存储过程Addworker和Delworker。

drop procedure Addworker, Delworker

(5)创建并执行以下存储过程:

a.从数据库表中查询,返回学生学号、姓名、课程名、成绩

use 霍双双200826351

go

if exists(select name from sysobjects where name='select_stu' and type='P') drop procedure select_stu go

create procedure select_stu

as select SC.Sno,Sname,Cname,Grade from Student,SC,Course where SC.Sno=Student.Sno and https://www.360docs.net/doc/1d12638454.html,o=https://www.360docs.net/doc/1d12638454.html,o

go

exec select_stu

b.从数据库表中查询指定学号的学生学号,姓名,该存储过程接受与传递参数,精确匹配的值

use 霍双双200826351

go

if exists(select name from sysobjects where name='select_sno' and type='P') drop procedure select_sno go

create procedure select_sno @Sno char(5)

as select Sno,Sname from Student where Sno=@Sno

go

exec select_sno '95002'

×第三部分:触发器

(1)在表depart上创建一个触发器 depart_update , 当更改部门号时同步更改 worker表中对应的部门号。

Go

If exists(select name from sysobjects where name='depart_update'and type='tr') drop trigger depart_update

go

Create trigger depart_update on depart for update as set worker.部门号=(select 部门号 from inserted)where worker.部门号=(select 部门号from deleted)

(2)在表worker上创建一个触发器worker_delete,当删除职工记录时同步删除salary表中对应的职工记录。Go

If exists(select name from sysobjects where name='worker_delete'and type='tr') drop trigger worker_delete

go

create trigger worker_delete on worker for delete as delete salary where salary.职工号=(select 职工号 from deleted)

(3) 删除触发器depart_update

(4) 删除触发器worker_delete

(5)在数据库中创建一个触发器,向选课表添加一条纪录时,检查该纪录的学号在学生表中是否存在,检查该纪录的课程号在课程表中是否存在,若其中有一项为否,则拒绝添加操作,并显示“违反数据一致性”提示信息。

Go

If exists(select name from sysobjects where name='add_student'and type='tr') drop trigger add_student

go

create trigger add_student on sc for insert as

go

第四部分:数据库完整性

1、实施worker表的“性别”字段默认值为“男”的约束

create default default_sex as '男'

go

sp_bindefault'default_sex','worker.性别'

2、实施salary表的“工资”字段值在0~9999的约束、

create rule salary_rule as @salary='[0~9999]'

go

sp_bindrule 'salary_rule','salary.工资'

3、实施depart表的“部门号”字段值唯一的非聚集索引的约束

4、为worker表建立外键“部门号”,参考表depart的“部门号”列。

5、建立一个规则 sex:@性别=’男’OR @性别=’女’,将其绑定到worker表的“性别”列上。

Create rule sex as @性别='男'OR @性别='女'

Go

Sp_bindrule 'sex','worker.性别'

6、删除1小题所建立的约束。

7、删除2小题所建立的约束。

8、删除3小题所建立的约束

9、删除4小题所建立的约束

10.解除5小题所建立的绑定并删除规则sex

数据库上机实验报告

数据库实验 (第三次) 题目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. 试比较连接查询和嵌套查询 有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比 嵌套查询高出很多 当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。

空间分析实验指导书

空间分析实验指导书 黎华 武汉理工大学资环学院 2011年9月

目录 实验一、市区择房分析 (2) 实验二、最短路径分析 (3) 实验三、寻找最佳路径 (5) 实验四(综合实验一)、学校选址规划 (7)

实验一、市区择房分析 1、背景 如何找到环境好、购物方便、小孩上学方便的居住区地段是购房者最关心的问题,因此购房者就需要从总体上对商品房的信息进行研究分析,选择最适宜的购房地段。 2、数据 ●城市市区交通网络图(network.shp) ●商业中心分布图(marketplace.shp) ●名牌高中分布图(school.shp) ●名胜古迹分布图(famous place.shp) 3、步骤 1)所寻找的区域应该满足以下条件 ●离主要交通要道200米之外,以减少噪音污染 ●在商业中心的服务范围内,服务范围以商业中心规模的大小(属性字段YUZHI)来 确定 ●距名牌高中在750米内,以便小孩上学便捷 ●距名胜古迹500米内,环境幽雅 2)对每个条件进行缓冲区分析,得到各个条件所对应的区域 3)运用空间叠置分析对上述4个图层进行叠加,得到适合的购房地段

实验二、最短路径分析 1.背景:在现实生活中寻求最短,最快,提高效率有着重大意义,而交通网络中要素的设置如权重的改变和阻强的设置对最短路径的选择也有着很大的影响,研究这些因子的改变究竟对最短路径能造成多大的影响,对于现实也有一定的指导意义。 2.目的:学会用ArcGIS9 进行各种类型的最短路径分析,了解内在的运算机理。 3.数据:试验数据位于\Chp7\Ex2,请将练习拷贝至E:\Chp7\Ex2\ 一个GeoDatabase 地理数据库:City.mdb,内含有城市交通网、超市分布图,家庭住址以及网络关系。 4.要求:应该能够给出到达指定目的地的路径选择方案根据不同的权重要求得到不同的最佳路径,并给出路径的长度;根据需求找出最近的设施的路径,这里是以超市为例。 (1)在网络中指定一个超市,要求分别求出在距离、时间限制上从家到超市的最佳路径。 (2)给定访问顺序,按要求找出从家经逐个地点达到目的地的最佳路径。 5.操作步骤: 首先打开ArcMap选择E:\Chp7\Ex2\city.mdb再双击后选择将整个要素数据集city加载进来。然后将place 点状要素以HOME 字段属性值进行符号化,1 值是家,0 值是超市,(1)无权重最佳路径的选择 1)在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标放在家和想要去的超市点上。 2)确认在Analysis 下拉菜单中的Options 按钮打开的Analysis Options 对话框中的weight 和weight filter 标签项全部是none,这样使得进行的最短路径分析是完全按照这个网络自身的长短来确定的。 3)点选追踪工作(Track task)下拉菜单选择寻找路径(find path)。单击solve 键,则最短路径将显示出来,这条路径的总成本将显示在状态列。 (2)加权最佳路径选择 1)在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标放在家和想去的某个超市点上。 2)选择Analysis 下拉菜单,选择Option按钮,打开Analysis Option对话框,选择Weight 标签页,在边的权重(edge weight)上,全部选择长度(length)权重属性。 3)点选追踪工作(Track task)下拉菜单选择寻找路径(find path)。单击solve键,则以长度为比重为基础的最短路径将显示出来,这条路径的总成本将显示在状态列。 4)上述是通过距离的远近选择而得到的最佳路径,而不同类型的道路由于道路车流量的问题,有时候要选择时间较短的路径,同样可以利用网络分析进行获得最佳路径。 这里的时间属性是在建网之前,通过各个道路的类型(主干道,次要道等)来给定速度属性,然后通过距离和速度的商值确定的,并将其作为属性设定于每个道路上,这里没有考虑红灯问题以及其他因素,而是一种理想情况,不过可以将其他的要素可以逐渐加入来完善。 (3)按要求和顺序逐个对目的点的路径的实现 1)在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标按照车辆访问的顺序逐个放在点上。

空间数据库重点知识

矢量数据结构:通过记录坐标的方式来表达点、线、面等地理实体。 矢量数据结构的主要特点:定位明显和属性隐含。 结构:Spaghetti(面条)结构和拓扑矢量数据结构。 只有像拓扑结构这样的数据结构才是“矢量”数据结构。 拓扑矢量数据结构的特点是:1、一个多边形和另一个多边形之间没有空间 坐标的重复,这样就消除了重复线;2、拓扑信息与空间坐标分别存储,有利于进行近邻、包含和相连等查询操作;3、拓扑表必须在一开始就创建,这要花费一定的时间和空间;4、一些简单的操作比如图形显示比较慢,因为图形显示需要的是空间坐标而非拓扑结构。 栅格数据模型是将连续的空间离散化,将地理区域的平面表象按一定分解力作行和列的规则划分,形成大小均匀紧密相邻的网格阵列。 空间数据引擎(SDE):是用来解决如何在关系数据库中存储空间的数据,实现真正的数据库方式管理空间数据,建立空间数据服务器的方法。 工作原理:SDE客户端发出请求,由SDE服务端处理这个请求,转换成DBMS 能处理的请求事物,由DBMS处理完相应的请求,SDE服务端再将处理的结果实时反馈给GIS的客户端。客户通过空间数据引擎将自己的数据交给大型关系型DBMS,由DBMS统一管理,同样,客户可以通过空间数据引擎从关系型DBMS 中获取其它类型的GIS数据,并转换成客户端可以使用的方式。 空间数据引擎的作用: (1)与空间数据库联合,为任何支持的用户提供空间数据服务。 (2)提供开放的数据访问,通过TCP/IP横跨任何同构或异构网格,支持分布式的GIS系统。 (3)SDE对外提供了空间几个对象模型,用户可以在此模型基础之上建立空间几何对象,并对这些几何对象进行操作。 (4)快速的数据提取和分析。 (5)SDE提供了连续DBMS数据库的接口,其他的一切涉及与DBMS数据库进行交互的操作都是在此基础之上完成的。 (6)与空间数据库联合可以管理海量空间信息。 (7)无缝的数据管理,实现空间数据与属性数据统一存储。 (8)并发访问。 空间数据是对空间事物的描述,实质上就是指以地球表面空间位置为参照,用来 描述空间实体的位置、形状、大小及其分布特征诸多方面的数据。 数据库是长期储存在计算机内的、有组织的、可共享的数据集合。 空间数据特征:时空特征、多维特征、多尺度性、海量数据特征。

实验空间数据库管理及属性编辑实验报告

实验报告 一、实验名称 二、实验目的 三、实验准备 四、实验内容及步骤 五、实验后思考题 班级:资工(基)10901 姓名:魏文风 序号:28 实验二、空间数据库管理及属性编辑 一、实验目的 1.利用ArcCatalog管理地理空间数据库,理解Personal Geodatabse空间数据库模型的有关概念。 2.掌握在ArcMap中编辑属性数据的基本操作。 3.掌握根据GPS数据文件生成矢量图层的方法和过程。 4.理解图层属性表间的连接(Join)或关联(Link)关系。 二、实验准备 预备知识: ArcCatalog 用于组织和管理所有GIS 数据。它包含一组工具用于浏览和查找地理数据、记录和浏览元数据、快速显示数据集及为地理数据定义数据结构。 ArcCatalog 应用模块帮助你组织和管理你所有的GIS 信息,比如地图,数据集,模型,元数据,服务等。它包括了下面的工具: ●浏览和查找地理信息。 ●记录、查看和管理元数据。 ●创建、编辑图层和数据库 ●导入和导出geodatabase 结构和设计。 ●在局域网和广域网上搜索和查找的GIS 数据。

管理ArcGIS Server。 ArcGIS 具有表达要素、栅格等空间信息的高级地理数据模型,ArcGIS支持基于文件和DBMS(数据库管理系统)的两种数据模型。基于文件的数据模型包括Coverage、Shape文件、Grids、影像、不规则三角网(TIN)等GIS数据集。 Geodatabase 数据模型实现矢量数据和栅格数据的一体化存储,有两种格式,一种是基于Access文件的格式-称为Personal Geodatabase,另一种是基于Oracle或SQL Server等RDBMS关系数据库管理系统的数据模型。 GeoDatabase是geographic database 的简写,Geodatabase 是一种采用标准关系数据库技术来表现地理信息的数据模型。Geodatabase是ArcGIS软件中最主要的数据库模型。 Geodatabase 支持在标准的数据库管理系统(DBMS)表中存储和管理地理信息。 在Geodatabase数据库模型中,可以将图形数据和属性数据同时存储在一个数据表中,每一个图层对应这样一个数据表。 Geodatabase可以表达复杂的地理要素(如,河流网络、电线杆等)。比如:水系可以同时表示线状和面状的水系。 基本概念:要素数据集、要素类 数据准备: 数据文件:National.mdb ,GPS.txt (GPS野外采集数据)。 软件准备: ArcGIS Desktop 9.x ---ArcCatalog 三、实验内容及步骤 第1步启动ArcCatalog打开一个地理数据库 当ArcCatalog打开后,点击, 按钮(连接到文件夹). 建立到包含练习数据的连接(比如 “E:\ARCGIS\EXEC2”), 在ArcCatalog窗口左边的目录树中, 点击上面创建的文件夹的连接图标旁的(+)号,双击个人空间数据库-National.mdb。打开它。. 在National.mdb中包含有2个要素数据集、1个关系类和1个属性表第2步预览地理数据库中的要素类 在ArcCatalog窗口右边的数据显示区内,点击“预览”选项页切换到“预览”视图界面。在目录树中,双击数据集要素集-“WorldContainer”,点击要素类-“Countries94”激活它。 在此窗口的下方,“预览”下拉列表中,选择“表格”。现在,你可以看到Countries94的属性表。查看它的属性字段信息。 花几分钟,以同样的方法查看一下National.mdb地理数据库中的其它数据。

数据库上机实验

创建数据表与数据输入 Part I. 使用SQL Server Management Studio创建数据表和输入数据1. 在SQL Server Management Studio中创建数据表 P69 1.(1)-(6) 2. 为数据表输入数据 P76 4.(1)-(4) 3. 数据浏览 P77 1. (1)-(2) 2. (1)-(3) Part II. 使用SQL语句创建数据表和输入数据 1. 使用SQL语句创建数据表 P72. 例3-2 2.使用SQL语句输入数据 P82. 例3.8 习题:P.105 (1)(2)insert

数据操作Insert、Update、Delete P105 3. 上机练习题(2)(4) Insert (100001, 1000, 2002-12-18 0:00:00) (100002, 2000, 2010-3-20 0:00:00) Update (100001, 1500, 2002-12-18 0:00:00) (100002, 2000, 2012-9-25 0:00:00) Delete

1.将teaching数据库中score表的studentno列设置为引用表student的外键。 ALTER TABLE Score ADD CONSTRAINT FK_score_student FOREIGN KEY (studentno) REFERENCES student(studentno) 2.将teaching数据库中class表的classname创建UNIQUE约束。 ALTER TABLE class ADD CONSTRAINT UQ_class UNIQUE(classname) 执行如下插入语句,查看提示信息 INSERT INTO class VALUES(‘090602’, ’计算机0902’, ’计算机学院’, ’马文斐’) 3. 为teaching数据库中student表的birthday列创建CHECK约束,规定学生的年龄在17-25岁之间。 ALTER TABLE student ADD CONSTRAINT CK_birthday CHECK(YEAR(GETDATE())-YEAR(birthday)) BETWEEN 17 AND 25 执行如下插入语句,查看提示信息 INSERT INTO student(studentno, sname, sex, birthday, classno) VALUES (‘0922221328’, ’张源’, ’男’, ’1983-04-05’, ’090501’) 提示:表达式YEAR(GETDATE())-YEAR(birthday) 4. 为teaching数据库创建规则prof_rule,规定教师职称取值只能为’助教’,’讲师’,’副教授’,’教授’,并将其绑定到teacher表的prof列上。 CREATE RULE prof_rule AS @prof IN(’助教’,’讲师’,’副教授’,’教授’) EXEC sp_bindrule ‘prof_rule’, ‘teacher.prof’ 执行如下插入语句,查看提示信息 INSERT INTO teacher VALUES(‘t05002’, ’张源’, ’软件工程’, ’工程师’, ’计算机学院’) 提示:表达式IN(职称列表) 5. 编写程序,输出在1-3000之间能被17整除的最大数值 提示:可使循环控制变量从最大值开始,逐步减少,第一个满足被17整除的数值即为所求解的结果,可通过BREAK语句跳出循环。(如果使循环控制变量从小到大逐步增加,则循环次数将大大增加,程序执行效率将下降。)PRINT ‘1-3000之间能被17整除的最大数值为:’ +CAST(@i AS CHAR(4)) DECLARE @s INT, @i INT SELECT @s=0, @i=3000 WHILE @i>=1 BEGIN IF @i%17=0 BEGIN PRINT ‘1-3000之间能被17整除的最大数值为:’ + CAST(@i AS CHAR(4)) BREAK END @i = @i-1 END

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

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验二数据库的创建、管理、备份及还原实验 所在院(系):数学与信息技术学院 班级:11软工转本2 学号: 1130708 11130710 姓名:马琦乔凌杰

1.实验目的 (1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改 数据库的基本方法; (2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。 (3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方 法。 2.实验要求 (1)使用SQL Server Management Studio创建“教学管理”数据库。 (2)使用SQL Server Management Studio修改和删除“教学管理”数据库。 (3)使用Transact-SQL语句创建“教学管理”数据库。 (4)使用Transact-SQL语句修改和删除“教学管理”数据库。 (5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server Management Studio对数据库“教学管理”进行备份和还原。 (6)SQL Server 2005数据库文件的分离与附加。 (7)按要求完成实验报告 3.实验步骤、结果和总结实验步骤/结果 (1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。 新建数据库如下图所示: 进入sql server management studio 主界面,选择数据库右击新建数据库。 如何修改数据库 进入sql server management studio 主界面,选择数据库右击属性即可看到数据库信息,可更改数据库基本信息。

数据库上机实验(有答案)

数据库上机实验内容及要求(第二部分) 1.建立工厂管理数据库 工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息: (1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和联系电话; (2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种; (3)一个车间生产多种产品,产品有产品号和价格;每种产品只能由一个车间生产; (4)一个车间制造多种零件,一种零件也可能为多个车间制造。零件有零件号、重量和价格; (5)一种产品可由多种零件组成,一种零件也可以装配出多种产品; (6)产品和零件均存入仓库; (7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。 根据以上需求分析结果,按照下述要求,设计并建立工厂管理数据库。 ◆分析实体及联系,设计E-R图。 ◆将E-R图转换成关系模式,并规范化到3NF。 ◆在Microsoft SQL Server2000中基于“企业管理器”建立数据库及相关对象(主 码,外码,索引,约束等)。 ◆测试数据入库 2.基于“查询分析器”,完成并保存下述题目的SQL脚本 (1)建立“工种”是“钳工”的所有职工详细信息的视图; create view View_工人_钳工 as select* from职工表 where工种='钳工' with check option (2)建立“车间号”是“CJ01”的钳工详细信息的视图; create view View_钳工_CJ01 as select* from View_工人_钳工 where车间号='CJ01' (3)建立使用了“零件号”是“LJ0002”的所有产品详细信息的视图; create view View_产品_零件LJ0002 as select产品表.产品号,价格,车间号,仓库号 from装配表,产品表 where装配表.产品号=产品表.产品号and零件号='LJ0002'(4)对零件表按照“零件号”建立唯一索引; create unique index Index_U_零件号on零件表(零件号) (5)对职工表按照“性别”建立聚簇索引; create clustered index Index_C_性别on职工表(性别) (6)查询使用了“零件号”是“LJ0002”的产品的生产车间号;

实验指导四空间大数据处理与地图投影

实验四空间数据处理与地图投影 一、实验目的 1.掌握空间数据处理(融合、拼接、剪切、交叉、合并)的基本方法,原理。 2.掌握地图投影变换的基本原理与方法。 3.掌握ArcGIS中投影的应用及投影变换的方法、技术,同时了解地图投影及其变换在实际中的应用。 二、实验准备 1.软件准备:ArcGIS 10.2 2.数据准备: (1)stationsll.shp(美国爱达荷州轮廓图) (2)idll.shp(美国爱达荷州滑雪场资料) 以上两个数据是以十进制表示经纬度数值的shapefile (3)snow.txt(美国爱达荷州40个滑雪场的经纬度值) (4)stations.shp,一个已投影的shapefile,用于检验习作2的投影结果 (5)idoutl.shp,基于爱达荷横轴墨卡托坐标系的爱达荷州轮廓图,用于检验习作3投影的正确性 三、实验容与步骤 1.空间数据处理 1.1 裁剪要素 ?在ArcMap中,添加数据“县界.shp”、“Clip.shp”(Clip 中有四个实体) ?开始编辑,激活Clip图层。选中Clip图层中的一个实体(注意不要选中“县界”中的实体!)

图4-1 编辑Clip ?点击按钮,打开ArcToolBox; ?选择“Analysis Tools->Extract”,双击“Clip”,弹出窗口剪切窗口,指定输入实体为“县界”,剪切实体为“Clip”(必须为多边形实体),并指定输出实体类路径及名称,这里请命名为“县界_Clip1” 如图4-5; 图4-2 工具箱

图4-3 剪切窗口 ?依次选中Clip主题中其它三个实体,重复以上的操作步骤,完成操作后将得到共四个图层——“县界_Clip1”,“县界_Clip2”,“县界_Clip3”,“县界_Clip4”); ?操作完成后,一定要“Save Editors”。 图4-4 生成四个剪切图层

(整理)SQLServer数据库基本知识点.

SQL Server 数据库基本知识点一、数据类型

二、常用语句 (用到的数据库Northwind) 查询语句 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询Customers 表中公司名称为“Alfreds Futterkiste”的ContactName字段和Address字段。 SELECT ContactName, Address FROM Customers WHERE CompanyName='Alfreds Futterkiste' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示Customers表中所有列的数据: SELECT * FROM Customers 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT ContactName, Address FROM Customers 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题 as 列名 列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT ContactName as 联系人名称, Address as地址 FROM Customers 4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 SELECT DISTINCT(Country) FROM Customers 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM Customers SELECT TOP 20 PERCENT * FROM Customers (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在Orders和Customers表中同时存在CustomerID列,在查询两个表中的CustomerID时应 使用下面语句格式加以限定: select * from Orders,Customers where Orders.CustomerID =Customers.CustomerID 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名 表名别名 select * from Orders as a,Customers as b where a.CustomerID =b.CustomerID SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 例如: select * from Customers where CustomerID in (select CustomerID from Orders where EmployeeID=4) 此例中,将SELECT返回的结果集合给予一别名CustomerID,然后再从中检索数据。 (三) 使用WHERE子句设置查询条件 WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:select CustomerID from Orders where EmployeeID=4

空间数据库报告

武汉理工大学 《空间数据库》实验报告 班级:地理1502班姓名:xx 学号:xxx 第1章需求分析 1.1需求概述 图书管理系统主要是适用于学校的,通过oracle数据库进行逻辑处理,实现对图书、读者(学生)、出版社信息的增删改查,核心功能是实现借书和还书操作,亮点是增添了学生可以挂失和修改密码的功能。下面设计的图书管理信息系统,这些功能均已实现。 1.2功能需求 图1.1

第2章概念设计 2.1 实体与属性 根据需求建立五个实体(admin,book,publisher,reader,booktype),并赋予其各自的属性,如图2.1 图2.1 2.2 初步E-R图 将各个局部E-R图合并,消除属性冲突、命名冲突、结构冲突,然后再用分析的方法或者规范化理论来消除冗余,生成基本E-R图,流程如图2.2,合并后的初步E-R图如图2.3所示。 图2.2

图2.3 第3章逻辑设计 3.1 逻辑结构设计 逻辑结构设计的流程图如图3.1所示,主要包括三个部分:1、将基本E-R图根据七条转化原则转化为一般数据模型;2、根据所选用的DBMS(Oracle)的功能及限制,将数据模型转换为Oracle 规定的模型。 图3.1

3.2 优化后的模型 管理员(职工号,姓名,性别,年龄,密码) 借阅者(卡号,姓名,年龄,性别,密码,专业,学院,最大借阅量)书籍(索书号,书名,作者,出版社号,类型号,价格,是否被借阅)出版社(出版社号,出版社名,电话,地址) 类型(类型号,类型名,所在楼层) 借阅(借阅号,借阅时间,归还时间,是否过期,卡号,索书号) 第4章物理设计 4.1 设计数据表 管理员表(admin) 图书表(book) 图书类型表(bookType)

数据库上机实验

附录C 上机实验 C.1 第4章上机实验 下列实验均使用SQL Server 的SSMS工具实现。 1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A): ●数据库名为:学生数据库 ●主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D: 盘中无此文件夹,请先建立此文件夹,然后再创建数据库。),初始大小为:5MB, 增长方式为自动增长,每次增加1MB。 ●日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大 小为:2MB,增长方式为自动增长,每次增加10%。 2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。(注:“说明”部分不作为表定义内容)

(1)在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。 (2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。(3)将Course表中Credit列的类型改为:tinyint。 (4)删除Student表中的Sid和Sdate列。 (5)为Teacher表添加主键约束,其主键为:Tno。 C.2 第5章上机实验 本实验均在SQL Server 的SSMS工具中实现。首先在已创建的“学生数据库”中创建本章表5-1~5-3所示的Student、Course和SC表,并插入表5-4~5-6所示数据,然后编写实现如下操作的SQL语句,执行所写的语句,并查看执行结果。 1.查询SC表中的全部数据。 2.查询计算机系学生的姓名和年龄。 3.查询成绩在70~80分的学生的学号、课程号和成绩。 4.查询计算机系年龄在18~20岁的男生姓名和年龄。 5.查询C001课程的最高分。 6.查询计算机系学生的最大年龄和最小年龄。 7.统计每个系的学生人数。 8.统计每门课程的选课人数和最高成绩。 9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。 10.列出总成绩超过200的学生的学号和总成绩。 11.查询选了C002课程的学生姓名和所在系。 12.查询考试成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。 13.查询与VB在同一学期开设的课程的课程名和开课学期。 14.查询与李勇年龄相同的学生的姓名、所在系和年龄。 15.查询哪些课程没有学生选修,列出课程号和课程名。 16.查询每个学生的选课情况,包括未选课的学生,列出学生的学号、姓名、选的课程号。 17.查询计算机系哪些学生没有选课,列出学生姓名。 18.查询计算机系年龄最大的三个学生的姓名和年龄。 19.列出“VB”课程考试成绩前三名的学生的学号、姓名、所在系和VB成绩。 20.查询选课门数最多的前2位学生,列出学号和选课门数。 21.查询计算机系学生姓名、年龄和年龄情况,其中年龄情况为:如果年龄小于18,则显 示“偏小”;如果年龄在18-22,则显示“合适”;如果年龄大于22,则显示“偏大”。 22.统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人 数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”; 如果此门课程的选课人数在40~100,则显示“一般”;如果此门课程的选课人数在1~40,则显示“人少”;如果此门课程没有人选,则显示“无人选”。 23.查询计算机系选了VB课程的学生姓名、所在系和考试成绩,并将结果保存到新表 VB_Grade中。

ACCESS2010数据库技术实验指导书3

《ACCESS2010数据库技术及应用》 实验指导(3) 学号: 姓名: 班级: 专业:

实验三窗体 实验类型:验证性实验课时: 4 学时指导教师: 时间:201 年月日课次:第节教学周次:第周 一、实验目的 1. 掌握窗体创建的方法 2. 掌握向窗体中添加控件的方法 3. 掌握窗体的常用属性和常用控件属性的设置 二、实验内容和要求 1. 创建窗体 2. 修改窗体,添加控件,设置窗体及常用控件属性 三、实验步骤 案例一:创建窗体 1.使用“窗体”按钮创建“成绩”窗体。 操作步骤如下: (1)打开“教学管理.accdb”数据库,在导航窗格中,选择作为窗体的数据源“教师”表,在功能区“创建”选项卡的“窗体”组,单击“窗体”按钮,窗体立即创建完成,并以布局视图显示,如图3-1所示。 (2)在快捷工具栏,单击“保存”按钮,在弹出的“另存为”对话框中输入窗体的名称“教师”,然后单击“确定”按钮。 图3-1布局视图 2.使用“自动创建窗体”方式 要求:在“教学管理.accdb”数据库中创建一个“纵栏式”窗体,用于显示“教师”表中的信息。 操作步骤: (1)打开“教学管理.accdb”数据库,在导航窗格中,选择作为窗体的数据源“教师”表,在功能区“创建”选项卡的“窗体”组,单击“窗体向导”按钮。如图3-2所示。 (2)打开“请确定窗体上使用哪些字”段对话框中,如图3-3 所示。在“表和查询”下拉列表中光图3-2窗体向导按钮

标已经定位在所学要的数据源“教师”表,单击按钮,把该表中全部字段送到“选定字段”窗格中,单击下一步按钮。 (3)在打开“请确定窗体上使用哪些字”段对话框中,选择“纵栏式”,如图3-4所示。单击下一步按钮。 (4)在打开“请确定窗体上使用哪些字”段对话框中,输入窗体标题“教师”,选取默认设置:“打开窗体查看或输入信息”,单击“完成”按钮,如图3-5所示。 (5)这时打开窗体视图,看到了所创建窗体的效果,如图3-6所示。 图3-3“请确定窗体上使用哪些字”段对话框 图3-4“请确定窗体使用的布局”段对话框中

信息技术基础知识点汇总

第一章 信息与信息技术知识点 【知识梳理】 二、信息的基本特征 1.传递性;2.共享性;3.依附性和可处理性;4.价值相对性;5.时效性;6.真伪性。 [自学探究] 1.什么是信息技术 ● 信息技术是指有关信息的收集、识别、提取、变换、存储、处理、检索、检测、分析和利用等的 技术。 ● 信息技术是指利用电子计算机和现代通讯手段获取、传递、存储、处理、显示信息和分配信息的 技术。 ● 我国有些专家学者认为,信息技术是指研究信息如何产生、获取、传输、变换、识别和应用的科 学技术。 2 3 4.信息技术的发展趋势 1.多元化;2.网络化;3.多媒体化;4.智能化;5.虚拟化 5.信息技术的影响 (1)信息技术产生的积极影响。 ①对社会发展的影响;②对科技进步的影响;③对人们生活与学习的影响。 (2)信息技术可能带来的一些消极影响。 ①信息泛滥;②信息污染;③信息犯罪;④对身心健康带来的不良影响 6.迎接信息社会的挑战 (1)培养良好的信息意识;(2)积极主动地学习和使用现代信息技术,提高信息处理能力;(3)养成健康使用信息技术的习惯;(4)遵守信息法规。 知识补充: 计算机系统的组成:(由硬件和软件组成) 硬件组成: 运算器 控制器 存储器ROM 、RAM 、软盘、 硬盘、光盘 输入设备键盘、鼠标、扫描仪、手写笔、触摸屏 CPU (中央处理器)

输出设备显示器、打印机、绘图仪、音箱 软件系统: 第二章信息获取知识点 【知识梳理】 1.获取信息的基本过程(P18) 2.信息来源示例(P20):亲自探究事物本身、与他人交流、检索媒体 3.采集信息的方法(P20):亲自探究事物本身、与他人交流、检索媒体 4.采集信息的工具(P20):扫描仪、照相机、摄像机、录音设备、计算机 文字.txt Windows系统自带 .doc 使用WORD创建的格式化文本,用于一般的图文排版 .html 用超文本标记语言编写生成的文件格式,用于网页制作 .pdf 便携式文档格式,由ADOBE公司开发用于电子文档、出版等方面 图形图象.jpg 静态图象压缩的国际标准(JPEG) .gif 支持透明背景图象,文件很小,主要应用在网络上.bmp 文件几乎不压缩,占用空间大 动画.gif 主要用于网络 .swf FLASH制作的动画,缩放不失真、文件体积小,广泛应用于网络 音频.wav 该格式记录声音的波形,质量非常高 .mp3 音频压缩的国际标准,声音失真小、文件小,网络下载歌曲多采用此格式 .midi 数字音乐/电子合成乐器的统一国际标准 视频.avi 用来保存电影、电视等各种影象信息.mpg 运动图象压缩算法的国际标准 .mov 用于保存音频和视频信息 .rm 一种流式音频、视频文件格式 6.常用下载工具(P29):网际快车(flashget)、web迅雷、网络蚂蚁、cuteftp、影音传送带等。 7.网络信息检索的方法(P25 表2-7):直接访问网页、使用搜索引擎、查询在线数据库 8.目录类搜索引擎和全文搜索引擎的区别(P26): 确定信息需求确定信息来源采集信息保存信息

电子科技大学-空间数据库上机实验报告

一、建立Geodatabase数据文件 1、新建一个Geodatabase: 如图1.1所示:在ArcCatalog环境下新建一个名为“Personal Geodatabase”的数据文件。 1.1 建好的Geodatabase 数据文件 2、新建要素集: 在Personal Geodatabase下,新建一个shanghai要素集,定义坐标系统为高斯投影(如图 1.2所示),单位为米,精度为1。

1.2 创建要素数据集 3、新建要素类: 在shanghai要素集中,新建一个parcel和pole要素类,parcle的Shape字段类型为polygon,新增字段parcel_name(文本型)、owner_name (文本型);pole的Shape 字段类型为点类型,新增三个字段:类型(短整型)、高度(短整型)和管理部门(文本型)。 1.3 创建parcel要素类 1.4 创建pole要素类 4、新建表:

如图1.5所示,在Personal Geodatabase下,新建一个owner表,新增字段name (文本型)、age (短整型) 1.5 创建owner表 二、创建子类 1、新建子类: 单击鼠标右键,打开pole要素类的属性表,选择子类选项卡,根据type字段创建pole类型子类,包括Wood、Steel和Cement。 图2.1 pole要素类新建子类 2、对子类赋值: 如图2.2所示,在ArcMap环境下通过列表框选择对要素子类进行赋值。

图2.2 pole要素类赋值 三、按子类定义pole要素类的域: 1、打开Geodatabase的属性表,定义三个域:Wood_pole高度域(短整型),20—30ft;Steel_pole的高度域(短整型),30—50ft;pole的管理部门域(文本),市管,区县管。 图3.1 按子类定义pole要素类的域

数据库上机实验题目和答案

试用SQL的查询语句表达下列查询: 1.检索王丽同学所学课程的课程号和课程名。 select Cno ,Cname from c where Cno in (select cno from sc where sno in (select sno from s where sname='王丽' )) 2.检索年龄大于23岁的男学生的学号和姓名。 select sno,sname from s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.360docs.net/doc/1d12638454.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.360docs.net/doc/1d12638454.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

oracle数据库实验指导书

计算机科学学院《ORACLE数据库》实验指导书

《ORACLE数据库》实验指导书 实验一Oracle数据库安装配置以及基本工具的使用 1.实验的基本内容 实验室中oracle数据库安装后某些服务是关闭的(为了不影响其他课程的使用),所以在进入数据库前需要对oracle进行配置: (1)启动oracle OraHomeTNSLISTENER 和oracleserviceORACLE 两个服务 (2)修改listener.ora 和tnsnames.ora 两个文件的内容 (3)以用户名:system ,口令:11111 以“独立登录”的方式进入oracle 数据库系统 (4)熟悉数据库中可用的工具。 2.实验的基本要求 (1)掌握Oracle11g的配置以及登录过程。 (2)熟悉系统的实验环境。 3.实验的基本仪器设备和耗材 计算机 4.实验步骤 (1) 查看设置的IP地址是否与本机上的IP地址一致。若不一致则修改为本机IP地址。 (2) 启动oracle OraHomeTNSLISTENER 和oracleserviceORACLE 两个服务 控制面板/性能与维护/管理工具/服务/ oracle OraHomeTNSLISTENER(右击/启动)。 控制面板/性能与维护/管理工具/服务/ oracleserviceORACLE(右击/启动) (3) 修改listener.ora 和tnsnames.ora 两个文件的内容 D:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN (用记事本方式打开),将HOST=“…..”内容修改为本机的IP地址,保存退出。 D:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN (用记事本方式打开),将HOST=“…..”内容修改为本机的IP地址,保存退出。 (4) 启动oracle 数据库

相关文档
最新文档