数据库实验2

合集下载

数据库实验2-数据库及表的创建与管理(DDL应用)

数据库实验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”号课程的学生学号和姓名。

《数据库实验》实验二 数据操作实验

《数据库实验》实验二 数据操作实验

院系:计算机学院实验课程:数据库实验实验项目:数据操作实验指导老师: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.对上海和天津,统计该城市的供应商一共供应了多少数量的零件。

数据库运维形考任务2-实验2 MariaDB数据库对象管理

数据库运维形考任务2-实验2 MariaDB数据库对象管理

数据库运维形考任务2-实验2 MariaDB数据库对象管理本文档旨在介绍MariaDB数据库对象管理的实验2任务。

在这个任务中,我们将研究如何管理MariaDB数据库中的不同对象。

1. 创建和删除数据库1.1 创建数据库要创建一个新的数据库,在MariaDB命令行中执行以下语句:CREATE DATABASE database_name;请将`database_name`替换为您想要创建的数据库的名称。

1.2 删除数据库如果要删除一个现有的数据库,可以使用以下语句:DROP DATABASE database_name;同样,请将`database_name`替换为要删除的数据库的名称。

2. 创建和删除表2.1 创建表在已有的数据库中创建表,使用以下语句:USE database_name;CREATE TABLE table_name (column1 datatype,column2 datatype,...);请将`database_name`替换为已有的数据库的名称,`table_name`替换为要创建的表的名称,`column1, column2, ...`替换为表中的列名和相应的数据类型。

2.2 删除表要删除一个表,使用以下语句:USE database_name;DROP TABLE table_name;请将`database_name`替换为表所属的数据库的名称,`table_name`替换为要删除的表的名称。

3. 创建和删除索引3.1 创建索引要在表的列上创建索引,使用以下语句:USE database_name;CREATE INDEX index_name ON table_name (column);请将`database_name`替换为表所属的数据库的名称,`index_name`替换为要创建的索引的名称,`table_name`替换为包含索引的表的名称,`column`替换为要在其上创建索引的列。

数据库实验二

数据库实验二

实验二数据定义一、实验目的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两个属性列,分别用来存放供应商的联系电话和电子信箱。

数据库应用课程02实验二 关系完整性约束操作

数据库应用课程02实验二  关系完整性约束操作
实验
学号
姓名
实验项目
关系完整性约束操作
实验地点
实验仪台号
指导教师
程荃华
实验日期及节次
年月日,第节
理解“关系”、“关键字”、“主键”、“外键”、“实例完整性”、“参照完整性”、“域完整性”等的概念;
掌握建立关系完整性约束的方法。
下载实验用的数据库样例。
(1)打开名称为“Ch1教学管理数据库.accdb”的Access 2007数据库。
(2)打开“导航窗格”,单击其顶部的下拉列表框,选择“表”。可以看到有多张表。
(3)双击学生表,将其打开,查看学生表的记录信息。
(4)切换至“设计视图”,给学生表指定学号为主键。
(5)给学生表中的性别字段加上域限制,限制其取值只能为“男”或“女”。
(6)限制学生表的入学成绩取值只能在300至700之间。
(7)分别指定家庭成员表的主键为“ID”,班级表的主键为“班级号”,课程表的主键为“课程号”,成绩表的主键为“学号”+“课程号”。
(8)鼠标单击Access的菜单“数据库工具”,再点“关系”按钮,出现数据库关系图。
(9)给班级表与学生表之间加上关系联系线,设定它们之间的联系是按班级号一对多的联系,并且加上参照完整性约束,以及级联更新和级联删除。然后通过对表记录的更新操作进行验证。
(10)按照步骤(9)的方法,对其它表加上参照完整性约束。
请将实验步骤中的每一步,使用截图方式记录其过程。
解释什么是记录、字段、主键、实例完整性、参照完整性、域完整性。
成绩:指导教师签名:

最新数据库实验二实验报告

最新数据库实验二实验报告

最新数据库实验二实验报告实验目的: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查询语句

实验二:数据查询语言实验内容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中,我们将探索数据库的一些高级功能,包括索引、视图和事务处理。

