昆明理工大学数据库实验四

合集下载

数据库实验四

数据库实验四

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

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

实验的目的是让我们通过实际操作,更加熟练地运用 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.集合查询
例如,查询计算机科学系的学生以及年龄不及十九岁的学生:
Select *
Form student
Where sdept = ‘cs’
Union
Select *
From student
Where sage < 19
三.视图操作
例如,建立信息系学生的视图:
Create view
IS_student
where
Sname='刘晨');
查询选修了课程名为“信息系统”的学生学号和姓名.
select Sno,Sname
from student where
Sno in
(select Sno from sc
Where
Cno in
(select
Cno from course
where
Cname='信息系统'));
查询所有姓刘的学生的姓名、学号和性别。
select Sname,Sno,Ssex from student where Sname like '刘%';
2.连接查询
例如,查询每个学生及其选修课程的情况:
select student.*,sc.*
from student,sc
where student.Sno=sc.Sno
打开SQL SERVER配置管理器工具,单击“SQL SERVER2005服务”
节点,其中的“SQL SERVER”服务就是我们所说的数据库引擎。与SQL
SERVER 2000一样,可以通过这个配置管理器来启动、停止所安装的服
务,如“SQLSERVER(MSSQLSERVER)”。
3.了解RDBMS系统的体系结构。

云南大学--软件学院--数据库实验4

云南大学--软件学院--数据库实验4

云南大学软件学院实验报告课程:数据库原理与实用技术实验学期: 2012-2013学年第二学期任课教师:专业:学号:姓名:成绩:实验4 数据查询一、实验目的理解T-SQL语言的使用;熟练掌握数据查询语句;掌握合计函数的使用。

二、实验内容1、CAP数据库的查询(记录每个查询的SQL语句和查询结果)(1)建立CAP数据库,输入C、A、P、O四张表;图表 1 创建cap数据库图表 2创建四个表图表 3向表中插入数据图表 4表的内容(2)完成课后习题[3.2]b、[3.5]、[3.8]a,b、[3.11]b,f,j,l[3.2] (b)Retrieve aid values of agents who receive the maximum percent commission.图表 5最高佣金百分率[3.5] Consider the problem to find all (cid, aid) pairs where the customer does not place an order through the agent. This can be accomplished with the Select statementselect cid, aidfrom customers c. agents awhere not exists(select * from orders x where x.cid = c.cid and x.aid =a.aid) ;Is it possible to achieve this result using the NOT IN predicate in place of the NOT EXISTS predicate with a single Subquery? With more than one Subquery? Explain your answer and demonstrate any equivalent form by execution.图表 6 3.5 not in[3.8](a) Write a Select statement with no WHERE clause to retrieve all customer cids and the maximum money each spends on any product. Label the columns of the resulting table: eid, MAXSPENT.图表 7 3.8(b) Write a query to retrieve the AVERAGE value (over all customers) of the MAXSPENT of query (a)图表 8 3.8(b)[3.11] (b) We say that a customer x orders a product y in an average quantity A if A is avg(qty) for all orders rows with cid = x and pid = y. Is it possible in a single SQL statement to retrieve cid values of customers who order all the products that they receive in average quantities (by product) of at least 300?图表 9 3.11 (b)(f) Get pid values of products that are ordered by all customers in Dallas.图表 10 3.11 (f)(j) Use a single Update statement to raise the prices of all products warehoused in Duluth or Dallas by 10%. Then restore the original values byrerunning the procedure that you originally used to create and load the products table.图表 11 3.11 (j)(l) Write an SQL query to get aid and percent values of agents who take orders from all customers who live in Duluth. The aid values should be reported in order by decreasing percent. (Note that if percent is not retrieved in the select list, we cannot order by these values.)图表 12 3.11 (i)2、Employee数据库的查询(记录每个查询的SQL语句和查询结果)(1)向表中插入数据。

数据仓库的构建 实验报告

数据仓库的构建 实验报告

昆明理工大学信息工程与自动化学院学生实验报告(2011 —2012 学年第 1 学期)课程名称:数据仓库与数据挖掘开课实验室:信自楼445 2011年 12月 7日年级、专业、班计科081 学号200810405130 姓名孙永星成绩实验项目名称数据仓库的构建指导教师周海河教师评语一、提前预习实验内容、自觉遵守考勤和规章、按时参加实验和交付实验报告(30分)。

二、检查实验数据、数据记录、完整正确(10分)。

三、技术路线图、数据表格、公式、特性曲线、波形绘制符合规范要求(10分)。

四、报告基本内容(包括实验目的、实验原理、实验技术路线、实验条件、实验方法步骤、实验数据及处理)完整(10分)。

五、独立完成实验、有实验分析和总结(10分)。

六、报告书写工整、条理清楚、概念正确、逻辑性强、语言流畅(10分)。

七、现场实验操作技能熟练(10分)。

八、有个人的见解或创新(10分)。

教师签名:年月日一、实验目的1.理解数据库与数据仓库之间的区别与联系;2.掌握典型的关系型数据库及其数据仓库系统的工作原理以及应用方法;3.掌握数据仓库建立的基本方法及其相关工具的使用。

