实 验 一 基本表的定义

实 验 一 基本表的定义、删除与修改

一、 实验目的:

熟练掌握基本表的定义、删除与修改,为后继学习作准备。

二、 实验属性(验证性)

(1) 了解并掌握SQL查询分析器及企业管理器的使用;

(2) 掌握基本表的定义、删除与修改。

三、 实验仪器设备及器材

1. 安装有windows操作系统计算机。

2. 安装有Oracle11g和SQL Server的计算机。

3. 安装有Visual Studio .net和Java编译器(eclipse、Netbean等)的编译器。

4. 计算机具备网络环境。

四、 实验要求(预习、实验前、实验中、实验后等要求)

1. 预习教材第三章,熟悉SQL语句。

2. 熟悉.net、Java或PowerBuilder、Delphi 开发环境。

3. 能够熟练掌握.net、Java或PowerBuilder、Delphi环境下的数据库的编程。 五、实验原理

SQL语言应用。

六、实验步骤:

(1) 启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查询分析器;

(2) 对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。

如果选择SQL SERVER查询分析器,需要选择数据库;

(3) 验证如下例子;

1 熟悉SQL Server数据库服务器

1.1 熟悉SQL Server数据库服务器环境,熟练掌握数据字典。

1.2 从网上下载数据库文件(.MDL、.LDF),进行数据库附加操作。并在操作系统下将数据库数据文件(.MDL、.LDF)拷贝到U盘上。

1.3 从网上下载数据库数据(.XLS格式),将数据导入到数据库。并进行导出(导出格式大于三种)。

3.4 建立数据库登录用户。

2、熟悉Oracle数据库服务器

2.1熟悉Oracle数据库服务器环境,熟练掌握数据字典。

2.2 熟练掌握SQL PLUS的使用。

3.3 熟练掌握SQL Developer的使用。

3.4 本实验可以使用SQL PLUS也可以使用SQL Developer。

2 定义基本表(Create)

先画出中原工学院学生选课ER图,在学生选课系统中一名学生可以选修多门课程,一门课程可由多名学生选修,一名学生选修一门课程参加考试就有一个成绩。将ER图转换为逻辑模型并进行一下操作。并在system模式下创建以下3个表:

例2.1 建立学生表Stu,每个属性名的意义为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。这里要求Sno和Sname不能为空值,且取值唯一。Sno为主码。

CREATE TABLE Stu

(

Sno CHAR(10) NOT NULL PRIMARY KEY,

Sname CHAR(20) NOT NULL UNIQUE,

Ssex CHAR(10),

Sage INTEGER,

Sdept CHAR(20)

);例2.2 建立课程表Cose,其属性名意义分别为Cno-课程号, Cname-课程名, Cpno-先修课程号, Credit-学分。Cno为主码。

CREATE TABLE Cose

(

Cno CHAR(10) PRIMARY KEY,

Cname CHAR(10),

Cpno CHAR(10),

Credit INTEGER

);

例2.3 建立成绩表StuSC。其中的属性名意义分别为Sno-学号,Cno-课程号和Grade-考试成绩。Sno和Cno为主码,Sno和Cno分别为外码。

分别查询上面创建的3个表的信息以及表的定义。

CREATE TABLE StuSC

(

Sno CHAR(10),

Cno CHAR(10),

Grade INTEGER,

PRIMARY KEY(Sno,Cno),

FOREIGN KEY(Sno) REFERENCES Stu(Sno),

FOREIGN KEY(Cno) REFERENCES Cose(Cno)

);

3 修改基本表(Alter)

例3.1 向基本表Stu中增加“入学时间”属性列,其属性名为RegisterDate,数据类型为DATE型。

ALTER TABLE Stu

ADD (RegisterDate date);

Alter table Turing.student

Add (RegisterDate date) ;

例3.2 删除Student表的属性列RegisterDate。

ALTER TABLE Stu

DROP COLUMN RegisterDate;

Alter table turing.stu

Drop column RegisterDate cascade constraints;

说明:为了保证后面例子能够顺利运行,请大家一定将属性列RegisterDate从Stu表中删除。

例3.3 将Sage(年龄)的数据类型改为SMALLINT型。

ALTER TABLE Stu

