数据库上机指导

数据库上机指导
数据库上机指导

《数据库原理与技术》上机实验安排

实验1SQL server 2000的安装和常用工具的使用

【实验内容】

1.练习安装SQL SERVER 2000及卸载SQL SERVER 2000。(注意WINDOWS登录模式和混合登录模式的区别)

2. 在企业管理器中创建一个新的SQL Server服务器组,作为Microsoft SQL Servers的子对象,名称为“NewGroup”

3. 在计算机上再安装一个SQL Server命名实例,实例名为“people”。使用企业管理器在NewGroup服务器组下创建一个新的SQL Server注册,使它连接people实例.

实验2数据库及表的创建和管理

【实验内容】

1、使用企业管理器创建名为student的数据库,并设置数据库主文件名为syudent_data,大小为10MB;日志文件为student_log,大小为2MB.其他参数取默认值。

步骤:a.

b.

c.

d.

2. 使用Transact—SQL语言创建一个student1数据库,主文件逻辑名为student1_data,物理文件名为student1.mdf,为10MB,增长速度为10%;数据库的日志文件逻辑名为syudent1_log, 物理文件名为student1.ldf,初始化大小为1MB,最大尺寸为5MB, 增长速度为1 MB;文件存放路径为c:\data文件夹下。

Create database student1

On primry

(name=student1_data,

filename=c:\data\student1.mdf,

size=10,

maxsize=unlimited,

filegrowth=10%)

log on

(name=student1_log,

filename=c:\data\student1.ldf,

size=1,

maxsize=5,

filegrowth=1)

3.在student数据库中创建一个名为pupil的表,要求:

(sno char(6) not null,sname char(10) not null,ssex char(2) not null,birthday datetime

not null, polity char(20))

步骤:

b.

c.保存并命名为pupil即可。

4.将pupil表的sno设置为主键。

5、为sname字段设置惟一性约束。

步骤:

6.为ssex和birthday设置检查性约束,要求ssex只能为‘男’或‘女’,birthday应该大于‘1987-1-1’。

步骤:

7.为polity字段设置默认约束,值为‘群众’。

8再创建一个学生选课表sc(sno char(6) not null,cno char(10) not null,grade real).

为sc表创建外键约束,把sc表的sno和pupil表的sno关联起来,在这两个表之间创建一种制约关系。

步骤:

最后保存该关系图即可。

实验3数据查询及维护

【实验内容】

1. 已知一个名为pupil的表:

(sno char(6) not null,sname char(10) not null,ssex char(2)

not null,birthday datetime not null, polity char(20),sdept

char(20) not null)

a.利用insert语句向其中插入一条新的记录:

(‘0007’,‘张三’,‘男’,‘1982-3-21’,‘团员’,?计

算机系?)

insert into pupil

values(‘0007’,‘张三’,‘男’,‘1982-3-21’,‘团员’,

‘计算机系’)

b.利用update语句将编号为‘0004’的学生polity改为

‘党员’:

update pupil

set polity=?党员?

where sno=?0004?

a.利用delete语句将‘186-1-1’以后出生的女同学记录删除。

Delete from pupil

Where polity>1986-1-1 and ssex=?女?

2.针对pupil、sc、course三张表完成以下查询:

a.查询所有学生的基本信息,并按出生日期升序排列

select * from pupil order by polity

b.查询女同学的信息和女同学的人数

select * from pupil where ssex=?女?

compute count(sno)

c.查询所有男同学的年龄

select year(getdate())-year(birthday) as 年龄from pupil d.所有选课学生的姓名、选修课程名及成绩

select sname,cname,grade

from pupil,sc,course

where pupil.sno=sc.sno and https://www.360docs.net/doc/624326065.html,o=https://www.360docs.net/doc/624326065.html,o

e.不及格学生的姓名

select distinct sname

from pupil,sc,course