二、实验原理及基本技术路线图(方框原理图)以SQL Server为系统平台,设计、建立数据库,并以此为基础创建数据仓库。

要求:利用实验室和指导教师提供的实验软件,认真完成规定的实验项目,真实地记录实验中遇到的各种问题和解决的方法与过程,并绘出模拟实验案例的数据仓库模型。

实验完成后,应根据实验情况写出实验报告。

三、上机平台、环境操作系统:Windows 7数据库:SQLServer2008四、实验方法、步骤安装事例数据库新建数据库DW新建“订单方式表”数据抽取(ETL)执行结果:1)数据库DW的表2)Customer表预览3)时间表预览4)订单方式5)订单状态表6)销售人员以及销售地区表7)发货方式表8)事实表9)客户价值表六、实验结果分析、经验总结或结论。

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

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

《数据库系统概论》实验报告题目:实验四存储过程/触发器/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。

昆工网络技术实验报告 4

昆工网络技术实验报告  4

昆明理工大学信息工程与自动化学院学生实验报告(2010 —2011年第二学期)课程名称:计算机网络技术开课实验室:自动化系 2011 年 5月4 日年级、专业、班测控091 学号200911404105 姓名李聪成绩实验项目名称实验四虚拟子网VLAN配置指导教师范玉刚教师评语教师签名:年月日一、实验目的:●掌握虚拟子网的基本配置方法;●掌握在CCNA下对虚拟子网进配置的基本步骤;●熟悉和掌握在CCNA下对虚拟子网进行配置的常用命令;二、实验报告内容:Router Con0 is now availablePress RETURN to get started.Router>enableRouter#config tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#interface f0/1Router(config-if)#ip address 172.16.10.1 255.255.255.0Router(config-if)#no shut%LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up Router(config-if)#end%SYS-5-CONFIG_I: Configured from console by consoleRouter#copy running-config startup-configBuilding configuration...[OK]Router#PCA Number: 73-3122-04PCA Serial Number: FAB0337240KModel Number: WS-C1912-ASystem Serial Number: FAB0339U01UPower Supply S/N: PHI031803JKPCB Serial Number: FAB0337240K,73-3122-04-------------------------------------------------1 user(s) now active on Management Console.User Interface Menu[M] Menus[K] Command Line[I] IP ConfigurationEnter Selection:CLI session with the switch is open.To end the CLI session, enter [Exit].>en#delete nvramThis command resets the switch with factory defaults. All system parameters will revert to their default factory settings. All static and dynamic addresses will be removed.Reset system with factory defaults, [Y]es or [N]o? Y% Invalid input detected.#show running-configBuilding configuration...Current configuration:!!!!!!!!!!interface Ethernet 0/1!interface Ethernet 0/2!interface Ethernet 0/3!interface Ethernet 0/4!interface Ethernet 0/5!interface Ethernet 0/6!interface Ethernet 0/7!interface Ethernet 0/8!interface Ethernet 0/9!interface Ethernet 0/10!interface Ethernet 0/11!interface Ethernet 0/12!interface Ethernet 0/25!interface FastEthernet 0/26!interface FastEthernet 0/27!!!line consoleend#show version1900A uptime is 0day(s) 06hour(s) 55minute(s) 41second(s)Version V8.01.05cisco Catalyst 1900 (486sxl) processor with 2048K/1024K bytes of memory Hardware board revision is 5Upgrade Status: No upgrade currently in progress.Config File Status: No configuration upload/download is in progress15 Fixed Ethernet/IEEE 802.3 interface(s)Base Ethernet Address: 00-30-80-C7-01-80#config tEnter configuration commands, one per line. End with CNTL/Z. (config)#hostname 1900A1900A(config)#^Z%SYS-5-CONFIG_I: Configured from console by console1900A#show ipIP Address: 0.0.0.0Subnet Mask: 0.0.0.0Default Gateway: 0.0.0.0Management VLAN: 1Domain name:Name server 1: 0.0.0.0Name server 2: 0.0.0.0HTTP server : EnabledHTTP port : 80RIP : Enabled1900A#config tEnter configuration commands, one per line. End with CNTL/Z.1900A(config)#ip address 172.16.10.3 255.255.255.01900A(config)#ip default-gateway 172.16.10.11900A(config)#^Z%SYS-5-CONFIG_I: Configured from console by console1900A#show ipIP Address: 172.16.10.3Subnet Mask: 255.255.255.0Default Gateway: 172.16.10.1Management VLAN: 1Domain name:Name server 1: 0.0.0.0Name server 2: 0.0.0.0HTTP server : EnabledHTTP port : 80RIP : Enabled1900A#ping 172.16.10.1Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 172.16.10.1, timeout is 2 seconds: !!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms 1900A#config tEnter configuration commands, one per line. End with CNTL/Z.1900A(config)#vlan 1 name vlan11900A(config)#vlan 2 name vlan21900A(config)#exit%SYS-5-CONFIG_I: Configured from console by console1900A#show vlan-membershipPort VLAN Membership Type Port VLAN Membership Type----------------------------- -----------------------------1 12 13 14 15 16 17 18 19 110 111 112 1AUI 1 StaticA 1 StaticB 1 Static1900A#config tEnter configuration commands, one per line. End with CNTL/Z. 1900A(config)#int e0/11900A(config-if)#vlan-membership static 11900A(config-if)#int e0/31900A(config-if)#vlan-membership static 11900A(config-if)#int e0/21900A(config-if)#vlan-membership static 21900A(config-if)#int e0/41900A(config-if)#vlan-membership static 21900A(config-if)#^Z%SYS-5-CONFIG_I: Configured from console by console1900A#show vlan-membershipPort VLAN Membership Type Port VLAN Membership Type----------------------------- -----------------------------1 1 Static2 2 Static3 1 Static4 2 Static5 16 17 18 19 110 111 112 1AUI 1 StaticA 1 StaticB 1 Static 1900A#。