MODIFY Sage SMALLINT;

Alter table turing.stu

Modofy sage smallint; //要缩小精度,该列值必须为空

例3.4 将Stu表的属性列RegisterDate名修改为RegDate,其它不变。

Alter table turing.stu

Rename column RegisterDate to RegDate;

例3.5 增加Sname(姓名)必须取唯一值的约束。

ALTER TABLE Stu

ADD CONSTRAINT cons_Sname

UNIQUE (Sname);

alter table turing.stu

add constraint cons_sname unique(sname);

添加唯一性约束格式:

ALTER TABLE 表名

ADD [ CONSTRAINT 约束名 ]

UNIQUE ( [, … n] )

例3.6 删除Sname(姓名)必须取唯一值的约束。

Alter table turing.stu

Drop constraint cons_sname;

例3.7 表中添加PRIMARY KEY 约束

Alter table turing.stusc

Add constraint PK_SC

PRIMARY KEY (sno,cno);

格式:

ALTER TABLE 表名

ADD [ CONSTRAINT 约束名 ]

PRIMARY KEY ( 列名 [, … n ] )

例3.8 StuSC表中添加FORENGN KEY 约束

alter table turing. stusc

add constraint fk_sc

foreign key (sno) references turing.stu(sno)

foreign key (cno) references turing.cose(cno);

格式:

ALTER TABLE 表名

ADD [ CONSTRAINT 约束名 ]

FOREIGN KEY ()

REFERENCES 引用表名 ()

例3.9定义SC表中grade默认值为0;alter table turing. stusc

modify (grade default 0)

例3.10定义SC表中grade最小值为0,最大值为100;alter table turing. stusc

add constraint chk_grade1

