数据库第四次实验

合集下载

北邮大三数据库实验四数据库接口实验

北邮大三数据库实验四数据库接口实验

北邮大三数据库实验四数据库接口实验在北邮大三的学习进程中,数据库实验四——数据库接口实验,成为了我们深入探索数据库世界的重要一步。

这一实验不仅考验着我们对数据库理论知识的掌握,更要求我们具备将理论应用于实际操作的能力。

数据库接口实验的目的在于让我们理解和掌握如何通过编程实现与数据库的交互。

这意味着我们要学会使用特定的编程语言和数据库连接技术,来执行诸如数据的插入、查询、更新和删除等操作。

对于计算机专业的学生来说,这是一项至关重要的技能,因为在实际的软件开发中,几乎所有的应用都需要与数据库进行有效的沟通和数据管理。

在开始实验之前,我们首先需要明确实验所使用的数据库管理系统。

常见的有 MySQL、Oracle、SQL Server 等。

不同的数据库管理系统在语法和功能上可能会有一些细微的差异,但基本的操作原理是相通的。

以 MySQL 为例,我们需要安装 MySQL 服务器,并在本地创建数据库和表结构。

接下来,选择合适的编程语言来实现数据库接口。

Java 是一种广泛使用的编程语言,具有强大的数据库连接和操作能力。

通过使用 Java的 JDBC(Java Database Connectivity)库,我们可以建立与数据库的连接,并执行各种 SQL 语句。

在编写代码时,第一步是加载数据库驱动程序。

这就像是为通往数据库的道路铺上了基石。

然后,通过指定数据库的 URL、用户名和密码,建立与数据库的连接。

一旦连接成功,我们就可以创建 Statement 对象来执行 SQL 语句。

例如,要向数据库中插入一条数据,我们可以编写如下代码:```javaString sql ="INSERT INTO students (name, age) VALUES ('张三', 20)";Statement statement = connectioncreateStatement();statementexecuteUpdate(sql);```查询数据则通常使用`SELECT` 语句,如下所示:```javaString sql ="SELECT FROM students WHERE age > 18";ResultSet resultSet = statementexecuteQuery(sql);while (resultSetnext()){String name = resultSetgetString("name");int age = resultSetgetInt("age");Systemoutprintln("姓名:"+ name +",年龄:"+ age);}```更新和删除数据的操作与插入类似,只是使用的 SQL 语句不同。

数据库实验四

数据库实验四

数据库实验四在学习数据库的过程中,实验是帮助我们深入理解和掌握相关知识的重要环节。

本次数据库实验四主要围绕着数据库的查询、更新以及数据完整性等方面展开。

实验的目的是让我们通过实际操作,更加熟练地运用 SQL 语句来处理数据库中的数据,同时加深对数据库原理和概念的理解。

在实验开始之前,我们首先需要准备好相关的数据库环境。

这包括安装数据库管理系统,如 MySQL 或 SQL Server 等,并创建好实验所需的数据库和数据表。

本次实验中,我们创建了一个名为“students”的数据库表,用于存储学生的基本信息,如学号、姓名、年龄、性别和所在班级等。

同时,还创建了一个名为“courses”的表,用于存储课程的信息,包括课程编号、课程名称和授课教师等。

接下来,就是实验的核心部分——数据查询操作。

通过使用 SQL 的 SELECT 语句,我们可以从数据库中获取所需的数据。

例如,要查询所有年龄大于 20 岁的学生信息,可以使用以下语句:```sqlSELECT FROM students WHERE age > 20;```除了简单的条件查询,我们还学习了如何进行多表连接查询。

比如,要获取同时选修了“数据库原理”和“操作系统”两门课程的学生信息,就需要将“students”表、“courses”表以及选课关系表进行连接查询。

数据更新操作也是实验中的重要内容。

通过使用 UPDATE 语句,我们可以对数据库中的数据进行修改。

