SQLserver数据库实验4

合集下载

SQL Server数据库实验指导书

SQL Server数据库实验指导书

SQL Server数据库实验指导书SQL Server数据库实验指导书《SQL Server 数据库》教研小组编著目录实验一 SQL Server常用管理工具的使用 ................................................ ............. 2 实验二创建数据库 ................................................ (3)实验三数据库的管理 ................................................ ............................................ 4 实验四表的操作 ................................................ ....................................................6 实验五表的完整性 ................................................ (7)实验六简单查询 ................................................ (9)实验七高级查询 ................................................ ....................................................9 实验八视图的使用 ................................................ .......................................... 10 实验九索引 ................................................ ................................................... ... 11 实验十存储过程 ................................................ (11)实验十一触发器 ................................................ (12)实验十二数据库的备份与恢复 ................................................ ......................... 13 20XX-9-1实验一 SQL Server常用管理工具的使用实验目的1. 理解服务的概念,掌握SQL Server服务的启动、暂停和停止。

实验四 数据库约束实验

实验四 数据库约束实验

实验四数据库约束实验实验四数据库约束实验实验四:数据库约束实验一、实验目的(1)了解数据库完整性约束的概念。

(2)掌握SQL server的完整性约束技术(3)了解sqlserver的违反完整性约束的处理措施。

二、实验内容(1)理解域完整性、实体完整性、引用完整性和用户定义完整性的含义(2)定义和管理主键约束、外键约束和唯一性约束(3)定义和管理检查约束、默认值约束和允许空值约束。

3.实验指导数据库完整性约束包括域完整性、实体完整性、参照完整性和用户定义完整性约束,其中,域完整性约束、实体完整性和参照完整性约束是关系模型必须满足的完整性约束条件。

域完整性约束是保证数据库字段取值的合理性约束。

在SQL server中,可以通过建立“约束”和其他措施来实现数据完整性约束。

约束包括五种类型:主键约束、唯一性约束、检查约束、默认值约束、外键约束和外键约束。

(1)主键约束主键约束指在表中定义一个主键来唯一确定表中每一行数据的标识符对于主键约束,一些数据库具有不同的规则。

实验4.1主键的设置和管理(1)在ssms窗口中设置和修改主键(2)使用T-SQL语句定义和修改主键实验4.2sql处境字段intidentity(1,1)在选择查询期间添加列实验4.3唯一性约束的设置与删除用t-sql语句定义或修改唯一性约束实验4.4创建和管理检查约束用createtable语句中创建检查约束创建表时可以创建检查约束。

以下是一个简单的createtable脚本,包括创建检查约束的代码:实验4.5外键的定义和管理1、在定义数据表时定义外键2.如果在定义表SC时没有定义外键,则可以添加表SC的外键约束fk_u_SnO,表SC 中的SnO受SQL Server主键约束-表s中的SnO3、当外键没有用时,可以删除它。

例如删除sc表的外键fk_s_sno。

数据库sqlserver实验报告

数据库sqlserver实验报告

数据库sqlserver实验报告实验一熟悉常用的DBMS:SQL SERVER 2022、Oracle试验内容及要求:〔1〕了解不同数据库管理系统及不同版本的相应功能特点目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比拟成熟。

面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。

国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX 和INGRES。

这些产品都支持多平台,如 UNIX、VMS、Windows,但支持的程度不一样。

IBM的DB2也是成熟的关系型数据库。

但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400操作系统。

1.MySQLMySQL是最受欢送的开源SQL数据库管理系统,它由 MySQL AB开发、发布和支持。

MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。

MySQL是MySQL AB 的注册商标。

MySQL是一个快速的、多线程、多用户和健壮的SQL数据库效劳器。

MySQL效劳器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。

与其他数据库管理系统相比,MySQL具有以下优势: (1)MySQL是一个关系数据库管理系统。

(2)MySQL是开源的。

(3)MySQL效劳器是一个快速的、可靠的和易于使用的数据库效劳器。

(4)MySQL效劳器工作在客户/效劳器或嵌入系统中。

(5)有大量的MySQL软件可以使用。

2.SQL ServerSQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。

目前最新版本是SQL Server 2022,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。

sqlserver的实训总结-(精选4篇)

sqlserver的实训总结-(精选4篇)

