数据库实验报告(实验一)
结果:表已更改,如图1.6所示。
Name
Null?
Type
SNO
NOT NULL
CHAR(11)
SNAME
NOT NULL
CHAR(8)
SSEX
CHAR(2)
SAGE
NUMBER
SDEPT
CHAR(10)
SCOME
DATE
图1.6所示
(5)alter tablestudent drop not null (sname);
);
结果:表已创建,如图1.2所示
Name
Null?
Type
CNO
NOT NULL
CHAR(11)
CNAME
NOT NULL
CHAR(10)
CCREDIT
NUMBER
图1.2所示
3)创建选课数据库模式,代码如下:
create table sc
( sno char (11),
cno char(11) ,
grade numbernull or check (grade between 0 and 100);
primary key (sno,cno),
foreign key (sno) references student (sno) on delete cascade,
foreign key (cno) references course (cno)
结果:alter table student alter column sage integer
*
第 1 行出现错误:
ORA-01735: 无效的 ALTER TABLE 选项
分析错误原因:在oracle 数据库中用“modify”而不用“alter column”,改正如下:
alter table student modify (sage integer);
其中:
sno长度为4的字符串,和student表sno外键关联,且级联删除
cno长度为4的字符串,course表cno外键关联,
grade短整数,值或空或为0—100之间,
(sno,cno)联合作主码。
在Oracle10g的iSQLPlus中完成下列操作:
(1)创建上述三个表。
(2)向Student表增加"入学时间"列(列名为Scome,日期型)。
结果:alter table student drop not null (sname)
*
第 1 行出现错误:
ORA-00905: 缺失关键字
改正如下:
alter tableStudent modify snameintnull;
结果:表已更改,如图1.7所示。
Name
Null?
Type
SNO
NOT NULL
NUMBER
SDEPT
CHAR(10)
SCOME
DATE
ADDRESS
CHAR(1)
图1.8所示
(10)alter table student drop (address);
结果:Table altered.如图1.9所示。
Name
Null?
Type
SNO
NOT NULL
CHAR(11)
SNAME
CHAR(8)
(8)drop index sname
结果:Index dropped.
(9)alter table student add address char;
结果:表已更改,如图1.8所示。
Name
Null?
Type
SNO
NOT NULL
CHAR(11)
SNAME
CHAR(8)
SSEX
CHAR(2)
SAGE
foreign key (cno) references course (cno)
);
结果:表已创建,如图1.3所示。
Name
Null?
Type
SNO
NOT NULL
CHAR(11)
CNO
NOT NULL
CHAR(11)
GRADE
NUMBER
图1.3所示
(2)alter table student add scome date;
ssex char(2) check( ssex in ('男','女')),
sage number check ( sage between 0 and 150),
sdept char(10)
);
结果:表已创建,如图1.1所示。
Name
Null?
Type
SNO
NOT NULL
CHAR(11)
SNAME
SSEX
CHAR(2)
SAGE
NUMBER
SDEPT
CHAR(10)
SCOME
DATE
图1.9所示
(11)create view view1
as
select s.sno,sname,cname,grade
from student s , course ,sc
结果:视图已创建。
(12)create view view2
sdept长度为10的字符串。
2.建立课程数据库模式
课程表:course ( cno课程号,cname课程名,ccredit学分)
其中:
cno长度为4的字符串,为主码
cname长度为10的字符串,不能为空,且不能有重复课程名;
ccredit短整数。
3.建立选课数据库模式。
选课表:sc (sno学号,cno课程号,grade成绩)
沈 阳 工 程 学 院
学 生 实 验 报 告
(课程名称:数据库原理及应用)
实验题目:数据库模式设计
班级软件本111学号**********姓名吴月芬
日期2012.10.16地点F座606指导教师孙宪丽祝世东
一、实验目的
熟练掌握采用SQL命令建立数据库表、索引和视图的方法。
二、实验环境
Oracle10g数据库系统。
三、实验内容与要求
(一)实验内容
1.建立学生数据库模式
学生表:student (sno学号,sname姓名,ssex性别,sage年龄,sdept所在系)
其中:
sno长度为4的字符串,为主码;
sname长度为8的字符串;
ssex长度为2的字符串,其值只取男、女;
sage短整数,其值在0-150之间;
结果:ssex char(2) check ssex in (‘男’,’女’),
*
第 4 行出现错误:
ORA-00906: 缺失左括号
分析错误原因:“check”检查必须用括号将条件括起,改正代码如下:
create table student
( sno char(11) primary key,
sname char(8),
(3)将年龄的数据类型改为半字长整数。
(4)为Student中sname添加列级完整性约束,不能为空。
(5)删除Student中sname列级完整性约束。
(6)为SC建立按学号升序和课程号降序建立唯一索引.
(7)在表student的sname字段建立一个升序索引。
(8)删除在表student的sname字段建立的索引。
as
select s.sno,ssex,sage
from student s
结果:视图已创建。
五、成绩评定
优
良
中
及格
不及格
出勤
格式
内容
分析
总 评
指导教师:
年月日
CHAR(11)
SNAME
CHAR(8)
SSEX
CHAR(2)
SAGE
NUMBER
SDEPT
CHAR(10)
SCOME
DATE
图1.7所示
(6)creat unique index scno on sc(sno asc,cno desc);
结果:SP2-0851: 以 "creat uniq..." 开头的命令不能在 iSQL*Plus 中使用。
(9)给student表增加一个地址(address)属性。
(10)给student表删除地址(address)属性。
(11)建立视图view1,要求有sno,sname,cname,grade四个字段。
(12)建立视图view2,要求有sno,ssex,sage三个字段。
四、实验过程及结果分析
(1)1)创建学生数据库模式,代码如下:
cno char(11) ,
grade numbercheck(grade is null or(grade between 0 and 100)),
primary key (sno,cno),
foreign key (sno) references student (sno) on delete cascade,
CHAR(8)
SSEX
CHAR(2)
SAGE
NUMBER
SDEPT
CHAR(10)
图1.1所示
2)创建课程数据库模式,代码如下:
create table course
( cno char(4) primary key,
cname char(10) unique not null,
ccredit number
结果:表已更改,如图1.5所示。
Name
Null?
Type
SNO
NOT NULL
CHAR(11)