但在进行数据更新时,一定要谨慎操作,确保更新的结果符合预期,避免造成数据的错误或丢失。

例如,如果要将某个学生的年龄增加一岁,可以使用以下语句:```sqlUPDATE students SET age = age + 1 WHERE student_id ='_____';```在实验过程中,数据完整性的维护也是至关重要的。

我们通过设置主键、外键以及各种约束条件,来确保数据的准确性和一致性。

数据库实验4 索引、数据完整性与安全性

数据库实验4 索引、数据完整性与安全性

实验四索引、数据完整性与安全性一、实验目的(1) 掌握利用SQL Server Management Studio和SQL语言建立、删除索引的方法;(2) 掌握利用SQL Server Management Studio和SQL语言实现数据完整性的方法;(3) 掌握在SQL Server Management Studio中实现数据安全性管理的方法。

二、实验原理1.索引在关系型数据库中,索引是一种可以加快数据检索的数据库结构。

SQL Server系统中主要有两种类型的索引,即聚集索引、非聚集索引。

(1)聚集索引聚集索引定义了数据在表中存储的物理顺序。

一个表只能定义一个聚集索引。

(2)非聚集索引非聚集索引并不存储表数据本身。

相反,非聚集索引只存储指向表数据的指针,该指针作为索引键的一部分,因此,在一个表中同时可以存在多个非聚集索引。

(3)利用SQL命令建立索引简化语法格式:CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]INDEX index_name ON {table|view}(column|ASC|DESC][,…n])其中:UNIQUE。

可选。

该选项用于通知SQL Server索引中列出的列的值是每行唯一的。

如果试图插入重复的行,则该选项会强制SQL Server返回一个错误信息。

CLUSTERED或NONCLUSTERED。

可选。

如果这两个选项都没有被明确列出,则默认将索引创建为NONCLUSTERED(非聚集索引)。

(4)通过SQL命令删除索引语法格式:DROP INDEX ‘table.index|view.index’[,…n]2.表主键和UNIQUE约束表主键通过表数据中一个列或者多个列组合的数据来唯一标识表中的每一行数据。

即表主键就是用来约束数据表中不能存在相同的两行数据。

在SQL Server系统中,定义表的主键可以在创建表的同时定义,也可以给已有的表添加主键。

北邮大三数据库实验四数据库接口实验

北邮大三数据库实验四数据库接口实验

北邮大三数据库实验四数据库接口实验在北邮大三的学习进程中,数据库实验四——数据库接口实验,成为了我们深入探索数据库世界的重要一步。

这一实验不仅考验着我们对数据库理论知识的掌握程度,更要求我们将理论付诸实践,通过实际操作来实现数据库与应用程序之间的有效交互。

数据库接口是连接数据库与应用程序的桥梁,它使得应用程序能够方便地访问和操作数据库中的数据。

在本次实验中,我们主要使用了常见的数据库接口技术,如 ODBC(Open Database Connectivity,开放数据库连接)和 JDBC(Java Database Connectivity,Java 数据库连接)。

实验开始之前,我们首先需要对实验的目标和要求有清晰的认识。

本次实验的主要目标是掌握如何使用数据库接口来实现对数据库的增删改查操作,同时要能够处理可能出现的异常情况,确保数据的完整性和一致性。

为了达到这个目标,我们需要熟练掌握相关的编程语言和数据库操作语句。

在实验中,我选择了使用 Java 语言和 MySQL 数据库来完成任务。

首先,通过配置 JDBC 驱动程序,建立了与 MySQL 数据库的连接。

这一步看似简单,实则需要对数据库的连接参数有准确的设置,包括数据库的地址、端口号、用户名和密码等。

一旦连接建立成功,就如同打开了通往数据库宝藏的大门。

接下来就是实现具体的数据库操作功能。

对于数据的查询操作,我们需要使用 SQL(Structured Query Language,结构化查询语言)语句来指定查询的条件和要返回的字段。

