数据库第四次实验报告

合集下载

西工大第四次数据库实验报告

西工大第四次数据库实验报告

《数据库系统概论》实验报告题目:实验四存储过程/触发器/ODBC数据库编程姓名班级学号日期刘凯10031201 2012302606 2014.11一、实验内容、步骤以及结果1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。

sp_rename 'V_SPJ','V_SPJ_三建'2.存储过程的创建与使用:(1)使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程—jsearch。

该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。

执行jsearch存储过程,查询“J1”对应的信息。

CREATE PROCEDURE jsearch(@SPJ_JNO CHAR(10))ASBEGIN SELECT SNAME,PNAME,JNAMEFROM SPJ,S,P,JWHERE @SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNO END;(2)创建一个带有输出游标参数的存储过程jsearch2,功能同1),执行jsearch2,查询“J1”对应信息,并且将得到的结果用print语句输出到控制台。

CREATE PROCEDURE jsearch2(@SPJ_JNO CHAR(10),@SPJ_CURSOR CURSOR VARYING OUTPUT)ASSET @SPJ_CURSOR = CURSORFORSELECT S.SNAME,P.PNAME,J.JNAMEFROM SPJ,S,P,JWHERE @SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNO OPEN @SPJ_cursorjsearch 'J1'(3)使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。

数据库实验报告全

数据库实验报告全

数据库实验报告全实验⼀实验⽬的1.熟悉SQL Server Management Studio(SSMS)的⼯作环境2.掌握使⽤和命令建⽴数据库的⽅法3.熟练掌握使⽤SSMS和T-SQL语句创建、修改和删除表。

4.熟练掌握使⽤SSMS和T-SQL语句插⼊、修改和删除表数据。

实验内容1.采⽤SQL Server Management Studio 、T-SQL语句两种⽅式创建产品销售数据库,要求:1)使⽤SSMS创建数据库CPXS_bak,数据⽂件初始⼤⼩为5MB,最⼤⼤⼩50MB,按5MB增长;⽇志⽂件初始为2MB,最⼤可增长到10MB,按2MB增长;其余参数取默认值。

2)⽤T-SQL语句创建数据库CPXS,数据⽂件的增长⽅式改为增长⽅式按10%⽐例增长,其余与CPXS_bak。

3)⽤T-SQL语句删除数据库CPXS_bak。

2.CPXS数据库包含如下三个表:1)产品(产品编号,产品名称,价格,库存量)2)客户(客户编号,客户名称,地区,负责⼈,电话)3)销售(产品编号,客户编号,销售⽇期,数量,销售额)三个表结构如资料中图3.1~图3.3所⽰,请写出创建以上三个表的T-SQL语句并在查询分析器中运⾏。

3.在SSMS中输⼊如资料中图3.4~图3.6的商品表、客户表和销售表的样本数据。

6.将CP表中每种商品的价格打8折。

7.将CP表中价格打9折后⼩于1500的商品删除。

⼆.实验步骤与结果(说明:要写出相关步骤和SQL语句,实验结果可以是运⾏画⾯的抓屏,抓屏图⽚要尽可能的⼩。

)1.1)使⽤SSMS创建数据库CPXS_bak效果图为2)⽤T-SQL语句创建数据库CPXS:CREATE DATABASE CPXSON PRIMARY(NAME='CPXS_DATA',FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CPXS_DATA.MDF', SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=10%)LOG ON(NAME='CPXS_LOG',FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CPXS_LOG.LDF', SIZE=2MB,MAXSIZE=10MB,FILEGROWTH=2MB)3) DROP DATABASE CPXS_bak刷新数据库会看到CPXS_bak不存在2.1) USE CPXSGOCREATE TABLE产品(产品编号char(6)PRIMARY KEY,产品名称char(30)NOT NULL,价格float(8),库存量int,)2) USE CPXSGOCREATE TABLE客户(客户编号char(6)PRIMARY KEY,客户名称char(30)NOT NULL,地区char(10),负责⼈char(8),电话char(12))3)USE CPXSGOCREATE TABLE销售(产品编号char(6),客户编号char(6),销售⽇期datetime,数量int NOT NULL,销售额float(8)NOT NULL,CONSTRAINT pk_js PRIMARY KEY(产品编号,客户编号,销售⽇期))/*pk_js为约束名*/ 执⾏完上⾯的操作就能看见表已经添加进数据库中,如图所⽰:3. 打开表:在其中添加数据:4.1)USE CPXSINSERT INTO产品(产品编号,产品名称,价格,库存量) VALUES('200001','柜式空调','3000','200')2)USE CPXSINSERT INTO产品(产品编号,产品名称,价格,库存量) VALUES('200002','微波炉','1000','100')3)USE CPXSINSERT INTO产品(产品编号,产品名称,价格,库存量) VALUES('200003','抽油烟机','1200','50')可以看见图中的产品表增加了如下内容:5.USE CPXSALTER TABLE产品Add产品简列varchar(50)6. USE CPXSUPDATE产品set价格=价格*0.87. USE CPXSDELETE产品WHERE价格*0.9<1500三.实验中的问题及⼼得(说明:此处应写明此次实验遇到的问题有哪些,如何解决的,不能够空。

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

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

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

二、实验内容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进行用户界面设计。

数据库与实验报告4

数据库与实验报告4

一.实验内容、步骤以及结果1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1986年出生的学生的视图,视图中包括学号,性别,成绩三个信息。

2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)方法一:create view V_SPasselect sno,pno,qtyfrom spjwhere spj.jno in(select jno from j where j.jname='三建')方法二:create view V_SPJasselect sno,pno,qty from spj,jwhere j.jno=spj.jno and j.jname='三建'3.用SQL语句完成第五版教材第三章第11题中的视图查询(1)找出三建工程项目使用的各种零件代码及其数量。