where pupil.sno=sc.sno and https://www.360docs.net/doc/624326065.html,o=https://www.360docs.net/doc/624326065.html,o and grade<60 f.查询‘刘’姓学生的信息

select * from pupil where sname like …刘%?

g.查询polity为?团员?或?党员?的学生信息

select * from pupil where polity in(…团员?,?党员?)

h.查询各门课程的选课人数

select cno ,count(sno) from sc group by cno

i.查询缺少成绩的学生的学号及课程号

select sno,cno from sc where grade is null

j.查询与‘刘成’同一个系的学生情况

select * from pupil where sdept in(select sdept from pupil where sname=?刘成?))

k.查询选修了课程名为‘MIS’的学生的学号和姓名select sno,sname from pupil where sno in(select sno from sc where cno in(select cno from course wnere cname=?MIS?))

实验4Transact—SQL程序设计

【实验内容】

1.编写一个用户自定义函数fun_avggrade,要求根据输入的班级号和课程号,求此班级此课程的平均分。

Create function fun_avggrade

(@classnumber as char(10),@coursenumber as char(10))

returns real

begin

declare @avgresult

select @avgresult=avg(grade)

from sc

where substring(sno,1,len(sno)-2)= @classnumber and

cno=@coursenumber

return @avgresult

end

2. 编写一个用户自定义函数,完成以下功能:根据两个

输入参数(成绩上限和成绩下限),求sc数据表中满足输

入条件的学生人数。

Create function fun_sumren

(@maxline real,@minline real)

returns int

begin

declare @personcount as int

select @personcount=(select count(distinct sno) from sc) from sc

where grade<=@maxline real and grade>=@minline return @personcount

end

3.如何通过企业管理器和Transact_SQL语句对视图进行创建、修改和删除?

通过企业管理器:

创建步骤:

数据库原理上机实验指导

数据库原理上机实验指导 一、实验目的和要求 1.实验目的 力图通过本实践课程的学习,使学生掌握数据库管理系统的基本概念、操作方法和管理方法,能够根据用户应用需求设计出合理的数据库应用系统逻辑模型方案,并且实现之。 2.实验要求 本实践课程主要介绍Microsoft SQL Server 2000系统的基本概念、基本知识;讲述数据库管理系统的安装、操作、设计、管理等基本概念及其操作方法;学习如何创建和管理数据库系统的步骤,为承担DBA角色作好准备。重点要求掌握Transact-SQL语言,学会数据库应用系统逻辑模型的设计和实现。 要求学生实验前认真准备,实验后提供实验报告,给出详细实验结果以及设计依据。 实验报告的格式应采用统一封面,统一的实验报告纸。封面应包括:课程名称、实验序号、名称、专业、班级、姓名、同组实验者、实验时间。实验报告内容应包括:实验名称、目的、内容、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。 二、实验环境介绍 1.硬件设备要求 微型计算机,最好具有局域网环境 2.软件设备要求 Windows 2000或Windows XP操作系统; MS SQL Server 2000数据库管理系统。 三、实验内容和学时分配 1.实验内容 实验1:服务器管理 实验2:创建和管理数据库 实验3:Transact-SQL语言——数据查询 实验4:Transact-SQL语言——数据定义与数据更新 实验5:数据库安全与保护——用户管理和权限管理 实验6:数据库安全与保护——数据完整性 实验7:数据库安全与保护——数据库的一致性和并发性 实验8:数据库安全与保护——数据库的备份与恢复 实验9:存储过程和触发器 实验10:嵌入式SQL的使用

SQL-Server数据库上机实验报告

SQL-Server数据库上机实验报告

《数据库系统原理》上机实验报告 学号:1120131743 姓名:谈兆年 班级:07111301

一、实验目的与要求: ●熟练使用SQL语句 ●掌握关系模型上的完整性约束机制 二、实验内容 1:利用SQL语句创建Employee数据库 CREATE DATABASE Employee; 结果: 2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept。 做法:按表1、表2、表3中的字段说明创建 表1 person表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键P_na Varch10 Not 姓名

