[训练]数据库实验1答案.docx
数据库实验内容-答案

实验内容:实验一:数据库的操作使用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??数据处理
数据库实验答案(樊辰自制,仅供参考)

create database StudentCoursegouse studentcoursego--在student数据库中,创建三张表create table students(Sno char(7) Primary Key,Sname varchar(8) NOT NULL,Ssex char(2),Sbirthday datetime,Sdept char(10),Smemo char(30))gocreate table courses(Cno char(4),Cname varchar(12),CpreCno char(4),Ccredit tinyint,constraint PK_course primary key(cno))gocreate table sc(Sno char(7) Foreign key references students(sno),Cno char(4) Foreign key references courses(cno),grade tinyint,primary key(sno,cno))go--分别向三张表中添加数据库insert into students values('0602001','钟振华','男','1987-05-01','计算机','优秀毕业生') insert into students values('0602002','吴家硕','女','1987-03-24','计算机','爱好:音乐') insert into students values('0602003','吴春斌','男','1988-07-01','计算机',NULL) insert into students values('0701001','王腾飞','男','1988-05-04','机电','爱好:音乐') insert into students values('0701002','林世伟','女','1987-04-03','机电','爱好:体育') insert into students values('0701003','李乐仪','女','1986-03-03','机电',null)insert into students values('0703001','李奇','男','1988-09-17','工商管理',null)goinsert courses values('c1','数据结构',null,4)insert courses values('c2','数据库原理','c1',4)insert courses values('c3','大型数据库','c2',3)insert courses values('c4','高尔夫',null,1)goinsert sc values('0602001','c1',61)insert sc values('0602001','c2',72)insert sc values('0602001','c3',88)insert sc values('0602002','c1',null)insert sc values('0602002','c2',61)insert sc values('0701001','c1',50)insert sc values('0701001','c2',null)insert sc values('0701002','c3',78)insert sc values('0701003','c1',52)insert sc values('0701003','c3',87)go--查询表中数据select * from studentsgo--删除表中数据delete scgo--删除表drop table studentsgo--3①查询计算机系全体学生的信息select *from Students--3②查询姓“李”的学生的学号和姓名。
数据库实验及其答案

《数据库系统概论》实验报告书专业班级学号姓名指导教师安徽工业大学计算机学院实验一:数据定义/数据操纵语言[ 实验日期 ] 2011 年 4 月 10 日[ 实验目的 ]熟悉SQL SERVER上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。
[ 实验内容 ]1.先建立数据库:STUDENT用两种方式建立:在查询分析器中以DDL语言方式建立.步骤为:先在指定的地方建立放置数据库文件的文件夹(如学生数据库),然后将建立的数据库文件放到指定的文件夹中.2.SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。
create table Student(SNO char(5) primary key,SNAME char(8) NULL,SDEPT char(2),SCLASS char(2),SAGE smallint)create table Course(CNO char(3) primary key,CNAME char(16),CTIME smallint)create table Teach(TNAME CHAR(8),TSEX CHAR(2),CNO CHAR(3),TDATE smalldatetime,TDEPT CHAR(2)) create table Score (sno char(5),cno char(3),Score float);例1-2: (修改数据库表) 在Student表中增加SSEX(C,2) 字段。
alter table student add SSEX char(2)例1-3: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。
数据库实验报告及答案

实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求: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)创建成功。
数据库实验及答案