SELECT PNO,QTY FROM V_SP(2)找出供应商S1的供应情况。

SELECT *FROM V_SPJ WHERE SNO='S1'4.用SQL语句完成视图的数据更新。

(1)给视图V_SPJ中增加一条数据。

INSERTINTO V_SPJ(SNO,PNO,QTY)VALUES( 's5','p3',900)提示:-SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO为NULL,所以视图中没有该条数据。

-SPJ表中JNO不能为空时,可以使用instead of触发器实现。

(2)修改视图V_SPJ中的任意一条数据的供应数量。

updateV_SPJ set qty=111where sno='s1' and pno='p1'(3)删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用instead of触发器实现)。

数据库实验4实验报告

数据库实验4实验报告

数据库实验4实验报告一、实验目的本次数据库实验 4 的主要目的是深入了解和掌握数据库中的索引、存储过程以及事务处理等关键技术,通过实际操作和实践,提高对数据库管理系统的运用能力,以及解决实际问题的能力。

二、实验环境本次实验使用的数据库管理系统为 MySQL 80,操作系统为Windows 10。

实验在个人电脑上进行,配置为英特尔酷睿 i5 处理器,8GB 内存。

三、实验内容与步骤(一)索引的创建与使用1、首先,创建了一个名为`students` 的表,包含`id`(主键,自增)、`name`(姓名)、`age`(年龄)、`grade`(年级)等字段。

```sqlCREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT,grade VARCHAR(20));```2、向表中插入了一些示例数据,用于后续的实验操作。

```sqlINSERT INTO students (name, age, grade)VALUES ('张三', 18, '大一'),('李四', 19, '大二'),('王五', 20, '大三'),('赵六', 21, '大四');```3、为`name` 字段创建了一个普通索引,观察查询性能的变化。

```sqlCREATE INDEX idx_name ON students (name);```4、执行查询语句,对比创建索引前后的查询时间。

```sqlSELECT FROM students WHERE name ='张三';```(二)存储过程的创建与调用1、创建了一个简单的存储过程,用于计算两个数的和。

```sqlDELIMITER //CREATE PROCEDURE add_numbers(IN num1 INT, IN num2 INT, OUT result INT)BEGINSET result = num1 + num2;END//DELIMITER ;```2、调用存储过程,传递参数并获取结果。

2024年数据库实习报告范文5篇

2024年数据库实习报告范文5篇

2024年数据库实习报告范文2024年数据库实习报告范文精选5篇(一)以下是一个关于2024年数据库实习报告的范文:2024年数据库实习报告一、实习内容和目标作为2024年暑期实习的一部分,我参加了一家互联网科技公司的数据库实习。

实习期间,我主要负责数据库的管理和优化工作。

我的目标是通过实习体验,提升自己在数据库领域的理论知识和实际操作技能。

二、实习过程和收获1. 熟悉数据库系统在实习开始之前,我对数据库系统进行了较为深入的学习,包括关系数据库、SQL语言和数据库设计原则等方面的知识。

这为我后续的实习工作打下了良好的基础。

