您现在的位置:首页 > >

数据库实验指导书1

发布时间:

《数据库系统设计》 实验指导书


一、 二、 三、 四、 五、



实验教学目标 ________________________________________________ 2 实验教学主要内容 ____________________________________________ 2 实验要求 ____________________________________________________ 2 评分细则 ____________________________________________________ 3 实验项目 ____________________________________________________ 3
设计数据库 _____________________________________________________ 4 CDM 转换成 PDM 并创建 Table __________________________________ 15 通过 PL/SQL Developer 创建表 ___________________________________ 37 备份和恢复数据库 ______________________________________________ 41 数据库查询与更新 _____________________________________________ 46 创建视图、函数和过程 __________________________________________ 51 综合实验(1) _________________________________________________ 55 综合实验(2) _________________________________________________ 56

实验一 实验二 实验三 实验四 实验五 实验六 实验七 实验八

1

一、 实验教学目标
《数据库系统设计》是一门需要理论和实际紧密相连的课程,需要动手、动 手再动手。 上机实验是课程教学的重要环节,实验指导书中给出的方法和技术就 是现在的软件开发公司所使用的最新的技术, 是掌握了这些技术后可以找到吃饭 本事的技术。 通过实验, 使学生掌握数据库的基本概念, 结合实际的操作和实验, 巩固课堂教学内容,使学生掌握数据库系统的基本概念、建模技术、设计方法, 将理论与实际相结合, 应用流行的数据建模工具和数据库管理系统软件,培养学 生实际动手能力。

二、 实验教学主要内容
本课程的实验主要分成四大部分: 其一是数据库应用系统的建模, 通过实验, 使同学们掌握 PowerDesigner 建模工具,其二是 SQL 和 PL/SQL 语句的熟悉,通 过实验,一定要让同学门掌握最流行的 Oracle 数据库系统开发工具 PL/SQL Developer 的使用方法,其三是数据库的备份与恢复技术的掌握,这也是在数据 库系统的开发、设计、运行便于维护过程中不可以缺少的技术,其四是综合运行 所学的知识,遍历数据库系统设计的过程。

三、 实验要求
每次实验前,教师需向学生讲清实验的整体要求及实现的目标任务,实验 1 人 1 组,在规定的时间内,由学生独立完成,出现问题时,教师应引导学生独立 分析和解决,所有实验为一整体,有其延续性,每一次实验必须在实验课堂上认 真完成,如果不能完成将会影响下次实验,如果确实不能在课堂上完成,必须在 下次实验前的课后完成, 任课教师每次课都会认真清点学生人数,并要学生在考 勤本上签字,每次实验后,必须认真填写实验报告,当次的实验报告在下次实验 课开始时提交给老师。

2

四、 评分细则
每次实验后,学生把实验的结果提交给老师,文件名的格式为班级学号姓名 +实验次数,老师认真评阅每次实验的结果,给出以 100 分评阅的成绩,最后给 出平均的实验成绩。

实验内容将进行实际操抽查,并以检查情况作为实验成绩的主要 来源,再结合每次实验报告情况得出最终实验成绩。

五、 实验项目

3

实验一

设计数据库

[目的和意义]
1. 2. 3. 掌握将现实世界的事物转换成 E-R 图的基本技术 掌握将 E-R 图转换成关系表的技术 能够正确判断给定表的关键词

[实验内容]
分别使用 PowerDesigner 和 PL/SQL Developer 工具, 按下列要求创建和修改学生学籍管 理系统用户数据库。

各数据表的结构

表 1-1 字段名称 sno sname sex native birthday dno spno classno entime home tel 类 char Varchar2 char Varchar2 date char char char date Varchar2 Varchar2 40 40 6 8 4 型 宽 8 8 2 20 度

student(学生信息表) 键 PK 说 学生学号 学生姓名 学生性别 学生籍贯 学生出生日期 FK FK 学生所在院系编号 专业代码 学生所属班级 学生入校时间 学生家庭住址 学生联系电话 明

允许空值 NOT NULL NOT NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL

表 1-2 字段名称 cno spno cname ctno experiment lecture semester credit 类 型 宽 10 8 20 度

course(课程信息表) 允许空值 键 PK FK FK 说 课程编号 专业代码 课程名称 课程类型编号 实验时数 授课学时 开课学期 课程学分 明

Varchar2 Varchar2 Varchar2 integer integer integer integer number

NOT NULL NULL NOT NULL NULL NULL NULL NULL

3,1

NULL

4

表 1-3 字段名称 sno cno score 类 char Varchar2 number 型 宽 8 10

student_course(学生选课成绩表) 度 允许空值 NOT NULL NOT NULL NULL 键 PK FK PK FK 说 学生学号 课程编号 学生成绩 明

表 1-4 字段名称 dno dname header addr tel 类 char Varchar2 Varchar2 varchar2 varchar2 型 宽 6 20 8 40 40 表 1-5 字段名称 spno dno spname 类 型 宽 8 6 20 度 度

department(院系信息表) 允许空值 NOT NULL NOT NULL NULL NULL NULL speciality(专业信息表) 允许空值 NOT NULL NOT NULL NOT NULL 键 PK FK 说 专业编号 院系编号 专业名称 明 键 PK 说 院系编号 院系名称 院系负责人 院系办公地址 联系电话 明

Varchar2 char Varchar2

表 1-6 字段名称 ctno ctname 类 型 宽 1 16 度

coursetype(课程类型表) 允许空值 NOT NULL NOT NULL 键 PK 说 明 课程类型编号 课程类型名称

number Varchar2

5

各数据表之间的关系(物理模型图)
COURSE CNO SPNO CTNO CNAME EXPERIMENT LECTURE SEMESTER CREDIT varchar(10) <pk> varchar(8) <fk2> varchar(1) <fk1> varchar(20) int int int numeric STUDENT_COURSE CNO varchar(10) <pk,fk1> SNO char(8) <pk,fk2> SCORE numeric

STUDENT SNO SPNO SNAME SEX NATIVE BIRTHDAY CLASSNO ENTIME HOME TEL char(8) <pk> varchar(8) <fk> varchar(8) char(2) varchar(20) datetime char(4) datetime varchar(40) varchar(40)

COURSETYPE CTNO varchar(1) <pk> CTNAME varchar(16)

