文档库 最新最全的文档下载
当前位置:文档库 › 石大 数据库实验四

石大 数据库实验四

石大  数据库实验四
石大  数据库实验四

实验4 存储过程和触发器

一、实验目的

1.加深和巩固对存储过程和触发器概念的理解。

2. 掌握触发器的简单应用。

3. 掌握存储过程的简单应用。

二、实验环境

硬件环境:PC机

软件环境:操作系统为Microsoft Windows 2007版本。

数据库管理系统为Microsoft SQL Server 2008企业版。

三、实验内容

1. 熟悉运用SQL Server企业管理器和查询分析器进行存储过程的创建和删除。

2. 熟悉运用SQL Server企业管理器和查询分析器进行触发器的创建和删除。

四、实验步骤(基于Microsoft SQL Server 2008企业版)

1.建立存储过程class_info ,当执行该过程时,只要给出学生的姓名,就能查到他们的班级名称。使用存储过程class_info查找学生“张强”的信息。create procedure class_info@s_name varchar(20)

as select sno as学号,sname as姓名,zhuangye as所在班级名称

from s

where sname=@s_name

运行结果:

exec class_info@s_name='张强'

运行结果:

2.删除存储过程 class_info

drop procedure class_info

运行结果:

3.使用触发器实现S,SC表的级联删除

create trigger trig_s_deiete

on s

after delete

as

delete

from sc

where sno in

(select sno from deleted)

运行结果:

4.在数据库中创建一个触发器,当向S表中插入一条记录时,检查该记录的学号在S表中是否存在,如果有则不允许插入。

create trigger s_check_insert on s

for insert

as

if exists(select*from s where sno in(select sno from s))

begin

raiserror('数据重复,不允许插入',16,1)

rollback transaction

end

运行结果:

测试例子:

插入相同数据,如i nsert into s(sno,sname,gendar,age,zhuangye)values('200210000','李峰','男',22,'软件工程')

运行结果:

分析:向S表中插入相同数据(已存在数据时),首先违背的是主键的约束,因为元组主键的值必须不一样,其次才是违背触发器。

5.创建基于学生表的插入触发器,当向学生表插入一条记录时,返回一条信息:“欢迎新同学”。

create trigger s_checked_insert on s

for insert

as

print('欢迎新同学')

运行结果:

测试例子:

insert into s(sno,sname,gendar,age,zhuangye)values('2002987623','刘琦','男',20,'储运工程')

运行结果:

6.为S表创建触发器s_insert,当向S表中插入数据时,要求学号必须以"2002"开头,否则取消插入操作。

create trigger s_insert on s

for insert

as

if exists(select*from inserted where sno not like'2002%')

begin

raiserror('学号错误,不允许插入',16,1)

rollback transaction

end

运行结果:

测试例子(不以“2002”开头):

insert into s(sno,sname,gendar,age,zhuangye)values('2012070612','小妮','女',20,'工商管理')

运行结果:

五、实验总结要求

分析实验结果,分析实验中出现的问题及解决方法,书写实验体会等。

分析实验结果:

运行结果与人工分析的结果基本相同,达到预期的目标和要求。

实验中出现的问题:

对于存储过程不熟悉,不熟悉它的结构和具体的执行过程,在编写SQL语句的时候不能灵活的运用。对于触发器,不熟悉它的实际用处和具体的执行过程,在编写语句的时候,对于触发器的触发时间,总是搞不清,编写的触发器总是一直被触发,一直出现错误,以至于连正常的插入操作都不能被执行,级联删除的时候,书写的SQL语句有错误,测试的时候,把正常的不该删除的数据删除,然后还得自己重新添加。

解决方法:

对照与题目的要求,仔细认真的研读课本中的例题,了解其本质,查阅相关资料和一些参考书,一条一条语句的检查,认真分析思考其逻辑上的错对,结合一些例题,书写出对应的正确的语句,然后就是在以后的编程中,尽可能把数据备份一下,防止数据的错误修改或删除。

实验体会:

存储过程是一个被命名、存储在数据库服务器上的SQL语句和可选控制流程语句的预编译集合,它以一个名称存储,并作为一个单元处理。存储过程封装重复性工作的一种办法,支持用户变声明的变量、条件执行和其他有用的编程功能。它有许多优点,只在创造时编译,不需重新编译,可以重复使用,安全性高等,在实际的编程中它也扮演着重要的角色,独到的用处,我们应熟悉掌握。触发器是一组SQL语句和流程控制语句的集合,它创建在某个表上,且仅对该表起一定的约束作用,并且仅当在触发器表更新数据时自动触发触发器。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称被直接调用。触发器在实际编程中可灵活的运用,可以对表的操作起一定的约束作用,防止错误的操作被执行而造成数据的流失或更改,我们应熟练掌握其本质和所适用的环境,以便在以后的编程中解决一些意想不到的问题。

数据库 教务管理系统 综合实验报告

华北科技学院计算机系综合性实验 实验报告 课程名称《数据库系统A》 实验学期2011 至2012 学年第 2 学期学生所在系部计算机学院 年级2010 专业班级网络B101班 学生姓名学号 任课教师 实验成绩 计算机系制

《数据库系统A》课程综合性实验报告 一、实验目的 利用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够正确应用各个阶段的典型工具进行表示。 二、设备与环境 (1) 硬件设备:PC机一台 (2) 软件环境:安装Windows操作系统,安装数据库管理系统SQL Server2008等。 三、实验内容 1.需求分析 首先,通过调查,教务管理系统中主要有四类用户,即学生用户,老师用户,教务管理员和系统管理员。对应这些用户,其处理要求的主要的功能就是进行一系列的查询和各类数据的管理及维护。其具体的处理要求如下: 1)系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码,数据备份,数据还原,注销等功能。 2)教务管理:实现教务管理人员对系统的管理,包括课程安排,成绩审核,学生成绩管理,学生学籍管理等功能。 3)基本信息:实现显示学生和老师以及课程、班级、系别的基本信息(包括学生基本信息,教师基本信息,课程基本信息等)。 4)查询:包括实现学生查询,老师查询。学生查询包括自己的基本信息,自己的课程,课表,成绩等,老师查询包括查询自己的信息,自己所带班的学生,自己的课表以及学生成绩等。 5)教师对成绩的录入以及自己信息的查询与维护。 其次,该教务管理系统中,结合以上用户种类以及其具体的处理功能要求,教务管理系统要具备以下信息要求: 教务管理系统涉及的实体有: 教师——工作证号、姓名、电话、工资、邮箱; 学生——学号、姓名、性别、年龄、系代号等; 班级——班号、最低总学分等; 系——系代号、系名和系办公室电话等; 课程——课序号、课名、学分、最大人数等; 其中,这些实体之间的联系如下: 每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系。 每个班的班主任都由一名教师担任 一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一

数据库第四次实验报告

南昌航空大学实验报告 二0一年月日 课程名称:数据库概论实验名称:存储过程及触发器 班级:姓名:同组人: 指导教师评定:签名: 一、实验参考代码及结果 存储过程: (1)创建存储过程 9.11 CREATE PROCEDURE Select_S AS SELECT*FROM S WHERE sex='女' GO Execute Select_S 9.12 CREATE PROCEDURE InsRecToS(@sno char(5),@sn varchar(8),@sex char(2)='男',@age int,@dept varchar(20)) AS INSERT INTO S VALUES(@sno,@sn,@sex,@age,@dept) GO Execute InsRecToS@sno='S8',@sn='罗兵',@age='18',@dept='信息' 执行前: 执行后:

9.13 CREATE PROCEDURE Query_S(@Sno char(5),@SN VARCHAR(8)OUTPUT,@Age SMALLINT OUTPUT) AS SELECT@sn=sn,@age=age FROM S WHERE Sno=@Sno (2)执行存储过程 Declare@SN VARCHAR(8),@AGE SMALLINT execute Query_S'98010',@SN OUTPUT,@AGE OUTPUT SELECT@SN,@AGE (3)查看和修改存储过程 9.14 ALTER PROCEDURE[dbo].[InsRecTos](@sno char(5),@sn varchar(8),@sex char(2)='女',@age smallint,@dept varchar(20)) AS INSERT INTO S VALUES(@sno,@sn,@sex,@age,@dept) (4)查看、重命名和删除存储过程 9.15 exec sp_helptext Select_S 9.16 sp_rename Select_S,Select_Student 执行后:

《数据库原理》实验4

实验四:管理SQL Server表数据 一、实验目的 1.熟悉数据表结构及使用特点; 2.熟悉使用Management Stuio界面方式管理数据表数据; 3.熟悉使用T-SQL语句管理数据表数据。 二、实验环境 已安装SQL Server2005企业版的计算机(13台); 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SQL Server数据表数据的管理方法; 2.了解SQL Server数据类型; 3.完成实验报告(部分题只需给出关键语句)。 五、实验内容及步骤 以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL语句实现进行以下操作: 1.向各个数据表中插入如下记录: 学生信息表(student)

200515014张丰毅男22CS 200515015李蕾女21EN 200515016刘社男21CM 200515017刘星耀男18CM 200515018李贵男19EN 200515019林自许男20WM 200515020马翔男21 200515021刘峰男25CS 200515022牛站强男22 200515023李婷婷女18 200515024严丽女20 200515025朱小鸥女30WM 课程信息表(course) 选课信息表(sc)

200515005289 200515006265 200515008272 200515009276 200515010296 200515010886 200515011862 20051501580 200515018858 200515001462 200515002485 200515021954 200515001558 200515021658 200515001770 2005150051065 2005150168Null 2005150178Null 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;

山东大学数据库第四次实验实验报告

實驗4 視圖操作 實驗目の:掌握創建、刪除視圖のSQL語句の用法,掌握使用企業管理器創建、視圖の方法。 實驗准備: 1)了解創建視圖方法。 2)了解修改視圖のSQL 語句の語法格式。 實驗內容: 1)使用企業管理器創建視圖 a)在pubs數據庫中以authors表為基礎,建立一個名為CA_authorの視圖, 使用該視圖時,將顯示所有state為CAの作者の基本信息。 2)使用SQL語句創建視圖 a)在查詢分析器中利用author表建立一個每個作者のID,lname,fname, phone,addressの視圖S_author。 b)建立一個employee_date視圖,利用employee表中信息,顯示1991年 1月1日之後雇傭の雇員のid,name,minit,job_id。 3)刪除視圖 a)使用企業管理器S_author視圖 b)使用SQL語句刪除CA_author、employee_date視圖 實驗要求: 用不同の方法創建視圖。 實驗步驟如下: 一、使用企業管理器創建視圖 a )在pubs數據庫中以authors表為基礎,建立一個名為CA_author の視圖,使用該視圖時,將顯示所有state為CAの作者の基本信息。

①右鍵點擊pubs數據庫文件下の視圖,選擇“新建視圖”,在彈出來の“添加表”中添加表authors。 ②在“添加表”一欄中添加表authors後點擊“關閉”,並全選author表中所有項目。 ③點擊保存,從彈出來の“選擇名稱”框中輸入視圖名稱“CA_author”。

④添加名為CA_author の視圖成功。 ⑤顯示所有state為CAの作者の基本信息。

数据库实验四作业及答案

实验4数据查询 一、实验目的 1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。 2.掌握使用SELECT语句进行条件查询的方法。 3.掌握嵌套查询的方法。 4.掌握多表查询的方法。 5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。 6.掌握联合查询的操作方法。 7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。 二、实验准备 1.了解SELECT语句的基本语法格式和执行方法。 2.了解嵌套查询的表示方法。 3.了解UNION运算符的用法。 4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。 5.了解IN、JOIN等子查询的格式。 6.了解INSERT INTO、UPDATE、DELETE的格式与作用。 三、实验内容及步骤 0. 创建studentsdb数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。 创建数据库代码 1.在studentsdb数据库中,使用下列SQL语句将输出什么? (1)SELECT COUNT(*) FROM grade (2)SELECT SUBSTRING(姓名,1,2) FROM student_info (3)SELECT UPPER('kelly')

(4)SELECT Replicate('kelly',3) (5)SELECT SQRT(分数) FROM grade WHERE 分数>=85 (6)SELECT 2,3,POWER(2,3) (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()) 2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。 SELECT*FROM student_info (2)查询学号为0002的学生的姓名和家庭住址。 SELECT姓名,家庭住址FROM student_info WHERE学号=0002 (3)找出所有男同学的学号和姓名。 SELECT学号,姓名FROM student_info