2. 数据库管理在实习过程中,我负责了公司数据库的日常管理工作。

包括数据库的备份、恢复以及性能监控等。

通过实际操作,我更加深入地了解了数据库管理的重要性,也学会了如何处理一些常见的数据库问题。

3. 数据库优化在实习期间,我也参与了数据库的优化工作。

通过分析系统运行情况和数据库性能指标,我提出了一些优化建议,如索引的创建和优化、SQL语句的优化等。

这些优化措施有效地提升了系统的性能和响应速度。

4. 项目实践除了日常的数据库管理和优化工作,我还参与了一个数据库相关的项目。

在这个项目中,我负责设计和实现数据库的结构,并编写相关的SQL语句。

通过这个实践项目,我在数据库设计和开发方面获得了更多的实际经验。

三、实习总结和反思通过这次数据库实习,我不仅提升了自己的理论知识,还学会了如何将这些知识应用到实际工作中。

同时,我也意识到数据库管理和优化工作的重要性,以及在项目中正确使用数据库的必要性。

在未来的学习和工作中,我将继续加强对数据库领域的学习和探索,不断提升自身的能力。

四、感谢与致谢在实习期间,我得到了公司和导师的大力支持和帮助,特此表示衷心的感谢。

感谢他们为我提供了这次宝贵的实习机会,并给予了我充分的指导和鼓励。

同时,也要感谢我的同事们,在他们的帮助下我能够更快地适应团队工作,并取得了一定的成绩。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据库实验报告四

数据库实验报告四实验目的要求学生熟练掌据视阅创建和修改的方法,掌握视图中数据的操作方法,掌握索引的创建方法。

二.实验内容(1)利用SSMS管理器实现视图的创建,对视图中数据的操作。

(2)在查询分析器中,利用SQL语句实现视图的创建。

(3)利用SSMS管理器实现索引的创建。

(4)在查询分析器中,利用SQL语句实现索引的创建三.实验要求(1)从FTP中下载实验需要的JXGL数据库并将它附加或还原到SSMS管理器中(2)利用SSMS管理器和SQL语句,按题目要求创建视图和索引。

(3)在实验报告中需要有题目,对应的语句(不要截图,直接在word文档中输入)。

对于每道涉及视图的题需要一一个执行对视图进行查询的结果截图,截图样式看补充部分。

涉及索引的题只需实现的语句。

四.实验练习实验9.1使用SQL server management studio 直接创建视图SELECT dbo.S.SNO, dbo.SC.GRADE, dbo.S.SNAME, AMEFROM dbo.C INNER JOINdbo.SC ON O = O INNER JOINdbo.S ON dbo.SC.SNO = dbo.S.SNO实验9.2使用T-SQL语句创建与使用视图(1)在JXGL语句数据库中创建视图 view_s_grade,查询‘数据结构’考试成绩大于80的学生的SNO,SNAME,SDEPT。