SPECIALITY SPNO varchar(8) <pk> DNO varchar(6) <fk> SPNAME varchar(20)

DEPARTMENT DNO DNAME HEADER ADDR TEL varchar(6) <pk> varchar(20) varchar(8) varchar(40) varchar(40)

6

各数据表的数据实例
表 1-7 ctno 1 2 3 4 公共课 专业基础课 专业课 选修课 coursetype 表(课程类型表) ctname

表 1-8 course(课程信息表) cno H61030006 H61030007 H61030008 H61030009 H61030012 H61030013 T53030001 T53030002 X61030005 X61030012 X61030019 X61030022 X80002002 X80002003 spno 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 ctno 2 2 2 2 2 2 1 1 4 4 4 4 1 1 cname 数据结构 计算器组成原理 数据库系统 操作系统 软件工程 计算机网络 毛泽东思想概论 邓小平理论 面向对象程序设计语言 Web 程序设计 数据挖掘 网络安全概论 软件产品市场营销 知识管理 experiment 24 0 24 24 0 16 12 32 24 16 32 32 0 0 lecture 64 64 64 64 48 48 24 62 32 32 32 32 32 32 semester 4 5 5 4 6 6 6 1 5 6 7 7 8 8 credit 4 4 4 4 3 4 2 2 2 2 2 2 2 2

表 1-8 dno 500000 510000 520000 530000 540000 550000 560000 590000 600000 610000 dname 人文学院 外国语学院 艺术与设计学院 法学院 经济与管理学院 理学院 生命科学学院 软件学院 建筑学院 资讯工程学院

department(院系信息表) header 刘东妮 万世平 周曼玲 李平 刘小明 朱喜 王林林 张中华 马力 陈浪 addr 长沙市 长沙市 长沙市 长沙市 长沙市 长沙市 长沙市 长沙市 长沙市 长沙市 tel 8305424 8304551 8304530 8304578 8304517 8304534 8305204 8305682 8304501 8305697

7

表 1-9 spno 050408 070102 080303 080601 080602 080603 080604 080605 110201 110202

speciality(专业信息表) dno 520000 550000 520000 610000 610000 610000 610000 610000 540000 540000 艺术设计 信息与计算数学 工业设计 电气工程及自动化 自动化 电子资讯工程 通信工程 软件工程 工商管理 市场营销 spname

表 1-7 sno 02080001 02080002 02080003 02080004 02080005 02080006 02080007 02080008 02080009 02080010 02080011 02080012 02080013 02080014 02081001 02080016 03080001 02080018 spno 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 080605 sname 李毅 sex 男 Native

student(学生表) birthday classno 1 entime home Tel

北京 湖南 湖北 广东 北京 湖南 湖北 广东 北京 湖南 湖北 广东 北京 湖南 湖北 广东 湖北 广东

1985-1-2 1984-3-8 1984-7-9 1985-10-12 1983-11-1 1984-6-3 1984-2-11 1985-1-3 1985-12-11 1984-7-5 1984-7-5 1985-12-11 1984-8-13 1984-5-7 1984-8-13 1985-3-9 1985-10-16 1985-12-3

2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1 2004-9-1

长沙 武汉 北京 广州 南京 上海 长沙 武汉 北京 广州 南京 上海 长沙 武汉 北京 广州 南京 上海

厉超 梁冰龙 罗煦 马晓睿 聂立业 王实 伍卉 伍琼 曾文超 黄文杰 龙淼 何晓明 刘寅 邢晓静 李明伟 童熙 朱俊华

男 男 男 男 男 男 女 男 男 男 男 男 男 女 女 女 男

1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3

13973110001 13973110002 13973110003 13973110004 13973110005 13973110006 13973110007 13973110008 13973110009 13973110010 13973110011 13973110012 13973110013 13973110014 13973110015 13973110016 13973110017 13973110018

8

表 1-9 cno H61030006 H61030007 H61030008 H61030009 H61030012 H61030013 T53030001 T53030002 X61030005 X61030012 X61030019 H61030013 T53030001 T53030002 X61030005 X61030012 X61030019 H61030006 H61030007 H61030008 H61030009 H61030012

student_course(学生选课成绩表) sno 02080001 02080001 02080001 02080001 02080001 02080001 02080002 02080002 02080002 02080003 02080003 02080003 02080005 02080005 02080005 02080006 02080006 02080006 02080006 02080006 02081001 03080001 score 92 88 78 95 93 98 90 85 82 90 83 89 98 86 96 83 86 75 87 88 90 50

9

设计数据库的 E-R 模型(概念模型图)
课程信息表 课程编号 <pi> Variable characters (10) <M> 课程名称 Variable characters (20) <M> 实验时数 Integer 授课学时 Integer 开课学期 Integer 课程学分 Number Identifier_1 <pi> 0,n 学生选课成绩表 学生成绩 Number 0,n 学生信息 学生学号 <pi> Characters (8) <M> 学生姓名 Variable characters (8) <M> 学生性别 Characters (2) 籍贯 Variable characters (20) 学生出生日期 Date 班级号 Characters (4) 学生入校时间 Date 学生家庭住址 Variable characters (40) 联系电话 Variable characters (40) Relationship_8 Identifier_1 <pi>

Relationship_5

课程类型表 课程类型编号 <pi> Variable characters (1) <M> 课程类型名称 Variable characters (16) <M> Identifier_1 <pi>

Relationship_4

专业信息表 专业代码 <pi> Variable characters (8) <M> 专业名称 Variable characters (20) <M> Identifier_1 <pi>

Relationship_6

院系信息表 院系编号 <pi> Variable characters (6) <M> 院系名称 Variable characters (20) <M> 院系负责人 Variable characters (8) 院系办公地址 Variable characters (40) 联系电话 Variable characters (40) Identifier_1 <pi>

10

[实现步骤]
一、打开 PowerDesigner 工具,选择文件菜单中的 NEW 子菜单,选 CDM 数据库模型:

选择

模型名

在 Model name 出输入要建立的 CDM 模型的名字 CDMStudentCourse 推荐概念模型的命名 ( 用 CDM 开始) 按确定按钮, , 系统出现如下的屏幕(如果没有出现 palette 面板,则点击 【Tools】 ?【Customize Toolbars】选中 palette):