例如,要查询某个表中所有年龄大于 20 岁的学生记录,就可以编写如下的 SQL 语句:```sqlSELECT FROM students WHERE age > 20;```通过 JDBC 提供的接口方法,将这条 SQL 语句发送到数据库执行,并获取返回的结果集。

在处理结果集时,需要小心地读取每一行数据,并将其进行相应的处理和展示。

数据库第四次上机实验报告

数据库第四次上机实验报告

数据库第四次上机实验报告班级:姓名:学号:实验日期:一、实验目的熟悉掌握数据库设计开发的整个过程。

二、实验内容a.从需求分析入手,按数据库设计的方法和步骤设计并在计算机上实现一个数据库:供应商――零件――工程。

已知语义是:(1)一个供应商可以提供多种零件;而每种零件由多个供应商供应;(2)每种零件为多个工程使用,而每项工程又需要多种零件;(3)每个供应商有姓名、编号和住址;每种零件有零件名、编号、颜色;每项工程有工程(4)名、编号和地址。

b.在从此数据库基础上编写小应用程序实现以下查询功能:(1)给出为某项工程提供零件的全部供应商名;(2)给出使用某供应商所供零件的全部工程名;(3)给出使用红色零件的工程名;(4)给出住在A地而为不在A地、且不使用红色零件的工程提供零件的供应商名;(5)给出使用某供应商供应的全部零件的工程名。

三、实验步骤1、数据库关系设计E-R图根据任务描述,得到E-R图如下图所示。

2、给出数据模型和关系模式根据E-R图,需要建立S、P、J、SPJ共计4个关系模式来描述整个关系,他们包含:S(SNO,SNAME,CITY),分别代表供应商及其编号、名称、地址,主码为SNO。

P(PNO,PNAME,COLOR),分别代表零件及其编号、名称、颜色,主码为PNO。

J(JNO,JNAME,CITY),分别代表工程及其编号、名称、地址,主码为JNO。

SPJ(SNO,PNO,JNO),代表工程所需零件供应商关系。

