文档库 最新最全的文档下载
当前位置:文档库 › 数据库上机实验(有答案)

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

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

数据库上机实验内容及要求(第二部分)

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”的产品的生产车间号;

select车间号

from装配表,产品表

where装配表.产品号=产品表.产品号and零件号='LJ0002'

(7)查询“职工号”是“ZG0001”的职工所在车间的“车间主任姓名”和“联系电话”;

select车间主任姓名,联系电话

from职工表,车间表

where职工表.车间号=车间表.车间号and职工号='ZG0001'

(8)查询使用了“零件号”是“LJ0002”的所有产品的生产车间的“车间主任姓名”

和“联系电话”;(连接查询、嵌套查询实现)

select车间主任姓名,联系电话

from产品表,装配表,车间表

where产品表.产品号=装配表.产品号and

产品表.车间号=车间表.车间号and

装配表.零件号='LJ0002'

select车间主任姓名,联系电话

from车间表

where车间号in

(select车间号

from产品表

where产品号in

(select产品号

from装配表

where零件号='LJ0002')

)

(9)查询使用了“零件号”是“LJ0002”的所有产品的“产品号”和“零件数量”,且查询结果按照“零件数量”降序排列;

select产品号,零件数量

from装配表

where零件号='LJ0002'

order by零件数量desc

(10)查询使用了“零件号”是“LJ0002”的产品数;

select count(*)as产品数

from装配表

where装配表.零件号='LJ0002'

(11)查询“LJ0002”号零件装配产品的使用总量;

select sum(零件数量)as使用总数

from装配表

where零件号='LJ0002'

(12)查询使用了3种以上零件的产品号;

select产品号

from装配表

group by产品号

having count(*)>=3

【注意】:下机时保存数据库文件(.mdf和.ldf)及SQL脚本文件到U盘。

数据库上机实验报告

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

数据库上机实验

学号 12051134 姓名张宏源班级物联网1班上机实验四——SELECT语句基本格式的使用一、实习目的: 掌握SELECT的基本使用格式,能使用SQL Server对表作简单查询。 二、实习准备: 1.复习第三章3.4节中SELECT语句的基本使用格式。 2.复习SQL中五种库函数:AVG、SUM、MAX、MIN、COUNT; 3.完成习题三第12题中的各项操作的SQL语句。 三、实习内容: 1.验证习题三第12题中的各项操作的SQL语句。 ① 找出所有被学生选修了的课程号; Select Distinct Cno From Grade Order by Cno ②找出01311班女学生的个人信息; Select* From Student where Ssex='女'and Clno=01311 ③找出01311班、01312班的学生姓名、性别、出生年份; Select Sname,Ssex,2014-Sage as birthyear From Student where Clno='01311'or Clno='01312' ④找出所有姓李的学生的个人信息; Select* From Student where Sname like'李%' ⑤找出学生李勇所在班级的学生人数; Select number FROM Class where clno= (select Clno from Student

where Sname='李勇' ) ⑥找出课程名为操作系统的平均成绩、最高分、最低分; Select AVG(Gmark),MAX(Gmark),MIN(Gmark) FROM Grade where Cno= (Select Cno from Course where Cname='操作系统' ) ⑦找出选修了课程的学生人数; Select COUNT(Sno)as renshu FROM Grade ⑧找出选修了课程操作系统的学生人数。 Select COUNT(Sno)as renshu FROM Grade where Cno= (Select Cno from Course where Cname='操作系统' ) 2.试一下以下语句是否正确: SELECT eno,basepay,service FROM salary WHERE basepay

数据库实验四作业及答案

实验4数据查询 一、实验目的 1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。 2.掌握使用SELECT语句进行条件查询的方法。 3.掌握嵌套查询的方法。 4.掌握多表查询的方法。 5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。 6.掌握联合查询的操作方法。 7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。 二、实验准备 1.了解SELECT语句的基本语法格式和执行方法。 2.了解嵌套查询的表示方法。 3.了解UNION运算符的用法。 4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。 5.了解IN、JOIN等子查询的格式。 6.了解INSERT INTO、UPDATE、DELETE的格式与作用。 三、实验内容及步骤 0. 创建studentsdb数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。 创建数据库代码 1.在studentsdb数据库中,使用下列SQL语句将输出什么? (1)SELECT COUNT(*) FROM grade (2)SELECT SUBSTRING(姓名,1,2) FROM student_info (3)SELECT UPPER('kelly')