palett e

11

二、点击【Tools】?【Model Options】菜单,出现如下界面

设置

在 Model Setting 中的 Notation 选择中设置为 E/R+Merise

12

设置

在 Naming Convention 中设置 Code 为 Uppercase

在面板中选取 Entity,然后在画布中放置,在实体中输入实体的名称、属性、指定主属性,
13

等。 (所有的 code 都请输入英文字母,name 请输入中文)

确定实体之间的联系。 对实体和属性增加 comment(建议给所有的实体和他们的属性添加注释) 。
建立好的 E-R 图应该是下面类似于下面的样子:
课程信息表 课程编号 <pi> Variable characters (10) <M> 课程名称 Variable characters (20) <M> 实验时数 Integer 授课学时 Integer 开课学期 Integer 课程学分 Number Identifier_1 <pi> 0,n 学生选课成绩表 学生成绩 Number 0,n 学生信息 学生学号 <pi> Characters (8) <M> 学生姓名 Variable characters (8) <M> 学生性别 Characters (2) 籍贯 Variable characters (20) 学生出生日期 Date 班级号 Characters (4) 学生入校时间 Date 学生家庭住址 Variable characters (40) 联系电话 Variable characters (40) Relationship_8 Identifier_1 <pi>

Relationship_5

课程类型表 课程类型编号 <pi> Variable characters (1) <M> 课程类型名称 Variable characters (16) <M> Identifier_1 <pi>

Relationship_4

专业信息表 专业代码 <pi> Variable characters (8) <M> 专业名称 Variable characters (20) <M> Identifier_1 <pi>

Relationship_6

院系信息表 院系编号 <pi> Variable characters (6) <M> 院系名称 Variable characters (20) <M> 院系负责人 Variable characters (8) 院系办公地址 Variable characters (40) 联系电话 Variable characters (40) Identifier_1 <pi>

实验完成后请妥善保存 CDM 文件至你的 U 盘或你自己的邮箱中,后期实验将使用该文件。

14

实验二

CDM 转换成 PDM 并创建 Table

[目的和意义]
熟悉把概念模型转换成物理模型的方法,能够熟练地使用 PowerDesigner 工具,利于此 工具完成数据库表的创建和修改等工作,并了解主键、外键以及约束的创建和应用,熟练掌 握使用 PL/SQL、SQL*PLUS 等工具的操作方法。

[实验内容]
把实验一产生的 CDM 图转换成 PDM 图,然后生成数据库的 SQl 脚本文件,建立一个 Oracle 数据库用户 Dblab,在 Dblab 用户下建立学生学籍管理系统用户数据库表。

[实现步骤]

(1) 启动 Oracle 数据库
先启动 oracle 服务(选择【控制面板】?【管理工具】?【服务】)

15

启动这一个服 务就可以了

16

启动 Oracle 例程()

在命令行提示中输入(启动 sqlplus) : sqlplus /nolog

在 Sqlplus 命令提示符下输入(用数据库管理员用户连接 Oracle 数据库): conn / as sysdba

在 Sqlplus 命令提示符下输入(装载数据库,如果提示 Oracle 已经启动则表示数据库已经 装载。你可以使用 shutdown 命令卸载数据库,再使用 startup 命令装载数据库): Startup

17

(2) 创建数据库用户 Dblab,并使用 Dblab 用户登录数据库
完成数据库启动后,在 Sqlplus 命令提示符下输入以下命令(创建学生个人的数据库用 户): Drop user Dblab cascade; Create user Dblab identified by Dblab; Grant connect,resource to Dblab; --创建用户前先删除原有用户信息 --创建用户(用户名和口令都是 Dblab) --给 Dblab 用户授予连接数据库和 获取资源的权限 Conn Dblab/Dblab; --所以用 Dblab 用户登录数据库

18

(3) 修改 CDM 并把 CDM 转换成 PDM
打开实验一种完成的 CDM 文件:
课程信息表 课程编号 <pi> Variable characters (10) <M> 课程名称 Variable characters (20) <M> 实验时数 Integer 授课学时 Integer 开课学期 Integer 课程学分 Number Identifier_1 <pi> 0,n 学生选课成绩表 学生成绩 Number 0,n 学生信息 学生学号 <pi> Characters (8) <M> 学生姓名 Variable characters (8) <M> 学生性别 Characters (2) 籍贯 Variable characters (20) 学生出生日期 Date 班级号 Characters (4) 学生入校时间 Date 学生家庭住址 Variable characters (40) 联系电话 Variable characters (40) Relationship_8 Identifier_1 <pi>

Relationship_5

课程类型表 课程类型编号 <pi> Variable characters (1) <M> 课程类型名称 Variable characters (16) <M> Identifier_1 <pi>

Relationship_4

专业信息表 专业代码 <pi> Variable characters (8) <M> 专业名称 Variable characters (20) <M> Identifier_1 <pi>

Relationship_6

院系信息表 院系编号 <pi> Variable characters (6) <M> 院系名称 Variable characters (20) <M> 院系负责人 Variable characters (8) 院系办公地址 Variable characters (40) 联系电话 Variable characters (40) Identifier_1 <pi>

19

点击 Powerdesigner 菜单【Tools】?【Generate Phisical Data Model】 :

选择数据库种 类 修改物理模型名

点击【确认】生成物理模型

20

(4) 产生数据库脚本
点击 Powerdesigner 菜单【database】?【database generation】

设置脚本文件存储目录和文件名

查看脚本内容

21

本文件中的内 容是生成数据 库的 sql 脚本

(5) 直接使用脚本创建数据库
直接把 SQL 脚本粘贴至 sqlplus 中即可完成数据库的创建; 运行 show user; 可以获知当前登录用户名;

运行 select * from tab; 可以获取已经创建的表的基本信息; 运行 desc 表名; 可以获取特定表的表结构;

22

(6) 配置数据库连接参数(配置数据源,如果需要直接进行数据库的创建)

23

配置好了参数后一定要 Test 一下:

24

如果出现下面的错误,表示监听程序没有启动。

监听程序启动的方法是启动它的服务,在服务启动后需要等待大约 10 秒钟才能再去测试上 面的连接。

25

连接到数据源后,输入数据库的用户名和密码,点击 connect 按钮。

