《数据库原理》 实验指导书
石家庄铁道学院
1
目 录
数据库原理实验安排 .................................................................... 1 实验一 数据库和表的建立、数据操作 .................................. 2 实验二 SQL语言的使用 ........................................................... 5 实验三 完整性、安全性实现 .................................................. 7 实验四 数据库编程 .................................................................. 9 附录一:SQL Server的安装 ...................................................... 11 附录二:实验二SQL语句 .......................................................... 23 附录三:实验一答案 .................................................................. 26 附录四:实验二答案 .................................................................. 29
2
数据库原理实验安排
一、实验目的
通过实验,使学生熟悉并掌握数据库的基本概念、基本原理、和基本技术;能够应
用这些理论和技术设计合理的数据库;更重要的是通过教学活动,使学生能够把与数据库相关的先修后继知识融会贯通,初步具有开发完整可用的数据库系统的能力。
二、实验安排
本门课程共分4个实验,8学时
实验一 数据库和表的建立、数据操作 2学时 实验二 SQL语言的使用 2学时 实验三 完整性、安全性实现 2学时 实验四 数据库编程 2学时
三、实验考核
实验成绩通过实验报告及每次实验后的验机给出,每次实验结束后都必须写出实验
报告,报告内容包括:实验名称、实验内容、实验完成情况(包括实验设计思想、主要技术问题的处理方法、实验过程等)、其他(说明、分析、建议、体会等)。
1
实验一 数据库和表的建立、数据操作
一、实验目的:
掌握使用SQL语言进行数据定义和数据操纵的方法。
二、实验要求:
建立一个数据库stumanage,建立三个关系表students,course,grade。向表中插入数据,然后对数据进行删除、修改等操作,对关系、数据库进行删除操作。
三、实验步骤:
1、 开始----〉程序----〉Microsoft SQL Server-----〉服务管理器,服务器中输入本机
器的名字,点击“开始/继续”以启动SQL Server服务管理器。
2、 开始----〉程序----〉Microsoft SQL Server-----〉查询分析器,SQL Server中输入
本机器的名字,选择“SQL Server身份验证”,用户名和密码为sa。点击确定。 3、 在上部的空白区输入SQL语句------建立数据库stumanage。然后单击上面的绿
色三角形右箭头。下部的空白区显示该语句的运行情况,将建立数据库的SQL语句写入实验报告。(注:以下操作均在上部的空白区输入SQL语句,单击上面的绿色右箭头运行后,下部的空白区显示该语句的运行情况。) 4、 在菜单条的下拉框中,选择数据库stumanage。
5、如下图建立表students: 列名 数据类型 允许空 主键 说明
1 sno Char(8) 否 是 学号 2 sname Varchar(20) 是 否 姓名 3 sex Char(2) 是 否 性别 4 dept Varchar(20) 是 否 所在系
如下图建立表:course
1 2
列名 数据类型 允许空 主键 说明 cno cname
Char(6) Varchar(20)
否 是
是 否
课程号 课程名
如下图建立表sc:(注:包括两个外键,sno和cno共同组成主键)
2
1 2 3 列名 sno cno grade 数据类型 允许空 Char(8) 否 Char(6) 否 int 否 主键
否 外键 是students(sno) 是course(sno) 否 说明
学号 课程号 成绩
6、将三条建表语句写入实验报告。 7、在students表中插入两条数据: (1)20050101,王飞,男,计算机系 (2)20050102,李丽,女,信息系 8、在course表中插入两条数据: (1)01,数据结构 (2)02,数据库原理 9、在sc表中插入两条数据: (1)20050101,01,70 (2)20050102,02,90
10、将此八条SQL语句写入实验报告。
11、对每一门课,求学生的平均成绩,并把结果以基本表的形式存入数据库。将操
作命令和所用SQL语句写入实验报告。
12、 修改sc表中sno为20050102、cno为02的记录的grade属性值为85,然后将
该条记录删除。将此两条SQL语句写入实验报告。
13、修改‘数据库原理’课程的所有学生成绩为0。将此条SQL语句写入实验报告。 14、删除‘李丽’的所有选课情况。将此条SQL语句写入实验报告。 15、删除数据库中的三个表中的所有数据,将所用SQL语句写入实验报告。 16、删除数据库中的三个表结构。将所用SQL语句写入实验报告。 17、删除数据库,将所用语句写入实验报告。
说明:具体表结构和数据以及要做的各种数据操作可以灵活掌握,可以针对
其他数据库进行操作,具体情况由任课老师作出明确要求。
四、实验报告注意事项及要求:
1、实验报告一律用“石家庄铁道学院实验报告纸”书写。
2、实验报告中明确写明姓名、班级、学号、实验时间、实验名称等各项表头。
3
3、实验报告各项完整:实验名称、实验内容、实验完成情况(包括实验设计思想、主要技术问题的处理方法、实验过程等)、其他(说明、分析、建议、体会等)。
4
实验二 SQL语言的使用
一、实验目的:
掌握使用SQL语言进行各种查询的操作和视图的操纵方法。
二、实验要求:
在现有的数据库上进行各种查询操作,对视图、存储过程的创建、使用等操作。
三、实验步骤:
1、开始----〉程序----〉Microsoft SQL Server-----〉服务管理器,服务器中输入本机器的名字,点击“开始/继续”以启动SQL Server服务管理器。
2、开始----〉程序----〉Microsoft SQL Server-----〉查询分析器,SQL Server中输入本机器的名字,选择“SQL Server身份验证”,用户名密码为:sa。点击确定。 3、在上部的空白区导入文件“实验二SQL语句.txt”中的SQL语句,然后单击上面的绿色三角形右箭头运行,建立起实验要操作的数据库test1,并在库中建立表、数据。下部的空白区显示该语句的运行情况。
4、在数据库test1中进行下列查询操作,将查询语句与结果写入实验报告。 (请先做奇数题目,再做偶数题目)
(1)查询所有供应商情况,先按城市升序排列,城市相同按供应商名称降序排列。 (2)查询所有零件情况,先按零件名称升序排列,零件名称相同按重量降序排列。 (3)查询项目名中含有“厂”的项目情况。
(4)查询供应商名称中第二个字为“方”的供应商情况。 (5)查询所有零件中的最大、最小、平均重量。
(6)查询零件中名为“螺丝刀”的零件的种类数、平均重量。 (7)查询供应商S1所供应的各种零件的名称和数量。 (8)查询工程J1所使用的各种零件的名称和数量。
5
(9)查询没有使用红色螺丝刀的工程名称。 (10)查询没有供应红色螺丝刀的供应商名称。 (11)查询所用零件数量超过500的工程项目号。 (12)查询所用零件种类超过3种的工程项目名称。 (13)查询使用了全部零件的工程项目名称。
(14)查询至少供应了工程J1所使用的全部零件的供应商名称。
(15)查询供应情况,显示内容为供应商名称、零件名、工程名称、数量。 (16)查询“东方红”供应商供应情况,显示供应的零件名、工程名称、数量。 5、请为机车厂工程项目建立一个供应情况的视图,包括供应商代码,零件代码, 供应数量。针对该试图完成如下查询并将SQL语句写入实验报告。 (1)查询机车厂工程项目使用的各种零件代码及其数量。 (2)查询处供应商S2的供应情况。
6、 开始----〉程序----〉Microsoft SQL Server-----〉企业管理器,到企业管理器下了
解关于数据库管理的各种直接操作的方法。将了解的内容写入实验报告。
说明:具体表结构和数据以及要做的各种数据操作可以灵活掌握,可以针对
其他数据库进行操作,具体情况由任课老师作出明确要求。
四、实验报告注意事项及要求:
1、 实验报告一律用“石家庄铁道学院实验报告纸”书写。
2、 实验报告中明确写明姓名、班级、学号、实验时间、实验名称等各项表头。 3、 实验报告各项完整:实验名称、实验内容、实验完成情况(包括实验设计思想、主要技术问题的处理方法、实验过程等)、其他(说明、分析、建议、体会等)。
6
实验三 完整性、安全性实现
一、实验目的:
使学生加深对数据库安全性和完整性的理解,并掌握SQL Server中有关用户、角色及操作权限的管理方法,学会创建和使用规则、缺省和触发器。
二、实验要求:
通过实验对数据进行完整性控制、安全性维护。
三、实验步骤:
1、数据库的安全性实验:在SQL Server企业管理器中,设置SQL Server的安全认证模式,实现对SQL Server的用户和角色管理,设置和管理数据操作权限。 2、数据库的完整性实验:使用Transact-SQL设计规则、缺省、约束和触发器,通过SQL Server企业管理器定义它们。
(1)在SQL Server企业管理器中,为所属的SQL服务器设置Windows NT安全认证模式。
(2)在SQL Server企业管理器中为自己建立一个服务器用户、数据库用户和数据库角色。并将自己创建的学生选课库的所有操作权赋予它们,将设计数据库的操作权赋予新建的数据库用户。
图书(书号,类别,出版社,作者,书名,定价,作者); 读者(编号,姓名,单位,性别,电话); 借阅(书号,读者编号,借阅日期)
(3)用企业管理器创建触发器的步骤如下:
① 定义学生表所在系属性为“计算机系”的缺省,并捆绑缺省到学生表中。 ② 利用触发器来保证学生选课库中选课表的参照完整性,以维护其外码与参照表中的主码一致。
7
(4)为图书读者库中的借阅表建立一个保证参照完整性,以维护外码与被参照表
中的主码一致的触发器。
(5)建立一个学生与选课表间来维护参照完整性而使用的级联删除触发器、级联
修改触发器和受限插入触发器。
(6)针对设计的数据库应用项目的完整性要求,用Transact-SQL语句定义并通过
Enterprise Manager实现。
说明:具体针对的数据库和触发器可以灵活掌握,可以针对其他数据库进行
相关触发器操作,具体情况由任课老师作出明确要求。
四、实验报告注意事项及要求:
1、 实验报告一律用“石家庄铁道学院实验报告纸”书写。
2、 实验报告中明确写明姓名、班级、学号、实验时间、实验名称等各项表头。 3、 实验报告各项完整:实验名称、实验内容、实验完成情况(包括实验设计思想、主要技术问题的处理方法、实验过程等)、其他(说明、分析、建议、体会等)。
8
实验四 数据库编程
一、实验目的:
熟悉并掌握嵌入式SQL编程、存储过程、ODBC的原理和使用。
二、实验要求:
掌握使用嵌入式SQL编程访问数据库。掌握使用存储过程来进行数据库应用程序的设计。学会配置ODBC数据源,熟悉使用ODBC来进行数据库应用程序的设计,掌握通过ODBC接口访问数据库,并对数据库进行操作。
三、实验步骤:
1、熟悉RDBMS的预编译程序:通过嵌入式SQL编程访问数据库“学生—课程数据库”中的表,完成下面功能:
(1)查询某一门课程的信息。要查询的课程由用户在程序运行过程中指定、放在
主变量中;
(2)查询选修某一门课程的选课信息,要查询的课程号由用户在程序运行过程中
指定,放在主变量中,然后根据用户的要求修改其中某些记录的成绩字段。 2、对“学生—课程数据库”编写存储过程,完成下面功能: (1)统计数据库原理课程的成绩分布情况,按照各分数段统计人数; (2)统计任意一门课程的平均成绩;
(3)将学生选课成绩从百分制改为等级制(优秀、良好、中等、及格、不及格)。 3、使用ODBC编写应用程序来对数据库进行各种数据操作:配置“学生—课程”数据源,编写程序连接数据源,并通过数据源对数据进行操作练习。
说明:具体针对的数据库以及完成的编程功能可以灵活掌握,可以针对其他
数据库进行操作,具体情况由任课老师作出明确要求。
四、实验报告注意事项及要求:
1、 实验报告一律用“石家庄铁道学院实验报告纸”书写。
2、 实验报告中明确写明姓名、班级、学号、实验时间、实验名称等各项表头。
9
3、 实验报告各项完整:实验名称、实验内容、实验完成情况(包括实验设计思想、主要技术问题的处理方法、实验过程等)、其他(说明、分析、建议、体会等)。
10
附录一:SQL Server的安装
安装SQL Server分为三部分。第一步是安装前的系统检查列表,通过它可以确保你的机器中的硬件和软件能满足安装的最小需求,然后是创建所需的用户帐号。第二步是实际安装过程。在这个过程中,将安装服务器软件本身,同时建立一些缺省的数据库。最后一步是回顾所有已安装的选项,以保证全部的工作都正确无误。
一、安装准备:
安装前的准备过程可能是SQL Server安装过程中最重要的一部分。如果这个过程不能正确完成,可能会导致整个安装过程失败,或者在运行过程中出现问题。在安装前首先要检查一下计算机的硬件和软件,保证能满足最小需求,然后建立SQL Server在运行时要用到的用户帐号。
典型安装:典型安装按默认选项安装SQL Server和客户工具。如果选择这种选项,在安装过程中几乎可以不用做什么选择。此选项会自动安装SQL Server引擎和M a n a g e m e n tTo o l s、Books Online、Quick To u r及What's New。它不安装全Full Text Search、开发工具和样本文件。不算上用户数据库,此选项大约需要1 6 5 M B磁盘空间。
最小安装:同典型安装一样,最小安装也按默认的选项来安装SQL Server。不同之处在于此选项用尽可能少的文件来安装SQL Server。这样只要很少的磁盘空间——大约7 4 M B。最小安装不安装Management To o l s、Books Online、Quick To u r和What's New。
自定义安装:此选项允许你选择哪些SQL Server选项将被安装,怎样安装。为使此选项能正常运行,必须清楚地知道你需要SQL Server如何工作。你要考虑选择使用哪种网络协议、字符集、默认的排序方法、哪些工具要安装、所有的文件存储在哪儿、哪个文档要安装、SQL Server在哪个帐号下运行、SQL Server怎样启动。
二、SQL Server安装过程:
下面讲解怎样从本地C D - R O M上安装SQL Server200的个人版。这里所有的指导,
11
对于别的版本亦类似。关于安装和配置SQL Server企业版的更多资料,可以在Books Online上查到。下面是安装步骤:
(1) 将安装盘放入光驱,将会出现如图1所示的安装初始画面。
图1:安装初始画面
(2) 选择“安装SQL Server 2000组件”选项,进入安装组件窗口,如图2所示。
在这个窗口中列出了三个组件,数据库服务器、Analysis Service和English Query。
在这三个组件中数据库服务器是首选的,也是必须安装的。
图2:安装组件窗口
12
(3) 选择“安装数据库服务器”选项,进入安装向导的欢迎窗口,如图3所示。
图3:安装向导欢迎界面
(4) 单击“下一步”,进入图4中所示的选择计算机窗口。一般情况下都在本地计算机进行安装(即当前计算机),若选择远程计算机安装需要具备以下几个条件。
图4:选择计算机界面
13
① 本地和远程计算机都必须运行在Windows NT或Windows 2000操作系统下。
② 用户必须有远程计算机的管理员帐户。
③ 本地和远程计算机都必须具备与Intel兼容的CPU。
(5) 选择“本地计算机”,单击“下一步”进入SQL Server 2000的安装选项窗口,如图5。
图5:安装选择窗口
如果是第一次安装,请选择“创建新的SQL Server实例,或安装客户端工具”,单击“下一步”按钮,进入图6所示的用户信息窗口。
图6:用户信息窗口
14
在该窗口中输入用户姓名和公司名称,单击“下一步”按钮,进入图7所示的软件许可证协议窗口。
图7:软件许可证协议窗口
单击“是”按钮接受协议,进入图8所示的安装定义窗口。
图8:安装定义窗口
15
(6) 在图8所示窗口中有三种选择,用户可根据自己的需要选择,其含义分别如下所述。
仅客户端工具:只想把计算机做为SQL Server 2000的客户端使用时,可选择此项; 服务器和客户端工具:如果你想建立具有管理功能的服务器,请使用该选项; 仅连接:只安装微软的数据访问组件和网络库,用于开发应用程序。
(7) 选择“服务器和客户端工具”,单击“下一步”按钮,进入如图9所示的实例名窗口。
操作系统平台上可以安装以及同时运行多个SQL Server数据库服务器实例,其中包括一个“默认”实例和最多16个命名实例。“默认”服务器实例名称用“计算机名”标识,命名实例服务器名称用“计算机名\\实例名”标识,在注册服务器时应认真观察。
若默认服务器实例已经安装,以后再安装只能安装命名实例服务器。
图9:实例名称窗口
(8) 输入命名实例名“ZSL”,单击“下一步”按钮,进入图10所示的安装类型窗口。SQL Server 2000的安装类型有三种,用户可根据自己的需要选择,其含义分别如下。
典型:安装大多数常用组件,这是大多数用户使用的选项,也是默认选项; 最小:只安装保证系统运行的最基本的组件;
16
自定义:允许用户任意选择要安装的组件。
此外,在该窗口中还有两个“浏览”按钮,单击这两个按钮可分别改变程序文件和数据文件的安装路径,一般用默认设置即可。
图10:安装类型选择界面
(9) 将安装类型和文件安装路径全部选择为默认选项,单击“下一步”按钮,进入如图11所示的服务帐户窗口。
图11:服务账户窗口
17
该窗口主要用来设置服务帐户。先选择“对每个服务使用同一帐户。自动启动SQL Server服务。”,再选择服务设置栏中的“使用本地系统帐户”。在完成SQL Server安装之后,根据需要,用户可在SQL Server服务器中重新设置服务帐户。 (10) 单击“下一步”按钮,进入如图12所示的身份验证模式窗口。
该窗口是用来设置身份验证模式的。先选择“混合模式”,并为sa帐户设置登录密码。用户也可选中空密码复选框不为sa指定密码,但这种方法不安全,故不提倡采用。在完成SQL Server安装之后,根据需要,用户在SQL Server服务器中可重新设置用户身份验证模式。关于登录帐户和身份验证问题,在注册服务器时作统一介绍。
图12:身份验证模式窗口
(11) 单击“下一步”按钮,进入如图13所示的排序规则设置窗口。
该窗口主要用来设置SQL Server的排序规则,即指定在SQL Server 2000中字符的存储形式以及字符的排序和比较规则。若无特殊需求,使用默认设置Chinese_PRC即可。但若是有两台或两台以上的SQL Server(例如一台在中国,另一台在美国)需要进行数据交换,则这两台SQL Server需设置为相同的排序方式,这样才不会造成数据不合的问题。
18
另外,还有5个排序选项可设置英文数字的排序方式,如无特殊要求选默认值即可。各选项说明如下。
二进制(Binary):选择此项则以字符的ASCII二进制值来排序,这也是处理数据最快的排列方式。否则,就是依英文字典中的字母顺序排序。
区分大小写(Case Sensitive):选择此项,区分大小写,否则不区分大小写。 重音敏感(Accent Sensitive):选择此项,区分含重音节符号的字符和不含重音节符号的字符(在德、法等欧洲语言中,有些含重音符号字母),否则不区分。
假名敏感(Kana Sensitive):选择此项,区分日文中的平假名和片假名,否则不区分。 宽度敏感(Width Sensitive):选择此项,将双字节字符集中的双字节字符和单字节字符集中的同一字符视为不同,否则不区分。
图13:排序规则设置窗口
(12) 单击“下一步”按钮,进入如图14所示的网络库窗口,该窗口用来设置SQLServer客户端与其他电脑的服务器连接时所使用的网络库。使用默认值则会安装命名管道和
19
TCP/IP套接字两种,一般情况下这已经够用了。以下是各项的说明。
图14:网络库窗口
命名管道:命名管道是两个程序(或电脑)之间传送信息的管道。当建立此管道之后,SQL Server随时都会等待此管道中是否有数据包传递过来等待处理,然后再通过此管道传递回应数据包。
TCP/IP套接字:这是TCP/IP通信协议网络库。如果端口号使用1433,则用户端要用TCP/IP与服务器连接时,在服务器端的TCP/IP端口号也必须为1433。
此外,如果设置代理服务器,则也可让SQL Server与此代理服务器连接,并在代理服务器地址栏内输入代理服务器的IP地址。
多协议:客户端可通过TCP/IP、IPX/SPX或命名管道这3种通信协议网络库与服务器建立连接。若需要对传送的数据及密码加密,则可选择“启用多协议加密”选项。
NWLink IPX/SPX:可让Netware网络用户通过IPX/SPX通信协议网络库与SQL Server连接。
AppleTalk ADSP:可让Macintosh用户通过AppleTalk ADSP通信协议网络库连接SQL Server。
20
Banyan VINES:可让用户通过Banyan VINES SPP通信协议网络库与SQL Server建立连接。
到现在为止,已经完成了对各种选项的设置。如果已经确定不需要修改,则单击“下一步”按钮,开始安装组件。当全部工作完成后将显示完成画面,用户单击“确定”按钮后会再次回到选择安装组件画面。
用户可退出,也可继续安装其它部件,如联机分析服务(Analyse Service)和英语查询(English Query)。
如果安装成功,则在“开始”-->“程序”-->“Microsoft SQL Server”程序项下将会看到如图15所示的情况。
图15:安装到“程序”中的界面
三、检查SQL Server的安装:
现在已经完成了SQL Server的安装过程,应该再检查一遍SQL Server是否安装正确。有几件事需要检查。应该对下面的每件事进行检查以保证SQL Server安装正确:
• 是否正确地建立了目录?
21
• 是否装载了适当的管理工具? • SQL Server服务真的装上了吗?
• 安装过程中是否存在错误或者你的安装检查正确吗?
22
附录二:实验二SQL语句
1、 创建数据库:
create database test1;
2、 创建二维表:
Create table s(
Sno char(2) primary key, sname varchar(10) not null, status int, city varchar(10)); create table p(
pno char(2) primary key, pname varchar(10) not null, color varchar(6), weight int); create table j(
jno char(2) primary key, jname varchar(20) not null, city varchar(10)); create table spj(
sno char(2) foreign key references s(sno), pno char(2) foreign key references p(pno), jno char(2) foreign key references j(jno), qty int,
primary key(sno,pno,jno));
23
3、 为各二维表插入数据:
insert into s values('s1','精益',20,'天津'); insert into s values('s2','盛德',10,'北京'); insert into s values('s3','东方红',30,'北京'); insert into s values('s4','丰泰盛',20,'天津'); insert into s values('s5','为民',30,'上海'); insert into p values('p1','螺母','红',12); insert into p values('p2','螺栓','绿',17); insert into p values('p3','螺丝刀','蓝',14); insert into p values('p4','螺丝刀','红',14); insert into p values('p5','凸轮','蓝',40); insert into p values('p6','齿轮','红',30); insert into j values('j1','三建','北京'); insert into j values('j2','一汽','长春'); insert into j values('j3','弹簧厂','天津') insert into j values('j4','造船厂','天津') insert into j values('j5','机车厂','唐山'); insert into j values('j6','无线电厂','常州'); insert into j values('j7','半导体厂','南京'); insert into spj values('s1','p1','j1',200); insert into spj values('s1','p1','j3',100); insert into spj values('s1','p1','j4',700); insert into spj values('s1','p2','j2',100); insert into spj values('s2','p3','j1',400); insert into spj values('s2','p3','j2',200);
24
insert into spj values('s2','p3','j4',500); insert into spj values('s2','p3','j5',400); insert into spj values('s2','p5','j1',400); insert into spj values('s2','p5','j2',100); insert into spj values('s3','p1','j1',200); insert into spj values('s3','p3','j1',200); insert into spj values('s4','p5','j1',100); insert into spj values('s4','p6','j3',300); insert into spj values('s4','p6','j4',200); insert into spj values('s5','p2','j4',100); insert into spj values('s5','p3','j1',200); insert into spj values('s5','p6','j2',200); insert into spj values('s5','p6','j4',500);
25
附录三:实验一答案
1、创建数据库:
create database stumanage;
2、创建三个二维表:
create table students (sno char(8) primary key, sname varchar(20), sex char(2), dept varchar(20)); create table course (cno char(6) primary key, cname varchar(20)); create table sc
(sno char(8) foreign key references students(sno), cno char(6) foreign key references course(cno), grade int);
3、插入数据:
insert into students values('20050101','王飞','男','计算机系'); insert into students values('20050102','李丽','男','信息系'); insert into course values('01','数据结构'); insert into course values('02','数据库原理'); insert into sc values('20050101','01',70);
26
insert into sc values('20050102','02',90);
4、创建新的二维表,并将查询结果存入表中:
create table sg (cno char(6), cname varchar(20), g int); insert into sg
select sc.cno, cname,avg(grade) from course,sc
where course.cno=sc.cno group by sc.cno,cname;
5、一般更新、删除操作:
update sc set grade=85 where sno='20050102' and cno='02'; delete from sc where sno='20050102' and cno='02';
6、带子查询的更新操作:
update sc set grade=0
where '数据库原理'=(select cname from course where sc.cno=course.cno); update sc set grade=0
where cno in (select cno from course where cname='数据库原理');
7、带子查询的删除操作:
delete from sc
where '李丽'=(select sname from students where students.sno=sc.sno);
27
delete from sc
where sno in(select sno from students where sname='李丽');
8、删除数据操作:
delete from sc; delete from students; delete from course;
9、删除表结构操作:
drop table sc; drop table students; drop table course;
10、删除数据库操作:
drop database stumanage;
28
附录四:实验二答案
一、查询操作:
1. select * from s order by city,sname desc; 2. select * from p order by pname,weight desc; 3. select * from j where jname like '%厂%'; 4. select * from s where sname like '_方%';
5. select max(weight),min(weight),avg(weight) from p; 6. select count(pno),avg(weight) from p where pname='螺丝刀'; 7. select pname,sum(qty) from spj,p
where spj.pno=p.pno and sno='s1' group by pname; 8. select pname,sum(qty) from spj,p
where spj.pno=p.pno and jno='j1' group by pname; 9. select jname from j
where not exists (select * from spj,p
where spj.pno=p.pno and spj.jno=j.jno and color='红色' and pname='螺丝刀'); 10. select sname from s
where not exists (select * from spj,p
29
where spj.pno=p.pno and spj.sno=s.sno and color='红色' and pname='螺丝刀'); 11. select jno from spj group by jno having sum(qty)>500; 12. select jno from spj group by jno having count(*)>3; 13. select jname from j
where not exists (select * from p
where not exists
(select * from spj
where j.jno=spj.jno and p.pno=spj.pno));
14. select sname from s
where not exists (select * from spj x
where x.jno='j1' and not exists (select * from spj y
where s.sno=y.sno and x.pno=y.pno));
15. select sname,pname,jname,qty
from s,p,j,spj
where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno; 16. select pname,jname,qty
from s,p,j,spj
where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and sname='东方红';
二、视图操作:
1.create view jcc
as select sno, pno,qty from spj,j
where j.jno=spj.jno and jname='机车厂'
30
2.select pno,sum(qty) from jcc
group by pno;
3.select * from jcc where sno='s2';
31
因篇幅问题不能全部显示,请点此查看更多更全内容