数据库实验及答案实验二SQL语言的基本操作实验目的和要求:掌握利用SQL语句完成各种查询操作的能力。
重点掌握用SELECT 语句进行各种查询;掌握INSERT语句的用法。
实验内容:用SQL语句完成一下的要求:1.查询信息系(IS)的所有学生信息select * from student where sdept=’is’2.查询选修了“数学”课的所有学生名单Select s.sno,snameFrom student s,course c,scWhere s.sno=sc.sno and /doc/6b13656175.html,o=/doc /6b13656175.html,o and cname=’数学’3.查询至少选修了一门其直接先行课为5号课程的学生的姓名。
Select snameFrom student s, sc, course cWhere s.sno=sc.sno and /doc/6b13656175.html,o=/doc /6b13656175.html,o and pcno=’5’4.查询全体学生的姓名和出生年份。
select sname,year(now())-sage as '出生年份' from student5.查询所有姓王的学生。
select *from student where sname like '王%'6.查询选修了3号课程的学生姓名及成绩,并按成绩降序排序。
Select sname,gradeFrom student s, scWhere s.sno=sc.sno and /doc/6b13656175.html,o=’3’Order by grade desc7.查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。
Select *From studentOrder by sdept asc,age desc8.计算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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库上机实验答案下面的示例创建名为Sales的数据库。
因为没有使用关键字PRIMARY,第一个文件(Sales_dat)成为主文件。
因为Sales.dat文件的SIZE参数没有指定MB或KB,因此默认为MB,以兆字节为单位进行分配。
Sales_log文件以兆字节为单位进行分配,因为SIZE参数中显式声明了MB后缀。
USE masterGOCREATE DATABASE SalesON(NAME = Sales_dat,FILENAME 二'c:\program fi les\microsoft sqIserver\mssqI\data\saIedat. mdf',SIZE = 10,MAXSI ZE 二50,FILEGROWTH = 5 )LOG ON(NAME 二'Sales_log',FILENAME 二* c:\program fi les\microsoft sqIserver\mssqI\data\saIe丨og. Idf',SIZE = 5MB,MAXSI ZE 二25MB,FILEGROWTH 二5MB )GOB.指定多个数据文件和事务日志文件创建数据库下面的示例使用三个100 MB的数据文件和两个100 MB的事务日志文件创建了名为Archive的数据库。
主文件是列表中的第一个文件,并使用PR I MARY关键字显式指定。
事务日志文件在LOG ON关键字后指定"注意FILENAME选项中所用的文件扩展名:主要数据文件使用.nidf,次要数据文件使用.ndf,事务日志文件使用.IdfoUSE masterGOCREATE DATABASE ArchiveONPR I MARY ( NAME 二Archl,FILENAME 二'c:\program fi les\microsoft sqIserver\mssqI\data\archdat1. mdf',SIZE 二WOMB,MAXSI ZE 二200,FILEGROWTH = 20),(NAME 二Arch2,FILENAME 二1 c:\program fi les\microsoft sqIserver\mssqI\data'archdat2. ndf',SIZE = 100MB,MAXSI ZE = 200,FILEGROWTH 二20),(NAME 二Arch3,FILENAME 二'c:\program fi les\microsoft sqI server\mssqI\data\archdat3.ndf',SIZE 二WOMB,MAXSIZE 二200,FILEGROWTH 二20)LOG ON(NAME 二Archlogl,FILENAME 二’c:\program fi les\microsoft sqI server\mssqI\data\archIog1. Idf', SIZE 二100MB,MAXSI ZE 二200,FILEGROWTH 二20),(NAME 二Archlog2,FILENAME 二'c:\program fi les\microsoft sqI server\mssqI\data\archIog2.Idf',SIZE 二100MB,MAXSI ZE 二200,FILEGROWTH 二20)GO c.创建简单的数据库本例创建名为Products的数据库,并指定单个文件。
指定的文件成为主文件, 并会自动创建一个1MB的事务日志文件。
因为主文件的SIZE参数中没有指定MB或KB,所以主文件将以兆字节为单位进行分配。
因为没有为事务日志文件指定<filespec>,所以事务日志文件没有MAXSIZE,可以增长到填满所有可用的磁盘空间为止。
USE masterGOCREATE DATABASE ProductsON(NAME 二prods_dat,FILENAME 二1 c:\program fi les\microsoft sqIserver\mssqI\data\prods. mdf',SIZE 二4,MAXSI ZE 二10,FILEGROWTH 二 1 )GOD.不指定文件创建数据库下面的示例创建名为mytest的数据库,并创建相应的主文件和事务日志文件。
因为该语句没有<filespec>项,所以主数据库文件的大小为model数据库主文件的大小。
事务日志文件的大小为model数据库事务日志文件的大小。
因为没有指定MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。
CREATE DATABASE mytestE. 不指定SIZE创建数据库下面的示例创建名为products2的数据库。
文件prods2_dat将成为主文件, 大小等于model数据库中主文件的大小。
事务日志文件会自动创建,其大小为主文件大小的25%或512 KB中的较大值。
因为没有指定MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。
USE masterGOCREATE DATABASE Products2ON(NAME 二prods2_dat,FILENAME 二'c:\program fi les\microsoft sqIserver\mssqI\data\prods2. mdf')GOF. 使用文件组创建数据库下面的示例使用三个文件组创建名为sales的数据库:•主文件组包含文件Spri1_dat和Spri2_dat o指定这些文件的FI LEGROWTH 增量为15%。
•名为SalesGroupI的文件组包含文件SGrp1Fi1和SGrp1Fi2o•名为SalesGroup2的文件组包含文件SGrp2Fi1和SGrp2Fi2。
CREATE DATABASE SalesON PR I MARY(NAME 二SPri1_dat,FILENAME 二’c:\program fi Ies\microsoft sqI server\mssqI\data\SPr i1dat. mdf',SIZE 二10,MAXSI ZE = 50,FILEGROWTH 二15% ),(NAME 二SPri2_dat,FILENAME 二J c:\program fi les\microsoft sqI server\mssqI\data\SPr i 2dt. ndf',SIZE 二10,MAXS I ZE 二50,FILEGROWTH =15%),Fl LEGROUP SalesGroupI(NAME 二SGrp1Fi1_dat,FILENAME 二’c:\program fi les\microsoft sqI server\mssqI\data\SG1Fi1dt. ndf',SIZE 二10,MAXS I ZE = 50,FILEGROWTH = 5 ),(NAME 二SGrp1Fi2_dat,FILENAME 二'c:\program fi les\microsoft sqI server\mssqI\data\SG1Fi2dt. ndf',SIZE 二10,MAXS I ZE = 50,FILEGROWTH 二 5 ),FI LEGROUP SalesGroup2(NAME = SGrp2Fi1_dat,FILENAME 二J c:\program fi les\microsoft sqI server\mssqI\data\SG2Fi1dt. ndf1 ,SIZE 二10,MAXS I ZE 二50,FILEGROWTH 二 5 ),(NAME 二SGrp2Fi2_dat,FILENAME 二'c:\program fi les\microsoft sqI server\mssqI\data\SG2F i 2dt. ndf1 ,SIZE 二10,MAXSI ZE 二50,FILEGROWTH 二 5 )LOG ON(NAME 二'Sales_log',FILENAME 二’c:\program fi les\microsoft sqI server\mssqI\data\salelog. Idf',SIZE 二5MB,MAXSI ZE 二25MB,FILEGROWTH 二5MB )GOG. 附加数据库示例B创建一个包含下列物理文件的名为Archive的数据库:c:\program fi les\microsoft sqI server\mssqI\data'archda• mdfc:\program f i les\microsoft sq I server\mssqI\data'archdat2. ndfc:\program fi les\microsoft sq I server\mssqI\data'archdat3・ ndfc:\program f i Ies\microsoft sq I server\mssqI\data\archlog1. Idfc:\program f i les\microsoft sq I server\mssqI\data\archlog2・ Idf可以使用sp_detach_db存储过程分离该数据库,然后使用带有FOR ATTACH子句的CREATE DATABASE重新附加。
sp_detach_db Arch i veGOCREATE DATABASE ArchiveON PR I MARY (FILENAME 二J c:\program fi les\microsoft sqIserver\mssqI\data'archda. mdf')FOR ATTACHGOH. 使用原始分区下面的示例使用原始分区创建名为Employees的数据库。
执行语句时,原始分区必须存在,并且每个原始分区只能创建一个文件。
USE masterGOCREATE DATABASE EmployeesON(NAME 二Empl_dat,FILENAME 二’f:',SIZE = 10,MAXSIZE = 50,FILEGROWTH 二 5 )LOG ON(NAME 二'Sales_log', FILENAME 二'g:', SIZE = 5MB, MAXSIZE 二25MB,FILEGROWTH 二5MB ) GOi.使用已装入的驱动器下面的示例使用指向原始分区的已装入驱动器创建名为Employees的数据库。