USE JXGLIF EXISTS(SELECT NAME FROM Sysobjectswhere name ='view_s_grade' and xtype='v')DROP VIEW view_s_gradegocreate VIEW view_s_gradeASSELECT S.SNO,SNAME,SDEPTFROM S JOIN SC ON S.SNO=SC.SNO JOIN C ON O=OWHERE AME='数据结构' and sc.GRADE>80go(2)利用数据库view_s_grade查看数据信息select*from view_s_grade(3)修改视图alter VIEW view_s_gradeas select S.SNO,SNAME,SDEPTFROM S JOIN SC ON S.SNO=SC.SNO JOIN C ON O=OWHERE AME='数据结构'(4)删除数据库use JXGLgodropVIEW view_s_gradeGO实验9.5,使用sql sever management studio直接创建索引文件实验9.6,使用T-SQL 语句创建索引文件1. 创建索引文件ix_dept,关键字段为sdept ,升序 use JXGL gocreate INDEX IX_sdept on s(sdept) go∙利用视图完成下列查询∙查询平均成绩为90分以上的学号,姓名和成绩新建视图查询语句SELECTdbo.S.SNO, dbo.S.SNAME, dbo.SC.GRADE FROMdbo.S INNER JOINdbo.SC ON dbo.S.SNO = dbo.SC.SNOGROUP BY dbo.S.SNO, dbo.S.SNAME, dbo.SC.GRADE HAVING (AVG(dbo.SC.GRADE) > 90)(2)查询各科成绩均高于平均成绩的学生的学号,姓名,课程和成绩SELECT dbo.S.SNO, dbo.S.SNAME,Odbo.SC.GRADEFROM dbo.S INNER JOIN dbo.SC ON dbo.S.SNO =dbo.SC.SNO GROUP BY dbo.S.SNO, dbo.S.SNAME,O,dbo.SC.GRADEHAVING (dbo.SC.GRADE &#62; AVG(dbo.SC.GRADE)(3)按系统记各系平均成绩在80分以上的人数,结果按降序排列创建视图CREATE VIEW V_AVG_S_GAS SELECT SC.SNO,COUNT(O)CONUTCNO,AVG(GRADE)AVGGRADEFROM S,C,SC WHERE S.SNO=SC.SNOAND O=OGROUP BY SC.SNO查询语句SELECT SDEPT,COUNT(AVGGRADE)NUM FROM S,V_AVG_S_GWHERES.SNO=V_AVG_S_G.SNOANDAVGGRADE>80GROUP BY SDEPTORDER BY NUM DESC五、实验结果与分析、总结与思考:在这过程中,我对视图更加了解了,明白只有创建好一个正确的视图,我们才能进行下一步的查询工作,准备工作非常重要。

北邮大三下第4次大数据库实验报告材料--mysql

实验四数据库接口实验-1一、实验容以教科书第四章关于SQL语言相关容为基础,课后查阅、自学ODBC接口有关容,包括ODBC的体系结构、工作原理、数据访问过程、主要API接口的语法和使用方法等。

以实验二建立的学生数据库为基础,编写C语言(或其它支持ODBC接口的高级程序设计语言) 数据库应用程序,按照如下步骤访问数据库a)Step1. ODBC初始化,为ODBC分配环境句柄b)Step2. 建立应用程序与ODBC数据源的连接c)Step3. 利用SQLExecDirect语句,实现数据库应用程序对数据库的建立、查询、修改、删除等操作d)Step4. 检索查询结果集e)Step5. 结束数据库应用程序二、实验要求要求所编写的数据库访问应用程序中使用到以下主要的ODBC API函数:(1)SQLALLocEnv:初始化ODBC环境,返回环境句柄(2)SQLALLocConnect:为连接句柄分配存并返回连接句柄(3)SQLConnect:连接一个SQL数据资源(4) SQLDriverConnect连接一个SQL数据资源,允许驱动器向用户询问信息(5) SQLALLocStmt;为语句句柄分配存, 并返回语句句柄(6) SQLExecDirect 把SQL语句送到数据库服务器,请求执行由SQL语句定义的数据库访问(7) SQLFetchAdvances将游标移动到到查询结果集的下一行(或第一行)(8) SQLGetData 按照游标指向的位置,从查询结果集的特定的一列取回数据(9) SQLFreeStmt释放与语句句柄相关的资源(10) SQLDisconnect 切断连接(11) SQLFreeConnect 释放与连接句柄相关的资源(12) SQLFreeEnv ;释放与环境句柄相关的资源三、实验环境Windows 7系统mysql数据库管理平台visual studio C++编程平台(codeblocks或者devc++)四、实验步骤1、ODBC的体系结构、工作原理、数据访问过程、主要API接口的语法和使用方法等。

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

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

南昌航空大学实验报告二0一年月日课程名称:数据库概论实验名称:存储过程及触发器班级:姓名:同组人:指导教师评定:签名:一、实验参考代码及结果存储过程:(1)创建存储过程9.11CREATE PROCEDURE Select_S AS SELECT*FROM S WHERE sex='女'GOExecute Select_S9.12CREATE 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)GOExecute InsRecToS@sno='S8',@sn='罗兵',@age='18',@dept='信息'执行前:执行后:9.13CREATE PROCEDURE Query_S(@Sno char(5),@SN VARCHAR(8)OUTPUT,@Age SMALLINT OUTPUT)ASSELECT@sn=sn,@age=ageFROM SWHERE Sno=@Sno(2)执行存储过程Declare@SN VARCHAR(8),@AGE SMALLINTexecute Query_S'98010',@SN OUTPUT,@AGE OUTPUTSELECT@SN,@AGE(3)查看和修改存储过程9.14ALTER PROCEDURE[dbo].[InsRecTos](@sno char(5),@sn varchar(8),@sex char(2)='女',@age smallint,@dept varchar(20))ASINSERTINTO SVALUES(@sno,@sn,@sex,@age,@dept)(4)查看、重命名和删除存储过程9.15exec sp_helptext Select_S9.16sp_rename Select_S,Select_Student执行后:9.17DROP PROCEDURE Select_Student执行后:(5)在DingBao数据库中创建存储过程C_P_Proc,实现参数化查询顾客订阅信息,查询参数为顾客姓名,要求能查询出参数指定顾客的顾客编号、顾客名、订阅报纸名及订阅报纸份数等信息。