sqlserver的实训总结-(精选4篇)sqlserver的实训总结共四--篇1在编程的过程中遇到问题,可以说得是困难重重,这毕竟是第一次编程这么多,这么认真,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说代码不熟悉,还好通过老师的细心指导才能达到最终效果通过这次程设计与制作实训,一定把以前所学过的知识重新温故。

这个星期是我们SQL Server 数据库管理课的实训,经过一个星期的实训,让我领会到了许多平时课堂上所没有接受的课外知识,很让人受益匪浅,懂得如何去运用,而进行的一次分析设计综合的训练。

而本次实训的目的是让我们掌握数据库系统的原理、技术。

将理论与实际相结合,应用现有的数据库管理系统软件,规范、科学地完成一个设计与实现。

这次我们实训的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。

从实训中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。

我们实训的另一个内容是数据库的约束、视图、查询。

从中我们了解到查询语句的基本结构,和简单SELECT语句的使用,多表连接查询。

而在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的大部分操作,使用视图一样可以完成。

使用视图不仅可以简化数据操作,还可以提高数据库的安全性,不仅可以检索数据,也可以通过视图向基表中添加、修改和删除数据。

存储过程、触发器也是我们实训的内容之一,在操作中有建立存储过程,执行存储过程,及查看和修改存储过程,这些都是非常基础的东西,但对用户却是非常重要的呢,只有熟悉了T_SQL语言,才能更好的掌握更多的东西。

sqlserver实验报告

sqlserver实验报告

实验报告:SQL Server一、实验目的本次实验旨在熟悉并掌握SQL Server数据库管理系统,了解其功能特点、操作方法和应用场景。

通过实验,我们希望深入理解数据库的基本概念,掌握SQL Server的基本操作,为后续的数据库学习和应用打下坚实的基础。

二、实验内容1. 了解SQL Server版本和功能特点通过阅读教材、查阅资料,我们了解了SQL Server的不同版本及其功能特点。

目前,SQL Server最新版本是SQL Server 2008,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。

2. 安装SQL Server在实验过程中,我们按照教材的指导,成功安装了SQL Server 2008。

安装过程中,我们注意了安装选项的选择,确保安装了必要的组件和工具。

3. 创建和管理数据库在SQL Server中,我们通过对象资源管理器创建了名为“testdb”的数据库。

在创建过程中,我们设置了数据库的名称、文件路径、文件大小等参数。

同时,我们还学习了如何修改数据库的属性,如修改数据库的名称、删除数据库等。

4. 创建和管理表在“testdb”数据库中,我们创建了名为“employees”的表,用于存储员工信息。

在创建表的过程中,我们定义了表的列名、数据类型、约束等属性。

同时,我们还学习了如何修改表的属性,如添加列、删除列等。

5. 查询数据通过查询语句,我们从“employees”表中检索了所有员工的信息。

在查询过程中,我们使用了SELECT语句,并通过WHERE子句对结果进行了筛选。

同时,我们还学习了如何使用聚合函数对数据进行统计和分析。

6. 插入、更新和删除数据在“employees”表中,我们插入了新的员工信息,更新了现有员工的信息,并删除了离职的员工信息。

在插入、更新和删除数据的过程中,我们使用了INSERT、UPDATE和DELETE语句。

同时,我们还学习了如何使用事务来确保数据的完整性和一致性。

新SQL——SERVER实验练习答案

新SQL——SERVER实验练习答案

SQL-Server实验答案上海师范大学计算机系目录第一部分企业管理器的使用 (3)试验一注册服务器.................................................................................. 错误!未定义书签。

试验二创建数据库.................................................................................. 错误!未定义书签。

试验三创建表.......................................................................................... 错误!未定义书签。

实验四数据输入...................................................................................... 错误!未定义书签。

实验五登录到数据库服务器.................................................................. 错误!未定义书签。

第二部分SQL语言 (3)第二部分SQL语言 (3)试验一数据库创建 (3)试验二创建表 (3)试验三创建数据完整性 (5)试验四数据完整性试验 (6)试验五索引 (10)试验六更新数据 (11)试验七 Sql 查询语句 (12)试验八视图 (15)试验九安全性控制实验 (16)试验十存储过程 (17)试验十二触发器 (21)试验十二恢复技术 (25)试验十三事务 (26)试验十四锁 (27)第一部分企业管理器的使用第二部分SQL语言试验一数据库创建目的:1掌握利用SQL语言进行数据库的创建、维护。

