数据库实验一参考答案
create index图书表on图书(出版单位desc);
7.以自己的用户登录数据库,建立员工表,其结构同scott用户的员工表emp。
Connect scott/tiger
Grant all privileges on emp to u1;
Connect u1/口令
(3)查询藏书中比高等教育出版社所有图书单价更高的书籍。
select *from图书
where单价>ALL(select单价
from图书where出版单位='高等教育');
实验报告
(4)查询各出版社图书的最高价、最低价和平均价格。
select出版单位,MAX(单价),MIN(单价),AVG(单价)
from图书GROUP BY出版单位;
(5)列出当前至少借阅了2位from读者
where借书证号in (select借书证号
from借阅
group by借书证号
having count(*)>=2);
6.用SQL DDL创建视图、索引
(1)建立各单位当前借阅图书情况的简单统计视图,视图中包括单位名称,
update图书set分类号='TP38'
where书名like '%计算机%';
(d)删除借书证号以Z开头的所有读者信息和借阅信息。
delete from借阅
where借书证号like 'Z%';
delete from读者
where借书证号like 'Z%';
5.用SQL的QL完成以下查询
(1)列出图书馆中所有藏书的书名及出版单位。
create table员工表as select * from scott.emp;
实验报告
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
五、指导教师评语
成绩
批阅人
日期
……
(b)读者表中数据:
insert into读者
values('T201','LIXIN','计算机系','中级');
(c)借阅表中数据:
insert into借阅(借书证号,图书编号,借阅日期)
values('T201','0001',to_date('2002-03-10','yyyy-mm-dd'));
(2)掌握SQL语言,能熟练运用SQL语言进行数据定义和数据操纵。
二、实验环境(实验设备)
硬件:微机
软件:ORACLE 8i或9i
三、实验原理及内容
1.了解并掌握SQL * Plus环境的使用
2.用SQL DDL创建基表,要求定义列完整性、实体完整性、引用完整性
建立简单的图书管理数据库的三个基表(下划线处为主键斜体处为两个外键):
借书人数和借阅人次。
create view统计(单位,人数,人次)
as select单位,count(distinct读者.借书证号),
count(读者.借书证号) from读者,借阅
where读者.借书证号=借阅.借书证号group by单位;
(2)对该视图进行查询。
select * from统计;
CREATE TABLE借阅
(借书证号CHAR(4),
图书编号CHAR(4),
借阅日期DATE NOT NULL,
备注VARCHAR(20),
PRIMARY KEY(借书证号,图书编号),
FOREIGN KEY(借书证号) REFERENCES读者(借书证号),
FOREIGN KEY(图书编号) REFERENCES图书(图书编号));
3.补充定义职称只能取初级、中级和高级三种之一。
ALTER TABLE读者ADD CHECK(职称IN(’初级’,’中级’,’高级’))
4.用SQL DML向基表中增加、修改和删除数据
(1)向三个基表中插入如下数据:
(a)图书表中数据:
SQL语句:
insert into图书
values('0001','TP31','计算机基础','WANG','高等教育', 17.00);
select书名,出版单位
from图书;
(2)查询工厂所有借阅了图书的读者姓名和职称。
select distinct姓名,职称
from读者where借书证号in(select借书证号
from借阅) AND单位='工厂';或
select姓名,职称FROM读者,借阅where读者.借书证号=借阅.借书证号and单位='工厂';
(1)、图书(图书编号、分类号、书名、作者、出版单位、单价)
CREATE TABLE图书
(图书编号CHAR(4),
分类号CHAR(4) NOT NULL,
书名VARCHAR(12),
作者VARCHAR(5),
出版单位VARCHAR(10),
单价DEC(5,2),
primary key(图书编号));
实验报告
(2)读者(借书证号、姓名、单位、职称)
create table读者
(借书证号char(4) not null,
姓名char(5) not null,
单位varchar(10),
职称varchar(6),
primary key(借书证号));
(3)、借阅(借书证号、图书编号、借阅日期、备注)
实验报告
(2)数据的修改和删除
(a)为编号为0002的图书填上作者和出版单位。
update图书
set作者='ZHANG',出版单位='高等教育'
where图书编号='0002';
(b)将所有图书单价上调5%。
update图书
set单价=单价* 1.05;
(c)将书名包含‘计算机’的书分类号改为‘TP38’。
实验报告
(200/200学年第二学期)
课程名称
数 据 库 系 统A
实验名称
SQL语言
实验时间
年
月
日
指导单位
计算机学院软件工程系
指导教师
张少娴
学生姓名
班级学号
学院(系)
计算机学院
专业
实验报告
实验名称
SQL语言
指导教师
张少娴
实验类型
上机
实验学时
3
实验时间
一、实验目的和要求
(1)通过上机实践,熟悉Oracle的SQL * Plus实验环境及使用方法。
数据库实验内容-答案
实验内容:实验一:数据库的操作使用Management Studio和sql语句分别完成以下操作:1.创建一个名为“SM”的数据库,数据文件初始大小为3MB,最大为50MB,数据库自动增长,增长方式按10%;日志文件初始大小为2MB,数据大小不受限制,按1MB增长。
create database smon(name='smdata',filename='e:\smdata.mdf',size=3,maxsize=50,filegrowth=10%)log on(name='smlog',filename='e:\smlog.ldf',size=2,maxsize=unlimited,filegrowth=1)2.修改数据库“SM”,将数据文件名改成“sm_data”,初始大小改成5MBalter database smmodify file( name='smdata',newname='sm_data',size=5)3.分别查看数据库“SM”,该数据库中的文件和文件组。
exec sp_helpfile smexec sp_helpfilegroup sm4.删除数据库“SM”。
drop database sm实验二:创建表1. 在数据库SM中创建学生表student,课程表course,选课表scstudent(sid,sno,clno,sname,ssex,sage,sbir)说明:sid int identity(1,1) 序号sno 为主关系键,为字符类型学号clno 字符类型,班级号sname 字符类型,并不为空ssex 字符类型,check的值的范围为男女sbir 日期类型出生日期sage int;use smcreate table student( sid int identity(1,1),sno char(10) constraint pk_st primary key,clno char(10),sname varchar(20) not null,ssex char(2) constraint ck_ssex check(ssex in('男','女')),sbir datetime,sage int)course(cno,cname,ccredits,ctno,cpno,ctime)说明:cno 字符类型,主关系键cname 字符类型,唯一键ccredits 学分,精确数值型,精确长度为2,小数位为1ctno ,cpno 字符类型ctime 整型create table course(cno char(4) constraint pk_c primary key,cname varchar(20) constaint uk_cname unique,ccredit decimal(2,1),ctno char(2),cpno char(4),ctime tinyint)sc(sno,cno,score)说明:sno+cno为主键,并且sno是student的外部键,cno是course的外部键。
数据库实验答案
select sc.sno,sname,grade from sc,student where sc.sno=student.sno and cno='1' and grade<60
select sno,sname from student where sno in(select sno from sc where cno='1' and grade<60)
8.查询课程名为“C_”开头的课程名和学分。
9.某些学生入学后还没有确定所在的系,查询还没有确定系的学生的姓名。
10.查询成绩大于60分的学生的学号、课程号和成绩,并将查询结果按课程编号升序排列,同一课程的成绩按分数降序排列。
11.查询学校所开设的总的课程数。
12.计算2号课的学生成绩总和以及平均成绩,对应的列名分别为“总成绩”和“平均成绩”。
要求分别用集合查询和多重条件查询完成实验12createdatabasestdb1gousestdb1gocreatetabledepartmentdeptnochar10primarykeydnamevarchar50gocreateuniqueindexdeptnamedepartmentdnamegocreatetablestudentsnochar9primarykeysnamevarchar20nullssexchar2sageintdeptnochar10foreignkeydeptnoreferencesdepartmentdeptnocreatetablecoursecnochar4primarykeycnamevarchar40uniquecpnochar4ccreditsmallintgocreatetablescsnochar9cnochar4gradeintprimarykeysnocnoforeignkeysnoreferencesstudentsnoforeignkeycnoreferencescoursecno3insertdepartmentvalues?d001??cs?insertdepartmentvalues?d002??is?insertdepartmentvalues?d003??ma?insertstudentvalues?200215121??李勇??男?20?d001?insertstudentvalues?200215122??刘晨??女?20?d001?insertstudentvalues?200215123??王敏??女?20?d002?insertstudentvalues?200215125??张立??男?20?d003?insertstudentvalues?200215126??陈天华??男?20?d003?insertstudentvalues?200215128??宋阳??女?20?d002?insertcoursevalues?1??数据库??5?4insertcoursevalues?2??数学?null2insertcoursevalues?3??信息系统??1?4insertcoursevalues?4??操作系统??6?3insertcoursevalues?5??数据结构??7?4insertcoursevalues?6??数据处理
数据库实验报告及答案
实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求:1.列出所有的SQL语句和源代码;2.程序要求有适当的注释;3.对数据完整性约束实施要求给出相应的测试用例。
4.实验报告提交电子档。
实验内容:一:创建表、更新表和实施数据完整性1.运行给定的SQL Script,建立数据库GlobalToyz。
2.了解表的结构,建立所有表的关系图。
3.利用系统定义的存储过程sp_helpdb查看数据库的相关信息,例如所有者、大小、创建日期等。
4.查看所有表中出现的约束(包括Primary key, Foreign key, check constraint, default, unique)5.把价格在$20以上的所有玩具的信息拷贝到称为PremiumToys的新表中。
SELECT*INTO PremiumToysFROM ToysWHERE Toys.mToyRate>20;6.对表Toys实施下面数据完整性规则:(1)玩具的现有数量应在0到200之间;(2)玩具适宜的最低年龄缺省为1。
ALTER TABLE ToysADD CONSTRAINT C1CHECK (siToyQoh BETWEEN 0 AND 200);ALTER TABLE ToysADD CONSTRAINT C2default(1)for siLowerAge;7.给id为‘000001’玩具的价格增加$1。
update Toys set mToyRate=mToyRate+1 where cToyId='000001';8. 列出表PickofMonth中的所有记录,并显示中文列标题。
SELECT cToyId[玩具编号],siMonth[生产月份],iYear[生产年份],iTotalSold [销售总量]FROM PickofMonth;二:查询数据库1.显示属于California和Illinoi州的顾客的名、姓和emailID。
《数据库原理及应用》实验报告带答案
实验课程:数据库原理及应用学号:学生姓名:班级:年月日实验1 创建和维护数据库一、实验目的(1)掌握在Windows 平台下安装与配置MySQL 5.5 的方法。
(2)掌握启动服务并登录MySQL 5.5 数据库的方法和步骤。
(3)了解手工配置MySQL 5.5 的方法。
(4)掌握MySQL 数据库的相关概念。
(5)掌握使用Navicat 工具和SQL 语句创建数据库的方法。
(6)掌握使用Navicat 工具和SQL 语句删除数据库的方法。
二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;(3)1~2人为1小组,实验过程中独立操作、相互学习。
三、实验内容及步骤(1)在Windows 平台下安装与配置MySQL 5.5.36 版。
(2)在服务对话框中,手动启动或者关闭MySQL 服务。
(3)使用Net 命令启动或关闭MySQL 服务。
开始--运行--cmd--输入“net start mysql”回车,启动成功;输入“net--stop--mysql”回车,停止。
(4)分别用Navicat 工具和命令行方式登录MySQL。
①打开Navicat for MySQL,文件--新建连接--确定。
②开始--运行--cmd,输入mysql -h hostname(如果服务器在本机,可以输入localhost或127.0.0.1)user -p 回车后,系统会提示“Enter password”,输入配置的密码就可以登录上了。
(5)创建数据库。
①使用Navicat 创建学生信息管理数据库gradem。
②使用SQL 语句创建数据库MyDB。
①打开Navicat for MySQL,文件--新建连接--常规(设置连接名MySQL,主机名localhost)。
②使用Windows命令行方式登录MySQL,然后输入CREATE DATABASE mydb;回车,显示Query OK, 1 row affected (0.00 sec)创建成功。
山东大学数据库实验答案
数据库实验(一)1、create table test1_teacher(tid char(6) primary key,name varchar(10) not null,sex char(2),age int, dname varchar(10) )create index index_table1 on test1_teacher(name);insert into test1_teacher values('100101','张老师','男',44,'计算机学院');insert into test1_teacher values('100102','李老师','女',45,'软件学院');insert into test1_teacher values('100103','马老师','男',46,'计算机学院');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))create index index_table2 on test1_student(name);insert into test1_student values('200800020101','王欣','女',19,to_date('19940202','yyyymmdd'),'计算机学院','2010');insert into test1_student values('200800020102','李华','女',20,to_date('19950303','yyyymmdd'),'软件学院','2009');insert into test1_student values('200800020103','赵岩','男',18,to_date('19960404','yyyymmdd'),'软件学院','2009');3、create table test1_course( cid char(6) primary key, name varchar(10) not null,fcid char(6),credit numeric(2,1) )create index index_table3 on test1_course(name);insert into test1_course values('300001','数据结构','',2);insert into test1_course values('300002','数据库','300001',2.5);insert into test1_course values('300003','操作系统','300001',4);4、 create table test1_student_course(sid char(12) , cid char(6) , score numeric(5,1), tid char(6), primary key(sid,cid),FOREIGN KEY (sid) REFERENCES test1_student(sid),FOREIGN KEY (cid) REFERENCES test1_course(cid),FOREIGN KEY (tid) REFERENCES test1_teacher(tid) )insert into test1_student_coursevalues('200800020101','300001',91.5,'100101');insert into test1_student_coursevalues('200800020101','300002',92.6,'100102');insert into test1_student_coursevalues('200800020101','300003',93.7,'100103');5、create table test1_teacher_course( tid char(6) , cid char(6) , primary key(tid,cid),FOREIGN KEY (tid) REFERENCES test1_teacher(tid),FOREIGN KEY (cid) REFERENCES test1_course(cid) )insert into test1_teacher_course values('100101','300001');insert into test1_teacher_course values('100102','300002');insert into test1_teacher_course values('100103','300003');数据库实验(二)检索查询1、create table test2_01 as select sid ,namefrom pub.studentwhere sid not in(select sid from pub.student_course)2、create table test2_02 as select distinct student.sid,namefrom pub.student, pub.student_coursewhere student_course.sid = student.sid and student_course.cid in (select cid from pub.student_course where sid='200900130417')3、create table test2_03 as select distinct student.sid,namefrom pub.student, pub.student_coursewhere student_course.sid = student.sid and student_course.cid in (select cid from pub.course where fcid='300002')4、create table test2_04 as select sid,namefrom pub.studentwhere sid in(select sidfrom pub.student_course,pub.coursewhere student_course.cid=course.cid and name ='操作系统')and sid in(select sidfrom pub.student_course,pub.coursewhere student_course.cid=course.cidand name ='数据结构')5.create table test2_05 as select student.sid,name,cast(avg(score) as numeric(5,0)) avg_score,sum(score) sum_scorefrom pub.student,pub.student_coursewhere student.sid = student_course.sid and age ='20'group by student.sid,name使用CAST: CAST ( expression AS data_type )使用CONVERT: CONVERT (data_type[(length)], expression [, style])6、create table test2_06 as select sid,max(score) max_scorefrom pub.student_coursegroup by cid7.create table test2_07 as select sid,namefrom pub.studentwhere name not in(select namefrom pub.studentwhere name like '张%' or name like '李%' or name like '王%')8、create table test2_08 as select substr(name,1,1) second_name,count(*) p_countfrom pub.studentgroup by substr(name,1,1)SUBSTR(string,start,count)取子字符串,从start开始(如果start是负数,从尾部开始),取count个.上述就是PL/SQL函数的解释,从中可以看出,是1开始从左开始取数;如果是负值,那么就从右开始取数。
数据库实验答案实验一Sql01
1、查询所有业务部门的员工姓名、职称、薪水select employeeName,headShip,salaryfrom Employeewhere department='业务科'2、查询名字中含有“有限”的客户姓名和所在地。
select customerName,addressfrom Customerwhere customerName like '%有限%'3、查询出姓“王”并且姓名的最后一个字为“成”的员工select*from Employeewhere employeeName='王%成'4、查询住址中含有上海或者南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示。
select employeeName,department,headShip,address,sex=case sexwhen 'M' then '男'when 'F' then '女'endfrom employeewhere (address like '%上海%'or address like'%南昌%')and sex='F'或WHERE address LIKE '上海%' AND sex='F' OR address LIKE '南昌%' AND sex='F'5、在表sales中挑出销售金额大于等于5000元的订单。
SELECT orderNo ,sum(quantity*price)sumOrderFROM OrderDetailGROUP BY orderNoHA VING sum(quantity*price)>=5000ORDER BY sumOrder DESC6、选取订单金额最高的前10%的订单数据SELECT top 10 percent orderNo ,sum(quantity*price)sumOrder FROM OrderDetailGROUP BY orderNo7、查询出职务为“职员”或职务为“科长”的女员工的信息。
数据库原理实验答案
3)向SC表中插入数据
Insert Into SC(Sno,Cno, Grade) Values(200215121,1,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,2,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,3,88);
Insert Into SC(Sno,Cno, Grade) Values(200215122,2,90);
Insert Into SC(Sno,Cno, Grade) Values(200215122,3,80);
Insert Into SC(Sno,Cno, Grade) Values(200215121,4,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,5,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,6,88);
Insert Into SC(Sno,Cno, Grade) Values(200215123,2,90);
select sno,grade from sc where cno='3' order by grade desc;
8)查询各个课程号与相应的选课人数。
select cno, count(sno) from sc group by cno;
2. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
数据库系统原理实验报告册(带答案)
河南工程学院计算机科学与工程系数据库系统原理实验报告册学期:课程:专业:班级:学号:姓名:指导教师:目录实验一 SQL Server 2000安装、数据库创建及管理 (1)一、实验学时 (1)二、实验目的 (1)三、实验内容 (1)四、实验要求 (13)五、代码清单 (13)六、实验中出现的问题及解决的方法 (15)七、思考讨论题或体会或对改进实验的建议 (16)实验二表和表数据的操作 (17)一、实验学时 (17)二、实验目的 (17)三、实验内容 (17)四、实验要求 (22)五、代码清单 (22)六、实验中出现的问题及解决的方法 (24)七、思考讨论题或体会或对改进实验的建议 (25)实验三索引和视图 (26)一、实验学时 (26)二、实验目的 (26)三、实验内容 (26)四、实验要求 (31)五、代码清单 (31)六、实验中出现的问题及解决的方法 (33)七、思考讨论题或体会或对改进实验的建议 (34)实验四 T-SQL程序设计 (35)一、实验学时 (35)二、实验目的 (35)三、实验内容 (35)四、实验要求 (39)五、代码清单 (39)六、实验中出现的问题及解决的方法 (41)七、思考讨论题或体会或对改进实验的建议 (42)实验五数据库安全性 (43)一、实验学时 (43)二、实验目的 (43)三、实验内容 (43)四、实验要求 (46)五、代码清单 (47)六、实验中出现的问题及解决的方法 (49)七、思考讨论题或体会或对改进实验的建议 (49)实验六数据库完整性 (51)一、实验学时 (51)二、实验目的 (51)三、实验内容 (51)四、实验要求 (54)五、代码清单 (54)六、实验中出现的问题及解决的方法 (56)七、思考讨论题或体会或对改进实验的建议 (57)实验一 SQL Server 2000安装、数据库创建及管理一、实验学时:2学时二、实验目的(1)了解安装SQL Server2000的硬件和软件环境。
数据库实验1-6参考答案
数据库实验1-6参考答案实验⼀SQL Server使⽤初步⼀、实验⽬的1、熟悉SQL Server2000的组成及基本功能。
2、掌握SQL Server2000的登录及注册。
3、掌握SQL Server2000企业管理器的使⽤⽅法。
4、熟悉查询分析器的基本使⽤。
⼆、实验预习1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些?答:DBMS是位于⽤户和操作系统之间的⼀层数据管理软件。
常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。
2、SQL Server 2000(2005)的安装步骤?答:以企业版安装为例,步骤为:将企业版安装光盘插⼊光驱后,出现以下提⽰框。
请选择“安装 SQL Server 2000 组件”出现下⾯对话框后,选择 "安装数据库服务器" 。
选择 "下⼀步",然后选择 "本地计算机" 进⾏安装。
在 "安装选择" 窗⼝,选择 "创建新的SQL Server实例..."。
对于初次安装的⽤户,应选⽤这⼀安装模式,不需要使⽤ "⾼级选项" 进⾏安装。
"⾼级选项"中的内容均可在安装完成后进⾏调整。
在 "⽤户信息" 窗⼝,输⼊⽤户信息,并接受软件许可证协议。
在“安装定义”窗⼝,选择“服务器和客户端⼯具”选项进⾏安装。
在“实例名”窗⼝,选择“默认”的实例名称。
在“安装类型”窗⼝,选择“典型”安装选项,并指定“⽬的⽂件夹”。
在 "服务账号" 窗⼝,请选择 "对每个服务使⽤统⼀账户..." 的选项。
在 "⾝份验证模式" 窗⼝,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。
实验一 数据库设计参考答案
实验一数据库设计一、实验目的使用规范的数据库设计方法,分析并设计“FL Y(飞翔)信息管理系统”的数据库。
二、实验要求1. 掌握数据库设计步骤。
2. 掌握数据库概念模型设计,熟练绘制E-R图。
3. 掌握数据库关系模型的设计。
三、实验内容实验1-1 “FL Y(飞翔)信息管理系统”数据库需求分析飞翔公司是一家大型批发连锁企业,在全国各地分布多家连锁公司,该公司为了加强信息化管理,准备开发一个信息管理系统,以便对其连锁机构、员工、订单、供应商、零售商和商品等信息进行统一管理。
经过需求调研分析,该数据库系统主要包含以下信息:1)公司信息:主要包括公司名称、公司编号、公司地址、所属区域、公司属性等信息。
其中公司属性包括三种类型:总部、直属和加盟。
2)员工信息:主要包括员工的姓名、性别、民族、出生日期、工作日期、婚否、职称、简历、基本工资、所属公司等信息。
每个连锁公司有多名员工,每个员工只能属于一个公司。
3)商品信息:主要包括商品名称、商品编号、商品的销售价格、商品的进货价格、商品的类型和该商品的供应商等信息。
4)订单信息:主要包括:订单编号、购买客户、送货方式、付款方式、订货日期、签订该订单的员工,以及该订单中包含的商品、数量、价格和折扣等信息。
其中,每张订单由一名员工与一名零售商签订,送货方式包括“送货上门”和“自行提货”两种类型,付款方式包括“现金”、“支票”和“银行卡”三种类型。
5)零售商信息:主要包括零售商的编号、名称、联系人、所属城市、地址、邮编、电子邮箱等信息。
零售商是飞翔公司批发销售商品面向的客户。
6)供应商信息:主要包括:供应商的编号、名称、地址等信息。
供应商是飞翔公司商品进货的供货方。
实验1-2 设计“FL Y(飞翔)信息管理系统”数据库概念模型根据前述实验的需求分析结果,设计“FL Y(飞翔)信息管理系统”数据库E-R模型,如图1.1所示。
其中包含的实体集有:“公司机构”、“员工”、“员工工资”、“订单”、“商品”、“商品类型”、“零售商”和“供应商”。