数据库实验四

西南石油大学实验报告 注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。 一、实验课时:2 二、实验目的 (1) 掌握使用T-SQL语句创建登录帐户的方法。 (2) 掌握使用T-SQL语句创建数据库用户的方法。 (3) 掌握使用T-SQL语句创建数据库角色的方法。 (4) 掌握使用T-SQL语句管理数据库用户权限方法。 三、实验要求 (1) 使用SQL Server 2008查询分析器。 (2) 严格依照操作步骤进行。 四、实验环境 (1) PC机。 (2) SQL Server 2008。 五、实验内容及步骤 注意事项: (1)首先在C盘根目录创建文件夹Bluesky,执行脚本文件“PracticePre-第11章安全管理.sql”,创建数据库BlueSkyDB和表; (2)如何建立“数据库引擎查询”;

(3)使用“select user_name()”可查询当前登录账号在当前数据库中的用户名。 步骤1 使用Transact-SQL创建三个SQL Server登录账户TUser1、TUser2、TUser3,初始密码均为“123456”。 --SA CREATE LOGIN TUser1 WITH PASSWORD='123456' CREATE LOGIN TUser2 WITH PASSWORD='123456' CREATE LOGIN TUser3 WITH PASSWORD='123456' 步骤2 使用TUser1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中BlueSkyDB数据库?为什么?

大型数据库第三次实验

大型数据库第三次实验

————————————————————————————————作者: ————————————————————————————————日期:

南京邮电大学计算机学院 《大型数据库技术》 实验三:MySQL数据库进阶开发 姓名:??班级:??学号: 年月日星期 说明:斜体需要输出的部分。 1MySQL的存储过程和函数 1.1创建企业销售系统的数据库,命名为salesdb 1.2创建一张商品销售表,命名为salerecords,包括如下字段:商品ID,商品名称, 销售单价,销售数量。 以上不需要截图。 1.3创建一个存储过程,名称自订,通过输入商品ID,商品名称,销售单价,销售数量 往表中插入一条记录。 输出截图:(包括存储过程定义,调用三次存储过程,以及表的查询结果) 1.4创建一个存储过程,名称自订,通过输入商品名称往表中插入100条记录。其中,

所插入第一条记录的商品ID由现有表中商品ID的最大值+1构成,后续记录中商品ID依次递增1。所插入第一条记录的商品价格与现有表中商品价格的最小值相同,后续记录的商品价格依次递增1。商品销售数量随机生成。 输出截图:(包括存储过程定义,表中前10条查询结果) 1.5创建一个存储过程,名称自定,通过输入商品ID的最小值,最大值,将表中商品ID 处于(最小值,最大值)范围内,且为偶数的记录删除,包括最小值与最大值本身。 此处不考虑商品ID不存在的情况,在实验时请选择1.4中创建的商品ID范围的子集。 输出截图:

1.6创建两个事件调度器,第一个每3秒往1.2的表中插入一条记录,第二个每30秒清空1.2 的表中的所有记录。 输出截图:(只需要截取两个事件调度器的定义,以及在三个不同时刻查询表中记录count (*)的结果。)

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

数据库实验四(含答案)

实验四使用SQL语句创建和删除数据库、表 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 3、学会使用T-SQL语句创建表。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 3.是用查询分析器,完成用SQL语句创建和删除基本表。 三. 实验要求 1、熟练使用查询分析器进行数据库的创建和删除操作。 2、用查询分析器,完成用SQL语句创建和删除基本表。 3、完成实验报告。 四. 实验内容 一、数据库 1.以下是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 , filegrowth=1) 运行上诉语句建立数据库userdb1

句,并建立“学生信息”数据库.(.mdf的名字可以修改) 3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 ,

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告 班级:计科*** 班 学号: **** 姓名: *** 2011年12月

数据库应用系统的初步开发 一、实验类别:综合型实验 二、实验目的 1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。 2.初步掌握基于C/S 的数据库应用系统分析、设计和实现方法。 3.进一步提高学生的知识综合运用能力。 三、实验内容 在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。 四、实验过程 (一.)系统需求说明 1 系统功能要求设计:此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。 容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。 2 系统模块设计 成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图: 登陆失败 退出系统 用户 验证 登陆成功