数据库原理及技术上机实验报告模板

数据库原理及技术上机实验报告模板

昆明理工大学应用技术学院实验报告(2011 —2012 学年第一学期)课程名称:数据库原理及技术实验室:4#机房 20 年月日目录一、实验目的…………………………………………………… 页二、实验相关概念与技术概述…………………………………页三、实验步骤………………………………………………………页四、实验结果(截图)…………………………………………页五、实验结论……………………………………………………页以下为范文,仅供参考!一、实验目的①、安装Oracle数据库②、创建表空间shebao③、创建表AB01二、oracle数据库架构概述Oracle数据库服务器有两个主要的组成部分:数据库和实例(instance)。

Oracle数据库用于存储和检索信息,是数据的集合。

Oracle实例是指数据库服务器的内存及相关处理程序。

1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成)一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。

其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件;参数文件(parameter file)口令文件(password file)是非数据库文件1.1 数据文件:存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。

由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。

types:.data dictionary .data .redo data.index.temporary data1.2 控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.控制文件内容:·数据库名·表空间信息·所有数据文件的名字和位置·所有redo日志文件的名字和位置·当前的日志序列号·检查点信息·关于redo日志和归档的当前状态信息控制文件的使用过程:控制文件把Oracle引导到数据库文件的其它部分。

数据库原理与应用实验报告四

数据库原理与应用实验报告四

计算机工程系实验报告学生信息系别计算机学院专业计算机科学与技术班级17计科2+2 姓名徐浩俊学号2017031601025实验信息课程名称数据库原理与应用实验名称实验4 数据操作实验时间指导教师文琦批改情况成绩评阅教师文琦实验目标:1.掌握各种录入数据至数据库表的方法。

2.掌握修改数据库表中数据的方法。

3.掌握删除数据库表中数据的方法。

4.掌握复制数据库表的方法。

实验结果:利用shiyan4.sql文件中的脚本生成相应的数据库及数据表。

1.根据实验3.1步骤完成从Eecel工作表(非SQL Server数据源数据)导入SQL Server数据库表的方法(注意学生表S结构已存在),回答以下问题。

①请从素材中选择自己班级的Excel表格,若表格不满足数据库中的关系则需要稍加修改,再将表里的数据导入学生表S中。

导入是否会遇到问题?如何解决?无法直接映射,需要修改表格。

只保留一行名称。

②请将最后导入在数据库的数据截图。

③有无更简单的方法?有,直接在编辑表中粘贴数据。

2.将数据库表T的数据交互式录入并截图说明。

(P46)3.请使用SQL语句完成数据库表C的数据录入,将相应的SQL语句及最终存储的数据截图说明。

可否用一条insert into语句一次插入多行数据,如有,请描述相应的SQL语句。

USE jxskGOINSERT INTO C VALUES('C1','程序设计','60')GOUSE jxskGOINSERT INTO C VALUES('C1','课程1','60'),('C1','课程2','80'),('C1','课程3','100')GO4.完成实验3.2后,思考利用SQL语句完成以下问题。

①现将信息系归为计算机系,数据表T中哪些数据需要修改,请使用SQL 语句完成,并将最终修改后的数据截图。

《数据库原理及应用》实验报告带答案

《数据库原理及应用》实验报告带答案

实验课程:数据库原理及应用学号:学生姓名:班级:年月日实验1 创建和维护数据库一、实验目的(1)掌握在Windows 平台下安装与配置MySQL 5.5 的方法。

(2)掌握启动服务并登录MySQL 5.5 数据库的方法和步骤。

(3)了解手工配置MySQL 5.5 的方法。

(4)掌握MySQL 数据库的相关概念。

(5)掌握使用Navicat 工具和SQL 语句创建数据库的方法。

(6)掌握使用Navicat 工具和SQL 语句删除数据库的方法。

二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;(3)1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤(1)在Windows 平台下安装与配置MySQL 5.5.36 版。

(2)在服务对话框中,手动启动或者关闭MySQL 服务。

(3)使用Net 命令启动或关闭MySQL 服务。

开始--运行--cmd--输入“net start mysql”回车,启动成功;输入“net--stop--mysql”回车,停止。

(4)分别用Navicat 工具和命令行方式登录MySQL。

①打开Navicat for MySQL,文件--新建连接--确定。

②开始--运行--cmd,输入mysql -h hostname(如果服务器在本机,可以输入localhost或127.0.0.1)user -p 回车后,系统会提示“Enter password”,输入配置的密码就可以登录上了。

(5)创建数据库。

①使用Navicat 创建学生信息管理数据库gradem。

