数据库实验一参考答案
- 格式:doc
- 大小:180.50 KB
- 文档页数:6
实验内容:实验一:数据库的操作使用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的外部键。
实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求: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开始从左开始取数;如果是负值,那么就从右开始取数。
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、查询出职务为“职员”或职务为“科长”的女员工的信息。
河南工程学院计算机科学与工程系数据库系统原理实验报告册学期:课程:专业:班级:学号:姓名:指导教师:目录实验一 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参考答案实验⼀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所示。
其中包含的实体集有:“公司机构”、“员工”、“员工工资”、“订单”、“商品”、“商品类型”、“零售商”和“供应商”。