(4)SELECT Replicate('kelly',3) (5)SELECT SQRT(分数) FROM grade WHERE 分数>=85 (6)SELECT 2,3,POWER(2,3) (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()) 2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。 SELECT*FROM student_info (2)查询学号为0002的学生的姓名和家庭住址。 SELECT姓名,家庭住址FROM student_info WHERE学号=0002 (3)找出所有男同学的学号和姓名。 SELECT学号,姓名FROM student_info

数据库上机实验

创建数据表与数据输入 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

山东大学《数据库系统》上机实验答案 详细整理 2013最新版

数据库实验(一) 熟悉环境、建立/删除表、插入数据 Drop table 表名 update dbtest set test=1 select * from dbscore 1.教师信息(教师编号、姓名、性别、年龄、院系名称) test1_teacher:tid char 6 not null、name varchar 10 not null、sex char 2、age int、dname varchar 10。 根据教师名称建立一个索引。 1、create table test1_teacher( tid char(6) primary key, name varchar(10) not null, sex char(2), age int, dname varchar(10) ) 2.学生信息(学生编号、姓名、性别、年龄、出生日期、院系名称、班级)test1_student:sid char 12 not null、name varchar 10 not null、sex char 2、age int、birthday date(oracle的date类型是包含时间信息的,时间信息全部为零)、dname varchar 10、class varchar(10)。 根据姓名建立一个索引。 2、create table test1_student(

sid char(12) primary key, name varchar(10) not null, sex char(2), age int, birthday date, dname varchar(10), class varchar(10) ) 3.课程信息(课程编号、课程名称、先行课编号、学分) test1_course:cid char 6 not null、name varchar 10 not null、fcid char 6、credit numeric 2,1(其中2代表总长度,1代表小数点后面长度)。 根据课程名建立一个索引。 3、create table test1_course( cid char(6) primary key, name varchar(10) not null, fcid char(6), credit numeric(2,1) ) 4.学生选课信息(学号、课程号、成绩、教师编号) test1_student_course:sid char 12 not null、cid char 6 not null、 score numeric 5,1(其中5代表总长度,1代表小数点后面长度)、tid char 6。 4、 create table test1_student_course( sid char(12) , cid char(6) , score numeric(5,1), tid char(6), primary key(sid,cid),

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

数据库上机实验内容及要求(第二部分) 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”的产品的生产车间号;

数据库实验四(含答案)

实验四使用SQL语句创建和删除数据库、表 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 3、学会使用T-SQL语句创建表。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 3.是用查询分析器,完成用SQL语句创建和删除基本表。 三. 实验要求 1、熟练使用查询分析器进行数据库的创建和删除操作。 2、用查询分析器,完成用SQL语句创建和删除基本表。 3、完成实验报告。 四. 实验内容 一、数据库 1.以下是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 , filegrowth=1) 运行上诉语句建立数据库userdb1

句,并建立“学生信息”数据库.(.mdf的名字可以修改) 3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 ,

数据库系统及应用上机实验报告

数据库系统及应用上机实验报告 实验1 一、实验目的:理解SQL Server数据库的存储结构,掌握SQL Server数据库的建立方法和维护方法。 二、实验内容:在SQL Server环境下建立数据库和维护数据库。 三、程序源代码: --1 CREATE DATABASE test1 ON (NAME=test1_dat, FILENAME='f:\DB\data\test1dat.mdf', SIZE= 10, MAXSIZE= 50, FILEGROWTH= 5 ) LOG ON (NAME=order_log, FILENAME='f:\DB\data\test1log.ldf', SIZE= 5MB, MAXSIZE= 25MB, FILEGROWTH= 5MB) --2 create database test2 on