3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下: 数据库中用到的表: 数据库表名关系模式名称备注 Student 学生学生学籍信息表 Course 课程课程基本信息表 Score 成绩选课成绩信息表 Student基本情况数据表,结构如下: 字段名字段类型Not Null 说明 Student _sno Char Primary key 学号 Student _sn char Not Null 学生姓名 Student _sex char ‘男’或‘女’性别 Student _dept char 系别 Student_age char 年龄 Student_address char 地址 course数据表,结构如下: 字段名字段类型约束控制说明 course_cno char 主键(primary key)课程号 char not null 课程名称course_cnam e course_hour int not null 课时 course_score numeric(2,1) not null 学分 score情况数据表,结构如下: 字段名字段类型约束控制说明 score_id int not null 成绩记录号 course_cno char 外部键课程号 student_sno char 外部键学号 score int 成绩 (二)数据库结构设计 1.概念结构设计 由需求分析的结果可知,本系统设计的实体包括: (1)学生基本信息:学号,姓名,性别,地址,年龄,专业。 (2)课程基本信息:课程名,课程号,分数,学时,学分。

数据库系统概论(第四版)-第三章全部实验

实验一 【附】1、定义一个学生-课程模式S-T create schema”s-t”authorization WANG (若上句没有模式名”s-t”,则默认为WANG) 2、删除模式ZHANG drop schema ZHANG cascade (cascade级联:对象全删;restrict限制) 1.建立学生-课程数据库s_t; create database s_t 2.在数据库s_t下新建三张表:Student、Course、SC。 (1)学生表:Student(Sno,Sname,Sex,Sage,Sdept)。Student由学号(Sno)、姓名(Sname)、性别(Sex)、年龄(Sage)、所在系(Sdept)五个属性组成,其中Sno为主键。 create table Student (Sno char(9)primary key not null, Sname char(20)unique not null, Ssex char(2)not null, Sage smallint not null, Sdept char(20)not null) Insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215121','李勇','男',20,'CS') insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215122','刘晨','女',19,'CS') insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215123','王敏','女',18,'MA') insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215125','张立','男',19,'IS') (2)课程表:Course(Cno,Cname,Cpno,Ccredit) Course课程号(Cno)、课程名(Cname)、先行课的课程号(Cpno)、学分(Ccredit)四个属性组成,其中Cno为主键。其中Cpno参考了本表的Cno字段的值,Cno为主键 create table course (cno char(40)primary key not null, cname char(4)not null, ccredit smallint not null foreign key(Cpon)references course(Cno)) insert into Course values('1','数据库','5',4) insert into Course values('2','数学','',2) insert into Course values('3','信息系统','1',4) insert into Course values('4','操作系统','6',3) insert into Course values('5','数据结构','7',4)insert into Course values('6','数据处理','',2) insert into Course values('7','PASCAL语言','6',4)学生选课表:SC(Sno,Cno,Grade) SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,其Sno、Cno的组合为主键。create table SC (Sno char(9)not null, cno char(4)not null, Grade smallint not null) insert into SC values('200215121','1',92) insert into SC values('200215121','2',85) insert into SC values('200215121','3',88) insert into SC values('200215122','2',90) insert into SC values('200215121','3',80) ) 3基本表的修改: a)向Student表增加“入学时间”列,期数据类型为日期型 b)将年龄的数据类型由字符型改为整型 c)增加课程名称必须取唯一值的约束条件alter table studebt add s_entrance datetime alter table student alter column sage int alter table course add unique(cname) 实验二 1.查询全体学生的学号和姓名 select sno,sname from student 2.查询全体学生的详细记录 select* from student 3.查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示所有系名。select sname,'year of birth:',2011-sage,lower( sdept) from student 4.查询选修了课程的学生学号,去掉结果中的重复行。 select distinct sno from sc 5.查询所有年龄在20~23岁之间的学生姓名、系别和年龄。 select sname,sdept,sage from student where sage not between20and23

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 2012 ~2013 学年第二学期