3、录入数据SPJSPJ4、建立SQL,录入与查询(1)建立表格CREATE TABLE S( SNAME V ARCHAR (50) NOT NULL,SNO V ARCHAR(50) PRIMARY KEY,CITY V ARCHAR (50) NOT NULL);CREATE TABLE P( PNAME V ARCHAR (50)NOT NULL,SNO V ARCHAR (50) PRIMARY KEY,COLOR V ARCHAR (50)NOT NULL);CREATE TABLE J(JNAME V ARCHAR (50)NOT NULL,JNO VARCHAR(50) PRIMARY KEY,CITY V ARCHAR (50)NOT NULL);CREATE TABLE SPJ(SNO CHAR(50) NOT NULL,PNO CHAR(50) NOT NULL,JNO CHAR(50) NOT NULL);(2)录入信息INSERT INTO S V ALUES ('华为','S1','广东'); INSERT INTO S V ALUES ('小米','S2','上海'); INSERT INTO S V ALUES ('苹果','S3','江苏'); INSERT INTO S V ALUES ('三星','S4','北京');INSERT INTO P V ALUES ('芯片','P1','红'); INSERT INTO P V ALUES ('声卡','P2','绿'); INSERT INTO P V ALUES ('显示屏','P3','黑'); INSERT INTO P V ALUES ('显示屏','P4','蓝'); INSERT INTO P V ALUES ('耳机','P5','红'); INSERT INTO P V ALUES ('外壳','P6','白');INSERT INTO J V ALUES ('P30','J1','南京'); INSERT INTO J V ALUES ('PRO','J2','北京'); INSERT INTO J V ALUES ('GALAXY','J3','新疆'); INSERT INTO J V ALUES ('REDMI','J4','吉林'); INSERT INTO J V ALUES ('HONOR','J5','广东');INSERT INTO SPJ V ALUES ('S2','P2','J1'); INSERT INTO SPJ V ALUES ('S4','P3','J1'); INSERT INTO SPJ V ALUES ('S3','P6','J1'); INSERT INTO SPJ V ALUES ('S2','P1','J2'); INSERT INTO SPJ V ALUES ('S1','P3','J2'); INSERT INTO SPJ V ALUES ('S4','P5','J2'); INSERT INTO SPJ V ALUES ('S4','P2','J3'); INSERT INTO SPJ V ALUES ('S3','P4','J3'); INSERT INTO SPJ V ALUES ('S3','P5','J3');INSERT INTO SPJ V ALUES ('S2','P1','J4');INSERT INTO SPJ V ALUES ('S4','P4','J4');INSERT INTO SPJ V ALUES ('S1','P2','J4');(3)SQL查询1、给出为工程J1提供零件的全部供应商名SELECT DISTINCT SNAMEFROM S,SPJWHERE S.SNO=SPJ.SNO AND JNO=‘J1’;2、给出使用供应商S2所供零件的全部工程名SELECT JNAMEFROM JWHERE JNO IN (SELECT JNOFROM SPJWHERE SNO = ‘S2’);3、给出使用红色零件的工程名SELECT JNAMEFROM JWHERE JNO IN (SELECT JNOFROM SPJ, PWHERE COLOR = ‘红’ AND SPJ.PNO = P.PNO);4、给出住在北京而为不在北京、且不使用红色零件的工程提供零件的供应商名SELECT DISTINCT SNAMEFROM S, P, SPJWHERE S.SNO = SPJ.SNO AND P.PNO = SPJ.PNO AND SCITY = ‘北京’ AND S.CITY != J.CITYAND SPJ.PNO NOT IN(SELECT SPJ.PNOFROM P, SPJWHERE P.PNO = SPJ. PNO AND COLOR = ‘红’ );5、给出使用供应商S3供应的全部零件的工程名SELECT JNAMEFROM JWHERE NOT EXISTS(SELECT *FROM SPJWHERE NOT EXISTS(SELECT *FROM SPJWHERE SNO = ‘S3’);5、用户界面设计采用Delphi 7进行用户界面设计。

国开学习网电大数据库应用技术第四次形考作业实验结果

国开学习网电大数据库应用技术第四次形考作业实验结果

国开学习网电大数据库应用技术第四次形考作业实验结果一、实验目的1. 加深对数据库原理与技术的理解。

2. 巩固数据库设计、建立及查询的基本技能。

3. 提高学生运用大数据库技术解决实际问题的能力。

二、实验要求1. 独立完成实验,确保实验数据的准确性与合理性。

2. 按照实验指导书要求,完成实验报告的撰写。

3. 实验报告需包含实验目的、实验环境、实验步骤、实验结果及实验总结。

三、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 8.03. 编程语言:Python 3.84. 开发工具:Visual Studio Code四、实验步骤1. 数据库设计:根据实验要求,设计合适的数据库表结构。

- 创建学生表(student),包含学号(id)、姓名(name)、性别(gender)、年龄(age)等字段。

- 创建课程表(course),包含课程编号(id)、课程名称(name)、学分(credit)等字段。

- 创建选课表(elective),包含学生编号(student_id)、课程编号(course_id)、成绩(score)等字段。

2. 数据库建立:在MySQL中执行SQL语句,创建实验所需的数据库及表。

CREATE DATABASE IF NOT EXISTS education;USE education;CREATE TABLE IF NOT EXISTS student (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),gender ENUM('男', '女'),age INT);CREATE TABLE IF NOT EXISTS course (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100),credit INT);CREATE TABLE IF NOT EXISTS elective (student_id INT,course_id INT,score INT,PRIMARY KEY (student_id, course_id),FOREIGN KEY (student_id) REFERENCES student(id), FOREIGN KEY (course_id) REFERENCES course(id));3. 数据查询:运用SQL语句进行数据查询。

国开学习网电大数据库应用技术第四次形考作业实验结果