②使用SQL 语句创建数据库MyDB。

①打开Navicat for MySQL,文件--新建连接--常规(设置连接名MySQL,主机名localhost)。

②使用Windows命令行方式登录MySQL,然后输入CREATE DATABASE mydb;回车,显示Query OK, 1 row affected (0.00 sec)创建成功。

数据库实验实验三:排名实现及Oracle联系

数据库实验实验三:排名实现及Oracle联系

昆明理工大学信息工程与自动化学院学生实验报告(2009 —2010 学年第 1 学期)课程名称:数据库高级应用开课实验室 2301 2009年 12 月9 日一、实验目的及内容1.排名的方法和实现2.在Oracle中应该怎样实现二、实验原理及基本技术路线图(方框原理图或程序流程图)✧在SQL 2005中存在四种排名函数:ROW_NUMBER、RANK、DENSE_RANK 和NTILE。

这些新函数可以有效地分析数据以及向查询的结果行提供排序值。

1.ROW_NUMBER()函数返回结果集分区内行的序列号,每个分区的第一行从1 开始。

一般与OVER连用。

2.RANK, DENSE_RANKRANK 和DENSE_RANK 函数非常类似于ROW_NUMBER 函数,因为它们也按照指定的排序提供排序值,而且可以根据需要在行组(分段)内部提供。

但是,与ROW_NUMBER 不同的是,RANK 和DENSE_RANK 向在排序列中具有相同值的行分配相同的排序。

当ORDER BY 列表不唯一,并且您不希望为在ORDER BY 列表中具有相同值的行分配不同的排序时,RANK 和DENSE_RANK 很有用。

RANK 和DENSE_RANK 的用途以及两者之间的差异可以用示例进行最好的解释。

3.NTILENTILE 使您可以按照指定的顺序,将查询的结果行分散到指定数量的组(tile) 中。

每个行组都获得不同的号码:第一组为1,第二组为2,等等。

您可以在函数名称后面的括号中指定所请求的组号,在OVER 选项的ORDER BY 子句中指定所请求的排序。

组中的行数被计算为total_num_rows / num_groups。

如果有余数n,则前面n 个组获得一个附加行。

因此,可能不会所有组都获得相等数量的行,但是组大小最大只可能相差一行✧在Oracle中的rank函数:聚合函数RANK 和dense_rank 主要的功能是计算一组数值中的排序值。

数据库实验报告2

数据库实验报告2

数据库实验报告2昆明理工大学信息工程与自动化学院学生实验报告(2011 —2012 学年第 1 学期)课程名称:数据库系统教程开课实验室:信自楼445 2011 年11月 27日年级、专业、班学号姓名成绩实验项目名称SQL的数据查询指导教师丁家满教师评该同学是否了解实验原理: A.了解□ B.基语本了解□C.不了解□该同学的实验能力: A.强□ B.中等□C.差□该同学的实验是否达到要求: A.达到□ B.基本达到□C.未达到□实验报告是否规范: A.规范□ B.基本规范□C.不规范□实验过程是否详细记录: A.详细□ B.一般□ C.没有□教师签名:年月日一、上机目的及内容1.上机内容:SQL的数据查询,查询、插入、删除、修改2.上机目的:掌握数据查询语句,并能熟练应用二、实验原理及基本技术路线图(方框原理图或程序流程图)在SQL server 2008软件中的查询中,输入SQL代码三、所用仪器、材料(设备名称、型号、规格等或使用软件)1台PC及SQL server 2008软件四、实验方法、步骤(或:程序代码或操作过程)1)select查询单表查询:查询全体学生的学号及姓名:SELECT SNO,SNAME FROM S;查询全体学生的全部信息:SELECT*FROM S;2)查询经过计算值(SELECT子句的<目标列表达式>为表达式,表达式可以是:算术表达式、字符串常量、函数、列别名等)查全体学生的学号、姓名及其出生年份:SELECT SNO,SNAME,2012-AGE FROM S;查询全体学生的姓名、出生年份和所属系:SELECT SNO,SNAME,2012-AGE,SDEPT FROM S;查询选修了课程的学生学号:SELECT SNO FROM SC,C WHERE O=O;为了避免这种不合题意的情况,我们用distinct用了去除重复的元组。

所以上例中的执行语句为:SELECT DISTINCT SNO FROM SC;SELECT DISTINCT SNO FROM SC,C WHERE O=O;查询选修课程的各种成绩:SELECT CNO,GRADE FROM SC;SELECT DISTINCT CNO,DISTINCT GRADE FROM SC;SELECT CNO,DISTINCT GRADE FROM SC;SELECT DISTINCT CNO,GRADE FROM SC;SELECT CNO,GRADE FROM SC;对上述情况的分析及总结:distinct作用于其后的列,同一个selsct 后面只允许跟一个distinct而且只能放在第一个列的位置上。

数据库原理实验报告册

数据库原理实验报告册

数据库原理实验报告册实验名称课时实验报告成绩实验(一)——数据库基本操作 2实验(二)——SQL语句 6实验(三)——数据库完整性与4安全性实验实验(四)——数据库编程 4备注:实验一——数据库基本操作一、实验目的1.熟悉MS SQL SERVER运行界面,掌握服务器的基本操作。