(7) 在 PowerDesigner 中建立数据库

选择前面生成的脚本 Dblab.sql,特别注意在脚本档中不能出现双引号“”” ,如果出现了双 引号,一定要把它去调。方法是方法提到了的设置参数。

26

在上面的窗口中按“Run”按钮,在下面的窗口中按“Ignore All”按钮。

再“Run”一遍,看看还有没有问题!

(8) 在 PL/SQL 中建立数据库

27

28

转到 Command 窗口

执行数据库的脚本语言(Dblab.sql)

29

(9) Reengineering,从数据库产生 PDM 和 CDM

30

31

32

33

把 PDM 转换成 CDM:

34

35

(10)

PowerDesigner 部分技巧

a. 由pdm生成建表脚本时,字段超过15字符就发生错误(oracle): 解决办法是打开PDM后,会出现Database的菜单栏,进入Database - Edit Current DBMS -script-objects-column-maxlen,把value值调大,比 如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的 objects照此种方法更改! b. 生成的脚本中如何把对象的双引号去掉? 打开cdm的情况下,进入Tools-Model Options-Naming Convention,把Name 和 Code的卷标的Charcter case选项设置成Uppercase或者Lowercase,只要不是 Mixed Case就行! 或者选择Database->Edit current database->Script->Sql->Format,有一项 CaseSensitivityUsingQuote,它的comment为“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否 适 用双引号来规定标识符的大小写, 可以看到右边的values默认值为“YES”,改为 “No” 即可! 或者在打开pdm的情况下,进入Tools-Model Options-Naming Convention,把 Name和Code的卷标的Charcter case选项设置成Uppercase就可以! c. 建立一个表后,为何检测出现Existence of index的警告 A table should contain at least one column, one index, one key, and one reference. 可以不检查 Existence of index 这项,也就没有这个警告错误了! 意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告, 不 用管也没有关系! d. PowerDesigner 12和Office Word 2003有冲突,会导致Word 2003鼠标在文文 件中无效,并且不能打开两个文檔的问题。 将$:\Program Files\Sybase\PowerDesigner 12\Add-ins\目录下的 Microsoft Word Import Export 目录删除

36

实验三

通过 PL/SQL Developer 创建表

[目的和意义]
熟练掌握通过 PL/SQL Developer 创立表的方法。

[实验内容]
向数据库 Soft5 增加教师和教师上课 2 个数据库表:
表 3-1 字段名称 tno tname sex birthday dno pno home zipcode tel email 类 型 宽 8 8 2 4 6 1 40 6 40 40 度 teacher 表(教师信息表) 允许空值 NOT NULL NOT NULL NULL NULL NULL NULL NULL NULL NULL NULL 主 是 键 教师编号 教师姓名 教师性别 教师出生日期 教师所在院系编号 教师职务或职称编号 教师家庭住址 邮政编码 联系电话 电子邮件 说 明

varchar2 varchar2 varchar2
Date varchar2 Number varchar2 char varchar2 varchar2

表 3-2 字段名称 tcid tno spno classno cno semester schoolyear classtime classroom weektime 类 Number 型 宽 2 8 8 4 10 6 10 40

teacher_course 表(教师上课课表) 度 允许空值 NOT NULL NULL NULL NULL NOT NULL NULL NULL NULL NULL NULL 主 是 键 说 上课编号 教师编号 专业代码 班级号 课程编号 学期 学年 上课时间 上课地点 每周课时数 明

varchar2 varchar2 varchar2 varchar2 varchar2 varchar2
Date varchar2 Number

(11) 基本的 sql 命令

drop table teacher; CREATE TABLE teacher ( tno varchar2 (8) PRIMARY KEY, --教师编号 tname varchar2(8) NOT NULL, --教师姓名 sex varchar2 (2), --教师性别 birthday date, --出生日期 dno varchar2 (6), --所在院系编号
37

pno number, --职务或职称编号 home varchar2(40), --家庭住址 zipcode char (6), --邮政编码 tel varchar2 (40), --联系电话 email varchar2 (40) --电子邮件 ); drop table teacher_course; CREATE TABLE teacher_course ( tcid integer PRIMARY KEY, --上课编号(主键) tno varchar2 (8), --教师编号 spno varchar2 (8), --专业代码 classno varchar2 (4), --班级号 cno varchar2 (10) NOT NULL, --课程编号 semester varchar2 (6), --学期 schoolyear varchar2 (10), --学年 classtime varchar2(40), --上课时间 classroom varchar2(40), --上课地点 weektime number, --每周课时数 constraint fk_tno foreign key(tno) references teacher(tno), constraint fk_spno foreign key(spno) references speciality(spno), constraint fk_cno foreign key(cno) references course(cno) );

查看垃圾箱中的表格 SQL> select * from tab where like 'BIN%'; 或者 SQL> show recyclebin 清理垃圾表格 1)清除某个特定垃圾表格 SQL>purge table tbtest; #原始表名 或者 SQL>purge table tbtest; #垃圾名称 2)清空用户的垃圾箱 SQL>purge recyclebin; 2)清空某个表空间的垃圾箱 SQL>purge tablespace ts01; 恢复垃圾表 SQL>flashback table tbtest to before drop rename to tbtest0;

38

使用 SQL 语句修改表
修改teacher中的email列为varchar2(50) ALTER TABLE teacher modify email varchar(50); 重命名表student_course为sc rename student_course to sc;

使用 SQL 语句添加、修改和删除表数据(以下程序为示例语句,可能运行失败)
向sutdent表中插入一条记录 insert into student (sno, sname, sex, native, birthday, spno, dno, classno, entime, home, tel) VALUES('02080019','李平','男','湖南', to_date('1985-1-2','yyyy-mm-dd'),'080605','610000', '0201', to_date('2002-9-1','yyyy-mm-dd'),'上海路11','8305670'); 把籍贯为“湖南”的学生的籍贯修改为”北京” UPDATE student SET native='北京' WHERE native='湖南'; 产出所有籍贯为“北京”的学生 DELETE student WHERE native='北京'; 查询student表中的所有记录 select * from student;

使用约束实现数据的完整性

设置检查约束
增加一个约束,使student表中的sex列只允许输入’男’、’女’ alter table student add constraint chk_sex check (sex in ('男','女')); 增加一个约束,使sc表中的score列只允许输入0到100之间的成绩 alter table sc add constraint chk_score check (score>=0 AND score<=100);

