数据库-实验二
数据库实验2
实验二SQL Server 2005数据库的数据导入/导出实验时间:2课时实验性质:验证实验主要内容及方法:数据库的数据导入/导出实验要求:(1)数据从一个数据源转换到另一个数据目的地;(2)完成实验报告。
实验目的:(1)掌握SQL Server数据库中的附加/分离功能;(2)掌握SQL Server数据库中的备份/还原功能;(3)掌握SQL Server数据库通过文本形式导入/导出数据的方法;实验设备:装有SQL SERVER2005的电脑导入和导出向导提供了把数据从一个数据源转换到另一个数据目的地的简单方法,该工具可以在异构数据环境中拷贝数据、拷贝整个表或者查询结果,并且可以交互式地定义数据转换方式。
一、操作演示1、SQL 2005 数据库中的分离与附加1.1 附加可以附加复制的或分离的SQL Server 数据库,如下图所示。
图2- 1 使用数据库中的“附加”功能图2- 2 点击“添加”并定位数据库1.2 复制可以对SQL Server 数据库执行“脱机”操作,如图2- 3所示在“脱机”状态下,可以拷贝数据库主文件“*.mdb”和日志文件“*.ldb”到任一目录下。
图2- 3 使数据库处于“脱机状态”2、SQL 2005 数据库中的备份与还原2.1 备份选中需要备份的数据库,然后点击右键选在【任务】 【备份】如图2- 4:图2- 4 选择备份功能点击【备份】后,数据库弹出如图2- 5所示界面:图2- 5 选择要备份的数据库及备份类型按照上述图片步骤点击【添加】按钮,如图2- 6:图2- 6 选择备份目标文件添加完成后点击【确定】按钮,完成数据备份,数据库如图2- 7提示后则备份成功图2- 7 备份成功图2- 8 选择还原功能2.2 还原说明数据还原时与数据备份操作步骤大体相似选择需要还原的数据库点击鼠标右键【任务】→【还原】→【数据库】,如错误!未找到引用源。
;点击【数据库】后,弹出对话框,如图2- 9:图2- 9 选择还原数据库中的参数文件添加完成后,请选择【选项】,如图2- 10:点击【确定】按钮后,完成还原数据库操作,还原成功后数据库如图2- 11提示:图2- 11 还原成功3、以文本方式导入/导出数据3.1 导入文本文件(1)启动SQL Server管理器→选定服务器和数据库→右击该数据库→快捷菜单中选择“任务→导入数据”选项。
实验二 数据库的基本操作
实验项目名称:数据库的基本操作
成绩:
信息对数据库进行修改、查看、删除、备份、还原等操作。
1.实验目的
掌握数据库的基础知识,了解数据库的物理组织与逻辑组成情况,学习创建、修改、查看、缩小、更名、删除、备份、还原等数据库的基本操作方法。
2、“数据文件”名为KCGL_Date.mdf,初始大小为10MB,以后按5%自动增长,大小不限;
3、“事务日志”名为KCGL_log.ldf,初始大小为5MB,以后按5%自动增长,最大不超过200MB;
4、使用Management Studio创建完整备份;
5、使用Management Studio还原完整备份。
2.实验要求
创建一个数据库,并进行备份、还原操作
3.实验预备知识
数据库可以通过在Management Studio中以交互方式或利用CREATE DATABASE语句类似创建。SQL Server的数据库有3种类型的文件来组织与存储数据:主文件、次要文件、事务日志文件。
实验内容
1、使用Management Studio中以交互方式创建数据库KCGL;
1.实验结果
完成数据库KCGL的创建、完整备份和完整还原。
2.疑难与需解决的问题
对CREATE DATABASE命令的掌握比较困难
3.实验体会
虽然对于数据库的基本操作有所掌握,但是觉得数据库依旧很复杂,需要深入学习。
教师评语及成绩
《数据库实验》实验二 数据操作实验
院系:计算机学院实验课程:数据库实验实验项目:数据操作实验指导老师:XXX开课时间:XXXX ~ XXXX年度第 2学期专业:XXXX班级:XXXX级本X班学生:XXX学号:XXXXXXXX实验二数据操作实验一、实验任务及目的1. 实验任务:上机完成实验内容,主要是编写、运行和分析SQL,请预先自行判断SQL 的运行结果(例如:查询结果包含哪些数据;更新后关系数据如何变化),然后与实际的运行结果比较,以此发现和修正SQL编写中的错误。
2. 实验目的:能够熟练使用MS SQL Server的Query Analyzer工具,联机运行SQL并观察分析SQL的执行结果。
掌握SQL的数据定义、数据查询和数据修改功能,能独立用SQL表述问题,解决较复杂的应用需求。
二、实验的主要硬件软件环境MS SQL Server、计算机磁盘三、实验主要数据结构线性表四、实验的主要算法1.至少向北京或天津的工程提供了零件的供应商名,供应的零件名、工程名和供应数量。
SELECT PNAME,JNAME,SNAME,QTYFROM S,P,J,SPJWHERE SPJ.SNO=S.SNOAND SPJ.JNO=J.JNOAND SPJ.PNO=P.PNOAND (J.CITY=’上海’ OR J.CITY=’天津’)2.供应红色零件给工程J1的供应商名SELECT SNAMEFROM S,P,SPJWHERE SPJ.JNO=’J1’AND SPJ.SNO=S.SNOAND SPJ.PNO=P.PNOAND COLOR=’红’3. 没有使用天津产的零件的工程号SELECT JNOFROM JWHERE JNO NOT IN(SELECT JNOFROM SPJ,SWHERE SPJ.SNO=S.SNOAND CITY=’天津’)4.没有向位于相同城市的工程供应零件的供应商名SELECT SNAMEFROM SWHERE SNAME NOT IN( SELECT SNAMEFROM S,J,SPJWHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNOAND S.CITY=J.CITY)5. 和工程J3位于同一城市且使用过至少一种相同零件的其它工程名SELECT DISTINCT(JNAME)FROM J,SPJWHERE SPJ.JNO=J.JNOAND CITY IN(SELECT CITYFROM JWHERE J.JNO=’J3’)AND JNAME NOT IN(SELECT JNAMEFROM JWHERE J.JNO=’J3’)6. 每种颜色零件的总重量SELECT COLOR,SUM(WEIGHT)FROM PGROUP BY (COLOR)7.红色零件的平均重量SELECT AVG(WEIGHT)FROM PWHERE COLOR=’红’8.供应商最集中的城市(意即,哪个城市的供应商最多?)SELECT S.CITYFROM SGROUP BY (CITY)HAVING COUNT(CITY)>=ALL(SELECT COUNT(CITY)FROM SGROUP BY (CITY))9.对上海和天津,统计该城市的供应商一共供应了多少数量的零件。
数据库实验二
实验二数据定义一、实验目的1、掌握使用SQL语句创建和删除数据库;2、掌握使用SQL语句创建和删除数据表,创建各种完整性约束,修改表的结构;3、掌握索引的创建和删除方法。
二、实验过程(一)数据库的建立使用CREATE DA TABASE语句创建名为“gongcheng”的数据库。
create database gongcheng(二)数据表的操作1.建立数据表在创建的“gongcheng”数据库中使用SQL语句建立4个关系(可参考课本P74习题5),如下:供应商表S (Sno,Sname,Status,Ctiy)零件表P(Pno,Pname,Color,Weight)工程项目表J(Jno,Jname,City)供应情况表SPJ(Sno,Pno,Jno,QTY)要求:(1)创建每个关系的主键,有外键的创建外键。
(2)S表中的Sname属性列的取值唯一(3)P表中weight属性列的取值范围在1-50之间(4)J表中的Jname取值不能为空并且是唯一的(5)SPJ表中QTY属性列的数据类型必须为int建立供应商表Screate table S(Sno varchar(8)primary key,Sname varchar(20)unique,Status int,City varchar(20))建立零件表Pcreate table P(Pno varchar(8)primary key,Pname varchar(20),Color varchar(4),Weight int check(Weight>=1 and Weight<=50))建立工程项目表Jcreate table J(Jno varchar(8)primary key,Jname varchar(20)unique not null,City varchar(20))建立供应情况表SPJcreate table SPJ(Sno varchar(8),Pno varchar(8),Jno varchar(8),QTY int,primary key(Sno,Pno,Jno),foreign key(Sno)references S(Sno),foreign key(Pno)references P(Pno),foreign key(Jno)references J(Jno))2.修改表的结构用SQL语句完成以下操作:(1)给S表增加Sphone和Semail两个属性列,分别用来存放供应商的联系电话和电子信箱。
数据库实验二 简单查询
实验二简单无条件查询
一、实验目的
通过本次实验使学生掌握数据库中表数据的基本查询操作。
二、实验内容
补充:数据库的备份和还原操作
1、查询指定列
2、查询所有列
3、查询计算列
4、函数的使用
三、实验环境
1、Windows XP
2、SQL Server 2000
四、实验步骤
1、还原一个数据库,文件名为“school”
2、打开“STUDENT”数据库
3、输入如下数据:
S表
SC 表
T表
4、根据下列题目书写查询语句,调试,运行,得到正确执行结果。
1)查询所有学生的学号和姓名
2)检索出所有学生的信息
3)从选课关系中检索出学生所选的课程号
4)检索每个学生的出生年份
5)统计学生的人数
6)统计选修了课程的学生人数
7)计算出学号为0001的学生的总分、平均分、最高分和最低分。
答案:
1)Select s#,sname from s;
2)Select * from s;
3)Select distinct c# from sc;
4)Select s#,sname,year(getdate())-age as birth_year from s; 5)Select count(*) as 人数 from s;
6)Select count(distinct s#) as 选课人数 from sc;
7)Select sum(score), avg(score), max(score), min(score) from sc where s#=‘0001’;。
数据库实验二
实验(二): 熟练掌握SQL语言1.求选修了课程的学生的学号,要求:(1) 不使用distinct语句,消除重复元组,写出其SQL语句select SC.Sno from SC;(2)使用distinct语句,消除重复元组,写出其SQL语句selectdistinct(SC.Sno)from SC;(3)如果该查询写成:select Student.Sno from Student, SC where Student.Sno=SC.Sno 请问该查询结果和上面哪个结果是相同的?select Student.Sno from Student,SCwhere Student.Sno=SC.Sno;查询结果和第一个结果相同。
2.求开设的课程号、课程名、学时和学分,要求对查询结果的列重新命名。
select Cno '课程号',Cname '课程名',Ctime '学时',Ccredit '学分'from Course;3.求计算机系和数学系的学生学号、姓名和年龄。
select Sno,Sname,Sagefrom Studentwhere Sdept='计算机系'or Sdept='数学系';4.求不是数学系、计算机系的学生的情况,要求select后写*代替列出所有的列名。
select*from Studentwhere Sdept!='计算机系'and Sdept!='数学系';5.求全体学生的信息,要求按年龄升序排列。
select*from Studentorderby Sage;6.求计算机系年龄在18~20岁之间的学生姓名和年龄。
select Sname,Sagefrom Studentwhere Sdept='计算机系'and Sage>=18 and Sage<=20;7.求姓名是以”李”开头的计算机系学生。
最新数据库实验二实验报告
最新数据库实验二实验报告实验目的:1. 熟悉数据库管理系统的基本操作。
2. 掌握数据库的创建、查询、更新和删除等基本操作。
3. 学习并实践SQL语言在数据库管理中的应用。
实验环境:- 操作系统:Windows 10- 数据库管理系统:MySQL 8.0- 开发工具:MySQL Workbench实验内容:1. 创建数据库- 使用MySQL Workbench连接到MySQL服务器。
- 执行CREATE DATABASE命令创建名为“StudentDB”的数据库。
2. 设计数据表- 在“StudentDB”数据库中创建学生表(Students)和课程表(Courses)。
- 学生表包含字段:学号(ID)、姓名(Name)、年龄(Age)、专业(Major)。
- 课程表包含字段:课程号(CourseID)、课程名(CourseName)、学分(Credits)。
3. 插入数据- 向学生表和课程表中插入一定数量的示例数据。
- 使用INSERT INTO命令并指定具体的值进行数据插入。
4. 查询操作- 实现对学生表和课程表的基本查询,如查询所有学生信息、查询特定专业学生信息等。
- 使用SELECT语句进行查询,并尝试使用WHERE子句进行条件筛选。
5. 更新和删除操作- 修改学生表中的部分数据,如更新学生的选课信息。
- 使用UPDATE命令进行数据更新。
- 删除课程表中的某些课程记录。
- 使用DELETE FROM命令进行数据删除。
6. 数据库的完整性约束- 在创建数据表时设置主键、外键等约束。
- 尝试插入违反约束的数据,并观察数据库的响应。
实验结果:- 成功创建了“StudentDB”数据库以及相应的学生表和课程表。
- 插入数据操作顺利,能够正确输入数据至指定数据表。
- 查询操作无误,能够根据不同条件检索所需数据。
- 更新和删除操作执行正确,数据表中的记录得到相应修改。
- 完整性约束有效,违反约束的操作被数据库拒绝执行。
数据库实验二实验报告
_数据库实验二课程实验报告实验名称:姓名班级学号实验台编号同组学生实验课表现出勤、表现得分25% 实验报告得分50%实验总分操作结果得分25%实验目的:1.掌握SELECT语句的基本语法2.掌握SELECT语句中的SELECT子句的作用及使用方法3.掌握SELECT语句中的WHERE子句的作用及使用方法4.掌握SELECT语句中的ORDER BY子句的作用及使用方法5.掌握集合函数的作用及使用方法6.掌握SELECT语句中的GROUP BY子句的作用及使用方法7.熟悉内连接、外连接、自连接和非限制连接的概念8.能够熟练使用连接查询从多个表中查询数据9.能够熟练地使用子查询得到想要的数据实验内容:一、简单查询1.查询XS表中各个同学的所有信息。
select* from XS;2.查询XS表中各个同学的姓名、专业名和总学分。
select姓名,专业,总学分from XS;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name和mark。
select学号num,姓名name,总学分mark from XS;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
select distinct专业from XS;5.查询XS表中各个同学的姓名、专业名和总学分,只返回结果集的前5行。
select top 5 姓名,专业,总学分from XS;6.查询XS表中每个学生的学号、姓名和年龄信息。
select datediff(yyyy,出生日期,'2010')年龄from XS;7.查询XS表中专业为“计算机”的同学的情况。
select*from XS where专业='计算机';8.查询XS表中1979年出生的学生姓名和专业情况。
SELECT姓名,专业from XS where year(出生日期)='1979';9.查询XS表中专业名为“计算机”或“电子”或“数学”的学生的情况。
数据库实验二
数据库实验⼆使⽤商⽤数据库 SQL Server 或 MySQL 实现教务系统的数据库设计实验要求:1. 学习使⽤商⽤数据库SQL Server 或MySQL2. 基于实验⼀的概念模型和逻辑结构,实现数据库分析设计3. 理解和掌握关系数据库存取技术,关系数据操作,完整性约束机制实验内容:1. 创建教务系统各数据库表,包括:Student, Course, SC等。
设置主键和外键,以及⽤户定义的完整性约束条件。
2. 输⼊数据,体验实体完整性,参照完整性,以及⽤户定义的完整性约束。
3. 简单的数据浏览,数据增删改。
实验过程:1. 安装 SQL Server 20162. 安装Microsoft SQL Server Management Studio (SSMS)3. 创建数据库和表选择数据库,右键新建查询,输⼊下⾯语句:CREATE TABLE Department --系表(Dno CHAR(20)PRIMARY KEY,Dname CHAR(20)UNIQUE,Dean CHAR(10),Classnum INT,Crnum INT,Adderss CHAR(20));CREATE TABLE Classroom --教研室表(Crno CHAR(20)PRIMARY KEY,Crname CHAR(10)UNIQUE,Dno CHAR(20),Adderss CHAR(20),FOREIGN KEY (Dno)REFERENCES Department(Dno) );CREATE TABLE Class --班级表(Classno CHAR(20)PRIMARY KEY,Classname CHAR(10)UNIQUE,Dno CHAR(20),Stunum INT,FOREIGN KEY (Dno)REFERENCES Department(Dno) );CREATE TABLE Teacher --教员表(Tno CHAR(10)PRIMARY KEY,Tname CHAR(10)UNIQUE,Title CHAR(10),TSex CHAR(4),Crno CHAR(20),FOREIGN KEY (Crno)REFERENCES Classroom(Crno) );CREATE TABLE Student --学⽣表(Sno CHAR(10)PRIMARY KEY,Sname CHAR(10)UNIQUE,Ssex CHAR(4),Classno CHAR(20),Tno CHAR(10),FOREIGN KEY (Classno)REFERENCES Class(Classno), FOREIGN KEY (Tno)REFERENCES Teacher(Tno));CREATE TABLE Course --课程表(Cno CHAR(10)PRIMARY KEY,Cname CHAR(20)UNIQUE,Credit INT,Chour INT);CREATE TABLE SC --选修表��(Sno CHAR(10),Cno CHAR(10),Mark INT,PRIMARY KEY(Sno,Cno),FOREIGN KEY (Sno)REFERENCES Student(Sno), FOREIGN KEY (Cno)REFERENCES Course(Cno) );4. 直接使⽤SSMS编辑各表数据选中某⼀表,右键选择编辑前200⾏系表:班级表:教研室表:学⽣表:选修表:课程表:5. 导出数据库数据字典选择数据库,右键新建查询,语句如下:SELECT(case when a.colorder=1 then else '' end)表名,a. colorder 字段序号, 字段名,(case when COLUMNPROPERTY( a.id,,'IsIdentity')=1 then '√'else '' end) 标识, (case when (SELECT count(*)FROM sysobjectsWHERE (name in(SELECT nameFROM sysindexesWHERE (id = a.id) AND (indid in(SELECT indidFROM sysindexkeysWHERE (id = a.id) AND (colid in(SELECT colidFROM syscolumnsWHERE (id = a.id) AND (name = ))))))) AND(xtype = 'PK'))>0 then '√' else '' end) 主键, 类型,a.length 占⽤字节数,COLUMNPROPERTY(a.id,,'PRECISION') as 长度,isnull(COLUMNPROPERTY(a.id,,'Scale'),0) as ⼩数位数,(case when a.isnullable=1 then '√'else '' end) 允许空,isnull(e.text,'') 默认值,isnull(g.[value],'') AS 字段说明FROM syscolumns a left join systypes bon a.xtype=b.xusertypeinner join sysobjects don a.id=d.id and d.xtype='U' and <>'dtproperties' left join syscomments eon a.cdefault=e.idleft join sys.extended_properties gon a.id=g.major_id AND a.colid = g.major_idorder by a.id,a.colorder得到结果:数据关系图如图所⽰:6. SQL语句编辑数据:添加:INSERT INTO Department values ('D4','张建','海技系','14','12','松岭路')新增了⼀条记录:删除:DELETE FROM SC WHERE Sno ='S1'此处记录(‘S1’,’C1’,’79’)被删除修改:UPDATE Student set Ssex ='男'WHERE Sno ='S1'Sno为S1的记录性别修改为了‘男’⼼得总结:刚开始在使⽤SSMS编辑数据的时候,总忘记各表中的关系,学⽣表还没定义就编辑选修表,报了不少次错;由此看来,整体设计很重要,像编程之前的流程图⼀样,在建⽴各表之前也应该事先理清楚这些表之间的关系,这样数据库的思路更清晰。
数据库实验报告2
数据库实验报告2数据库实验报告2引言数据库是现代信息系统中不可或缺的组成部分,它可以帮助我们存储、管理和检索大量的数据。
在数据库实验2中,我们将探索数据库的一些高级功能,包括索引、视图和事务处理。
通过这些实验,我们将深入了解数据库的内部工作原理和优化方法。
一、索引的作用和实验结果索引是数据库中用于加速数据检索的重要工具。
在实验中,我们创建了一个包含大量数据的表,并为其中的某一列创建了索引。
通过对比查询速度,我们发现使用索引可以显著提高查询效率。
索引的作用类似于字典的目录,它可以帮助数据库快速定位到需要查询的数据,而不需要遍历整个表。
二、视图的定义和应用视图是数据库中的虚拟表,它是由一个或多个基本表的数据组成的。
在实验中,我们创建了一个视图,用于展示特定条件下的数据。
通过视图,我们可以方便地查看和处理数据,而不需要直接操作底层的表。
视图的定义和使用可以大大简化复杂的查询操作,提高数据的可读性和可维护性。
三、事务处理的原理和实现事务处理是数据库中保证数据一致性和完整性的重要机制。
在实验中,我们模拟了一个银行系统的转账操作,并使用事务处理来确保转账的正确性。
事务处理的原理是将一系列操作作为一个整体进行提交或回滚,以保证数据的一致性。
通过实验,我们了解了事务处理的基本概念和实现方法,以及如何处理并发操作和故障恢复。
四、数据库优化的思路和方法数据库优化是提高数据库性能的关键环节。
在实验中,我们通过调整表结构、创建索引和优化查询语句等方式来提高数据库的执行效率。
通过实验结果的对比,我们发现合理的优化方法可以显著提高数据库的响应速度和并发处理能力。
同时,我们也了解到数据库优化需要综合考虑多个因素,包括数据量、查询频率和硬件资源等。
结论通过数据库实验2,我们深入了解了数据库的高级功能和优化方法。
索引、视图和事务处理是数据库中非常重要的组成部分,它们可以帮助我们提高数据的检索效率、操作便捷性和数据一致性。
同时,数据库优化也是提高数据库性能的关键环节,我们需要综合考虑多个因素来选择合适的优化方法。
数据库实验二
实验二:简单查询和连接查询一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。
二、预习要求:实验前复习讲授过的有关简单查询与多表查询的知识,编写相应的SQL语句。
三、实验内容:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。
③查询工程名称中含有“厂”字的工程明细。
(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积④左连接:求j表和spj表的左连接。
⑤右连接:求spj表和j表的右连接。
四,完成情况select *from spj inner join s on s.sno=spj.snowhere s.city='天津'select*from pwhere color='红' and weight>14select *from jwhere jname like '%厂'Select *from s inner join s city=j cityselect sname,jname,pnamefrom spj inner join s on spj.sno=s.sno join p on spj.pno=p.pnojoin j on j.jno=spj.jnoorder by s.sno,j.jno,p.pnoselect *from s,pselect *from jleft join spj on spj.jno=j.jnoselect *from spj right join j on spj.jno=j.jno五,思考题:查看实验内容2中左连接和右连接的执行结果是否一致,为什么?答:不一致,因为左连接是把左边的表全部输出来。
数据库实验报告实验二参考答案[最终版]
数据库实验报告实验二参考答案[最终版]第一篇:数据库实验报告实验二参考答案[最终版]1.你的老板要求你创建一个数据量为20G的数据库,但是你现在的硬盘上没有一个这么大空闲容量的分区,只有3个空闲容量为8G的分区,请问,你该如何完成这个任务?答:为该数据库创建3个数据文件,每个数据文件只需保存小于8G的数据,将这3个数据文件分别存储在不同的硬盘分区即可。
注:数据库中的数据都保存在该数据库的若干数据文件中,而非日志文件!2.你想创建一个初始大小为2MB的数据库,但是你却发现你创建的数据库的初始大小是5MB,而且不能小于这个值,请问是什么原因?答:系统数据库中的model数据库为用户创建数据库提供模板,也就是说,在创建数据库时,数据库引擎首先通过复制 Model 数据库中的内容来创建数据库的第一部分,然后再用空页填充新数据库的剩余部分。
因此,用户创建的数据库的初始大小不能小于model数据库的大小。
该问题的原因在于model数据库数据文件的初始大小被设定为5MB。
/***************************SQL语言部分*****************************/ /*创建数据库student*/create database studenton(name=student_data,filename='C:DATAstudent_data.mdf', size=3,maxsize=unlimited,filegrowth=1)log on(name=student_log,filename='C:DATAstudent_log.ldf',size =1,maxsize=20,filegrowth=10%)/*修改数据库student--添加数据文件*/alter database student add filegroup studata /*先增加一个文件组studata*/ goalter database studentadd file(Name=student_data1,filename='D:DATAstudent_data1.nd f',Size=50,Maxsize=500,Filegrowth=30%)to filegroup studata /*删除数据库student */ drop database student第二篇:SQL数据库实验报告实验二实验2SQL Server数据库的管理1.实验目的(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。
北邮数据库实验二实验报告
北邮数据库实验二实验报告一、实验目的本次实验的主要目的是通过实际操作,深入理解和掌握数据库中的查询语句、连接操作以及数据的更新和删除等关键知识点。
同时,培养我们运用所学知识解决实际问题的能力,提高对数据库系统的操作熟练度和综合应用能力。
二、实验环境本次实验使用的数据库管理系统为 MySQL,开发工具为 Navicat Premium。
操作系统为 Windows 10。
三、实验内容及步骤(一)创建数据库和表首先,使用以下语句创建了一个名为“student_management”的数据库:```sqlCREATE DATABASE student_management;```然后,在该数据库中创建了两个表:“students”表和“courses”表。
“students”表的结构如下:|字段名|数据类型|约束|||||| id | INT PRIMARY KEY AUTO_INCREMENT |自增主键|| name | VARCHAR(50) |非空|| age | INT ||| gender | VARCHAR(10) ||创建“students”表的语句为:```sqlCREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age INT,gender VARCHAR(10));```“courses”表的结构如下:|字段名|数据类型|约束|||||| id | INT PRIMARY KEY AUTO_INCREMENT |自增主键|| course_name | VARCHAR(50) |非空|| credit | INT ||创建“courses”表的语句为:```sqlCREATE TABLE courses (id INT PRIMARY KEY AUTO_INCREMENT,course_name VARCHAR(50) NOT NULL,credit INT);```(二)插入数据接下来,向“students”表和“courses”表中插入了一些示例数据。
【免费下载】数据库实验二报告
Example3.4.7 select aid from agents where commission<=all (select commission from agents);
Example3.4.8 select cid,cname from customers
where discnt =some(select discnt from customers where city='Dallas' or city=' Boston');
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
数据库 实验二
数据库系统原理实验报告
实验步骤和结果:
1、利用SQL Server Studio创建学生数据库StudentDB,数据文件的存放在D盘上以自己的学号命名的路径下,文件个数可以自己设定。
2、用CREATE DATABASE语句来创建一个名为BOOK的数据库,存放在D盘上以自己的学号命名的路径下,它由10MB的主数据文件、5MB的次数据文件和5MB的日志文件组成。
并且主数据文件以1MB的增长速度其最大数据文件的大小为10MB,次数据文件以2MB的增长速度其最大次数据文件的大小为15MB,事务日志文件以1MB的增长速度其最大日志文件的大小为10MB。
3、在SQL Server Studio中将学生数据库的主文件大小改为11MB。
4、用ALTER DA TABASE语句修改BOOK数据库,为其增加一个次要数据文件(Book_data2.ndf),该文件的大小是5MB,最大可增长到20MB,以20%的速度增长。
5、利用SQL Server Studio为学生数据库增加一个文件组MyFilegroup。
提示:通过数据库属性→文件组进行修改。
6、用ALTER DATABASE语句为BOOK数据库增加一个文件组MyFilegroup1。
7、用ALTER DA TABASE语句为BOOK数据库增加两个次数据文件,并将他们放到MyFilegroup1文件组。
实验过程分析:。
数据库原理实验报告(2)实验二 数据库的创建、管理、备份及还原实验
南京晓庄学院《数据库原理与应用》课程实验报告实验二数据库的创建、管理、备份及还原实验所在院(系):数学与信息技术学院班级:学号:姓名:1.实验目的(1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改数据库的基本方法;(2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。
(3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方法。
2.实验要求(1)使用SQL Server Management Studio创建“教学管理”数据库。
(2)使用SQL Server Management Studio修改和删除“教学管理”数据库。
(3)使用Transact-SQL语句创建“教学管理”数据库。
(4)使用Transact-SQL语句修改和删除“教学管理”数据库。
(5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server ManagementStudio对数据库“教学管理”进行备份和还原。
(6)SQL Server 2005数据库文件的分离与附加。
(7)按要求完成实验报告3.实验步骤、结果和总结实验步骤/结果(1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。
(2) 总结在实验中为创建、修改和删除“教学管理”数据库所编写的各条T-SQL语句及其完成了什么功能。
(3)总结使用SQL Server Management Studio备份与还原数据库的几种方法。
4.实验思考:①SQL Server 2005物理数据库包含了哪能几种类型的文件以及它们的作用?②数据库备份与转储包含那些原理?③如果数据或日志文件非空不能删除,查找SQL Server中缩小文件大小的方法。
数据库实验报告2
实验项目列表序号实验项目名称成绩指导教师1 实验一数据库的定义实验(验证性)2 实验二数据库的建立和维护实验(验证性)3 实验三数据库的查询实验(验证性)4 实验四数据库的视图操作实验(验证性)5 实验五触发器、存储过程操作实验(综合性)实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 5.1 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer。
二、实验环境:硬件:PC 机软件:Windows 操作系统、 MySQL Server 6.0 和Navicat for MySQL9.0三、实验内容和原理:1、安装 MySQL 以及相应的 GUI 工具2、用 SQL 命令,建立学生-课程数据库基本表:学生 Student(学号 Sno,姓名 Sname,年龄 Sage,性别 Ssex,所在系Sdept);课程 Course (课程号 Cno,课程名 Cname,先行课 Cpno ,学分Ccredit);选课 SC(学号 Sno,课程号 Cno,成绩 Grade);要求:1) 用 SQL 命令建库、建表和建立表间联系。
2) 选择合适的数据类型。
3) 定义必要的索引、列级约束和表级约束.四、实验步骤:1、运行MySQL Query Browser,然后进入到GUI界面;2、利用图形界面建立基础表:student 表的信息:字段名类型长度约束条件Sno varchar 9 非空、主键Sname varchar 20Ssex varchar 2Sage smallin 6Sdept varchar 20course 表的信息:字段名类型长度约束条件Cno varchar 4 非空、主键Cname varchar 40Cpno varchar 4 与 course 表中 Cno 关联Ccredit smallin6tsc 表的信息:字段名类型长度约束条件Sno varchar 9 非空、主键、与 student 表中 Sno外键关联,级联删除Cno varchar 4 非空、主键、与 course 表中 Cno外键关联6Grade smallint3、利用命令方式建表:(1)、运行MySQL Query Browser,在弹出查询窗口中输入“CREATE DATABASE 3116017006”命令,建立一个名为3006017006的数据库;(2)通过“use 3116017006 ”命令进入到 3116017006 数据库中;(3)、在查询编辑器窗口中分别输入命令:建立 student 表:CREATE TABLE student(Sno varchar(9) PRIMARY KEY,Sname varchar(20) UNIQUE,Ssex varchar(2),Sage SMALLINT,Sdept varchar(20))建立 course 表:CREATE TABLE course(Cno varchar(4) PRIMARY KEY,Cname varchar(40),Cpno varchar(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES course(Cno) )建立 sc 表:CREATE TABLE sc(Sno varchar(9),Cno varchar(4),Grade SMALLINT,PRIMARY KEY (Sno,Cno),FOREIGN KEY (Sno) REFERENCES student(Sno) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (Cno) REFERENCES course(Cno) ON DELETE NO ACTION ON UPDATE CASCADE)(4)、向 student 表中添加“Sentrance”列:ALTER TABLE student ADD Sentrance DATE(5)、将 student 表中“Sentrance”的类型改为 varchar ALTER TABLE student MODIFY COLUMN Sentrance varchar(4); (6)、删除 student 表中的“Sentrance”列:ALTER TABLE student DROP Sentrance;五、实验结果1、建立student2、建立course 表,如下图所示:3、建立sc 表,如下图所示:如图所示,建好的表在数据库3116017006下显示:在做下题时,先在3个表中输入个人信息,如图:4、向 student 表中添加 Sentrance 列,如图所示刚开始没有Sentrance 列:添加Sentrance 列之后有Sentrance 列:5、Sentrance 的数据类型初为DATE,如图所示:将 Sentrance 的数据类型改为 varchar,如图:6、删除student表中的“Sentrance”列,如图所示“Sentrance”列被删掉:五、总结:通过这次实验,我掌握了数据库的定义以及基本表的建立,并且熟悉了 MySQL图形界面和 SQL 命令去创建、修改、删除基本表及设定表级完整性约束,巩固了 SQL 的一些常用的命令语句,为接下来的实验奠定基础。
数据库实验二
数据库实验⼆实验⼀1 实验⽬的1.熟悉数据库的交互式SQL⼯具。
2.熟悉通过SQL对数据库进⾏操作。
3.完成作业的上机练习。
2 实验⼯具KingbaseES或mysql或其他利⽤KingbaseES及其查询分析器或mysql或其他平台来熟悉SQL。
以下为简便起见只提到kingbase.3 实验内容和要求1. 建⽴⼀个数据库,进⾏实验所要求的各种操作,所有的SQL操作均在此建⽴的新库⾥进⾏。
2. 根据以下要求认真填写实验报告,记录所有的实验⽤例。
3.1 数据定义(实验⼆)熟悉基本表的创建、修改及删除。
1、请创建⼀个数据库,并在该数据库内完成以下内容:CREATE DATABASE SCUSE SCCREATE TABLE STUDENT(Sno CHAR(9) PRIMARY KEY ,Sname CHAR(6) NOT NULL,Ssex CHAR (2),Sage INT,Sdept VARCHAR(8))CREATE TABLE COURSE(Cno CHAR(4) PRIMARY KEY,Cname VARCHAR(20) NOT NULL,Cpno CHAR(4),Ccredit INT)CREATE TABLE SC(Sno CHAR(9) ,Cno CHAR (4) ,Gread INT,PRIMARY KEY(Sno,Cno))1)依据数据表的结构创建相对应的数据表,表结构如下所⽰;学⽣信息表(student)字段名称字段类型及长度说明备注Sno Char(9)学⽣学号主关键字Sname Char(6)学⽣姓名⾮空Ssex Char(2)学⽣性别可为空Sage Int 学⽣年龄可为空Sdept VarChar(8)学⽣所在院系可为空课程信息表(course)字段名称字段类型及长度说明备注Cno Char(4)课程编号主关键字Cname VarChar(20)课程名称⾮空Cpno Char(4)先⾏课可为空Ccredit Int 学分可为空选课信息表(sc)字段名称字段类型及长度说明备注Sno Char(9)学⽣学号主关键字Cno Char(4)课程编号主关键字Grade Int 成绩可为空2)在表student中增加新字段 “班级名称(sclass)“;原来的STUDENT表添加班级名称:ALTER TABLE STUDENT ADD Sclass VARCHAR(10)添加后的STUDENT表:3)在表student中删除字段“班级名称(sclass)”;ALTER TABLE STUDENT DROP COLUMN Sclass4)修改表student中字段名为“sname”的字段长度由原来的6改为8;ALTER TABLE STUDENT ALTER COLUMN Sname CHAR(8)5)在表sc中增加外码约束,⼀个是sno参考student表的sno,⼀个是cno参考course表的cno;ALTER TABLE SC ADD CONSTRAINT FK_Sno FOREIGN KEY (Sno) REFERENCES STUDENT(Sno) ALTER TABLE SC ADD CONSTRAINT FK_Cno FOREIGN KEY (Cno) REFERENCES COURSE(Cno) 6)在表course中为cname增加唯⼀值约束;ALTER TABLE COURSE ADD CONSTRAINT UN_Cname UNIQUE(Cname)可以看到键中出现了增加的UN_Cname约束7)删除course表中cname的唯⼀值约束;ALTER TABLE COURSE DROP CONSTRAINT UN_Cname可以看到键中没有UN_Cname约束7)删除数据表student;ALTER TABLE SC DROP CONSTRAINT FK_SnoDROP TABLE STUDENT没有STUDENT表了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6)修改约束U2,令sage的值大于等于0;
7)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;
8)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。
5.使用查询分析器创建触发器并测试,请写出相应的语句:
1)为Worker表创建触发器T1,当插入或更新表中数据时,保证所操作记录的sage大于0;
10.假设SCHOOL数据库中,每个学生的登录名都为自己在STUDENTS表中的sid,实现每个学生只能查询自己选课信息,不能查询别人的成绩,也不能修改自己的成绩。
11.结束本次实验
三、实验课后训练
1.自行练习实验指导书P81【实验2.5综合案例】综合案例1;
2.自行练习实验指导书P122【实验3.8综合案例】综合案例;
四、
实验报告
1.授权给public与授权给指定用户有什么区别?实际应用中,哪个更安全些?
2.SQL SERVER中的角色有什么作用?
3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)
实验四——数据库编程
一、实验目的
1.掌握ODBC的配置;
2.能编写简单的存储过程和函数,并调用;
二、实验预习内容
允许的操作类型
能否转授权
1
SA
U1
Students
SELECT
不能
2
SA
U2
Students
ALL
不能
3
SA
PUBLIC
Choices
SELECT
不能
4
SA
U3
Students
SELECT
能
5
U3
U4
Students
SELECT
能
6
U4
U5
Students
SELECT不能Biblioteka 7SAU6
Choices
INSERT
1.使用SCHOOL数据库
1)创建一张新表CLASS,包括Class_id(varchar(4)),Name(varchar(10)),Department(varchar(20))三个属性列,其中Class_id为主码;
2)执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;
(1)不加WITH CHECK OPTION
(2)加WITH CHECK OPTION
create view V2
as select * from students
where sdept=’cs’
create view V2’
as select * from students
where sdept=’cs’
实验报告册
2014/ 2015学年 第2学期
系 别
计算机科学与技术系
实验课程
数据库原理
专 业
计算机科学与技术
班 级
姓 名
学 号
指导教师
实验二——SQL语句
一、实验目的
1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能理解空值的处理;
2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操作;
2)当更新、删除STU表中记录时,若SC表中有此学生的记录,则自动更新或删除;
4.使用SQL命令完成以下任务:
1)创建Worker表(表结构见指导书P73)
2)定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28;
3)插入一条合法记录;
4)插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;
2)建立名为“LiYong”的登录用户、数据库用户,默认访问SCHOOL数据库,密码为“abcd”;
3)取消“LiYong”用户;
7.先以sa帐号登录,要实现如下表的权限管理,请按先后顺序写出相应的SQL语句(假设所有用户尚未定义,其密码均为123),并加以必要的说明。
编号
授权用户名
被授权用户名
数据库对象名
上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1.配置ODBC,使用VFP中的表单,查询SCHOOL数据库中STUDENTS表中所有记录。
2.编写存储过程并调用,请写出相应命令;
1)在查询分析器中,编写存储过程usp_get_stuinfo,使用一个名为@xm能够传送进存储过程的参数。允许以学生的姓名查询该生的基本信息;
2)为Worker表创建触发器T2,禁止删除编号为00001的记录;
3)为Worker表创建触发器T3,要求更新一个记录时,表中记录的sage要比老记录的sage的值大。
6.分别用企业管理器和查询分析器实现用户的标识并测试,请写出相应的操作过程或对应的语句:
1)设置SQL SERVER的安全认证模式;
4.自行练习实验指导书P36【实验1.4视图】1.4.5自我实践部分;
5.自行练习实验指导书P49【实验1.6空值和空集的处理】1.6.5自我实践部分;
四、
实验报告
1.SQL SERVER中变量声明的命令是什么?输出命令是什么?
变量声明:局部变量需要声明,declare @变量名,空格,数据类型(声明变量)。全局变量不需要声明。
3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;
4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;
二、实验预习内容
在认真阅读教材及实验指导书【实验1.2数据查询】、【实验1.3数据更新】、【实验1.4视图】和【实验1.6空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
16)创建视图V1,显示学生姓名、所选课名称、任课教师名;
17)取消V1视图;
2.使用STC数据库,在SQL SERVER 2000的查询分析器中使用SQL语言完成以下操作。请在空白处填写相应的SQL命令或其它内容。
1)创建视图V2,显示计算机(CS)系学生信息;(结合下面的b)小题,V2视图创建2次,分别使用/不使用WITH CHECK OPTION选项)
11)删除所有选了Java课程的学生选课记录;
12)求出每门课的课程号、选课人数,结果存入数据库表T1中。
13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);
14)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结果中NULL的情况);
15)按成绩顺序排序显示CHOICES表中所有记录。(使用ORDER BY排序,注意NULL的情况);
4)在查询分析器中,调用此函数,输出两个数中的最大值;
5)在SQL SERVER中定义函数FUNS,返回指定参数的平方,配置好ODBC后,在VFP中调用FUNS并输出结果;
4.结束本次实验
三、实验课后训练
1.自行学习实验指导书P130【实验4.1SQL SERVER事务的定义】;
2.自行学习实验指导书P137【实验4.2SQL SERVER 2005事务与锁】;
[continue]语句序列3
end
3.在SQL SERVER里使用ORDER BY排序时,NULL值如何处理?使用GROUP BY分组时,NULL值又如何处理的?
null默认为最大值(即:asc升序<小-->大>,null值排在最后;desc降序<大-->小>,null值排在最前面
4.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)
2)在查询分析器中调用存储过程查询“赵飞”同学的基本信息的语句;
3.编写函数并调用,请写出相应命令;
1)在查询分析器中,定义内联表值函数Fun,用于返回各职称的教师基本信息;
2)在查询分析器中,使用Fun进行选择以获得“教授”职称的教师基本信息;
3)在查询分析器中,编写标量函数Func,用于返回两个整数中的最大值;
输出命令:select(查询命令)
2.SQL SERVER中实现分支和循环的语句分别是什么?
分支:用case测试表达式
when测试值1 then结果表达式1
when测试值2 then结果表达式2
[else结果表达式n+1]
end
循环:用while布尔表达式
begin语句序列1
[break]语句序列2
1.使用SCHOOL数据库,在SQL SERVER 2000的查询分析器中使用SQL语言完成以下操作。请在空白处填写相应的SQL命令。
1)查询年级为2001的所有学生的名称,按编号顺序排列;
2)查询所有课程名称中含有data的课程编号;
3)统计所有老师的平均工资;
4)查询至少选了3门课的学生编号;
5)查询学号为80009026的学生的姓名、所选课名及成绩;
有些较为复杂的嵌套查询,刚开始不知道如何写,然后问同学,理清了思路,并完成了编程。
在这次实验中,有好多因为中英字符问题而出现的命令错误,进行更改后就可以正常执行命令了
实验三——数据库完整性与安全性
一、实验目的
1.理解实体完整性、参照完整性、用户自定义完整性的概念,学习三类完整性的实现,了解违反完整性的结果;
2.使用SQL命令创建一张学生互助表,要求:包括学生编号、学生姓名、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。
3.使用STC数据库,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作过程:
1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;
with check option
2)插入元组(99999,张三,20岁,男,PH)到V2中,运行结果如何?(观察WITH CHECK OPTION对结果的影响);