通过这些实验,我们将深入了解数据库的内部工作原理和优化方法。

一、索引的作用和实验结果索引是数据库中用于加速数据检索的重要工具。

在实验中,我们创建了一个包含大量数据的表,并为其中的某一列创建了索引。

通过对比查询速度,我们发现使用索引可以显著提高查询效率。

索引的作用类似于字典的目录,它可以帮助数据库快速定位到需要查询的数据,而不需要遍历整个表。

二、视图的定义和应用视图是数据库中的虚拟表,它是由一个或多个基本表的数据组成的。

在实验中,我们创建了一个视图,用于展示特定条件下的数据。

通过视图,我们可以方便地查看和处理数据,而不需要直接操作底层的表。

视图的定义和使用可以大大简化复杂的查询操作,提高数据的可读性和可维护性。

三、事务处理的原理和实现事务处理是数据库中保证数据一致性和完整性的重要机制。

在实验中,我们模拟了一个银行系统的转账操作,并使用事务处理来确保转账的正确性。

事务处理的原理是将一系列操作作为一个整体进行提交或回滚,以保证数据的一致性。

通过实验,我们了解了事务处理的基本概念和实现方法,以及如何处理并发操作和故障恢复。

四、数据库优化的思路和方法数据库优化是提高数据库性能的关键环节。

在实验中,我们通过调整表结构、创建索引和优化查询语句等方式来提高数据库的执行效率。

通过实验结果的对比,我们发现合理的优化方法可以显著提高数据库的响应速度和并发处理能力。

同时,我们也了解到数据库优化需要综合考虑多个因素,包括数据量、查询频率和硬件资源等。

结论通过数据库实验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)实验二 数据库的创建、管理、备份及还原实验

数据库原理实验报告(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

数据库实验报告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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二:交互式SQL语句的使用1、实验目的(1)掌握数据库对象的操作过程,包括创建、修改、删除(2)熟悉表的各种操作,包括插入、修改、删除、查询(3)熟练掌握常用SQL语句的基本语法2、实验平台使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。

3 实验内容及要求选择如下一个应用背景之一:●学生选课系统●习题3、4、和5中使用的数据库●其它你熟悉的应用(1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。

(2)要求认真进行实验,记录各实验用例及执行结果。

(3)深入了解各个操作的功能。

实验要求包括如下方面的内容:3.1 数据定义1.基本表的创建、修改及删除2.索引的创建3.视图的创建3.2 数据操作完成各类更新操作包括:1.插入数据2.修改数据3. 删除数据3.3 数据查询操作完成各类查询操作1.单表查询2.分组统计3. 连接查询4. 嵌套查询5. 集合查询3.4 数据操作1.创建视图2.视图查询参考示例:建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。

一、数据定义创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表:表1. Student表结构表2. Course表结构表3. SC表结构1.创建、修改及删除基本表(1)创建Student表CREATE TABLE Student(Sno CHAR(8)PRIMARY KEY,Sname CHAR(8),Ssex CHAR(2)NOT NULL,Sage INT,Sdept CHAR(20));(2)创建Course表CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40)NOT NULL,Cpno CHAR(4),Ccredit SMALLINT,);(3)创建SC表CREATE TABLE SC(Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno),Cno CHAR(4),Grade SMALLINT,);(4)创建员工表EmployeeCREATE TABLE Employee(编号CHAR(8)PRIMARY KEY,姓名VARCHAR(8)not null部门CHR(40),工资numeric(8,2),生日datetime,职称char(20),);指出该语句中的错误并改正后执行。

