数据库实验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”数据库以及相应的学生表和课程表。
- 插入数据操作顺利,能够正确输入数据至指定数据表。
- 查询操作无误,能够根据不同条件检索所需数据。
- 更新和删除操作执行正确,数据表中的记录得到相应修改。
- 完整性约束有效,违反约束的操作被数据库拒绝执行。
- 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();。