国开学习网电大数据库应用技术第四次形
考作业实验结果
实验目的
本次实验旨在通过应用数据库技术,对国开研究网电大数据库
进行操作和管理,以提升数据的存储和查询效率。

实验过程
1. 数据库连接:使用合适的数据库连接工具,连接到国开研究
网电大数据库。

2. 数据录入:根据实验要求,将指定的数据录入到数据库中,
确保数据的准确性和完整性。

3. 数据查询:使用SQL语句,对数据库中的数据进行查询操作,查找符合特定条件的数据。

4. 数据更新:根据实验要求,对数据库中的数据进行更新操作,如修改、删除等。

5. 数据备份:定期进行数据库的备份,以防止数据丢失或损坏。

实验结果
经过实验操作,以下是本次实验的结果总结:
1. 成功连接到国开研究网电大数据库,并能够正常进行数据操作和管理。

2. 数据录入工作完成,所有指定数据已成功录入到数据库中。

3. 数据查询操作正常,能够根据特定条件准确地查找到所需的数据。

4. 数据更新操作成功,根据实验要求对数据库中的数据进行了相应的修改和删除。

5. 数据备份工作按计划进行,确保了数据库数据的安全性和完整性。

实验总结
本次实验通过应用数据库技术,对国开研究网电大数据库进行了操作和管理。

通过实验,加深了对数据库的理解和应用,提高了数据的存储和查询效率。

同时,也加强了对数据备份的重视,确保了数据的安全性。

通过本次实验,我对数据库应用技术有了更深入的了解,并掌握了相关操作和管理技能。

请注意:以上实验结果仅为参考,具体实验结果可能因个人操作和环境差异而有所不同。

实验结果以实际操作为准。

数据库实验四

《数据库管理系统》实验报告2011/2012学年第2学期实验项目:数据库班级:学生:(学号********* )地点:经管院A 实验室机器号:指导教师:时间:2012 年 6 月 3 日经济管理学院信息管理教研室实验四:数据库综合实验一、实验目的1.了解DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握查询条件表达式和使用方法;2.掌握Windows NT认证模式下数据库用户帐号的建立与取消方法;3.掌握混合模式下数据库用户帐号的建立与取消方法;4.掌握数据库用户权限的设置方法;5.熟悉数据库数据库用户帐号的权限分配、回收等方法;6.了解数据库角色的分类、作用及使用方法。

7.掌握主键约束、外键约束及及check约束的用法;8.掌握默认值约束的应用;9.了解规则、触发器的使用。

10.熟悉数据库备份及恢复机制;11.了解SQL Server的数据备份和恢复机制;12.掌握SQL-Server中数据库备份和恢复的方法。

二、实验环境已安装SQL Server 2005的计算机;具有局域网网络环境,有ip地址;三、实验要求1.学会用DDL语言进行对表、索引、视图的增加、删除和改动;2.了解SQL Server 2005系统安全;3.熟悉数据库用户、服务器角色及数据库角色的用法;4.熟悉数据库完整性相关概念及约束;5.了解约束、默认值及规则;6.了解创建备份设备和进行数据库完全备份操作的方法;7.了解进行数据库恢复的步骤;8.完成实验报告;四、实验内容及步骤(一)用T-SQL语句操作索引、视图1.建立计算机科学系学生的视图2.由学生、课程和选修课三个表,定义一个计算机科学系的学生成绩视图,其属性包括学号、姓名、课程名和成绩3.将学生的学号、总成绩、平均成绩定义成一个视图4.对student表按学号降序建唯一索引,索引名stunods。

5.删除索引stunods。

(二)数据库的安全性以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现以下操作,并独立写出部分题目的程序代码;1.在当前计算机中增加一个用户zhang和cheng,密码为secret。

国开学习网电大数据库应用技术第四次形考作业实验答案

国开学习网电大数据库应用技术第四次形考作业实验答案实验目的:通过使用SSMS工具,练习对数据库中的数据表进行单表查询、多表连接查询、子查询。