2 sp_helpdb 命令要求:1 创建数据库 2 修改数据库 3 删除数据库一建立school 数据库1 使用查询分析器创建数据库 schoolCreate DataBase school2 使用 SP_helpdb 查询数据库 School 的信息3 使用SQL-Server 的企业管理器查看数据库 school 的信息。

实验三、四创建表及输入数据及完整性约束

实验三、四创建表及输入数据及完整性约束

实验三、四 创建表及输入数据及完整性约束本实验需要4学时。

一、实验目的要求学生熟练掌握和使用Transact-SQL、SQL Server企业管理器创建表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。

学生熟练掌握使用 SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。

二、实验内容1 创建表、确定表的主码和约束条件。

为主码建索引。

2 查看和修改表结构。

3 输入数据、修改数据和删除数据三、实验步骤(1)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价,作者).读者(编号,姓名,单位,性别,电话).借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。

(2)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。

(3)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。

要求记录不仅满足数据约束要求.还要有表间关联的记录。

(4)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。

删除和修改操作。

(5)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作、要求学生、课程和选课表中各有10条以上的记录。

四、实验方法1 新建表在 SQL Serve 2000的数据库中,文件夹是按数据库对象的类型建立的.文件夹名是该数据库对象名。

当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的图书.读者数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。

SQLSERVER2008实用教程实验参考答案(实验4)

SQLSERVER2008实用教程实验参考答案(实验4)

SQLSERVER2008实用教程实验参考答案(实验4)实验4 数据库的查询和视图一、SELECT语句的基本使用1. 查询Employees表中所有数据2. 查询Employees表中指定字段数据3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和电话查询月收入高于2000元的员工号码查询1970年以后出生的员工的姓名和住址5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。