2.掌握界面操作方法完成用户数据库建立、备份和还原。

3.建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。

二、实验预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1.熟悉SQL SERVER 2000 的运行环境,练习服务器基本操作:打开、停止、关闭。

2.使用SQL SERVER 2000 中的企业管理器完成以下任务。

数据库名称:STC表:STU(sno char(9), sname varchar(50), ssex char(2) , sage int, sdept char(2) );COUTSES(cno char(3), cname varchar(50), cpno char(3), credit int );SC(sno char(9), cno char(3), grade int );说明:以上为表结构,以sno char(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。

1)建立数据库STC,分别建立以上三张表,并完成数据录入。

(表结构及数据参见教材)A.新建STU数据库单击STU数据库,选择表,然后新建,依次用相同的步骤建立STU、COURSES 和SC表,见图BB.新建表数据录入:2)分析并建立各表的主码,用下划线在上面表结构中标出主码。

右击新建的表,选择设计表,再右击要设置成主码的属性,选择“设置主键”选项。

STU表的主码是sno;COURSES的主码是cno;SC表的主码是sno 和cno3)建立各表之间的关联,请简述操作步骤。

数据库原理概论上机实验报告

数据库原理概论上机实验报告

《数据库原理》上机实验报告学号:200910401352姓名:李德成班级:自动化093昆明理工大学信息工程与自动化学院2011年12月一、实验目的与要求:●熟练使用SQL定义子语言、操纵子语言命令语句●掌握关系模型上的完整性约束机制●掌握一定的数据库管理技术●能完成简单的数据库应用开发二、实验内容:表4 表person中的数据P_no P_name Sex BirthDate Prof Deptno 000001 王云男1973-4-7 中级0001 000002 谢志文男1975-2-14 中级0001 000003 李浩然男1970-8-25 高级0002 000004 廖小玲女1979-8-6 初级0002 000005 梁玉琼女1970-8-25 中级0003 000006 罗向东男1979-5-11 初级0003 000007 肖家庆男1963-7-14 高级0003表5 表salary中的数据P_no Base Bonus Fact S_month 000001 2100 300 1000002 1800 300 1000003 2800 280 1000004 2500 250 1000005 2300 275 1000006 1750 130 1000007 2400 210 1表6 表dept中的数据Deptno Dname0001 人事部0002 财务部0003 市场部实验1:利用SQL语句创建Employee数据库代码如下:/*create database Employee;*/实验2/实验12:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept;在员工数据库中创建人员表,月薪表,部门表并定义外键约束代码如下:部门表:/*create table dept(Deptno char(4) primary key,Dname varchar(10));*/人员表:/*create table person(P_no char(6) primary key,P_name varchar(10),Sex char(2) not null,Birthdate datetime,Prof varchar(10),Deptno char(4),foreign key(Deptno) references dept(Deptno));*/月薪表:将salary表中的P_no设为外键,并使其参照person表中的列P_no。

数据库实验报告 (4)

数据库实验报告 (4)

一实验题目1.索引的建立和删除操作2.视图的创建、修改、更新和查询操作二实验目的1.掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。

2.掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。

三实验内容1.索引的建立和删除操作(1)在S表中,建立按照sno升序的惟一性索引snoIDX。

(2)在SC表中,建立按照学号升序和课程号降序的唯一性索引scIDX。

(3)在S表中,按照生日建立一个非聚簇索引birthdayIDX。

(4)在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。

(5)删除索引cnameIDX。

2.视图的创建、修改、更新和查询操作(1)建立一个关于所有女生信息的视图S_GIRL。

(2)将各系学生人数,平均年龄定义为视图V_NUM_A VG(3)建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。

(4)建立一个所有学生课程成绩的视图S_GRADE,包括基本学生信息,课程信息和成绩。

(5)在视图S_GRADE基础之上,建立一个两门课以上成绩不及格的学生情况视图FAIL_GRADE。

(6)建立一个至少选修了4门课及4门课以上的学生信息的视图SC_FOUR。

(7)修改视图S_GIRL,要求只显示1997年以前出生的女生信息。

(8)在视图FAIL_GRADE查询不及格超过2门课的学生信息。

(9)删除视图S_GRADE。

(10)通过视图S_GIRL,将“王丹”的名字修改为“汪丹”,并查询结果。

(11)通过视图S_GIRL,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,1996-8-8),并查询结果。

(12)通过视图S_GIRL,删除1995年出生的女生信息,并查询结果。

(13)通过视图S_GRADE,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。

(14)通过视图COMPUTE_A VG_GRADE,将“4121090301”学生的平均分改为90分,是否可以实现,请说明原因。

数据库实验报告(7个实验完整附截图)

数据库实验报告(7个实验完整附截图)

数据库实验报告(7个实验完整附截图)福建农林大学计算机与信息学院实验报告课程名称:数据库原理及应用姓名:系:计算机科学与技术专业:计算机科学与技术年级:2012 级学号:指导教师:陈长江2014 年5月18 日实验项目列表序号实验项目名称成绩指导教师1 实验一数据库的定义实验(验证性)2 实验二数据库的建立和维护实验(验证性)3 实验三数据库的查询实验(验证性)4 实验四数据库的视图操作实验(验证性)5 实验五触发器、存储过程操作实验(综合性)实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 6.0 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL 语句和进行结果分析。

