数据库实验2
数据库实验2-数据库及表的创建与管理(DDL应用)
实验二数据库及表的创建与管理(DDL应用)姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:一、【实验目的与要求】1.熟悉SQL Server 2005 的环境2.了解使用企业管理器创建数据库的过程和方法3.了解使用企业管理器创建数据库的过程和方法二、【实验准备】1.安装并配置好SQL Server 2005数据库2.设计好数据库创建各参数,准备好测试数据三、【实验要求】1.完成数据库的创建与管理2.完成表的创建与管理。
3. 熟悉SQL Server 2005中企业管理器和查询分析器两个常用管理工具四、【实验内容】1. 数据库创建与管理2. 表的创建、管理及数据操作。
五、【实验步骤】1. 准备工作(1)安装完成SQL Server 2005安装。
(2) 打开企业管理器(3)连接数据库2.数据库的创建与修改准备工作:在C盘下创建目录Exam03,用于存放数据库创建时产生的数据文件。
(1) 数据库的创建使数据定义语句Create Database可以创建数据库,该语句在使用时可指明数据文件和日志文件存放的路径,初始数据文件的大小等参数。
阅读以下是创建数据库SalesDB的SQL语句,理解其功能,并置于查询分析器中执行:create database SalesDBon(name= SalesDB_data,--数据文件的逻辑名称,注意不能与日志逻辑同名filename='C:\Exam03\SalesDB.mdf' ,--物理名称,注意路径必须存在size=20, --数据初始长度为10Mmaxsize=100, --最大长度为100Mfilegrowth=5 --数据文件每次增长1M)log on(name= SalesDB_log,filename='C:\Exam03\SalesDB.ldf ' ,size=20 ,maxsize=50 ,filegrowth=5)在查询分析器中执行上述语句建立数据库SalesDB。
数据库实验报告实验二
身份证号
Varchar
18
Not null
教师身份证号
学生
属性名
类型
长度
约束
备注
学号
Varchar
10
Not null,pk
学生编号
姓名
varchar
10
Not null
学生姓名
院系号
Varchar
20
Not null
学生所属院系
身份证号
Varchar
18
Not null
用途
varchar
100
借用教室的用途
状态
char
1
借用教室审批的状态
管理员
属性名
类型
长度
约束
备注
管理员编号
Varchar
10
Not null,pk
管理员编号
姓名
varchar
10
Not null
管理员姓名
电话
Varchar
20
Not null
管理员电话
性别
varchar
2
Not null
性别
年龄
Varchar
关系模型
教学楼(教学楼号,教学楼名称)
教室(教室编号,教学楼号,楼层,)
院系(院系号,院系名称)
课程(课程号,课程名称,学分,课程类型,开课院系号)
教师(教师编号,教师姓名,性别,所属院系,职称,身份证号)
学生(学号,姓名,院系号,身份证号)
讲授(教室编号,上课时间,上课时间段,教师号,课程号,)
借用(教室编号,学号,使用日期,借用时间段,工作日,用途)
数据库实验二数据查询
实验4 数据查询一、实验目的1.掌握SELECT语句的基本语法和查询条件的表示方法;2.掌握连接查询的表示方法;3.掌握嵌套查询的表示方法;4.掌握数据汇总的方法;5.掌握ORDER BY子句的作用和使用方法;6.掌握HAVING子句的作用和使用方法;二、实验内容使用SELECT查询语句,在数据库StudentCourse的Student表、Course 表和StuCourse 表上进行各种查询,包括单表查询、连接查询、嵌套查询,并进行数据汇总,以及使用GROUP BY子句、ORDER BY子句和HAVING子句对结果进行分组、排序和筛选处理。
1.SELECT语句的基本使用;2.连接查询;3.嵌套查询;4.数据汇总;5.使用GROUP BY 子句对结果分组;6.使用ORDER BY子句对结果排序;7.使用HAVING子句对分组结果进行筛选;思考与练习:1.用SELECT语句查询Course表和StuCourse表中的所有记录。
SQL语句:select * from Course;select * from StuCourse;实验结果:2.用SELECT语句查询Course表和StuCourse表中满足指定条件的一列或若干列。
SQL语句:select 课程号,课程名 from Course where 学分=5;select 学号,课程号 from StuCourse where 成绩>80;实验结果:3.查询所有姓名中包含有“红”的学生的学号及姓名。
SQL语句:select 学号,姓名 from Student where 姓名 like '%红%';实验结果:4.用连接查询的方法查找所有选修了“2001” 或“1002”号课程的学生学号和姓名。
SQL语句:selectdistinct Student.学号,姓名from StuCourse,Studentwhere(课程号='1002'or 课程号='2001')and StuCourse.学号=Student.学号;实验结果:5.用子查询的方法查找所有选修了“2001”或“1002”号课程的学生学号和姓名。
数据库原理实验2实验报告 数据库的创建
《数据库原理》实验报告学号:姓名:班级:指导教师:2013 年12月数据库原理教师成绩评定表评定成绩的依据:①基础理论及基本技能的掌握②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果⑤工作态度及工作量;⑥成绩采用优良中差四个等级评定成绩表实验2:数据库的创建与管理一、实验内容及要求1. 使用SQL Server 管理平台创建“学生管理”数据库。
要求:它有3个数据文件,其中主数据文件为20MB,最大为100MB,每次增加5MB;此数据文件为10MB,最大容量不受限制,每次增长20%;事务日志文件为20MB,最大为100MB,每次增加20MB。
2.使用T-SQL语句创建“仓库管理”数据库。
要求:它有3个数据文件,其中主数据文件为20MB,最大为100MB,每次增加5MB;此数据文件为10MB,最大容量不受限制,每次增长20%;事务日志文件为20MB,最大为100MB,每次增加20MB。
3.使用SQL Server 管理平台删除“仓库管理”数据库。
二、实验目的1.了解数据库的逻辑结构和物理结构。
2.掌握使用SQL Server 管理平台创建数据库方法。
3.掌握使用SQL语句创建数据库的方法。
三、实验步骤及运行结果1.使用SQL Server 管理平台创建“学生管理”数据库实验步骤:(1)以系统管理员身份登录到SQL Server 2005管理平台主界面。
(2)右击“SQL Server管理平台”中的“数据库”对象,在弹出的快捷菜单中选择“新建查询”选项,打开“新建数据库”对话框,默认进入“常规”设置窗口。
(3)在“常规”窗口中,可以创建数据库的名称、数据库的所有者、数据文件(主数据文件和次数据文件)、事务日志文件以及是否使用全文索引等。
(4)在“常规”窗口中,根据所给定建立数据库的要求,在“数据库名称”文本框中输入数据库名称“学生管理”。
自行设置主数据文件、次数据文件和事务日志文件的逻辑名、文件类型、文件组初始大小。
实验二 数据库的基本操作
实验项目名称:数据库的基本操作
成绩:
信息对数据库进行修改、查看、删除、备份、还原等操作。
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. 学习并实践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编辑数据的时候,总忘记各表中的关系,学⽣表还没定义就编辑选修表,报了不少次错;由此看来,整体设计很重要,像编程之前的流程图⼀样,在建⽴各表之前也应该事先理清楚这些表之间的关系,这样数据库的思路更清晰。
数据库实验二,sql查询语句
实验二:数据查询语言实验内容SQL数据查询语句:例5-1:(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
select sno,sname,sex,sage from student;例5-2:(不选择重复行) 求选修了课程的学生学号。
select distinct cno from sc where cno is not null;例5-3:(选择表中的所有列) 求全体学生的详细信息。
select * from student;例5-4:(使用表达式) 求全体学生的学号、姓名和出生年份。
select sno,sname,birthday from student;例5-5:(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
select sno as"学号",birthday as"出生年份" from student;例5-6:(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
select sname,age from studentwhere age>19;例5-7:(比较大小条件) 求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。
select sname,depname ,agefrom student,departmentwhere student.depno=department.depnoand age>18;例5-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
select sno,age from studentwhere age in(19,22);例5-9:(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。
select sno,age from studentwhere age not in(19,22);例5-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
数据库系统实验二
实验二姓名:毕泽琨学号:23320122203798一.实验内容查询语句使用基本select语句使用查询条件where、having语句使用Having 语句是在分组筛选时使用即与group by 语句联合使用嵌套查询,in、exists聚集函数:max、min、avg、count集合运算:union、intersect、exceptorder by和group by 语句主要是熟悉嵌套查询!在嵌套查询中,子查询不能使用order by语句二.实验环境:WINDOWS SERVER2003, MS SQL SERVER2000三.实验步骤实验2.1 数据查询实验要求:以School数据库为例,在该数据库中存在四张表格,分别为:●表STUDENT(sid, sname, email, grade);●表TEACHERS(tid, tname, email, salary);●表COURSES(cid, cname, hour);●表CHOICES(no, sid, tid, cid, score)在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。
在表CHOICES中保存学生的选课记录。
按以下要求对数据库进行查询操作:实验步骤:(1)查询年级为2002的所有学生的姓名并按编号升序排列。
(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积点(60分对应积点为1,每增加1分,积点增加0.1)。
(3)查询课时是48或64的课程的名称。
(4)查询所有课程名称中含有data的课程编号。
(5)查询所有选课记录的课程号(不重复显示)。
(6)统计所有教师的平均工资。
(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。
(8)统计各个课程的选课人数和平均成绩。
(9)查询至少选修了四门课程的学生编号。
(10)查询编号800028649的学生所选的全部课程的课程名和成绩。
(11)查询所有选修了database的学生的编号。
数据库实验报告2
数据库实验报告2数据库实验报告2引言数据库是现代信息系统中不可或缺的组成部分,它可以帮助我们存储、管理和检索大量的数据。
在数据库实验2中,我们将探索数据库的一些高级功能,包括索引、视图和事务处理。
通过这些实验,我们将深入了解数据库的内部工作原理和优化方法。
一、索引的作用和实验结果索引是数据库中用于加速数据检索的重要工具。
在实验中,我们创建了一个包含大量数据的表,并为其中的某一列创建了索引。
通过对比查询速度,我们发现使用索引可以显著提高查询效率。
索引的作用类似于字典的目录,它可以帮助数据库快速定位到需要查询的数据,而不需要遍历整个表。
二、视图的定义和应用视图是数据库中的虚拟表,它是由一个或多个基本表的数据组成的。
在实验中,我们创建了一个视图,用于展示特定条件下的数据。
通过视图,我们可以方便地查看和处理数据,而不需要直接操作底层的表。
视图的定义和使用可以大大简化复杂的查询操作,提高数据的可读性和可维护性。
三、事务处理的原理和实现事务处理是数据库中保证数据一致性和完整性的重要机制。
在实验中,我们模拟了一个银行系统的转账操作,并使用事务处理来确保转账的正确性。
事务处理的原理是将一系列操作作为一个整体进行提交或回滚,以保证数据的一致性。
通过实验,我们了解了事务处理的基本概念和实现方法,以及如何处理并发操作和故障恢复。
四、数据库优化的思路和方法数据库优化是提高数据库性能的关键环节。
在实验中,我们通过调整表结构、创建索引和优化查询语句等方式来提高数据库的执行效率。
通过实验结果的对比,我们发现合理的优化方法可以显著提高数据库的响应速度和并发处理能力。
同时,我们也了解到数据库优化需要综合考虑多个因素,包括数据量、查询频率和硬件资源等。
结论通过数据库实验2,我们深入了解了数据库的高级功能和优化方法。
索引、视图和事务处理是数据库中非常重要的组成部分,它们可以帮助我们提高数据的检索效率、操作便捷性和数据一致性。
同时,数据库优化也是提高数据库性能的关键环节,我们需要综合考虑多个因素来选择合适的优化方法。
数据库实验二 《数据查询:单表查询与连接查询》实验
《数据查询:单表查询与连接查询》实验一、实验目的与要求淘宝店5302131.掌握SELECT语句的基本语法。
2.掌握连接查询的表示。
3.掌握数据汇总的方法。
4.掌握SELECT语句的GROUP BY子句的作用和使用方法。
5.掌握SELECT语句的ORDER BY子句的作用和使用方法。
二、实验平台淘宝店5302131、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容淘宝店530213练习前,先附加“教务管理系统”,在“教务管理系统”的数据库中进行一下查询:单表查询1、在“学生信息”表中,以列名显示方式,查询学生信息。
select学号sno,姓名sname,性别ssexfrom学生信息2、交换列的显示顺序,查询查询“学生信息”表中所有学生的学号、姓名、政治面貌和籍贯信息。
列标题显示方式如下:①(学号、姓名、政治面貌、籍贯)②(姓名、学号、籍贯、政治面貌)3、对比不使用DISTINCT和使用DISTINCT,查询“学生信息”表的“籍贯”列中的信息。
4、查询列表中使用计算列:查询“选课表”中学生成绩信息,把成绩减少10分显示,同时显示编号、学号、调整前的成绩(列标题:学号、课程编号、调整前成绩、调整后成绩)。
select学号,课程编号,成绩调整前的成绩,成绩-10 调整后的成绩from选课表5、WHERE子句的使用1)从“学生信息”表中,查询出“籍贯”为“福建”的学生的学号、姓名、性别、民族和籍贯信息。
2)从“学生信息”表中,查询出“籍贯”不是“福建”的学生的学号、姓名、性别、民族和籍贯信息。
3)从“学生信息”表中,查询出“籍贯”为“河南”并且“民族”为“汉”的学生的学号、姓名、性别、民族和籍贯信息。
select学号,姓名,性别,民族,籍贯from学生信息where籍贯='河南'and民族='汉'4)从“学生信息”表中,查询出“籍贯”为“河南”或者“上海”的学生的学号、姓名、性别、民族和籍贯信息。
数据库实验报告实验二参考答案[最终版]
数据库实验报告实验二参考答案[最终版]第一篇:数据库实验报告实验二参考答案[最终版]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 数据库的逻辑结构和物理结构的特点。
数据库原理实验报告(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)。
实验二:交互式SQL一、创建数据库及表1、创建数据库create database HRMGo2、创建表(1)创建Departments表create table Departments(DepartmentID char(3)not null primary key,DepartmentName char(20)not null,Note Text)(2)创建Employee表create table Employee(EmployeeID char(6)not null primary key,Name char(10)not null,Birthday Datetime not null,Sex bit not null,Address char(20),Zip char(6),PhoneNumber char(12),EmailAddress char(30),DepartmentID char(3)not null foreign key references Departments)(3)创建Salary表create table Salary(EmployeeID char(6)not null foreign key references Employee, Income float(8)not null,OutCome float(8)not null)3、举例说明如何操作会违背完整性(实体完整性、参照完整性)(1)实体完整性如上面的Departments表,DepartmentID是主键,不能为空,当插入数据时,如果DepartmentID为空,则会报错,也就违背了实体完整性。
DepartmentID不为空时,则能成功插入:(2)参照完整性如上面的Salary表,EmployeeID是Employee的外键,当向Salary 表插入数据时,如果插入记录的EmployeeID是Emploree表中没有的数据,则会报错,即违背了参照完整性。
二、SQL数据查询语句1、数据插入(1)插入记录到Departmentsinsert into Departmentsselect'1','财务部','财务部'union allselect'2','研发部','研发部'union allselect'3','人力资源部','人力资源部';(2)插入记录到Employeeinsert into Employeeselect'1001','李勇','78-3-12','0','河南','475001','3880378','ly@','1'union all select'1002','王敏','80-11-2','1','河南','475002','0378311','wm@','1'union all select'1003','刘晨','78-6-22','0','河南','475003','0378322','lc@','1'union all select'2001','张立','78-8-1','0','河南','475004','0378333','zl@','2'union allselect'2002','刘毅','82-1-23','0','河南','475005','0378344','ly@','2'union all select'2003','张玫','81-3-15','1','河南','475006','0378355','zm@','2'union all select'3001','徐静','76-8-12','1','河南','475007','0378366','xj@','3'union all select'3002','赵军','79-2-19','0','河南','475008','0378377','zj@','3';(3)插入记录到Salaryinsert into Salaryselect'1001','3600','1500'union allselect'1002','3300','1000'union allselect'1003','3700','1200'union allselect'2001','4000','1600'union allselect'2002','3800','1800'union allselect'2003','3800','1500'union allselect'3001','4200','2000'union allselect'3002','4100','1800'2、数据查询(1)简单的数据查询2-d:select Address as"地址",PhoneNumber as"电话"from Employee where Sex='1'; 2-e:select EmployeeID,Income-OutCome as"工资"from Salary;2-f:select DepartmentID from Employee where Name like'王%';思考:select DepartmentID,PhoneNumber from Employee where Address like'%中山%'; (2)多表连接查询和嵌套查询3-a:Select Employee.EmployeeID,Name,Birthday,Sex,Address,Zip,PhoneNumber,EmailAddress,DepartmentID,Income-OutCome as"工资"from Employee,Salary;3-b:select Name,Income-OutCome as"工资"from Employee,Salarywhere Employee.EmployeeID=Salary.EmployeeID and Income-OutCome>=2000and DepartmentID in(select DepartmentID from Departmentswhere DepartmentName='财务部');3-c:select Name,Income,OutCome from Employee,Salarywhere Employee.EmployeeID=Salary.EmployeeID and Birthday<'1966'and DepartmentID in (select DepartmentID from Departmentswhere DepartmentName='研发部');3-d:select MAX(Income-OutCome)as"最高工资",Min(Income-OutCome)as"最低工资"from Salary,Employeewhere Employee.EmployeeID=Salary.EmployeeID and DepartmentID in(select DepartmentID from Departments where DepartmentName='人力资源部');3-e:select Employee.EmployeeID,Name,Sex,Address,Zip,PhoneNumber,EmailAddress,DepartmentID,Income-OutCome'工资'from Employee,Salarywhere Employee.EmployeeID=Salary.EmployeeID order by Income-OutCome ASC;3-f:select DepartmentID,COUNT(EmployeeID)from Employee group by DepartmentID;3-g:select EmployeeID from Departments,Employeewhere Departments.DepartmentID=Employee.DepartmentID and DepartmentName='人力资源部'or DepartmentName='财务部';3-h:select COUNT(EmployeeID)'人数' from Salary,Departmentswhere DepartmentName='人力资源部'and Income-Outcome>='2500';3-i:select COUNT(EmployeeID)'人数' from Employee,Departmentswhere DepartmentName='财务部'and Departments.DepartmentID=Employee.DepartmentID; 3-j:select A VG(Income-OutCome)'平均工资' from Salary,Employeewhere Employee.EmployeeID=Salary.EmployeeID and DepartmentID in(select DepartmentID from Departments where DepartmentName='财务部');3-k:select Name姓名from Employee,Salarywhere Employee.EmployeeID=Salary.EmployeeID and Income-OutCome>(select MAX(Income-OutCome) from Employee,Salarywhere Employee.EmployeeID=Salary.EmployeeID and DepartmentId in(select DepartmentID from DepartmentS where DepartmentName='财务部'));3-l:select Name姓名from Employee,Departmentswhere Employee.DepartmentID=Departments.DepartmentID and DepartmentName='财务部'and Birthday<=(select Min(Birthday) from Employee,Departmentswhere Employee.DepartmentID=Departments.DepartmentID and DepartmentName='研发部'); 3-m:select* from Employee where DepartmentID in(select DepartmentID from Departments where DepartmentName='财务部');三、视图的定义和操作1、视图定义语句1-4:create view Employee_Na_Dep_Sal asselect Name,DepartmentName,Income-OutCome'工资'from Employee,Salary,Departmentswhere Employee.EmployeeID=Salary.EmployeeIDand Departments.DepartmentID=Employee.DepartmentID;1-5:create view Employee_Info asSelectEmployee.EmployeeID,Name,Birthday,Sex,Address,Zip,PhoneNumber,EmailAddress,Departmen tID from Employee,Salarywhere Employee.EmployeeID=Salary.EmployeeID and Income-OutCome>(select MAX(Income-OutCome)from Employee,Salarywhere Employee.EmployeeID=Salary.EmployeeID and DepartmentId in(select DepartmentID from DepartmentS where DepartmentName='财务部'));1-6:create view Employee_Info_6 asselect EmployeeID,Name,datediff(year,Birthday,getdate())as年龄from Employee;2、查询视图与更新视图(1)查询视图Employee_Info_6中年龄大于35的员工select*from Employee_Info_6where年龄>35;或者:select * from Employee_Info_6 where CONVERT(int,年龄)>35;(2)更新不成功例子视图中如果使用了AVG、max等函数,即有对数据的二次加工性质的操作时,不允许更新;而简单的SQL形成的视图的灵活性则没有限制!四、SQL数据更新语句1、SQL更新语句1-3:create table TotalQTY (SNO nchar(2)foreign key references S,totalQTY int) insert into TotalQTY select SNO,SUM(QTY) from SPJ group by SNO;1-5:set rowcount 4update SPJ set QTY=300;或者update top(4)SPJ set QTY=300;1-10:alter table SPJ add SDATE datetime;update SPJ set SDATE=GETDATE();。