7. 使用SELECT语句进行简单计算计算每个雇员的实际收入8. 使用内置函数获得员工总数计算Salary表中员工月收入的平均数获得Employees表中最大的员工号码计算Salary表中所有员工的总支出查询财务部雇员的最高和最低实际收入9. 模糊查询找出所有姓王的雇员的部门号找出所有地址中含有“中山”的雇员的号码及部门号找出员工号码中倒数第二个数字为0的员工的姓名、地址和学历10. Between…And…和Or的使用找出收入在2000~3000元之间的雇员编号找出部门为“1”或“2”的雇员的编号11. 使用INTO子句,由源表创建新表由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工二、子查询的使用1. 查找在财务部工作的雇员情况2. 用子查询的方法查找所有收入在2500以下的雇员的情况3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名5. 查找比所有财务部的雇员收入都高的雇员的姓名6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名三、连接查询的使用1. 查询每个雇员的情况及薪水的情况2. 查询每个雇员的情况及其工作部门的情况3. 使用内连接的方法查询名字为“王林”的雇员所在的部门4. 使用内连接的方法查找出不在财务部工作的所有雇员信息5. 使用外连接方法查找出所有员工的月收入6. 查找财务部收入在2000元以上的雇员姓名及其薪水详情7. 查询研发部在1976年以前出生的雇员姓名及其薪水详请四、聚合函数的使用1. 求财务部雇员的平均收入2. 查询财务部雇员的最高和最低收入3. 求财务部雇员的平均实际收入4. 查询财务部雇员的最高和最低实际收入5. 求财务部雇员的总人数6. 统计财务部收入在2500元以上的雇员人数五、GROUP BY、ORDER BY子句的使用1. 查找Employees表中男性和女性的人数2. 按部门列出在该部门工作的员工的人数3. 按员工的学历分组,排列出本科、大专、硕士的人数4. 查找员工数超过2的部门名称和雇员数量5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人6. 将雇员的情况按收入由低到高排列7. 将员工信息按出生时间从小到大排列8. 在ORDER BY 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列六、视图的使用1. 创建视图(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列(2)创建视图Employees_Departments_View,视图包含员工号码、姓名、所在部门名称(3)创建视图Employees_Salary_View,视图包含员工号码、姓名和实际收入三列2. 查询视图从视图Employees_Salary_View中查询出姓名为“王林”的员工的实际收入3. 更新视图(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’)执行完命令后,分别查看Departments_View和Department表中发生的变化(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’(5)删除视图Departments_View中最新增加的的一条记录4. 删除视图Employees_Departments_View5. 在界面工具中操作视图一、SELECT语句的基本使用1. 查询Employees表中所有数据SELECT*FROM Employees;2. 查询Employees表中指定字段数据SELECT EmployeeID,Name,DepartmentID FROM Employees;3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行SELECT Distinct DepartmentID,Sex FROM Employees;4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和电话Select Address,PhoneNumber FROM Employees WHERE EmployeeID='000001';查询月收入高于2000元的员工号码SELECT EmployeeID FROM Salary WHERE InCome>2000;查询1970年以后出生的员工的姓名和住址SELECT Name,Address FROM Employees WHERE YEAR(Birthday)>'1970'; SELECT Name,Address FROM Employees WHERE Birthday>'1970';5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话SELECT Address AS地址,PhoneNumber AS电话FROM Employees;查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期SELECT Name AS姓名,Birthday AS出生日期FROM Employees WHERE Sex=1;6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”SELECT Name AS姓名,CASEWHEN Sex=1 THEN'男'WHEN Sex=0 THEN'女'ENDAS性别FROM Employees;查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。

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

数据库原理及应用
实验报告
题目:数据库定义实验
专业:网络工程
班级:
学号:
姓名:
2014年12 月9 日
一、实验目的与要求1.掌握触发器的使用。

2.掌握存储过程的创建、修改和删除;掌握存储过程的执行。

二、实验内容
(1)触发器的使用
①在数据表“学生”中创建update触发器,级联更新“选课”表种相应的记录信息。

②利用Delete表,将“学生”表中被删除的记录存储到“学生备份”表中,以供日后的数据查询和分析。

(2)存储过程的使用
①在Student数据库中,建立一个存储过程,要求统计计算机系学生的人数,并将人数返回给用户。

②在Student数据库中,建立一个存储过程,要求
统计成绩大于等于90分学生的人数;
统计成绩大于等于80分并且小于90分学生的人数,并将人数返回给用户。

三、解决方案
--①在数据表“学生”中创建update触发器,级联更新“选课”表种相应的记录信息。

create trigger st_update_sc
on student for update
as
declare @bsno char(9),@asno char(9)
select @bsno=sno from deleted
print '更新前的学号:'+@bsno
select @asno=sno from inserted
print '更新后的学号:'+@asno
update sc set sno=@asno where sno=@bsno;
--②利用Delete表,将“学生”表中被删除的记录存储到“学生备份”表中,以供日后的数据查询和分析。

--创建备份用的表
create table st_back (
sno char(10) primary key, sname char(10),
ssex char(2) ,
sage smallint,
dno char(3),
);
create trigger st_delete on student
for delete as
declare @sno char(10),@sname char(10) ,@ssex char(2) ,@sage smallint , @dno char(3)
select @sno=sno ,@sname=sname, @ssex=ssex ,@sage=sage,@dno=dno from deleted
print '删除的学号:'+@sno
delete sc where sc.sno=@sno --级联删除sc中的数据
insert into st_back values(@sno,@sname,@ssex,@sage,@dno);
--③在Student数据库中,建立一个存储过程,要求统计计算机系学生的人数,并将人数返回给用户。

create procedure SUM5dept as
select count(*) from student where dno='005'
exec SUM5dept
--○4在Student 数据库中,建立一个存储过程,要求统计成绩大于等于90分学生的人数;
--统计成绩大于等于80分并且小于90分学生的人数,并将人数返回给用户。

create procedure sc_proc as
select count(*) from sc where grade >=90; create procedure sc_proc1 as
select count(*) from sc where grade <90 and grade >=80; exec sc_proc; exec sc_proc1; 四、实验结果
-①在数据表“学生”中创建update 触发器,级联更新“选课”表种相应
的记录信息。

②利用Delete 表,将“学生”表中被删除的记录存储到“学生备份”表中,以供日后的数据查询和分析。

③在Student 数据库中,建立一个存储过程,要求统计计算机系学生的人数,并将人数返回给用户。

○4在Student数据库中,建立一个存储过程,要求统计成绩大于等于90分学生的人数;
--统计成绩大于等于80分并且小于90分学生的人数,并将人数返回给用户。

五、出现的问题及解决的方法
1.在级联根系sc表的时候出现了一些问题, 在更新sc的sno的时候由于存在外键越是所以在更新的时候会提示说更改后的键不存在.
解决方法删除外键约束.
alter table sc drop constraint FK__sc__sno__24927208;。

相关文档
最新文档