me ar Null Sex Char 2 Not Null 性别 Birth date Dateti me Null 出生日期 Prof Varch ar 10 Null 职称 Dept no Char 4 Not Null 部门代码,外键 (参照dept表)表2 salary表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键,外键(参照person表) Base Dec 5 Null 基本工资Bonu s Dec 5 Null 奖金,要求>50 Fact Dec 5 Null 实发工资=基本工 资+奖金 Mont h Int 2 Not Null 月份

表3 dept表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 Dept no Char 4 Not Null 部门代码,主键, Dna me Varch ar 10 Not Null 部门名称 程序为: CREATE TABLE dept( deptno CHAR(4) PRIMARY KEY NOT NULL, dname V ARCHAR(10) NOT NULL) CREATE TABLE Person( P_no CHAR(6) PRIMARY KEY Not Null, P_name V ARCHAR(10) Not Null, Sex CHAR(2) Not Null, Birthdate Datetime Null, Prof V ARCHAR(10) Null, Deptno CHAR(4) Not Null, FOREIGN KEY(Deptno) REFERENCES

全国计算机三级数据库技术上机试题道

1.【考点分析】本题考查对4位整数的排序。考查的知识点主要包括:数组元素的排序算法,if判断语句和逻辑表达式,以及求余算术运算。【解题思路】此题属于4位数排序问题。本题需主要解决3个问题:问题1如何取4位数的后3位进行比较;问题2如何按照题目要求的条件(按照每个数的后3位的大小进行降序排列,如果后3位相等,则按照原始4位数的大小进行升序排列)排序;问题3如何将排完序的前10个数存到数组bb中去。 本题的解题思路为:使用双循环对数组按条件进行排序,然后将排完序的前10个数存到数组bb中。对于问题1可以通过算术运算的取余运算实现(aa[i]_x0010_00);问题2通过包含if判断语句的起泡排序法就可以实现。 【参考答案】 void jsSort() { int i,j; /*定义循环控制变量*/ int temp; /*定义数据交换时的暂存变量*/ for(i=0;i<199;i++) /*用选择法对数组进行排序*/ for(j=i+1;j<200;j++) { if(aa[i]_x0010_00

{ temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } else if(aa[i]_x0010_00==aa[j]_x0010_00) /*如果后3位数相等*/ if(aa[i]>aa[j]) /*则要按原4位数的值进行升序排序*/ { temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } } for(i=0;i<10;i++) /*将排序后的前10个数存入数组b中*/ bb[i]=aa[i]; } 【易错提示】取4位数后三位的算法,if判断语句中逻辑表达式的比较运算符。 判断语句和if语言循环结构,C本题主要考查的知识点包括:【考点分析】2.

数据库上机操作题

Access 上机操作题(共5题,3分/题) 数据库上机操作题 1. 建立学生管理数据库,添加相应数据库表,并建立表间关系 (1)打开Access2010,建立“学生管理”数据库,并添加三个表,分别是Student、Course 和Grade。 Student Grade

(2)在Student表中以“学号”建立主键,在Course表中以“课程号”建立主键 (3)以Student与Grad表按“学号”字段建立关系,以Grad表“课程编号”字段与Course 表中“课程号”字段建立关系。 2. 根据已有学生数据库建立简单查询 (1)按照操作题1中的Student、Course和Grade三个表,建立综合查询,要求包括三个表中无重复的所有字段,并将查询结果存到新表stud中。 (2)按照学号建立参数查询,查询学号是12102105学生的基本情况和选课情况。 (3)按照分数的降序排列显示学生所有信息。 (4)将学生成绩表的Grage成绩按80%修改。 3. 基于已有的学生管理数据库,建立高级查询 (1)创建一个选择查询,查询并显示学生的平均分数,所在班级名称。 (2)显示所有分数高于80分的学生姓名所有信息。 (3)创建一个选择查询,查询开课时间在2013年中121021班级学生的选课情况。 (4)在Grade表中添加“等级”字段,将成绩在80分或以上的学生在等级字段中添加“优良”标识。 4. 建立学生基本情况及成绩情况窗体 (1)基于建立的学生管理数据库,按照性别添加照片字段数据(有照片文件夹) (2)利用自动创建窗体,所建窗体命名为“学生基本信息”; (3)利用窗体设计修改窗体,调整窗体位置,添加背景图片(有图片文件) (4)添加4个导航按钮,分别指向“下一项记录”、“前一项记录”、“最后一记录”和

pb实验指导

实验一数据库的创建与连接 目的和要求 (1)掌握PowerBuidler9.0数据库的创建与连接方法; (2)创建一个SQL Server数据库,为其配置ODBC数据源和DBProfile,然后在PowerBuilder环境中连接数据库; (3)创建数据库中的表,管理表并输入数据到表中。 上机准备 (l)启动Windows操作系统,如果在Windows操作系统的控制面板中没有安装ODBC32,必须进行ODBC的安装; (2)进人PowerBuilder 9.0集成环境,熟悉系统环境; (3)创建的应用个人应用mypb; (4)复习创建数据库的有关内容。 上机步骤 1..创建SQL Server 数据库 创建SQL Server数据库的步骤: (1)运行SQL Server 服务; (2)运行SQL Server 企业管理器; (3)创建student数据库; (4)在student数据库中,创建student表(见表1)。 2.配置ODBC 数据源 配置ODBC数据源的步骤: (1)在PowerBuilder数据库画板的窗口中,双击ODBC项下Utlities项的“ODBC Administrator”项,将弹出“ODBC数据源管理器”对话框: (2)选择“用户DSN”页,在该页的列表框中,列出了已有的数据源,若要修改已有的数据源,可以中击“配置”按钮进行修改。这里,我们需要添加一个ODBC数据源,所以,中击“添加”按钮创建新数据源,将出现标题为“创建新数据源”的对话框; (3)在“创建新数据源”的对话框中提供了一个系统支持的数据库驱动程序列表框,选择合适的驱动程序。这儿我们选择SQL Server,单击“完成”按钮,将弹出“创建SQL Server 新数据源”对话框; (4)输入新的数据源名称,这里为mydb。然后,选择想连接的SQL Server服务器,可选择local,然后单击“下一步”按钮; (5)选择SQL Server验证,登录ID 为sa,密码默认为空,然后单击“下一步”按钮; (5)更改默认的数据库为student,然后单击“下一步”按钮; (5)默认系统值,然后单击“完成”按钮;

数据库上机答案

数据库上机1 1、新建工厂数据库factory。 create database factory on( name=factory_data, filename='d:\factory.mdf') log on(name=factory_log, filename='d:\factory.ldf') 2、数据库factory包括职工表worker、部门表depart和职工工资表salary。用SQL语句建立这三个表并输入数据,其表结构及用例数据分别如下: 职工表结构为: 职工号:int; 姓名:char(8) ; 性别:char(2) ; 出生日期:datetime; 党员否:char(2) ; 参加工作:datetime; 部门号:int; 其中职工号为主码。 部门表结构为:

部门号:int; 部门名:char(10); 其中部门号为主码。 职工工资表结构为: 职工号:int; 日期:datetime; 工资:decimal(6,1) ; 其中职工号和日期为主码。

create table worker ( 职工号int primary key, 姓名char(8) , 性别char(2), 出生日期datetime, 党员否char(2), 参加工作datetime, 部门号int ) create table depart ( 部门号int primary key, 部门名char(10)

) create table salary ( 职工号int, 日期datetime, 工资decimal(6,1), Primary key(职工号,日期) ) 3. 显示部门的详细信息。 select * from depart 4.查询3号职工的工资单。 select * from salary where职工号=3 5.显示所有职工的姓名及年龄,并按姓名升序显示。 select 姓名, 2015-year(出生日期) '年龄' from worker order by姓名6. 求出各部门的部门号及党员人数。 select 部门号,count(党员否) '党员人数' from worker where 党员否='是' group by 部门号 7. 在worker表的“姓名”列创建唯一索引nameindex。 create unique index nameindex on worker (姓名) 数据库上机2 1. 查询12月份过生日的名单。 答:select 姓名from worker where month(出生日期)= 12 2. 查询所有姓刘的职工信息。 select * from worker where 姓名like ‘刘%’ 3. 显示所有职工的职工号和2011年2月份的工资数。 select 职工号,工资from salary where year(日期)=2011 and month(日期)=2 4. 查询1号部门所有职工的姓名和工资,并按工资降序排列。

数据库上机作业

数据库上机实验报告 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.360docs.net/doc/624326065.html, FROM Ships , Classes WHERE Ships.class = Classes.class AND Classes.displacement>35000 b)找出参加Guadalcanal战斗的船只的名字、排水量和火炮数量。 SELECT https://www.360docs.net/doc/624326065.html,, C.displacement, C.numGuns FROM Ships S, Outcomes O, Classes C WHERE https://www.360docs.net/doc/624326065.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';

Oracle 数据库上机试验指导2(答案)

实验二代码参考: 1.-- 创建学生表 create table student ( studid char(6) primary key, studname varchar2(16) not null, gender char(4) check(gender in('男','女')), addr varchar2(256) ); -- 创建课程表 create table course ( courseid char(6) primary key, coursename varchar2(32) not null unique, teacher varchar2(16) , score number check(score in (1,3,5)) ); -- 创建选课表 create table courSelc ( recid number(4) primary key, studid char(6), courseid char(6), score number(2) check(score >=0 and score <=100), constraint fk_stud foreign key(studid) references student(studid), constraint fk_cour foreign key(courseid) references course(courseid) ); 2. alter table student modify studName null; 3.1 alter table course modify courseName null; 3.2 alter table course add examdate date; 4.insert into course values('M1001','数学','奥巴马','3',to_date('2012-1- 1','yyyy-mm-dd')); insert into course values('J2002','军事理论','拿破仑','5',to_date('2012-1-1','yyyy-mm-dd'));

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

在订单数据库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元的订单。 先统计订单主表中的订单金额,使用命令:

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

实验一 (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/624326065.html,o=https://www.360docs.net/doc/624326065.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)修改多个元组的值

数据库上机实验

附录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的查询语句表达下列查询: 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/624326065.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.360docs.net/doc/624326065.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上机作业(2)

SQL上机作业(2) 一.针对SQL上机作业(1)第一题定义的三个表(book,card,borrow),用SQL语句实现如下查询:(注:藏书量=库存量+借出数) 1.求藏书种数、总册数、最高价、最低价。 select count(category)as category,sum(total)as total, max(price) as maxpric,min(price)as minpric from book group by book.category; select count(*),sum(total),max(price),min(price) from book; 2.列出藏书在十本以上的书(书名、作者、出版社、年份)。 select title,author,press,year from book where total>10; 3.哪些出版社的总藏书超过100种。 select press ,count(distinct category) from book group by press having count(distinct category)>100; 4.目前已借出多少册书? select sum(total)-sum(stock) from book; 5.年份最久远的书。 select title from book group by title having min(year)<=all(select min(year) from book group by title); 6.“数据库系统原理教程,王珊编,清华大学出版社,1998年出版”还有几本? select title ,stock from book where title='数据库系统原理教程'and press='清华大学出版社' and author='王珊' and year='1998';

数据库技术及应用实践考核上机练习题A(201010)

数据库技术及应用实践考核上机考试练习题A(201010) 给定的图书_读者库中数据库表结构及样本记录表1-表6数据如下:图书表(书号,类别,出版社,作者,书名,定价); 读者表(编号,姓名,单位,性别); 借阅表(书号,读者编号,借阅日期,归还日期). 表1 图书表结构 字段名数据类型长度是否为空约束 书号CHAR 10 否主键 类别CHAR 12 否 出版社CHAR 30 作者CHAR 20 书名CHAR 50 否 定价MONEY 8 表2 读者表结构 字段名数据类型长度是否为空约束 编号CHAR 8 否主键 姓名CHAR 8 否 单位CHAR 30 性别CHAR 2 否“男”或“女” 表3 借阅表结构 字段名数据类型长度是否为空约束 书号CHAR 10 否主键,外键 读者编号CHAR 8 否主键,外键 借阅日期DATETIME 否 归还日期DATETIME 表4 图书表数据 序号书号类别出版社作者书名定价 1 1000000001 计算机机械工业出版社李明计算机引论18.00 2 1000000002 计算机机械工业出版社王小红数据结构22.00 3 1000000003 计算机机械工业出版社李和明C语言编程25.50 4 1000000004 计算机电子工业出版社刘宏亮操作系统49.80 5 100000000 6 计算机机械工业出版社刘宏亮数据结构21.60 6 1000000005 计算机电子工业出版社王小红计算机文化20.00 7 2000000007 数学机械工业出版社吴非高等数学18.00 8 2000000008 数学机械工业出版社丁玉应概率统计22.30 9 2000000009 数学电子工业出版社赵名线性代数15.00 10 3000000010 物理电子工业出版社张共可力学19.80

数据库上机作业题(练习)[1]

《数据库技术及应用》综合作业题 说明:请在E盘根目录下建立一个以自己的班级、姓名命名的文件夹将数据库文件保存在其中,在文件夹中建立一个文本文档或word文档(注:以自己姓名命名),将相关题目的SQL命令粘贴保存,操作完毕后将数据库分离出来。一、基础题 现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成: 商品(商品号,商品名,单价,商品类别,供应商); 顾客(顾客号,姓名,住址); 购买(顾客号,商品号,购买数量); 注:各属性数据类型自己确定,创建数据库,主数据文件初始大小为1MB,增长方式按10%增长,事务日志文件初始大小为1MB,增长方式按1MB增长。试在企业管理器中或用SQL语言完成下列功能: 1.按要求创建数据库。 2.建表,在定义中要求声明。 每个表的主外码; 1)顾客的姓名和商品名不能为空值; 2)单价必须大于0; 3)购买数量必须再0到20之间; 3.建立关系图。 4.往表中插入数据。 商品(M01,佳洁士,8.00,牙膏,宝洁; M02,高露洁,6.50,牙膏,高露洁; M03,洁诺,5.00,牙膏,联合利华; M04,舒肤佳,3.00,香皂,宝洁; M05,夏士莲,5.00,香皂,联合利华; M06,雕牌,2.50,洗衣粉,纳爱斯 M07,中华,3.50,牙膏,联合利华; M08,汰渍,3.00,洗衣粉,宝洁;

M09,碧浪,4.00,洗衣粉,宝洁;) 顾客(C01,Dennis,海淀; C02,John,朝阳; C03,Tom,东城; C04,Jenny,东城; C05,Rick,西城;) 购买(C01,M01,3;C01,M05,2; C01,M08,2;C02,M02,5; C02,M06,4;C03,M01,1; C03,M05,1;C03,M06,3; C03,M08,1;C04,M03,7; C04,M04,3;C05,M06,2; C05,M07,8;) 二、用SQL语句完成下列操作 1)找出宝洁公司供货的商品; select商品名 from商品 where供应商='宝洁' 2)找出价格在5元以下的商品; Select* from商品 where单价<'5' 3)找出来自朝阳的顾客所购买的商品; 4)统计来自东城的顾客数目; 5)找出购买数量超过4的顾客号; 6)求购买了供应商"宝洁"产品的所有顾客; 7)求购买的商品数量有在5到8范围(包括5和8)内的顾客(姓名);8)求购买了雕牌或汰渍洗衣粉的顾客。 9)求购买了汰渍洗衣粉的顾客姓名; 10)求买了两种以上商品的顾客; 11)统计来自东城的顾客的购买量;