check ((0

以上的约束条件都可以通过以下操作语句查看:

SQL>desc dba_constraints

SQL>desc dba_cons_columns

SQL> select distinct column_name

from dba_cons_columns cu, dba_constraints au

where cu.constraint_name = au.constraint_name and

au.constraint_type = 'R' AND cu.table_name = 'SC'

其中: V:check option

R:Foreign key

U:Unique

P:Primary key

C:Check or Not Null

O:ReadOnly

4 删除基本表

例4.1 删除Stu表(注:能直接删除student表吗?为什么?)。

不能

例4.2 删除cose表(注:能直接删除course表吗?为什么?)。

不能

例4.3 删除StuSC表。

说明:此表删除后,请立即用例3.1将其建立起来,以便后面的例子使用。

实 验 一 基本表的定义、删除与修改

一、 实验目的:

熟练掌握基本表的定义、删除与修改,为后继学习作准备。

二、 实验属性(验证性)

(1) 了解并掌握SQL查询分析器及企业管理器的使用;

(2) 掌握基本表的定义、删除与修改。

三、 实验仪器设备及器材

1. 安装有windows操作系统计算机。

2. 安装有Oracle11g和SQL Server的计算机。

3. 安装有Visual Studio .net和Java编译器(eclipse、Netbean等)的编译器。

4. 计算机具备网络环境。

四、 实验要求(预习、实验前、实验中、实验后等要求)

1. 预习教材第三章,熟悉SQL语句。

2. 熟悉.net、Java或PowerBuilder、Delphi 开发环境。

3. 能够熟练掌握.net、Java或PowerBuilder、Delphi环境下的数据库的编程。 五、实验原理

SQL语言应用。

六、实验步骤:

(1) 启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查询分析器;

(2) 对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。

如果选择SQL SERVER查询分析器,需要选择数据库;

(3) 验证如下例子;

1 熟悉SQL Server数据库服务器

1.1 熟悉SQL Server数据库服务器环境,熟练掌握数据字典。

1.2 从网上下载数据库文件(.MDL、.LDF),进行数据库附加操作。并在操作系统下将数据库数据文件(.MDL、.LDF)拷贝到U盘上。

1.3 从网上下载数据库数据(.XLS格式),将数据导入到数据库。并进行导出(导出格式大于三种)。

3.4 建立数据库登录用户。

2、熟悉Oracle数据库服务器

2.1熟悉Oracle数据库服务器环境,熟练掌握数据字典。

2.2 熟练掌握SQL PLUS的使用。

3.3 熟练掌握SQL Developer的使用。

3.4 本实验可以使用SQL PLUS也可以使用SQL Developer。

2 定义基本表(Create)

先画出中原工学院学生选课ER图,在学生选课系统中一名学生可以选修多门课程,一门课程可由多名学生选修,一名学生选修一门课程参加考试就有一个成绩。将ER图转换为逻辑模型并进行一下操作。并在system模式下创建以下3个表:

例2.1 建立学生表Stu,每个属性名的意义为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。这里要求Sno和Sname不能为空值,且取值唯一。Sno为主码。

CREATE TABLE Stu

(

Sno CHAR(10) NOT NULL PRIMARY KEY,

Sname CHAR(20) NOT NULL UNIQUE,

Ssex CHAR(10),

Sage INTEGER,

Sdept CHAR(20)

);例2.2 建立课程表Cose,其属性名意义分别为Cno-课程号, Cname-课程名, Cpno-先修课程号, Credit-学分。Cno为主码。

CREATE TABLE Cose

(

Cno CHAR(10) PRIMARY KEY,

Cname CHAR(10),

Cpno CHAR(10),

Credit INTEGER

);

例2.3 建立成绩表StuSC。其中的属性名意义分别为Sno-学号,Cno-课程号和Grade-考试成绩。Sno和Cno为主码,Sno和Cno分别为外码。

分别查询上面创建的3个表的信息以及表的定义。

CREATE TABLE StuSC

(

Sno CHAR(10),

Cno CHAR(10),

Grade INTEGER,

PRIMARY KEY(Sno,Cno),

FOREIGN KEY(Sno) REFERENCES Stu(Sno),

FOREIGN KEY(Cno) REFERENCES Cose(Cno)

);

3 修改基本表(Alter)

例3.1 向基本表Stu中增加“入学时间”属性列,其属性名为RegisterDate,数据类型为DATE型。

ALTER TABLE Stu

ADD (RegisterDate date);

Alter table Turing.student

Add (RegisterDate date) ;

例3.2 删除Student表的属性列RegisterDate。

ALTER TABLE Stu

DROP COLUMN RegisterDate;

Alter table turing.stu

Drop column RegisterDate cascade constraints;

说明:为了保证后面例子能够顺利运行,请大家一定将属性列RegisterDate从Stu表中删除。

例3.3 将Sage(年龄)的数据类型改为SMALLINT型。

ALTER TABLE Stu

MODIFY Sage SMALLINT;

Alter table turing.stu

Modofy sage smallint; //要缩小精度,该列值必须为空

例3.4 将Stu表的属性列RegisterDate名修改为RegDate,其它不变。

Alter table turing.stu

Rename column RegisterDate to RegDate;

例3.5 增加Sname(姓名)必须取唯一值的约束。

ALTER TABLE Stu

ADD CONSTRAINT cons_Sname

UNIQUE (Sname);

alter table turing.stu

add constraint cons_sname unique(sname);

添加唯一性约束格式:

ALTER TABLE 表名

ADD [ CONSTRAINT 约束名 ]

UNIQUE ( [, … n] )

例3.6 删除Sname(姓名)必须取唯一值的约束。

Alter table turing.stu

Drop constraint cons_sname;

例3.7 表中添加PRIMARY KEY 约束

Alter table turing.stusc

Add constraint PK_SC

PRIMARY KEY (sno,cno);

格式:

ALTER TABLE 表名

ADD [ CONSTRAINT 约束名 ]

PRIMARY KEY ( 列名 [, … n ] )

例3.8 StuSC表中添加FORENGN KEY 约束

alter table turing. stusc

add constraint fk_sc

foreign key (sno) references turing.stu(sno)

foreign key (cno) references turing.cose(cno);

格式:

ALTER TABLE 表名

ADD [ CONSTRAINT 约束名 ]

FOREIGN KEY ()

REFERENCES 引用表名 ()

例3.9定义SC表中grade默认值为0;alter table turing. stusc

modify (grade default 0)

例3.10定义SC表中grade最小值为0,最大值为100;alter table turing. stusc

add constraint chk_grade1

check ((0

以上的约束条件都可以通过以下操作语句查看:

SQL>desc dba_constraints

SQL>desc dba_cons_columns

SQL> select distinct column_name

from dba_cons_columns cu, dba_constraints au

where cu.constraint_name = au.constraint_name and

au.constraint_type = 'R' AND cu.table_name = 'SC'

其中: V:check option

R:Foreign key

U:Unique

P:Primary key

C:Check or Not Null

O:ReadOnly

4 删除基本表

例4.1 删除Stu表(注:能直接删除student表吗?为什么?)。

不能

例4.2 删除cose表(注:能直接删除course表吗?为什么?)。

不能

例4.3 删除StuSC表。

说明:此表删除后,请立即用例3.1将其建立起来,以便后面的例子使用。


相关内容

  • 郑州建材家居市场调研报告
  • 河南郑州建材市场调研报告 目录....................................................................................................................................... ...

  • 单位与量纲(二)国际单位制的定义方式与历史
  • [单位与量纲]系列文章之(二) 国际单位制是1960年第11届国际计量大会所确定的,随后又不断进行了修改和补充.国际单位制常被缩写为SI,这是法语"国际单位系统"的意思.目前国际单位制的七个基本单位是:米.千克.秒.安培.开尔文.摩尔和坎德拉.七个基本单位之外,还有两个辅助用的单 ...

  • 自主经营体实践研究
  • 班长的战争 (实践研究) 锦绣凤凰管理资讯研究组 二〇一四年十月 修订记录 目 录 修订记录 ....................................................................................................... ...

  • 水资源论证报告书编制基本内容
  • 目 录 1.总论 .................................................................... 错误!未定义书签. 1.1项目来源 .................................................... 错 ...

  • 公差与配合
  • 公差与配合 工作表包含机器零件配合的简易选项的表格和计算同时包含尺寸公差和偏差的定义.使用工具解决下面的任务: 1. 根据国际标准 ISO 286选择机器零件适合配合. 2. 根据国际标准 ISO 286定义机器零件的尺寸公差和偏差. 3. 根据 ANSI B4.1选择机器零件的首选配合以及确定尺寸 ...

  • 个人客户经理序列初级专业资格考试大纲
  • 附件一: 个人客户经理序列初级专业资格考试大纲 (2011年版) 一.考试性质 个人客户经理序列初级专业资格考试是由总行个人客户经理序列专业资格委员会制定统一标准,面向全行符合报考条件的个人客户经理序列员工及有志于从事个人客户经理岗位的其他序列员工开展的专业知识考试与技能水平测试.考试的评价结果是测 ...

  • 软件生存周期过程
  • <信息技术 软件生存周期过程> --ISO/IEC 12207与GB/T 8566 摘 要对于保证软件质量,提高软件工程能力,关键是科学地建立和管理软件工程过程.ISO/IEC12207 <信息技术一软件生存周期过程>总结了有关研究成果,描述了软件生存期的各个过程及其关系,成 ...

  • 函数定义域求法总结
  • 函数定义域求法总结 一.定义域是函数y=f(x)中的自变量x 的范围. (1)分母不为 (2)偶次根式的被开方数 . (3)对数中的真数 . (4)指数.对数的底数 (5)y=tanx中 :y=cotx中 等等. ( 6 )x 0中 二.抽象函数的定义域 1. 已知f (x ) 的定义域,求复合函数 ...

  • 2012软件设计师大纲
  • 考试科目1:计算机与软件工程知识 1. 计算机科学基础知识 1.1数制及其转换  二进制.八进制.十进制和十六进制等常用数制及其相互转换 (Ⅱ) 1.2 计算机内数据的表示  数的表示  带符号定点数据(纯整数和纯小数)的原码.反码.补码和移码表示 (Ⅱ)  浮点数(实数)的表示(Ⅱ)  ...

  • 微积分第三版赵树源主编
  • ____ 授课类型_理论课___ 授课时间 2节 授课题目(教学章节或主题): 第一章 函数 §1.1集合: §1.2实数集:§1.3函数关系:§1.4函数表示法:§1.5建立函数关系的例题 本授课单元教学目标或要求: 理解集合概念,掌握集合的运算性质,了解实数集的特征. 理解函数的概念,掌握函数的 ...