对数据表中的数据进行更改和删除等操作。

实验要求:将相关的SQL 语句和运行结果的截屏保存在文件中,或填写在下面的实验报告中,并通过网络提交。

实验内容:使用SSMS工具,在“可用数据库”中选中Students数据库,完成如下实验。

1. 单表查询。

写出实现如下查询的SQL语句。

(1) 查询学生选课表中的全部数据。

SELECT * FROM SC(2) 查询计算机系的学生的姓名、年龄。

SELECT Sname,Sex FROM Student WHERE Sdept='计算机系'(3) 查询成绩在70~80分的学生的学号、课程号和成绩。

SELECT Sno,Cno,Grade FROM SC where Grade BETWEEN 70 AND 80;(4) 查询计算机系年龄在18~20岁男生的姓名、年龄。

SELECT Sname,Sage from Student where Sex='男' AND Sage>18 AND Sage<20(5) 查询C001课程的考试成绩最高分。

SELECT max(Grade) from SC where Cno='C001'(6) 查询计算机系学生的最大年龄和最小年龄。

SELECT max(Sage) '最大年龄',min(Sage) '最小年龄' from Student where Sdept='计算机系' (7) 统计各系的学生人数。

SELECT Sdept,count(Sno)'人数' from Student GROUP BY Sdept;(8) 统计每门课程的选课人数和考试成绩最高分。

SELECT cno,count(Sno) '选课人数',max(Grade)'最高成绩' FROM SC GROUP BY Cno;(9) 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。

湖南大学数据库实验四 完整性约束、视图、存储过程和数据安全