数据库上机实验报告

《数据库技术与应用》上机实验报告 姓名:谢优贤 学号:020******* 专业班级:安全工程1003班

通过这次上机实验,我做了学生信息管理系统数据库,通过创建表、查询、窗体、报表和宏对输入数据库中的学生的基本信息进行整理和操作,以便得到我们想要的信息。学生信息管理系统可以实现对学生的基本信息:学号、姓名、联系方式、性别、成绩等的查询,还有对教师的情况进行比较了解从而可以帮助学生更好地选课和学习,省去了纸质档案管理不方便的方面。 通过窗体的创建和美化,使我们在操作数据时有一个简洁明了美观的窗口,简化了用户的操作程序,方便用户的使用。报表的创建可以使用户想要的数据很好地呈现在纸上。使用宏命令还使数据库有了设置密码的功能,很好的保护了数据的使用权限;也可以使用宏命令打开我们希望打开的窗口。 一、主要上机内容 1. 数据库的创建: 我使用自行创建数据库的方式进行创建,数据库文件名为学生信息管理系统。数据库要实现的主要功能:学生基本信息及学习成绩情况的统计,通过窗体进行学生信息的查询、学生信息及成绩的普通查询、打印学生信息报表等。 2. 表的创建: 基本表为学生信息表、学生成绩表、教师信息表、课程信息表等均使用设计器创建表学生信息表的记录: 学生信息表结构: 在学生信息表中设置了学号为主键,为了方便输入又在学号字段中设置了掩码(如下图)

