步骤一:打开SQLPLUS, 输入用户名与密码(本例以Scott 用户登录)
登录后显示的界面如下:
图 1-1
步骤二:创建元组类型TDate,在SQLPLUS中输入
create typeTDate as object(day integer, month char(3), year integer);
换行输入“/”。创建成功:
图 1-2
步骤三:创建Tcg类型
输入:
create type TCgas object(Course varchar2(5), Gradeinteger, Cdate TDate);
创建成功,SQLPLUS界面显示如下:
图 1-3
步骤四:创建嵌套表类型 TCgs
在SQLPLUS中输入:create type TCgsas table of TCg
创建成功后:
图 1-4
步骤五:创建最外层表SC
在SQLPLUS中输入:
create tableSC(Sname varchar2(10),Cg TCgs)
nested table Cgstore as Cg_tab
SQLPLUS 界面如下:
图 1-5
步骤六:插入数据
在SQLPLUS 中输入:
insert into SC
values('picart',TCgs(TCg('DB',80,TDate(1,'Oct',2009)),
TCg('OS',80,TDate(1, 'Nov',2009))));
insert into SC
values('kirk',TCgs(TCg('DB',85,TDate(1,'Jul',2009)),
TCg('MATHS',80,TDate(1,'Oct',2009))))
如下图所示:
图 1-6
步骤七: 查询数据
1)为了验证数据是否插入表中,可输入“select * from sc” 进行查询,如图所示:
图 1-7
2)查询每个同学选课的门数
在SQLPLUS 中输入:
select sname,(select count(*) from table (x.Cg))
from SC x
结果如图:
图 1-8
3)查询”kirk” 选择课程的详细信息
在SQLPLUS 中输入:
select * from(select cg from sc where sname=’kirk’);
结果下:
图 1-9
4)查询”kirk” 选择的课程名
在SQLPLUS 中输入:
select x.coursefrom table(select cg from sc where sname=’kirk’) x;
结果如下:
图 2-1
步骤 八:修改数据
1)修改”kirk”的选课信息,将“DB”课程修改为“orcl”
在SQLPLUS 中输入:
Update table(select cg from sc where sname=’kirk’) x set x.course=’orcl’where x.course=’DB’;
然后输入:select x.course from table(select cg from sc where sname=’kirk’) x 查询修改的结果
结果如下:
图 2-2
2)修改”kirk”的选课时间,将其选择课程‘orcl’的选课时间改为“21,Oct,2011”
在SQLPLUS 中输入:
Update table(select cg from sc where sname=’kirl’) set cdate=tdate(21,’Oct’,2011)where course=’orcl’;
然后输入:select * from table(select cg from sc where sname=’kirk’) where course=’orcl’
结果如图:
图 2-3
3)修改修改”kirk”的选课时间,将其选择课程‘orcl’的选课时间的年份改为2010年
在SQLPLUS 中输入:
updatetable(select cg from sc where sname=’kirk’) x set x.cdate.year=2010 wherex.course=’orcl’;
然后输入:select * fromtable(select cg from sc where sname=’kirk’) where course=’orcl’
结果如图:
图 2-4
步骤九:删除SC表中的数据
1)删除‘kirk‘所选的课程’orcl‘的信息
在SQLPLUS 中输入:
delete fromtable(select cg from sc where sname=’kirk’)where x.course=’orcl’;
然后输入:select * fromtable(select cg from sc where sname=’kirk’)查询
结果如图:
图 2-5
2)删除‘kirk‘的选课信息
在SQLPLUS 中输入:
delete from sc where sname=’kirk’
然后输入:select * from sc查询
图 2-6