设置默认值约束
alter table STUDENT modify SEX default '男';
39

使用 SQL 语句创建触发器 在删除学生信息的同时,利用触发器删除该学生的所有成绩
create or replace trigger tri_del_student after delete on student for each row declare -- local variables here begin DELETE FROM SC WHERE sno = :old.sno; end tri_del_student; /

通过向导创建表和数据库完整行约束

Export你工作的成果:

40

要求手动编写 sql 语句把实验一中出现的全部模拟数据插入到数据 库中。

实验四

备份和恢复数据库

[目的和意义]
理解数据库备份的过程,掌握使用 PL/sql Developer 备份 Oracle 数据库的方法。

[实验内容]
使用 PL/sql Developer 备份和恢复数据库 Soft5。

[实现步骤]

Export user object

41

Test_bkp.sql 檔中的内容
-------------------------------------------- Export file for user TEST --- Created by Dmh on 2007-10-10, 7:38:25 -------------------------------------------spool test_bkp.log
42

prompt prompt Creating table COURSETYPE prompt ========================= prompt create table COURSETYPE ( CTNO NUMBER not null, CTNAME VARCHAR2(16) ) ; comment on table COURSETYPE is '课程类型'; comment on column COURSETYPE.CTNO is '类型编号'; comment on column COURSETYPE.CTNAME is '类型名称'; alter table COURSETYPE add constraint PK_COURSETYPE primary key (CTNO);

Export user table

D:\test_bkp.pde 数据库备份文件。

43

Import user table
select * from sc;

drop table sc;

恢复数据库表

44

45

实验五
[目的和意义]

数据库查询与更新

掌握基本的sql命令和语法,熟练运行子查询、连接查询、嵌套查询、组函数等技术 查询出需要的结果。