学生年龄一般不会太大或太小,于是为了防止填写信息时出错,添加了有效性规则 性别只有男和女之分,于是为了方便,选择了查询向导 同样在入学日期和电话字段也设置了输入掩码 头像属于图片类型,其数据类型为“OLE对象”,所得荣誉和自我介绍选择了“备注”类

Oracle数据库上机考试

Oracle数据库上机操作 要求:建立一个以你名字(全拼)word 文档,将以下各题的执行结果按序标号截屏到此word文档中。考试结束后请上交此word文档。 1.创建一个用户的配置文件temp_profile,包含的资源及口令限制如下: 1)该用户最多可以建立4个并发会话连接。 2)用户执行语句使用的CPU最长时间为30分钟。 3)空闲时间超过5分钟后,断开与用户的连接。 4)限制用户每次调用SQL语句时,能够读取的数据块数为200。 5)限制用户在登录到Oracle数据库时允许失败的次数为3。 2.创建名称为mytablespace的表空间。为表空间增加一个名称为datafile01的数据文件,大小为100M。然后编辑mytablespace,为其添加一个datafile02的数据文件,大小为50M。 3.创建myname用户,密码为oracle10g,将其默认表空间设置为mytablespace,临时表空间设置为temp。为myname用户指定配置文件temp_profile。 4.授予用户myname授予连接数据库的权限。 5. 以myname用户身份连接数据库,更改用户口令为manager,更改用户口令后再连接数据库。 6.向myname用户授予scott.emp和scott.dept表的SELECT,DELETE, INSERT 和UPDATE权限,并以用户yourname连接到数据库,查询emp和dept表。 7.创建角色manager,对角色manager授予create session、create table 和create view的权限,把角色manager赋予用户myname。修改角色manager,对角色manager增加create index权限。 8. 创建一个名为mydir的DIRECTORY对象,并将该目录对象的READ,WRITE权限授予scott用户。 9. 导出scott模式下的emp表和dept表,转储文件名称为emp_dept.dmp,存储在d:\oradata\backup目录下,日志文件命名为emp_dept.log,作业命名为emp_dept_job,导出操作启动2个进程。 10.删除scott模式下emp和dept表。 11.将第9题导出的转储文件emp_dept.dmp导入到scott模式。导入成功后,再次查看emp和dept表,看与第6题查看的结果是否一致。 12. 对Oracle数据库做全库脱机(冷)备份,备份的数据文件、控制文件和联机日志文件、参数文件到d:\oradata\backup下。