(5)检查表是否创建成功SELECT*FROM StudentSELECT*FROM CourseSELECT*FROM SCSELECT*FROM Employee(6)修改表结构及约束●增加班级列ALTER TABLE Student ADD Sclass char(4)●修改年龄列ALTER TABLE Student ALTER COLUMN Sage smallint●增加约束ALTER TABLE Course ADD UNIQUE(Cname)(7)删除表2.创建索引(1)为Course表按课程名称创建索引CREATE INDEX iCname On Course(Cname)(2)为Student表按学生姓名创建唯一索引CREATE UNIQUE INDEX iSname ON Student(Sname) (3)为SC表按学号和课程号创建聚集索引CREATE CLUSTERED INDEX iSnoCno On SC(Sno,Cno desc) (4)为Course表按课程号创建唯一索引请自己完成该操作3.创建视图建立信息系学生的视图:CREATE VIEW IS_StudentASSELECT Sno,Sname,Sage FROM StudentWHERE Sdept='IS';3.2 数据操作1.插入数据将如下表格中的数据分别插入到数据库相应的表中:表4.学生基本信息表表5.课程信息表表6.学生选课信息表(1)插入到Student表INSERT INTO Student VALUES('20100001','李勇','男',20,'CS','1001')INSERT INTO Student VALUES('20100002','刘晨','女',19,'CS','1001')INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept,Sclass)VALUES('20100021','王敏','女',18,'MA','1002') INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept,sclass)VALUES('20100031','张立','男',19,'IS','1003') INSERT INTO Student(Sno,Sname,Ssex,sclass)VALUES('20100003','刘洋','女','1001')检查下列语句中的错误,并改正:INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept,sclass) VALUES('20100010',赵斌,'男','19','IS','1005') INSERT INTO Student VALUES('20100022','张明明',19,'男','CS','1002')(2)插入到Course表INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('1','数据库系统原理','5',4)INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('2','高等数学',null,2)INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('3','管理信息系统','1',4)请写出插入其余行的插入语句,并插入数据。

(3)插入到SC表INSERT INTO SC VALUES('20100001','1',92)INSERT INTO SC VALUES('20100002','2',80)INSERT INTO SC(Sno,Cno)VALUES('20100003','1')INSERT INTO SC(Sno,Cno,Grade)VALUES('20100010','3',null)请写出插入其余行的插入语句,并运行。

(4)多行插入到表中创建存一个表,保存学生的学号、姓名和年龄:CREATE TABLE cs_Student(学号char(8),姓名char(8),年龄smallint);插入数据行:INSERT INTO cs_StudentSELECT Sno,Sname,SageFROM student Where Sdept='CS';(5)检查插入到表中的数据SELECT*FROM StudentSELECT*FROM CourseSELECT*FROM SC2.修改数据(1)将学生20100001的年龄改为22岁。

UPDATE student SET Sage= 22 WHERE Sno='20100001';(2)将所有学生的年龄增加一岁。

UPDATE Student SET Sage=Sage+1(3)填写赵斌同学的管理信息系统课程的成绩UPDATE SC SET Grade= 85WHERE Sno='20100010'AND Cno='3'(4)将计算机科学系全体学生的成绩加5分UPDATE sc SET Grade=Grade+ 5WHERE'CS'=(select Sdept from student where student.Sno=sc.Sno);(5)请自己完成如下操作●将刘晨同学的2号课程成绩修改为80●将“20100021”同学的学号修改为“20100025”(6)检查数据是否修改3. 删除数据(1)删除学号为201000022的学生记录DELETE FROM Student WHERE Sno='20100022'(2)删除学号20100001学生的1号课程选课记录将选课信息复制到一个临时表tmpSC中:SELECT*INTO tmpSC FROM SC在tmpSC中执行删除操作:DELETE FROM tmpSC WHERE Sno='20100001'and Cno='1'(3)删除临时表中20100002学生的全部选课记录请自己完成该操作。

(4)删除计算机科学系所有学生的选课记录DELETE FROM tmpSC WHERE'CS'=(select Sdept from student where student.Sno=tmpSC.Sno);(5)删除全部选课记录DELETE FROM tmpSC(6)检查数据是否删除3.3 数据查询操作完成如下查询操作:1.单表查询(1)按指定目标列查询●查询学生的详细记录:SELECT*FROM Student;●查询学生的学号、姓名和年龄SELECT Sno,Sname,Sage FROM Student;(2)目标列包含表达式的查询●查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。

SELECT Sname,'Year of Birth: ',2004-Sage,LOWER(Sdept) FROM Student;(3)查询结果集中修改列名称●查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。

相关文档
最新文档