二、实验环境:硬件:PC机软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.0三、实验内容和原理:1、安装MySQL以及相应的GUI工具2、用SQL命令,建立学生-课程数据库基本表:学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept);课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit);选课SC(学号Sno,课程号Cno,成绩Grade);要求:1) 用SQL命令建库、建表和建立表间联系。

2) 选择合适的数据类型。

3) 定义必要的索引、列级约束和表级约束.四、实验步骤:1、运行Navicat for MySQL,然后进行数据库连接,进入到GUI 界面;2、利用图形界面建立基础表:student 表的信息:字段名类型长度约束条件Sno varchar9非空、主键Sname varchar20Ssex varchar2Sage smallint 6Sdept varchar20course表的信息:字段名类型长度约束条件Cno varchar4非空、主键Cname varchar40Cpno varchar4与 course 表中 Cno 关联Ccredit smallint 6sc表的信息:字段名类型长度约束条件Sno varchar9非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4Grade smallint6非空、主键、与course表中Cno外键关联(1)连接数据库,在 localhost 中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。

昆明理工大学数据库实验四

昆明理工大学数据库实验四

昆明理工大学信息工程与自动化学院学生实验报告(2013 —2014 学年第一学期)SQL之游标操作课程名称:数据库开课实验室:系机房445 2013 年12 月 3日年级、专业、班物联网111 学号201110410130 姓名杨国锋成绩实验项目名称SQL DDL 操作指导教师贾连印教师评语该同学是否了解实验内容与要求:A.了解□ B.基本了解□ C.不了解□该同学的实验能力: A.强□ B.中等□ C.差□该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□实验报告是否规范: A.规范□ B.基本规范□ C.不规范□是否有运行结果与分析: A.详细□ B.一般□ C.没有□是否有总结与体会: A.详细□ B.一般□ C.没有□教师签名:贾连印 2013年 12 月 3 日一、实验的目的1、掌握使用游标的基本步骤。