南工大数据库实验+考试——上机实验指导_实验内容和思考参考答案

实验2:SQL Server数据库的管理 二、实验内容及步骤 4.单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL语句CREATE DATABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。 CREATE DATABASE studb ON (NAME=studb_dat, FILENAME='C:\DataBase\studb.mdf') EXEC sp_helpdb 5.在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。 ALTER DATABASE studb MODIFY FILE(NAME=studb_data,SIZE=5MB,MAXSIZE=20MB,FILEGROWTH= 1MB) 6.在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。 ALTER DATABASE studb ADD LOG FILE(NAME=studb_log2,FILENAME=studb_log2.ldf,SIZE=5MB, MAXSIZE=10MB) 8.使用Transact-SQL语句DROP DATABASE删除student_db数据库。 DROP DATABASE student_db 实验3SQL Server数据表的管理 二、实验内容及步骤 5.使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade表。 CREATE TABLE grade( [学号][char](4)NULL, [课程编号][char](4)NULL, [分数][char](5)NULL )ON[PRIMARY] 8.使用Transact-SQL语句INSERT INTO...VALUES向studentsdb数据库的grade表插入数据:学号为0004,课程编号为0001,分数为80。 INSERT grade VALUES('0004','0001','80') 9.使用Transact-SQL语句ALTER TABLE修改curriculum表的“课程编号”列,使之为非空。