实验1 使用向导创建和删除数据库 一、实验目的 1.熟悉SQL Server 中SQL Server Management Studio的环境 2.了解SQL Server 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法 二、实验要求 1.熟练使用SSMS进行数据库的创建和删除操作。 2.完成实验报告。 三、实验内容 设有一学籍管理系统,其数据库名为“EDUC”。 初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。 日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。

数据库实验八综合性实验报告

华南农业大学综合性设计性 实验报告 实验名称:数据库设计 项目性质:综合性设计性实验 所属课程:数据库系统概念 开设时间:2015-2016学年第1学期学生班级: 指导教师: 2015年12月12日

华南农业大学数学与信息学院 综合性、设计性实验成绩单 开设时间:2015-2016学第一学期

一、设计部分 1.需求分析 1.1 用户需求概述 本系统为图书管理系统数据库,该系统开发的主要目的是对大学图书馆的图书信息进行记录统计管理。具体完成录入图书信息,录入借还书记录,录入读者信息等功能。需要完成的主要功能有: 1)学生信息录入 该功能供图书馆管理员使用,学生首次借阅图书前,必须登记并录入个人身份信息,内容包括:学号、姓名、联系电话。 2)图书信息录入 该功能供图书馆管理员使用,对于首次入库的新书,必须录入图书目录资料,内容包括:图书编号、书名、作者、出版社、简介。 3)借书记录录入 该功能供图书馆管理员使用,读者凭校园卡到柜台办理借书手续,由图书馆管理人员录入借书记录,内容包括:日期、学号、图书编号。 对读者借阅图书的限制条件包括: ①读者一次可借阅1-3本图书, ②借出未还的图书,累计不得超出5本; ③没有逾期未归还的图书,从借出之日开始计算,超过90天尚未归还则视为逾期。 4)还书记录录入 该功能供图书馆管理员使用,读者凭校园卡到柜台办理归还借书手续,由图书馆管理人员录入还书记录,内容包括:日期、学号、图书编号。学生可以一次归还1至多册所借阅的图书。 5)图书信息查询 该功能供学生使用,学生自行输入书名、作者、出版社等信息作为查询条件,

系统列出满足查询条件的图书目录。 6)学生信息查询 该功能供图书馆管理人员使用,操作人员输入学生学号,系统列出该学生的个人信息、以及历次的借阅/归还图书记录。 1.2 数据需求

数据库认证实验四答案

--1,创建登陆用户temp1,密码是1234,加入到school数据库中并赋予db_owner数据库角色. Sp_addlogin'temp1','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp1'; --- /* CREATE LOGIN tmp1 WITH PASSWORD = '123',default_database=School; -- Creates a database user for the login created above. CREATE USER user1 FOR LOGIN tmp1; */ --查看登录账号的信息 Select*from sys.syslogins where name='temp1'; /* use School go exec sp_addsrvrolemember 'temp1','sysadmin';--添加服务器角色 */ --赋予db_owner数据库角色. use School go exec sp_addrolemember'db_owner','temp1'; --2,创建登陆用户temp2,密码是1234, --加入到school数据库中,并赋予该用户对student表select,insert权限 Sp_addlogin'temp2','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp2';

grantselect,insert on student to temp2; --3,对数据库school进行完全数据库备份,写出备份语句 Use School Go Sp_addumpdevice'disk','schoolinfo','e:\data\schoolinfo.bak' Go Backupdatabase school to schoolinfo withinit; --4,将student学生信息表中所有学生信息年龄改为20,进行差异化备份--修改表的数据 use school go update student set sage=20; ---执行差异化的备份 Use School Go Backupdatabase School todisk='e:\data\schoolinfo.bak'; Use school Go Backupdatabase School to schoolinfo withdifferential,init Use school Go select*from student Backupdatabase school to schooldemo withdifferential,init

实验五、访问数据库及综合性实验练习