实验四完好性束缚、视图、存储过程和数据平安之杨若古兰创作实验目的:1、把握创建各种实体完好性束缚的方法.2、把握创建和使用视图、存储过程和索引的方法.3、把握视图实现数据平安的基本方法.4、把握数据库的基本备份和恢复技术.实验内容:本实验在ORACLE数据库平台上进行操纵,ORACLE数据库的基本操纵请参考实验二,本实验中的各种数据都来自于实验三中的各个表.实验次要内容如下:1、进修创建四类完好性束缚的方法.2、进修创建视图、存储过程和索引的方法.3、进修利用用户管理,角色管理,和利用视图实现数据平安.4、进修ORACLE数据库的基本备份和恢复技术.实验过程:方法一:create table course (cno varchar(10) not null,dno char(8) not null,cname varchar(20) not null,hours number not null,term number not null,credit number not null,constraint pk_course primary key (cno));方法二:altertablecourseaddconstraintpk_courseprimary key(cno) ;alter table COURSEadd constraint FK_COURSE_DEPARTMEN_DEPARTME foreign key (dno)references department (dno);前面建表时用的数据类型,NOT NULL等都属于域束缚;alter table student add constraint chk_sex check (sex in ('男','女'));alter table student modify sex default '男';alter table student_course_teacher add constraint chk_score check (score>=0 AND score<=100);用触发器实现一下:create or WordStr trigger tri_del_teacherafter delete on teacherfor each rowdeclare-- local variables herebegindelete from teacher_coursewhere tno=:old.tno;delete from student_course_teacherwhere tno=:old.tno;end tri_del_teacher;/备注:最初面的斜杠“/”不克不及少.createview myview_course asselect s.sno 学号, sname 姓名, classno 班级from student s,teacher t,course c,student_course_teacher sctwhere t.tname ='杨金民'and ame ='数据库零碎'and sct.semester = '2010/01'andandand o = o;创建存储过程:createorWordStrprocedure myproc(cname1 varchar2,semester1 varchar2)asclassno1 student.classno%type;avg1 integer;beginselect classno, avg(score)into classno1,avg1from student s, course c, student_course_teacher sctwhere ame = cname1and sct.semester =semester1andandandrownum=1groupby classno;dbms_output.put_line('班级编号:'||classno1||' '||'平均分:'||avg1);end;/创建成功当前,使用存储过程:CALL myproc('数据库零碎','2010/01');create index my_student_idx on student(sex); ----对表中的SEX 建立索引create user test identified by tiger; -----创建grant connect to test; -----连接GRANT {privilegeList | ALL PRIVILEGES}---授权ON ObjectNameTO {AuthorizationIdList | PUBLIC}[WITH GRANT OPTION]create role myrole; ------创建grant select on maqiang.teacher_course to myrole; ----授权grant select on maqiang.student to myrole;grant myrole to test; -----使用户具有mvrole的权限select * from maqiang.teacher_course; ---验证是否具有该权限select * from maqiang.student;revoke myrole from test; ---取消角色权限create view myview_student as select sno,sname from maqiang.student; ----创建grant select on myview_student to test; -----授权将student_course_teacher表进行备份和恢复.缓冲区大小:可以更改,这里就用的默认值;导出文件:输入导出路径,文件名后缀.dmp;用户,表:这里可以选择是导出用户下所有的,还是选定的表,如果具有管理员权限,则可多一个选项,导出全部数据库.导出表数据:选择yes的话就会把表的数据也导出,no的话就只导出表结构,不导出数据;紧缩区:选择yes会进行紧缩.要导出的表或分区:这里填写要导出的表名,本例中就是student_course_teacher,可以看到,成功导出,如果还要导出此表面,接着输入表名,没了的话就直接回车结束.首先:删除表, drop table student_course_teacher;然后,利用上面的备份文件恢复表student_course_teacher 小结:通过本次试验,把握了四类完好性束缚的写法,学会创建和使用视图,进一步了解数据平安和数据库的基本备份和恢复技术.。

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

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)ASSELECT S.SNAME,J.JNAME,P.PNAMEFROM SPJ,P,S,JWHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND SPJ.JNO=@JNO执行存储过程exec JSEARCH'j1'\(2) 创建一个带有输出游标参数的存储过程jsearch2CREATE PROCEDURE JSEARCH2(@JNO CHAR(10),@SPJ_CURSOR CURSOR VARYING OUTPUT)ASSET@SPJ_CURSOR=CURSORFORSELECT J.JNAME,P.PNAME,S.SNAMEFROM S,P,J,SPJWHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND SPJ.JNO=@JNO OPEN@SPJ_CURSOR执行jsearch2,查询“J1”对应信息,并且将得到的结果用print语句输出到控制台。

DECLARE@JNAME CHAR(10),@SNAME CHAR(10),@PNAME CHAR(10)DECLARE@SPJ_CURSOR CURSOREXEC JSEARCH2'J1',@SPJ_CURSOR OUTPUTFETCH NEXT FROM@SPJ_CURSOR INTO@JNAME,@PNAME,@SNAMEWHILE(@@FETCH_STATUS=0)BEGINPRINT(@JNAME+@PNAME+@SNAME)FETCH NEXT FROM@SPJ_CURSOR INTO@JNAME,@PNAME,@SNAMEENDCLOSE@SPJ_CURSORDEALLOCATE@SPJ_CURSORGO(3).使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。

该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。

创建存储过程USE SPJGOCREATE PROCEDURE jmsearch WITH ENCRYPTIONASBEGINSELECT*FROM SWHERE S.CITY='北京'ENDGO执行存储过程USE SPJGOEXEC JMSEARCHGO(4).使用系统存储过程sp_helptext查看存储过程jsearch, jmsearch的文本信息。

EXEC sp_helptext jsearchEXEC SP_HELPTEXT JMSEARCH(5).执行jmsearch存储过程,查看北京供应商的情况。

USE SPJGOEXEC JMSEARCHGO(6).删除jmsearch存储过程。

3.触发器的创建与使用:(共计30分,每小题5分)(1)在student数据库中建立一个名为insert_s的INSERT触发器,存储在S表中。