2、熟悉卷游标的使用3、学习用游标解决实际问题4、了解SQL的流程控制教师关系T(T#, TNAME,TITLE)课程关系C(C#,CNAME,T#)学生关系S(S#,SNAME,AGE,SEX)选课关系SC(S#,C#,SCORE)二、实验内容与要求在实验1、2创建的S、SC、C、T四个基本表的基础上,编写以下游标:1.实现一个游标,顺序读取并打印所有学生的学号、课程号、成绩信息,读取过程中删除S5的选课记录,并将为空的成绩修改为60分。

提示:编写过程中,可需参阅联机丛书获取下列内容的具体用法1、声明变量可用declare,为变量赋值用set2、需要判断可用if语句,如if内需执行多条语句,可用begin 和end 来限定if作用的范围3、可通过while循环来依次读取所有记录,读取状态可用@@FETCH_STATUS获取4、如游标已创建,但执行过程中出错。

导致重新执行时提示游标已存在,可用cursor_status来检查是否存在该游标,如存在,则先deallocate 2.实现一个卷游标,逆序打印所有学生的学号、课程号、成绩信息三、实验主要步骤(要求包括每一步的sql语句,要求主要步骤有执行结果截图,截图方法:可按住ALT键不放,同时按下PrtSc键)基础知识:游标也可以看作是一个表中的记录指针,该指针与某个查询结果相联系。

数据库实验4-实验报告

数据库实验4-实验报告

数据库实验4-实验报告数据库实验 4 实验报告一、实验目的本次数据库实验 4 的主要目的是深入理解和掌握数据库中的某些关键概念和操作,通过实际的操作和实践,提高对数据库管理系统的应用能力,增强解决实际问题的技能。

二、实验环境本次实验使用的数据库管理系统为_____,运行环境为_____操作系统,使用的开发工具为_____。

三、实验内容与步骤(一)创建数据库首先,打开数据库管理系统,使用相应的命令或操作界面创建了一个名为“_____”的数据库。

在创建过程中,指定了数据库的一些基本属性,如字符集、排序规则等,以满足后续数据存储和处理的需求。

(二)创建数据表在创建好的数据库中,根据实验要求创建了若干个数据表。

例如,创建了一个名为“students”的表,用于存储学生的信息,包括学号(student_id)、姓名(student_name)、年龄(age)等字段。

创建表时,仔细定义了每个字段的数据类型、长度、是否允许为空等属性,以确保数据的准确性和完整性。

(三)数据插入接下来,向创建的数据表中插入了一些测试数据。

通过执行相应的插入语句,将学生的具体信息逐个插入到“students”表中。

在插入数据的过程中,特别注意了数据的格式和合法性,避免了因数据错误导致的插入失败。

(四)数据查询完成数据插入后,进行了各种查询操作。

使用了简单的查询语句,如“SELECT FROM students”来获取所有学生的信息。

还使用了条件查询,如“SELECT FROM students WHERE age >18”来获取年龄大于 18 岁的学生信息。

通过这些查询操作,熟悉了如何从数据库中获取所需的数据。

(五)数据更新对已有的数据进行了更新操作。

例如,通过执行“UPDATE students SET age = 20 WHERE student_id =1”的语句,将学号为 1 的学生的年龄更新为20 岁。

在更新数据时,谨慎操作,确保只更新了预期的记录。

《数据库系统原理》实验4

《数据库系统原理》实验4

《数据库系统原理》实验报告姓名:指导教师:学号:实验日期:2016/6/7一、实验成果截图研究所有多名科研人员,每一个科研人员只属于一个研究所,每个研究所有多个研究项目,每个研究项目有多名科研人员参加,每个科研人员可以参加多个研究项目。

科研人员参加研究项目要统计工作量。

研究所有属性:编号,名称,地址科研人员有属性:职工编号,姓名,性别,年龄,职称科研项目有属性:项目号,项目名,经费1.试画出ER图,并注明属性和联系类型2.将ER模型转换为关系模型,并注明主码和外码3.在mysql中用SQL语句建立上述表,自定义主键和外键,并输入部分测试数据mysql> use science;Database changedmysql> create table inst(riid varchar(3),riname varchar(50),addr varchar(100),primary key(riid));Query OK, 0 rows affected (0.04 sec)mysql> create table res(rid varchar(3),rname varchar(50),rsex varchar(6),rage int(3), title varchar(100),primary key(rid));Query OK, 0 rows affected (0.03 sec)mysql> create table pro(pid varchar(3),pname varchar(50),fund numeric(16,2),primary key(pid));Query OK, 0 rows affected (0.02 sec)mysql> create table partin(pid varchar(3),rid varchar(3),work int(5),foreign key(pid) references pro(pid),foreign key(rid) references res(rid),primary key(rid,pid));Query OK, 0 rows affected (0.03 sec)4.完成如下SQL查询:1)查询比“Li na”参与的项目的平均经费高的项目的名称;mysql> select pname from pro where pid in (select pid from pro where fund in (select max(fund) from pro where pid in (select pid from partin where rid in (select rid from res where rname='Lina'))));2)查询名字中至少含有一个“z”字符的科研人员的工作量;mysql> select work from partin where rid in (select rid from res where rname like '%z%');3)查询在“HuaWei”或“ZhongXing”工作的科研人员的个人信息,查询结果首先按性别升序,然后按年龄降序排列;mysql> select * from res where rid in (select rid from workin where riid in (select riid from inst where riname like '%HuaW%' or riname like 'ZhongX%')) order by rsex asc,rage desc;4)查询同时参与了“X01”和“X02”项目的科研人员的工作量的总和;mysql> select sum(work) from partin where rid in (select rid from partin where rid in (select rid from partin where pid='P02') and pid='P01');5)查询比本研究所有人的工作量都高的科研人员姓名;select rname from res where rid=(select rid from partin where work=(select max(work) from partin));6)查询与“Ma fei”一同参与至少一个科研项目的科研人员姓名和性别;mysql> select rname,rsex from res where rid in (select rid from partin where pid in (select pid from partin where rid in (select rid from res where rname like 'Ma fei%')));7)查询参与了“X01”项目的科研人员详细信息,查询结果中,以“男”代替“male”,以“女”代替“female”;使用case语句实现;mysql> select rid,rname,case rsex when 'male' then '男' when 'female' then '女' end from res;8)将所有参与了“X01”项目的男性员工的工作量提高10%;mysql> update partin set work=1.1*work where rid in (select rid from res where rsex='male');9)将Zhang xin的相关信息删除。

昆明理工大学 数据库作业

昆明理工大学 数据库作业

学院:信息工程与自动化学院姓名:学号:2012104101专业班级:物联网121班课程:数据库系统教程任课老师:王清心提交时间:2015年1月2014/10/14 星期二作业一1、找出部门30中工资多于或等于160的推销员。

SELECT *FROM Sheet1$WHERE (DEPTNO = 30) AND (JOB = '推销员') AND (SAL >= 160) 2、找出不在部门30中的部门经理。

SELECT *FROM Sheet1$WHERE (DEPTNO <> 30) AND (JOB = '部门经理')3、找出所有工作为部门经理或总经理的职工。

SELECT *FROM Sheet1$WHERE (JOB = '部门经理') OR (JOB = '总经理')4、找出部门为10中工作为部门经理或办事员的所有职工。

SELECT *FROM Sheet1$WHERE (DEPTNO = 10) AND (JOB IN ('部门经理', '办事员 ')) 5、找出部门10中既不是部门经理也不是办事员的职工。

SELECT *FROM Sheet1$WHERE (DEPTNO = 10) AND (NOT (JOB = '部门经理' ORJOB = '办事员'))6、找出30部门的所有职工。

SELECT *FROM Sheet1$WHERE (DEPTNO = 30)7、找出工作为办事员的职工。

SELECT *FROM Sheet1$WHERE (JOB = '办事员')8、找出佣金多于工资的职工。

SELECT *FROM Sheet1$WHERE (COMM > SAL)9、找出部门20中,工资高于200的职工。

SELECT *FROM Sheet1$WHERE (DEPTNO = 20) AND (SAL > 200)10、找出工资在120-140之间的职工。

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