primary (name=test2_dat1, filename='f:\DB\data\test2dat1.mdf'), (name=test2_dat2, filename='f:\DB\data\test2dat2.ndf'), (name=test2_dat3, filename='f:\DB\data\test2dat3.ndf') log on (name=test2_log1, filename='f:\DB\data\test2log1.ldf'), (name=test2_log2, filename='f:\DB\data\test2log2.ldf') --3 create database test3 on primary (name=test3_dat1, filename='f:\DB\data\test3dat1.mdf'), (name=test3_dat2, filename='f:\DB\data\test3dat2.mdf'), filegroupg2 (name=test3_dat3, filename='d:\DB\data\test3dat3.ndf'), (name=test3_dat4,

数据库上机实验

附录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中。

数据库实验上机答案整理-中国石油大学-龚安

实验四SQL练习2 一、实验目的 1.掌握索引的建立、删除及使用; 2.掌握单表查询、连接查询、嵌套查询和集合查询; 3.掌握插入数据、修改数据和删除数据语句的非常用形式。二、实验学时 2学时 三、实验内容 1.利用Query Analyzer完成以下操作: ⑴在预算日期、结算日期和入账日期上分别建立索引,并在查询操作中体会索引的作用。 ⑵在完成第2题的查询操作后,删除预算日期、结算日期和入账日期上的索引。 2.利用Query Analyzer完成以下操作: ⑴采油一矿二队2016-5-1到2016-5-28有哪些项目完成了预算,列出相应明细。 ⑵采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应明细。 ⑶采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应的材料费消耗明细。 ⑷采油一矿二队2016-5-1到2016-5-28有哪些项目完成了入账,列出相应明细。

⑸列出采油一矿二队2016-5-1到2016-5-28总的预算金额。 ⑹列出采油一矿二队2016-5-1到2016-5-28总的结算金额。 ⑺列出采油一矿二队2016-5-1到2016-5-28总的入账金额。 ⑻列出采油一矿2016-5-1到2016-5-28总的入账金额。 ⑼有哪些人员参与了入账操作。 ⑽列出2016-5-1到2016-5-28进行了结算但未入账的项目。 ⑾列出采油一矿二队的所有项目,按入账金额从高到低排列。 ⑿列出有哪些施工单位实施了项目,并计算各单位所有项目结算金额总和。 ⒀找出消耗了材料三且消耗超过了2000元的项目,列出相应消耗明细(利用子查询)。 ⒁作业公司二队参与了哪些项目。 ⒂作业公司一队和二队参与了哪些项目(利用union)。 ⒃采油一矿的油井是哪些作业队参与施工的。 3.利用Query Analyzer完成以下操作: ⑴建立数据表(包含3个属性列:★施工单位、★年月、◆结算金额)保存各个施工单位每月的结算金额总和。 ⑵用子查询将各个施工单位每月的结算金额总和插入到所建立的数据表中。 ⑶用带子查询的修改语句将采油一矿油井作业项目的结算人改为“李兵”。 ⑷用带子查询的删除语句删除采油一矿油井作业项目。

数据库上机实验报告 总结

重庆邮电大学移通学院 数据库集中上机报告 学生:马志鹏 学号: 022******* 班级: 02210901 专业:计算机应用技术 重庆邮电大学移通学院 2011年6月

第一天:Access数据库基本操作 1 实验目的 1、熟悉的掌握Access数据库结构与创建 2、了解创建、修改、删除、查询、保存等操作 3、输入数据创建、设计器创建、向导创建。 2 实验内容 3 实验结果 1. 2. 2

重庆邮电大学移通学院 3 2 Access 数据表的编辑 第二天 数据表基本操作 1 表关系与编辑数据 1 实验目的: 1、实现一对一,一对多,多对多的实体关系 2、对“学生基本信息”表中的记录进行排序,按出生日期降序排列 3、从“学生基本信息”表中筛选出所有计算机系男生的记录 4、从“学生基本信息”表中筛选出回族和蒙古族的所有学生记录

2 实验内容 1. SELECT 学生基本信息表.学生姓名, 成绩档案表.* FROM 成绩档案表INNER JOIN 学生基本信息表ON 成绩档案表.学生学号= 学生基本信息表.学生学号 WHERE (((学生基本信息表.学生姓名)="张冰冰")); 2 SELECT 学生基本信息表.* FROM 学生基本信息表 WHERE (((学生基本信息表.性别)="男") AND ((学生基本信息表.班级名称)="计算机系")); 3 SELECT 成绩档案表.C语言, 课程表.* FROM 成绩档案表, 课程表; 4 SELECT 学生基本信息表.*, 学生基本信息表.性别, 学生基本信息表.班级名称FROM 学生基本信息表WHERE (((学生基本信息表.性别)<>"男") AND ((学生基本信息表.班级名称)<>"计算机系")); 5 SELECT 学生基本信息表.*, 学生基本信息表.出生日期 FROM 学生基本信息表WHERE (((Month([出生日期]))=9) AND ((Day([出生日期]))=1)); 6 SELECT 学生基本信息表.* FROM 学生基本信息表WHERE (((学生基本信息表.学生姓名) Like "李*")); 3 实验结果 4

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

试用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.wendangku.net/doc/1f121140.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.wendangku.net/doc/1f121140.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

数据库实验四(含答案)

实验四使用SQL语句创建与删除数据库、表 一、实验目的: 1、了解SQL Server 2005数据库的逻辑结构与物理结构。 2、掌握使用SQL 语句创建与删除数据库。 3、学会使用T-SQL语句创建表。 二、实验准备 1.明确能够创建数据库的用户必须就是系统管理员,或就是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建与删除数据库的基本语法。 3.就是用查询分析器,完成用SQL语句创建与删除基本表。 三、实验要求 1、熟练使用查询分析器进行数据库的创建与删除操作。 2、用查询分析器,完成用SQL语句创建与删除基本表。 3、完成实验报告。 四、实验内容 一、数据库 1.以下就是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 'g:\xygl\userdb4、mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M )--数据文件每次增长1M log on ( name=userdb4_log, 'g:\xygl\userdb4、ldf ' , size=2 , maxsize=5 , ) 运行上诉语句建立数据库userdb1

2.根据步骤1的sql语句,写出创建实验二中“学生信息”数据库的sql语句,并建立“学生信息”数据库、(、mdf的名字可以修改) 3、数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, 'g:\xygl\userdb4、ldf ' , size=2 , maxsize=5 ,

《数据库技术与应用》实验报告

《数据库技术与应用》上机实验报告 目录: 一、概述 二、主要上机实验内容 1.数据库的创建 2.表的创建 3.查询的创建 4.窗体的创建 5.报表的创建 6.宏的创建 三、总结 一、概述 (一)上机内容: 第七周:熟悉Access界面,数据库和表的创建,维护与操作 1. 熟悉Access的启动,推出,界面,菜单,工具栏等; 2. 练习使用向导创建数据库、创建空数据库; 3. 练习创建表结构的三种方法(向导、表设计器、数据表)、表中字段属性设置; 4. 练习向表中输入不同类型的数据; 5. 练习创建和编辑表之间的关系; 6. 练习表的维护(表结构、表内容、表外观) 7. 练习表的操作(查找、替换、排序、筛选等) 第八周:练习创建各种查询 1.选择查询(单表、多表、各种查询表达式) 2.参数查询 3.交叉表查询 4.操作查询(生成查询、删除查询、更新查询、追加查询) 第十周:练习创建各种类型的窗体 1.自动创建纵栏式窗体和表格式窗体; 2.向导创建主|子窗体

3.图表窗体的创建 4.练习通过设计器创建窗体 5.练习美化窗体 第十三周:练习创建各种类型的报表 1.自动创建纵栏式报表和表格式报表; 2.向导创建报表(多表报表、图表报表、标签报表) 3.练习通过设计视图创建报表(主|子报表、自定义报表) 4.练习在报表中添加计算字段和分组汇总数据 第十五周:综合应用 1.了解Access数据库系统开发的一般方法; 2.课程内容的综合练习; 3.编写上机实验报告、答疑 (二)上机完成情况 第七周:熟悉Access界面,数据库和表的创建,维护与操作 完成了创建表,向表中输入不同类型的数据,创建和编辑表之间的关系,进行了表的维护,修改了表的结构、内容、外观,最后进行了表的操作,查找、替换、排序、筛选等。 已完成 第八周:练习创建各种查询 练习选择查询、参数查询、交叉表查询,然后练习并操作查询,生成查询、删除查询、更新查询、追加查询等。 已完成 第十周:练习创建各种类型的窗体 自动创建纵栏式窗体和表格式窗体,向导创建主|子窗体和图表窗体,练习通过设计器创建窗体,美化窗体。 基本完成 第十三周:练习创建各种类型的报表 自动创建纵栏式报表和表格式报表,向导创建报表,练习通过设计视图创建报表,在报表中添加计算字段和分组汇总数据。 已完成 第十五周:综合应用

数据库原理实验报告四(有答案)

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

1.实验目的 (1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。 (2)掌握数据排序和数据联接查询的方法。 (3)掌握SQL Server查询分析器的使用方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询 操作,并将将调试成功的T-SQL命令,填入实验报告中。 a)查询所有课程的详细情况。 b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。 c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。 d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降 序排列,如果成绩相同则按学号升序排列。 e)查询所有学生的学号、姓名和年龄。 f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并 将成绩乘以0.7输出。 g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院 (DEPT_ID为09)姓张的学生的信息。。 h)查询所有核心课程(课程名中带*的)的情况。 i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。 (2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作: a)查询每个学生的情况以及他(她)所选修的课程。 b)查询学生的学号、姓名、选修的课程名及成绩。 c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。 d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。 e)分别用等值联接和内联接查询有授课记录的老师的姓名。 f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院 系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该 老师没有授课历史,在课程号和授课的学期中显示空值 (3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL编 辑器工具栏中各快捷按钮的作用。 (4)按要求完成实验报告。

数据库上机题目

上机时间7-18周周四上午3、4节 实验第一部分数据库操作 一:熟悉ACCESS环境(不用提交) 下面的实验要在七周内完成 实验1 建立学生、课程及成绩表,录入部分数据,并设计验证实体、参照及用户自定义完整性。 实验第二部分SQL语句VB数据库访问技术 二:SQL语句及VB数据库访问技术(要提交) 下面的SQL语句要求在“学生成绩管理”数据库进行测试。 下面的实验要在八至十二周内完成,要求提交纸质实验报告,实验报告包括:实验题目、SQL语句及查询结果的截图(查询的名称为自己的学号加姓名)。 【实验2_1】查询学生基本信息表中的所有信息。 SQL语句如下: 【实验2_2】在学生基本信息表中查询学生的学号、姓名、性别和族别信息。 SQL语句如下: 【实验2_3】从学生基本信息表中查询学生由哪些民族构成。 学生的族别有多行重复,要快速查询学生的民族构成,实际上就是对相同值的族别只需要显示一行,可使用DISTINCT关键字实现。 【实验2_4】从成绩表中查询学生成绩。 SQL语句如下: 【实验2_5】从相关表中查询每一位学生的学号、姓名、课程名称、成绩。 【实验2_6】在课程信息表中查找“Delphi程序设计”课程的任课老师。 【实验2_7】查询少数民族学生的基本情况。 【实验2_8】检索1985年1月1日以后出生的女生基本信息。 【实验2_9】查询每位同学的课程门数、总成绩、平均成绩。 【实验2_10】从学生基本信息表中统计各民族学生人数。 【实验2_11】从学生基本信息表中统计汉族学生的人数。 【实验2_12】显示平均成绩大于等于80分以上的学生情况。

【实验2_13】查询学生成绩并将显示的结果按成绩升序排序。 SQL语句如下: 【实验2_14】查询1985年出生的学生基本信息。 【实验2_15】查询不及格学生成绩信息。 查询不及格学生成绩信息,也就是查询0—59之间的学生成绩,可用BETWEEN关键字表示为:WHERE 成绩BETWEEN 0 AND 59。 【实验2_16】查询课程编号为002、003、007的课程编号、课程名称、任课教师和上课时间。 【实验2_17】检索所有姓刘的学生基本信息。 【实验2_18】检索包含“技术”两字的课程信息。 【实验2_19】查询第2 个字为“丽”的学生信息。 【实验2_20】查询课程信息表中教师未定的课程信息。 【实验2_21】统计成绩表中各门课程的学生人数、总成绩、平均成绩。 【实验2_22】检索单科成绩高于全班平均分的学生成绩信息。 【实验2_23】使用左外连接检索学生成绩信息(学号,姓名,课程名称)。 【实验2_24】使用右外连接检索学生成绩信息(学号,姓名,课程名称)。 【实验2_25】查找同名同姓的学生信息。 【实验2_26】在VB中设计针对“课程信息表”的基本编辑窗体,需要附运行界面及源程序代码。 实验第三部分数据库应用系统开发 数据库应用系统开发作为本课程课程设计考查内容,需要在18周之前提交纸质课程设计报告(主要是系统开发侧重于实施环节的报告)及数据库应用系统。系统开发可以两人(不能超过两人)一组,系统名称可自行拟定。

数据库认证实验四答案

--1,创建登陆用户temp1,密码是1234,加入到school数据库中并赋予db_owner数据库角色. Sp_addlogin'temp1','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp1'; --- /* CREATE LOGIN tmp1 WITH PASSWORD = '123',default_database=School; -- Creates a database user for the login created above. CREATE USER user1 FOR LOGIN tmp1; */ --查看登录账号的信息 Select*from sys.syslogins where name='temp1'; /* use School go exec sp_addsrvrolemember 'temp1','sysadmin';--添加服务器角色 */ --赋予db_owner数据库角色. use School go exec sp_addrolemember'db_owner','temp1'; --2,创建登陆用户temp2,密码是1234, --加入到school数据库中,并赋予该用户对student表select,insert权限 Sp_addlogin'temp2','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp2';

grantselect,insert on student to temp2; --3,对数据库school进行完全数据库备份,写出备份语句 Use School Go Sp_addumpdevice'disk','schoolinfo','e:\data\schoolinfo.bak' Go Backupdatabase school to schoolinfo withinit; --4,将student学生信息表中所有学生信息年龄改为20,进行差异化备份--修改表的数据 use school go update student set sage=20; ---执行差异化的备份 Use School Go Backupdatabase School todisk='e:\data\schoolinfo.bak'; Use school Go Backupdatabase School to schoolinfo withdifferential,init Use school Go select*from student Backupdatabase school to schooldemo withdifferential,init

相关文档