该触发器的作用是:当用户向S表中插入记录时,如果插入的sdept值为’CS’,’IS’,’MA’以外的值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。

触发器创建成功之后,向S表插入记录,验证触发器是否正常工作。

(2)为student数据库中的S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。

触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。

(3)为student数据库中的S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录时删除SC表中该学生的选课纪录。

触发器创建成功之后,删除S表中的记录删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。

(4)为student数据库中的S表创建一个名为update_s的UPDATE触发器,该触发器的作用是禁止更新S表中“sdept”字段的内容。

触发器创建成功之后,更新S表中“sdept”字段的内容,验证触发器是否正常工作。

(5分)(5)禁用update_s触发器。

禁用之后,更新S表中的“sdept”字段的内容,验证触发器是否还继续正常工作。

(6)删除update_s触发器。

(1).在student数据库中建立一个名为insert_s的INSERT触发器,存储在S表中。

该触发器的作用是:当用户向S表中插入记录时,如果插入的sdept值为’CS’,’IS’,’MA’以外的值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。

触发器创建成功之后,向S表插入记录,验证触发器是否正常工作。

建立触发器USE SuudentGOCREATE TRIGGER insert_sON SAFTER INSERTASIF ((SELECT SDEPT FROM inserted)IN('CS','IS','MA'))BEGINPRINT'记录插入成功'ENDELSEBEGINROLLBACK TRANPRINT'插入的记录有误'ENDUSE SuudentGOINSERTINTO S(Sno,Sname,Ssex,Sbirth,Sdept)VALUES ('1001','FENG','1993/08/19','男','CS')GO(2).为student数据库中的S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。

触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。

USE SuudentGOCREATE TRIGGER DELE_SON SAFTER DELETEASPRINT'禁止删除数据'ROLLBACK TRAN(3).为student数据库中的S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录时删除SC表中该学生的选课纪录。

触发器创建成功之后,删除S表中的记录删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。

USE SuudentGOCREATE TRIGGER DELE_S2ON SAFTER DELETEASBEGIN DELETEFROM SCWHERE Sno IN(SELECT SnoFROM deleted)ENDDELETE FROM SWHERE S.SNO='1001'SELECT*FROM SC(表中只有一条数据,即上面插入的学号为1001的那条数据)(4).为student数据库中的S表创建一个名为update_s的UPDATE触发器,该触发器的作用是禁止更新S表中“sdept”字段的内容。

触发器创建成功之后,更新S表中“sdept”字段的内容,验证触发器是否正常工作。

创建update_s触发器CREATE TRIGGER UPDATE_S ON SFOR UPDATEASIF UPDATE(SDEPT)BEGINPRINT'禁止跟新数据'ENDGO验证不能跟新数据UPDATE SSET Sdept='CS'WHERE Sno='1001'(5).禁用update_s触发器。

禁用之后,更新S表中的“sdept”字段的内容,验证触发器是否还继续正常工作。

禁用:ALTER TABLE S DISABLE TRIGGER UPDATE_SUPDATE S SET Sdept='MA'WHERE Sno='1001'启用:ALTER TABLE S ENABLE TRIGGER UPDATE_SUPDATE S SET Sdept='IS'WHERE Sno='1001'(6).删除update_s触发器。

DROP TRIGGER UPDATE_S4.ODBC配置以及程序调试:(20分)(1)配置一个ODBC数据源,要求数据源名称:student,其中包含s(学生信息)表。

(2)阅读并运行实验给出的程序,理解ODBC编程,要求简单写出自己对这段程序的理解或者流程图,并且请给出程序运行结果示例图。

(1).配置一个ODBC数据源,要求数据源名称:student,其中包含s(学生信息)表。

(2).阅读并运行实验给出的程序,理解ODBC编程,要求简单写出自己对这段程序的理解或者流程图,并且请给出程序运行结果示例图。

运行mfc运行后所得结果。

相关文档
最新文档