实验五、访问数据库及综合性实验练习 实验学时: 该实验项目使用6学时 实验目的: 1、熟悉https://www.wendangku.net/doc/185660864.html,操作数据库的基本知识 2、学习https://www.wendangku.net/doc/185660864.html,提供的五大对象进行数据库访问基本编程方法 3、学习数据绑定技术和使用数据绑定控件 实验要求: 1、学会https://www.wendangku.net/doc/185660864.html,访问数据库的基本编程方法。 2、能独立使用相关对象进行数据库的查询、插入、修改和删除编程。 3、学会数据服务控件和数据绑定技术 实验环境: 1、计算机局域网环境 2、Microsoft Visual https://www.wendangku.net/doc/185660864.html,开发环境 实验内容: 1、建立数据库和数据表练习: 建立Stud数据库,并在该库中建立student和score数据表,表中字段见P217页。 注意:参照教材P217页,但实验环境是SQL Server 2000系统。 2、SQL语言练习: 完成教材P 220~223 例9.2~例9.9 3、https://www.wendangku.net/doc/185660864.html, 对象练习: 完成教材P 228~248 例9.10~例9.15 认真领会并总结上述两种访问数据库数据的方法。 4、数据源控件练习 完成教材P 264例9.17、P286~例9.21、P294~例9.23 5、综合性实验 在实验四的基础上,继续开发并完善聊天室程序。增加以下功能。 ①当客户第一次访问时,需在线注册姓名、性别、注册时间等信息,然后将信息 保存在数据库的客户信息表中(自己建库、表)。 ②维护客户信息表,提供统计和删除功能。(使用数据绑定控件显示结果) ③动态显示客户在线情况,只显示注册姓名。… 思考题: 1、分析总结https://www.wendangku.net/doc/185660864.html,类中两种访问数据库数据的方法异同。 实验报告: 1、记录实验中的关键操作步骤与方法及程序代码和程序的运行结果; 2、记录实验中出现的问题和解决的方法。

数据库管理系统实验报告含答案

xxxx大学《数据库管理系统》课程实验报告 班级: _______姓名:实验时间:年月日指导教师:_______ 一、实验目的 1、通过实验,使学生全面了解最新数据库管理系统的基本内容、基本原理。 2、牢固掌握SQL SERVER的功能操作和Transact-SQL语言。 3、紧密联系实际,学会分析,解决实际问题。学生通过小组项目设计,能够运用最新数据库管理系统于管理信息系统、企业资源计划、供应链管理系统、客户关系管理系统、电子商务系统、决策支持系统、智能信息系统中等。 二、实验内容 1.导入实验用示例数据库: f:\教学库.mdf f:\教学库_log.ldf f:\仓库库存.mdf f:\仓库库存_log.ldf 1.1 将数据库导入 在SqlServer 2005 导入已有的数据库(*.mdf)文件,在SQL Server Management Studio 里连接上数据库后,选择新建查询,然后执行语句 EXEC sp_attach_db @dbname = '教学库', @filename1 = 'f:\教学库.mdf', @filename2 = 'f:\教学库_log.ldf' go use [教学库] EXEC sp_changedbowner 'sa' go EXEC sp_attach_db @dbname = '仓库库存', @filename1 = 'f:\仓库库存.mdf',

@filename2 = 'f:\仓库库存_log.ldf' go use [仓库库存] EXEC sp_changedbowner 'sa' go 1.2 可能出现问题 附加数据库出现“无法打开物理文件"X.mdf"。操作系统错误5:"5(拒绝访问。)"。(Microsoft SQL Server,错误: 5120)”。 解决:找到要附加的.mdf文件-->右键-->属性-->安全-->选择当前用户-->编辑-->完全控制。对.log文件进行相同的处理。 2.删除创建的数据库,使用T-SQL语句再次创建该数据库,主文件和日志文件的文件名同上,要求:仓库库存_data最大尺寸为无限大,增长速度为20%,日志文件初始大小为2MB,最大尺寸为5MB,增长速度为1MB。 CREATE DATABASE仓库库存 (NAME = '仓库库存_data', FILENAME = 'F:\仓库库存_data.MDF' , SIZE = 10MB, FILEGROWTH = 20%) LOG ON (NAME ='仓库库存_log', FILENAME = 'F:\仓库库存_log. LDF', SIZE = 2MB, MAXSIZE = 5MB, FILEGROWTH = 1MB) 2.1 在数据库“仓库库存”中完成下列操作。 (1)创建“商品”表,表结构如表1: (2)创建“仓库”表,表结构如表2: 表2 仓库表

数据库实验四