CREATE PROCEDURE C_P_Proc(@ccna varchar(10),@cno char(4)OUTPUT,@cna varchar(10)OUTPUT,@pna varchar(20)OUTPUT,@num int OUTPUT)ASSELECT@cna=cna,@cno=o,@pna=pna,@num=numFROM cp,customer,paperWHERE o=o AND paper.pno=cp.pno AND cna=@ccna;(6)执行存储过程C_P_Proc,实现对“李涛”等不同顾客的订阅信息的查询。

Declare@cno char(4),@cna varchar(10),@pna varchar(20),@num int execute C_P_Proc'李涛',@cno OUTPUT,@cna OUTPUT,@pna OUTPUT,@num OUTPUT SELECT@cno,@cna,@pna,@num(7)删除储过程C_P_ProcDROP PROCEDURE C_P_Proc执行前:执行后:触发器:(1)创建触发器10.19CREATE TRIGGER TR_S_Age_update on Sfor update asdeclare@iAge int;select@iAge=agefrom insertedif@iAge<8 or@iAge>45beginraiserror('学生年龄应该大于等于,并小于等于',16,1)rollback transactionend执行:UPDATE sSET age=48WHERE sno='98010'10.20CREATE TRIGGER Change_S_Sel ON SFOR INSERT,UPDATE,DELETEASSELECT*FROM S执行:(2)触发器的引用INSERTif exists(select name from sysobjects where name='TR_C_insert'and type='TR')DROP TRIGGER TR_C_insertgoCREATE TRIGGER TR_C_insert ON cfor insert asdeclare@iCT int;SELECT@iCT=CTFROM insertedif@iCT<1 or@iCT>10beginraiserror('课程学分应大于等于,小于等于.',16,1)rollback transactionend执行:INSERTINTO c(cno,cn,ct)VALUES ('C8','运筹学',0.5)DELETECREATE TRIGGER TR_S_delete ON sfor deleteasdeclare@icount intselect@icount=count(*)from deleted,scwhere deleted.sno=sc.snoif@icount>=1beginraiserror('该学生在表SC中北引用,展示不能被删除!',16,1) rollback transactionend执行:DELETEFROM sWHERE sno='98010'(3)查看、修改和删除触发器修改触发器ALTER trigger[TR_S_Age_update]on[dbo].[s]for update asdeclare@iAge int;select@iAge=agefrom insertedif@iAge<8 or@iAge>45beginraiserror('学生年龄应该大于等于,并小于等于',16,1) rollback transactionend使用系统存储过程查看触发器sp_depends'Change_S_Sel'sp_helptext'Change_S_Sel'Exec sp_help'Change_S_Sel'删除触发器10.24DROP TRIGGER TR_S_Age_update执行前:执行后:(4)1.CREATE TRIGGER TR_PAPER_I ON paper for insert asdeclare@ippr money,@ipno char(6) select@ippr=ppr,@ipno=pnofrom insertedif@ippr<0 or@ippr is NULLbeginupdate paperset ppr=10where pno=@ipnoend执行:INSERTINTO paper(pno,pna,ppr)VALUES('000006','江西日报',-9)2.CREATE TRIGGER TR_PAPER_D ON paper for deleteasdeclare@ipno char(6)select@ipno=cp.pnofrom deleted,cpwhere deleted.pno=cp.pnobegindeletefrom cpwhere pno=@ipnoend执行:deletefrom paperwhere pno='000001'3.CREATE TRIGGER TR_PAPER_U ON paperfor updateasdeclare@ippr moneyselect@ippr=pprfrom insertedif@ippr<0 or@ippr is NULLbeginraiserror('输入单价不正确!',16,1)rollback transactionend执行:UPDATE paperSET ppr=-8WHERE pno='000002'5.CREATE TRIGGER safety ON DATABASEFOR ALTER_TABLE,DROP_TABLEASPRINT'你必须失效DDL触发器"safety"后,才能删除或修改数据库表!' ROLLBACK;执行:DROP TABLE cp二、实验总结通过本次实验,我基本了解掌握了存储过程及触发器的基本操作及相关语法。

相关文档
最新文档