上海大学数据库上机作业上机练习5作业

上大学数据库上机作业 《数据库系统与应用》上机习题************************************************************************************************* 第五部分、SQL高级应用 一、做书上第十章的例题 二、利用上次上机的学生_课程数据库 1. 求选修了高等数学的学生学号和姓名。 USE学生课程 SELECT学生.学号,姓名,选课.课程号 FROM学生,选课,课程 WHERE学生.学号=选课.学号AND课程.课程号=选课.课程号AND课程名='高等数学' 2.求C1课程的成绩高于张三的学生学号和成绩。 USE学生课程 SELECT x.学号,x.成绩 FROM选课x,选课y WHERE x.课程号='C1'AND x.成绩>y.成绩AND y.学号='S4'AND y.课程号='C1' ORDER BY x.学号DESC 第二种: USE学生课程 SELECT学号,成绩 FROM选课 WHERE课程号='C1'AND成绩>(SELECT成绩FROM选课,学生WHERE课程号='C1' AND姓名='张三'AND选课.学号=学生.学号) 3.求其他系中比自动化学院某一学生年龄小的学生。 USE学生课程 SELECT学号,姓名,年龄,单位 FROM学生 WHERE年龄<(SELECT MAX(年龄)FROM学生 WHERE单位='自动化学院')AND单位!='自动化学院' ORDER BY学号DESC 4.求其他系中比自动化学院学生年龄都小的学生。 USE学生课程 SELECT学号,姓名,年龄,单位 FROM学生 WHERE年龄<(SELECT MIN(年龄)FROM学生 WHERE单位='自动化学院')AND单位!='自动化学院' ORDER BY学号DESC 5.求选修了C2课程的学生的姓名。 USE学生课程 SELECT姓名 FROM学生,选课 WHERE学生.学号=选课.学号AND课程号='C2' 6.求没有选修C2课程的学生的姓名。 USE学生课程 SELECT DISTINCT姓名 FROM学生,选课 WHERE学生.学号=选课.学号AND姓名not in(SELECT姓名 FROM学生,选课WHERE学生.学号=选课.学号AND选课.课程号='C2')

相关文档
最新文档