实验四——数据库编程 一、实验目的 1.掌握ODBC的配置; 2.能编写简单的存储过程和函数,并调用; 3.了解游标的使用。 二、实验预习内容 上机前请预习以下内容,并在空白处填写相应的步骤或命令。 1.编写存储过程并调用,请写出相应命令; 1)编写存储过程usp_get_stuinfo ,使用一个名为@xm能够传送进存储过程的参数。允许以学生的姓名查询该生的基本信息; create procedure usp_get_stuinfo @xm varchar(32)AS select* from students where sname=@xm https://www.wendangku.net/doc/185660864.html,p_get_stuinfo gfxrgs

2)调用存储过程查询姓名为“rcxaihj”同学的基本信息的语句;https://www.wendangku.net/doc/185660864.html,p_get_stuinfo rcxaihj 2.编写函数并调用,请写出相应命令; 1)定义内联表值函数Fun1,用于返回学时为指定值的课程基本信息;create function fun1(@xs int) returns table as return( select*from courses where hour=@xs ) 2)使用Fun1进行选择以获得学时为48的课程基本信息; select*from dbo.fun1(48)

3)在查询语句中使用Fun1函数,查询选了课时为48的课程的学生姓名、课程名称、学时及成绩。 select sname,cname,hour,score from students,choices,courses where choices.sid=students.sid and choices.cid=courses.cid and hour in( select hour from fun1(48)) 3.编写函数并调用,请写出相应命令; 1)编写标量函数Fun2,用于返回两个整数中的最大值; create function Fun2(@a int,@b int) returns int as begin

数据库综合实验

数据库原理及应用 -- SQL Server 2000 陈学进于 2010年三月 实验指导书

实验一用E-R图设计数据库 1.实验目的 1)熟悉E-R模型的基本概念和图形的表示方法。 2)掌握将现实世界的事物转化成E-R图的基本技巧。 3)熟悉关系数据模型的基本概念。 4)掌握将E-R图转化成关系表的基本技巧。 2.实验内容 1)根据需求确定实体,属性和联系。 2)将实体,属性和联系转化为E-R图。 3)将E-R图转化为表。 3.实验步骤 1)设计能够表示出班级与学生关系的数据库。 ①确定班级实体和学生实体的属性。 ②确定班级和学生之间的联系,给联系命名并指出联系的类型。 ③确定联系本身的属性。 ④画出班级与学生关系的E-R图。 ⑤将E-R图转化为关系模式,写出各关系模式并标明各自的主码或外码。 2)设计能够表示出顾客与商品关系的数据库。 ①确定顾客实体和商品实体的属性。 ②确定顾客和商品之间的联系,给联系命名并指出联系的类型。 ③确定联系本身的属性。 ④画出顾客与商品关系的E-R图。 ⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。 3)设计能够表示学校与校长关系的数据库。 ①确定学校实体和校长实体的属性。 ②确定学校和校长之间的联系,给联系命名并指出联系的类型。 ③确定联系本身的属性。 ④画出学校与校长关系的E-R图。 ⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。 4)设计能够表示出房地产交易中客户,业务员和合同三者之间关系的数据库。 ①确定客户实体,业务员实体和合同实体的属性。 ②确定客户,业务员和合同三者之间的联系,给联系命名并指出联系的类型。 ③确定联系本身的属性。 ④画出客户,业务员和合同三者关系E-R图。 ⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。 5)学生之间相互交流各自设计的数据库。

数据库第四次实验

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) 2.存储过程的创建与使用:(共计45分) (1)使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返回供 应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名 称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10分)(2)创建一个带有输出游标参数的存储过程jsearch2,功能同1),执行jsearch2,查询“J1”对应信息,并且将得到的结果用print语句输出到控制台。(10 分) (3)使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。(10 分) (4)使用系统存储过程sp_helptext查看存储过程jsearch, jmsearch的文本信息。(5分) (5)执行jmsearch存储过程,查看北京供应商的情况。(5分) (6)删除jmsearch存储过程。(5分) (1).(在上面的题目中spj表经过一些处理,有些数据可能和原表不太一样) 创建存储过程 CREATE PROCEDURE JSEARCH@JNO char(10) AS SELECT S.SNAME,J.JNAME,P.PNAME FROM SPJ,P,S,J WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND SPJ.JNO=@JNO

相关文档