昆明理工大学信息工程与自动化学院学生实验报告
(2013 —2014 学年第一学期)
SQL之游标操作
课程名称:数据库开课实验室:系机房445 2013 年12 月 3日
年级、专业、班物联网111 学号201110410130 姓名杨国锋成绩
实验项目名称SQL DDL 操作指导教师贾连印
教师评语该同学是否了解实验内容与要求:A.了解□ B.基本了解□ C.不了解□
该同学的实验能力: A.强□ B.中等□ C.差□
该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□
实验报告是否规范: A.规范□ B.基本规范□ C.不规范□
是否有运行结果与分析: A.详细□ B.一般□ C.没有□
是否有总结与体会: A.详细□ B.一般□ C.没有□
教师签名:贾连印 2013年 12 月 3 日
一、实验的目的
1、掌握使用游标的基本步骤。

2、熟悉卷游标的使用
3、学习用游标解决实际问题
4、了解SQL的流程控制
教师关系T(T#, TNAME,TITLE)
课程关系C(C#,CNAME,T#)
学生关系S(S#,SNAME,AGE,SEX)
选课关系SC(S#,C#,SCORE)
二、实验内容与要求
在实验1、2创建的S、SC、C、T四个基本表的基础上,编写以下游标:1.实现一个游标,顺序读取并打印所有学生的学号、课程号、成绩信息,读取过程中删除S5的选课记录,并将为空的成绩修改为60分。

提示:编写过程中,可需参阅联机丛书获取下列内容的具体用法
1、声明变量可用declare,为变量赋值用set
2、需要判断可用if语句,如if内需执行多条语句,可用begin 和
end 来限定if作用的范围
3、可通过while循环来依次读取所有记录,读取状态可用
@@FETCH_STATUS获取
4、如游标已创建,但执行过程中出错。

导致重新执行时提示游标
已存在,可用cursor_status来检查是否存在该游标,如存在,则先deallocate 2.实现一个卷游标,逆序打印所有学生的学号、课程号、成绩信息
三、实验主要步骤(要求包括每一步的sql语句,要求主要步骤有执行结果截
图,截图方法:可按住ALT键不放,同时按下PrtSc键)
基础知识:
游标也可以看作是一个表中的记录指针,该指针与某个查询结果相联系。

在某一时刻,该指针只指向一条记录,即游标是通过移动指向记录的指针来处理数据的。

当用户在SQL Server Management Studio中浏览记录时,总有一条记录的前面有一个黑色的三角标识,该标识就好像是一个记录指针。

游标通过以下方式来扩展结果处理:
1) 允许定位在结果集的特定行
2) 从结果集的当前位置检索一行或一部分行
3) 支持对结果集中当前位置的行进行数据修改
4) 存储过程和触发器中用于访问结果集中的数据的T-SQL语句
游标的基本操作:
--定义游标命令
declare demo1cursor for select*from c for read only;
--打开游标命令
open demo1;
--执行游标命令
fetch next from demo1;
--关闭游标命令
close demo1;
--删除游标命令
deallocate demo1;
fetch next from demo1; 每次执行一次数据
第一题:
--打印所有学生的学号、课程号、成绩信息
select*from SC;
--游标
--定义游标
declare@s#char(6),@c#char(6),@score int--定义变量
declare SCCUR cursor for select*from sc;--声明游标
open SCCUR
FETCH NEXT FROM SCCUR
into@s#,@c#,@score
while@@FETCH_STATUS=0
begin
if(@score is null)
begin
print'学号:'+@s#+' 课程号:'+@c#+' 成绩:'+'空'
end
else
print'学号:'+@s#+'课程号:'+@c#+'成绩:'+cast(@score as char(5))-- 类型转化
fetch next from sccur
into@s#,@c#,@score
end
CLOSE SCCUR
deallocate SCCUR
用游标查看整个表中的数据
下面删除s5的选课记录,并把成绩为空的的成绩修改为60
declare@s#char(6),@c#char(6),@score int--定义变量
declare SCCUR cursor for select*from sc;--声明游标
open SCCUR
FETCH NEXT FROM SCCUR
into@s#,@c#,@score
while@@FETCH_STATUS=0
begin
if(@score is null)
begin
set@score=60
print'学号:'+@s#+' 课程号:'+@c#+' 成绩:'+cast(@score as char(5))
end
else
print'学号:'+@s#+'课程号:'+@c#+'成绩:'+cast(@score as char(5))-- 类型转化
/*begin
--delete from SC where SC.S#='s5'
end*/
fetch next from sccur
into@s#,@c#,@score
end
CLOSE SCCUR
deallocate SCCUR
二、实现一个卷游标,逆序打印所有学生的学号、课程号、成绩信息
--卷游标
declare SCCUR scroll cursor for select*from sc order by sc.s#desc;--卷游标的申明scroll
open SCCUR
fetch next from sccur--利用游标提取数据
while@@FETCH_STATUS=0--返回下一条的数据
begin
fetch next from sccur
end
--倒过来读取数据
close sccur
deallocate sccur
四、结论与体会(在上机程序调试中遇到的问题、采用的解决办法、得到的收获)
游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。

每个游标区都有一个名字。

用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。

通过这次试验我明白了游标在数据库中的具体运用,以后在学习数据库的过程中还需要更加深入。

相关文档
最新文档