执行下面的 SQL 语句,分析结果,并理解和注释出每个语句的目的。
SELECT * FROM student /* SELECT sno,sname,sex,birthday FROM student / SELECT sno,sname,sex,birthday FROM student WHERE spno='080605' / SELECT sno,sname,birthday FROM student WHERE spno='080605' AND classno='2' / SELECT sno,sname,sex,birthday FROM student WHERE to_char(birthday,'yyyy/mm/dd')>'1985/01/01' ; SELECT sno,sname,trunc((sysdate-birthday)/365) AS age FROM student ; SELECT sno,sname FROM student WHERE sname LIKE '李%' ; SELECT sno,sname FROM student WHERE sname LIKE '李_' ; SELECT sno,sname,sex,birthday FROM student WHERE (spno=080605) AND (to_char(birthday,'yyyy/mm/dd')>'1985/01/01')
46

; SELECT * FROM student WHERE native is null ; SELECT sno,sname,sex,spno FROM student WHERE spno='080604' OR spno='080605' OR spno='080602' ; SELECT sno,sname,sex,spno FROM student WHERE spno IN ('080604','080605','080602') ; SELECT sno,sname,sex,birthday FROM student ORDER BY birthday DESC,sname ; SELECT sno,sname,sex,birthday FROM student ORDER BY birthday ASC ; SELECT sno,sname,sex,birthday FROM student ORDER BY 4 DESC ; SELECT DISTINCT sex FROM student ; SELECT sno AS 学号,sname AS 姓名,sex AS 性别 FROM student ; SELECT sno 学号,sname FROM student ; 姓名,sex 性别

47

SELECT sno,round(avg(score) ,1) FROM sc group by sno order by avg(score) desc ; select sno,avg_score from (SELECT sno,round(avg(score) ,1) avg_score FROM STUDENT_COURSE group by sno order by avg(score) desc ) where rownum<4 ; SELECT spno 专业, COUNT(*) FROM student GROUP BY spno ; 学生人数

select AVG(score) 平均分,MAX(score) 最高分,MIN(score) AS 最低分 FROM STUDENT_COURSE ;

连接查询
SELECT sno,sname,sex,dname,spname FROM student st INNER JOIN speciality sp ON st.spno=sp.spno INNER JOIN department dt ON sp.dno=dt.dno ; SELECT sno,sname,sex,dname,spname FROM student st , department dt ,speciality sp where sp.dno=dt.dno and st.spno=sp.spno ; SELECT sc.sno,sname,spname,score FROM student st,speciality sp, STUDENT_COURSE sc WHERE sc.sno=st.sno AND st.spno=sp.spno ; SELECT sno,sname,dname FROM student st,department

dp,speciality sp
48

WHERE st.sno IN (SELECT DISTINCT sno FROM STUDENT_COURSE sc WHERE score<60) AND st.spno=sp.spno ; SELECT sc.sno 学号,sname 姓名,COUNT(*) 没有及格的门数 FROM STUDENT_COURSE sc,student st WHERE score<60 AND st.sno=sc.sno GROUP BY sc.sno,sname ; SELECT sc.sno 学号,sname 姓名,COUNT(*) 没有及格的门数 FROM STUDENT_COURSE sc sc,student st WHERE score<60 AND st.sno=sc.sno GROUP BY sc.sno,sname HAVING COUNT(*)>1 ;

SELECT sp.spno, COUNT(*) 人数 FROM student st,speciality sp WHERE sp.spname='软件工程' AND st.spno=sp.spno GROUP BY sp.spno ; SELECT st.sno,sname,SUM(credit) 总学分 FROM student st, STUDENT_COURSE sc,course cs WHERE score>60 AND st.sno=sc.sno GROUP BY st.sno,sname ;

嵌套查询
SELECT sno,sname,birthday FROM student WHERE spno = (SELECT spno FROM student WHERE sname = '刘寅') ; SELECT sc.sno 学号,st.sname 姓名 ,AVG(score) 平均分 FROM STUDENT_COURSE sc, student st WHERE sc.sno IN (SELECT sno FROM student WHERE dno='590000') AND sc.sno=st.sno GROUP BY sc.sno ,st.sname ORDER BY 平均分 DESC
49

; SELECT sno,sname FROM student WHERE EXISTS (SELECT * FROM ;

sc WHERE sc.sno=student.sno)

SELECT sno,sname FROM student WHERE not EXISTS (SELECT * FROM ; SELECT DISTINCT st.sno,sname FROM student st,sc WHERE st.sno=sc.sno AND sc.sno NOT IN (SELECT DISTINCT sno FROM sc sc WHERE score<80 ) ;

sc WHERE sc.sno=student.sno)

[习题]在 student , course , sc 中 添加元组
1)从 student , course , sc 表中选择出当年年龄在 22 岁以上的学生的学号和姓名。 2)统计平均年龄。 3)“张三”同学要退学,请删除他的所有信息。

50

实验六

创建视图、函数和过程

[目的和意义]
掌握使用创建视图的方法,包括视图的建立、删除;了解如何应用视图有选择地查看 所需数据,并熟悉通过视图更改数据表中数据的方法。了解函数和存储过程的概念和作用, 掌握创建函数和存储过程的方法。

使用 SQL 语句创建的视图,并理解和注释出每个视图的目的。
CREATE or replace view v_student (sno, sname, sex , age) AS SELECT sno,sname,sex,trunc((sysdate-birthday) /365) FROM student ; select * from v_student;

CREATE or replace view v_course_student (sno,sname,speciality,score) AS SELECT sc.sno,sname,spname,round(avg(score)) FROM student st,speciality sp, sc WHERE sc.sno=st.sno AND st.spno=sp.spno group by sc.sno,sname,spname ; SELECT * FROM ; v_course_student;

CREATE or replace view v_nopassd_student(学号,姓名,不及格课程) AS SELECT sc.sno ,sname,sc.cno FROM student st, sc WHERE sc.score<60 AND sc.sno=st.sno ; SELECT * FROM v_nopassd_student ;

使用 SQL 语句删除视图
DROP VIEW v_student;

51

Oracle 自定义函数实例
--根据出生日期返回年龄 create or replace function get_age(birthday in date) return number is n_age number; begin n_age:=trunc((sysdate-birthday)/365) return n_age; end get_age;

--测试 方法一 SQL>select get_age(birthday) from student; 方法二 SQL> var v_age varchar2(50) SQL> exec :v_age:=get_user(‘1111’); PL/SQL 过程已成功完成。 SQL> print v_age V_AGE -----------------------------18

方法三 SQL> exec dbms_output.put_line(' 学 号 为 123344 的 同 学 的 年 龄 为 : '||get_user(‘123344’)); 学号为 123344 的同学的年龄为:18 PL/SQL 过程已成功完成。

52

--函数实例 2 create or replace function get_studentname(v_sno in varchar2) return varchar2 as v_name varchar2(50); begin select name into v_name from student where sno= v_sno; return v_name; exception when no_data_found then raise_application_error(-20001, '你输入的学号无效!'); end get_studentname;

53

[实验内容]
(1) 创建一个函数可以指定学号学生的平均成绩。 (2) 创建一个视图,求出各年龄的学生人数。 (3) 创建一个存储过程 Sp_avg_score,求出指定学生的平均成绩。

54

实验七

综合实验(1)

[目的和意义]
对数据库课程的内容进行全面复习,真正掌握数据库概念设计与逻辑设计的方法,掌 握数据库完整性约束的概念并能应用与实际中。

[实验内容 1]
设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、 车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实 体集,属性有司机编号、姓名、电话等。 设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能 应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系,每个车 队可拥有若干车辆, 但每辆车只能属于一个车队; 司机与车辆之间存在着 “使用” 联系, 司机使用车辆有使用日期和公里数两个属性, 每个司机可使用多辆汽车, 每辆汽车可被 多个司机使用。 (1)试画出 ER 图,并在图上注明属性、联系类型、实体标识符; (2)将 ER 图转换成 PDM 模型。 (3)写出创建表的 sql 语句,并说明主键和外键等数据库完整性约束。

[实验内容 2] 给定如下的 4 个模式:
customer(custid, name, sex, mobile, email) item(itemid, name, price) itemSale(transid, itemid, quantity) transaction(transid, custid, date)

(1)试用 SQL

DDL 语句定义上述 4 个基本表,并说明数据库的完整行约束。

(2) 写出下面的SQL 查询语句:
a. b. c. d. 找出最贵的商品(item)的名称和价格; 找出每个月每个商品的销售总金额; 找出从来也没有销售过的商品; 找出从来也没有买过“酒”的所有客户。

55

实验八

综合实验(2)

[目的和意义] 对数据库课程的内容进行全面复习,真正掌握数据库概 念设计与逻辑设计的方法,掌握数据库完整性约束的概念并 能应用与实际中。

[实验内容 2] 设某商业集团数据库中有三个实体集。一是“仓库” 实体集,属性有仓库号、仓库名和地址等;二是“商店” 实体集,属性有商店号、商店名、地址等;三是“商品” 实体集,属性有商品号、商品名、单价。 设仓库与商品之间存在“库存”联系,每个仓库可 存储若干种商品,每种商品存储在若干仓库中,每个仓 库每存储一种商品有个日期及存储量;商店与商品之间 存在着“销售”联系,每个商店可销售若干种商品,每 种商品可在若干商店里销售,每个商店销售一种商品有 月份和月销售量两个属性;仓库、商店、商品之间存在 着“供应”联系,有月份和月供应量两个属性。 (1)试画出 ER 图,并在图上注明属性、联系类型、实体 标识符;

56

(2)将 ER 图转换成 PDM 模型。 (3)写出创建表的 sql 语句,并说明主键和外键等数据库 完整性约束。

57

附录:SQL Server 数据库插入数据语句
insert coursetype (CTNO,CTNAME) insert coursetype (CTNO,CTNAME) insert coursetype (CTNO,CTNAME) insert coursetype (CTNO,CTNAME) values ('1','公共课') values ('2','专业基础课') values ('3','专业课') values ('4','选修课') values ('500000','人文学院','刘东 values ('510000','外国语学院','万 values ('520000','艺术与设计学院 values ('530000','法学院','李平',' values ('540000','经济与管理学院 values ('550000','理学院','朱喜',' values ('560000','生命科学学院',' values ('590000','软件学院','张中 values ('600000','建筑学院','马力 values ('610000','资讯工程学院','

insert department (DNO,DNAME,HEADER,ADDR,TEL) 妮','长沙市','8305424') insert department (DNO,DNAME,HEADER,ADDR,TEL) 世平','长沙市','8304551') insert department (DNO,DNAME,HEADER,ADDR,TEL) ','周曼玲','长沙市','8304530') insert department (DNO,DNAME,HEADER,ADDR,TEL) 长沙市','8304578') insert department (DNO,DNAME,HEADER,ADDR,TEL) ','刘小明','长沙市','8304517') insert department (DNO,DNAME,HEADER,ADDR,TEL) 长沙市','8304534') insert department (DNO,DNAME,HEADER,ADDR,TEL) 王林林','长沙市','8305204') insert department (DNO,DNAME,HEADER,ADDR,TEL) 华','长沙市','8305682') insert department (DNO,DNAME,HEADER,ADDR,TEL) ','长沙市','8304501') insert department (DNO,DNAME,HEADER,ADDR,TEL) 陈浪','长沙市','8305697') insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME) insert speciality (SPNO,DNO,SPNAME)

values ('050408','520000','艺术设计') values ('070102','550000','信息与计算数学') values ('080303','520000','工业设计') values ('080601','610000','电气工程及自动化') values ('080602','610000','自动化') values ('080603','610000','电子资讯工程') values ('080604','610000','通信工程') values ('080605','610000','软件工程') values ('110201','540000','工商管理') values ('110202','540000','市场营销')

insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('H61030006','080605','2','数据结构',24,64,4,4) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('H61030007','080605','2','计算器组成原理',0,64,5,4) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT)

58

values ('H61030008','080605','2','数据库系统',24,64,5,4) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('H61030009','080605','2','操作系统',24,64,4,4) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('H61030012','080605','2','软件工程',0,48,6,3) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('H61030013','080605','2','计算机网络',16,48,6,4) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('T53030001','080605','1','毛泽东思想概论',12,24,6,2) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('T53030002','080605','1','邓小平理论',32,62,1,2) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('X61030005','080605','4','面向对象程序设计语言',24,32,5,2) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('X61030012','080605','4','Web 程序设计',16,32,6,2) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('X61030019','080605','4','数据挖掘',32,32,7,2) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('X61030022','080605','4','网络安全概论',32,32,7,2) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('X80002002','080605','1','软件产品市场营销',0,32,8,2) insert course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) values ('X80002003','080605','1','知识管理',0,32,8,2) insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080001','080605','李毅','男','北京','1985-01-02','1','2004-09-01','长沙','13973110001') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080002','080605','厉超','男','湖南','1984-03-08','1','2004-09-01','武汉','13973110002') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080003','080605','梁冰龙','男','湖北','1984-07-09','1','2004-09-01','北京','13973110003') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080004','080605','罗煦','男','广东','1985-10-12','1','2004-09-01','广州','13973110004') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080005','080605','马晓睿','男','北京','1983-11-01','1','2004-09-01','南京','13973110005') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080006','080605','聂立业','男','湖南','1984-06-03','2','2004-09-01','上海','13973110006') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values

59

('02080007','080605','王实','男','湖北','1984-02-11','2','2004-09-01','长沙','13973110007') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080008','080605','伍卉','女','广东','1985-01-03','2','2004-09-01','武汉','13973110008') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080009','080605','伍琼','男','北京','1985-12-11','2','2004-09-01','北京','13973110009') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080010','080605','曾文超','男','湖南','1984-07-05','2','2004-09-01','广州','13973110010') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080011','080605','黄文杰','男','湖北','1984-07-05','2','2004-09-01','南京','13973110011') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080012','080605','龙淼','男','广东','1985-12-11','2','2004-09-01','上海','13973110012') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080013','080605','何晓明','男','北京','1984-08-13','2','2004-09-01','长沙','13973110013') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080014','080605','刘寅','男','湖南','1984-05-07','2','2004-09-01','武汉','13973110014') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02081001','080605','邢晓静','女','湖北','1984-08-13','3','2004-09-01','北京','13973110015') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080016','080605','李明伟','女','广东','1985-03-09','3','2004-09-01','广州','13973110016') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('03080001','080605','童熙','女','湖北','1985-10-16','3','2004-09-01','南京','13973110017') insert student (SNO,SPNO,SNAME,SEX,NATIVE,BIRTHDAY,CLASSNO,ENTIME,HOME,TEL) values ('02080018','080605','朱俊华','男','广东','1985-12-03','3','2004-09-01','上海','13973110018') insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) values ('H61030006','02080001',92) values ('H61030006','02080006',75) values ('H61030007','02080001',88) values ('H61030007','02080006',87) values ('H61030008','02080001',78) values ('H61030008','02080006',88) values ('H61030009','02080001',95) values ('H61030009','02081001',90) values ('H61030012','02080001',93)

60

insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE) insert student_course (CNO,SNO,SCORE)

values ('H61030012','03080001',50) values ('H61030013','02080001',98) values ('H61030013','02080003',89) values ('T53030001','02080002',90) values ('T53030001','02080005',98) values ('T53030002','02080002',85) values ('T53030002','02080005',86) values ('X61030005','02080002',82) values ('X61030005','02080005',96) values ('X61030012','02080003',90) values ('X61030012','02080006',83) values ('X61030019','02080003',83) values ('X61030019','02080006',86)

61

附录:ORACLE 数据库插入数据语句
insert into department (DNO,DNAME,HEADER,ADDR,TEL) 刘东妮','长沙市','8305424'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) ','万世平','长沙市','8304551'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) 学院','周曼玲','长沙市','8304530'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) 平','长沙市','8304578'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) 学院','刘小明','长沙市','8304517'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) 喜','长沙市','8304534'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) 院','王林林','长沙市','8305204'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) 张中华','长沙市','8305682'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) 马力','长沙市','8304501'); insert into department (DNO,DNAME,HEADER,ADDR,TEL) 院','陈浪','长沙市','8305697'); commit; values ('500000','人文学院',' values ('510000','外国语学院 values ('520000','艺术与设计 values ('530000','法学院','李 values ('540000','经济与管理 values ('550000','理学院','朱 values ('560000','生命科学学 values ('590000','软件学院',' values ('600000','建筑学院',' values ('610000','资讯工程学

insert into coursetype (CTNO,CTNAME) insert into coursetype (CTNO,CTNAME) insert into coursetype (CTNO,CTNAME) insert into coursetype (CTNO,CTNAME) commit;

values ('1','公共课'); values ('2','专业基础课'); values ('3','专业课'); values ('4','选修课');

insert into speciality (SPNO,DNO,SPNAME) insert into speciality (SPNO,DNO,SPNAME) insert into speciality (SPNO,DNO,SPNAME) insert into speciality (SPNO,DNO,SPNAME) '); insert into speciality (SPNO,DNO,SPNAME) insert into speciality (SPNO,DNO,SPNAME) insert into speciality (SPNO,DNO,SPNAME) insert into speciality (SPNO,DNO,SPNAME) insert into speciality (SPNO,DNO,SPNAME) insert into speciality (SPNO,DNO,SPNAME)

values ('050408','520000','艺术设计'); values ('070102','550000','信息与计算数学'); values ('080303','520000','工业设计'); values ('080601','610000','电气工程及自动化 values ('080602','610000','自动化'); values ('080603','610000','电子资讯工程'); values ('080604','610000','通信工程'); values ('080605','610000','软件工程'); values ('110201','540000','工商管理'); values ('110202','540000','市场营销');

62

commit;

insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('H61030006','080605','2','数据结构',24,64,4,4); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('H61030007','080605','2','计算器原理',0,64,5,4); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('H61030008','080605','2','数据库系统',24,64,5,4); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('H61030009','080605','2','操作系统',24,64,4,4); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('H61030012','080605','2','软件工程',0,48,6,3); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('H61030013','080605','2','计算机网络',16,48,6,4); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('T53030001','080605','1','毛概',12,24,6,2); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('T53030002','080605','1','邓小平理论',32,62,1,2); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('X61030005','080605','4','面向对象语言',24,32,5,2); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('X61030012','080605','4','Web 程序设计',16,32,6,2); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('X61030019','080605','4','数据挖掘',32,32,7,2); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('X61030022','080605','4','网络安全概论',32,32,7,2); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT) ('X80002002','080605','1','软件市场营销',0,32,8,2); insert into course (CNO,SPNO,CTNO,CNAME,EXPERIMENT,LECTURE,SEMESTER,CREDIT)

values

values

values

values

values

values

values

values

values

values

values

values

values

values

63

('X80002003','080605','1','知识管理',0,32,8,2); commit;

insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080001','080605','李毅','男','北京 ',to_date('1985-01-02','yyyy-MM-dd'),'1',to_date('2004-09-01','yyyy-MM-dd'),'长沙 ','13973110001'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080002','080605','厉超','男','湖南 ',to_date('1984-03-08','yyyy-MM-dd'),'1',to_date('2004-09-01','yyyy-MM-dd'),'武汉 ','13973110002'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080003','080605','梁冰龙','男','湖北 ',to_date('1984-07-09','yyyy-MM-dd'),'1',to_date('2004-09-01','yyyy-MM-dd'),'北京 ','13973110003'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080004','080605','罗煦','男','广东 ',to_date('1985-10-12','yyyy-MM-dd'),'1',to_date('2004-09-01','yyyy-MM-dd'),'广州 ','13973110004'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080005','080605','马晓睿','男','北京 ',to_date('1983-11-01','yyyy-MM-dd'),'1',to_date('2004-09-01','yyyy-MM-dd'),'南京 ','13973110005'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080006','080605','聂立业','男','湖南 ',to_date('1984-06-03','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'上海 ','13973110006'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080007','080605','王实','男','湖北 ',to_date('1984-02-11','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'长沙 ','13973110007'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080008','080605','伍卉','女','广东 ',to_date('1985-01-03','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'武汉 ','13973110008'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080009','080605','伍琼','男','北京 ',to_date('1985-12-11','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'北京 ','13973110009'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080010','080605','曾文超','男','湖南 ',to_date('1984-07-05','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'广州 ','13973110010');

64

insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080011','080605','黄文杰','男','湖北 ',to_date('1984-07-05','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'南京 ','13973110011'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080012','080605','龙淼','男','广东 ',to_date('1985-12-11','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'上海 ','13973110012'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080013','080605','何晓明','男','北京 ',to_date('1984-08-13','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'长沙 ','13973110013'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080014','080605','刘寅','男','湖南 ',to_date('1984-05-07','yyyy-MM-dd'),'2',to_date('2004-09-01','yyyy-MM-dd'),'武汉 ','13973110014'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02081001','080605','邢晓静','女','湖北 ',to_date('1984-08-13','yyyy-MM-dd'),'3',to_date('2004-09-01','yyyy-MM-dd'),'北京 ','13973110015'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080016','080605','李明伟','女','广东 ',to_date('1985-03-09','yyyy-MM-dd'),'3',to_date('2004-09-01','yyyy-MM-dd'),'广州 ','13973110016'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('03080001','080605','童熙','女','湖北 ',to_date('1985-10-16','yyyy-MM-dd'),'3',to_date('2004-09-01','yyyy-MM-dd'),'南京 ','13973110017'); insert into student(sno,spno,sname,sex,native,birthday,classno,entime,home,tel) values('02080018','080605','朱俊华','男','广东 ',to_date('1985-12-03','yyyy-MM-dd'),'3',to_date('2004-09-01','yyyy-MM-dd'),'上海 ','13973110018'); commit;

insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE)

values ('H61030006','02080001',92); values ('H61030006','02080006',75); values ('H61030007','02080001',88); values ('H61030007','02080006',87); values ('H61030008','02080001',78); values ('H61030008','02080006',88); values ('H61030009','02080001',95); values ('H61030009','02081001',90);

65

insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) insert into student_course (CNO,SNO,SCORE) commit;

values ('H61030012','02080001',93); values ('H61030012','03080001',50); values ('H61030013','02080001',98); values ('H61030013','02080003',89); values ('T53030001','02080002',90); values ('T53030001','02080005',98); values ('T53030002','02080002',85); values ('T53030002','02080005',86); values ('X61030005','02080002',82); values ('X61030005','02080005',96); values ('X61030012','02080003',90); values ('X61030012','02080006',83); values ('X61030019','02080003',83); values ('X61030019','02080006',86);

66



热文推荐
猜你喜欢
友情链接: 简历 面试求职范文 职业规划 自我管理 社交礼仪 76242百科