1、 B 2、ABD 3、D 4、B 5、AB 6、A 7、C 8、A 9、A 10、D
11、 B 12、C 13、AD 14、C 15、CE 16、A 17、D 18、B 19、BE 20、AD
三、1、number 2、 varchar2(50) 3、 open c_salay 4、fetch
5、c_salay%notfound 6、salay*1.15 7、 else
8、close c_salay 9、 commit 10、substr(sqlerrm,1,200)
二,
1,alter tablespace userdata add datafile 'c:\..\userdata.dbf' size 10M;
2,
DROP 删除表时,不但删除记录,还有表结构
delete 删除表中的记录.DML语句
TRUNCATE 用于将表清空,要有drop table 的权限,DDL语句,不会激活delect触发器
3,
----------while
declare
i number(10):=1;
begin
while i<=10 loop
insert into test(x) values(i);
i:=i+1;
end loop;
end;
------------for
begin
for i in 1..10 loop
insert into test(x) values(i);
end loop;
end;
4,
-----table space
table space是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。
每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
表空间的大小等于构成该表空间的所有数据文件大小之和。
------segment
segment用户建立的数据库对象的存储表示。用户建立的每一个表都会有一个在表空间中存储的逻辑段。为用户所建立的对象生成的段都要在磁盘上占用空间。在Oracle系统中,有3种类型的段,即数据段、临时段和回滚段(有时也称为撤销段)
---------extent
extent多个盘区构成segment。盘区是用来为段存储数据的逻辑上连续的数据块的集合。当建立数据库对象时(无论如何,该对象都会消耗空间),系统就会建立一个或多个盘区来存储数据
-------data block
data block代表了数据库中最小颗粒的逻辑数据存储层次。
5,
select count(A) from T1;
select count(distinct(A)) from T1;
6,
example-------示例表空间,存放示例信息
sysaux-------SYSAUX表空间是随着数据库的创建而创建的,它充当SYSTEM的辅助表空间,主要存储除数据字典以外的其他对象
system-------系统表空间,存放表空间名称、所含数据文件等管理信息
temp--------临时表空间,存储临时表
undotbs1-------回滚表空间,存放数据库恢复信息
users ------------用户表空间,存放用户私有信息
7,
用户进程
可以将用户进程(user process)看作是一些试图连接数据库的软件
Oracle监听器
Oracle监听器(listener)是一个运行于Oracle数据库服务器上的进程,其职责是监听来自于客户应用的连接请求。
Oracle网络客户
对于SQL*Plus、Oracle Enterprise Manager、Oracle Net Manager这些客户工具来说,可以使用Oracle Net Services客户适配器与Oracle数据库进行交互。
服务器进程
当Oracle Net Services接收到用户进程的连接请求之后,就会将用户进程路由到一个服务器进程(server process)
后台进程
服务器一开启就运行一些进程,句括 进程监控器 ,系统监视器,数据库写入器,日志写入器等
8,
select col1,col2,sum(col3) as col3
from table1
group by col1,col2;
-----------------------------------------------------------------------------------------------------------------------
9,
create table s
(
sno number(10),
sname varchar2(50)
);
insert into s values(1,'AAA');
insert into s values(2,'BBB');
insert into s values(3,'CCC');
select * from s
--------------------------------------------
create table c
(
cno number(10),
cname varchar2(50),
cteacher varchar2(50)
);
insert into c values(1,'111','李明');
insert into c values(2,'222','张黑');
------------------------------------
create table sc
(
sno number(10),
cno number(10),
scgrade number(10)
);
insert into sc values(1,1,60);
insert into sc values(1,2,80);
insert into sc values(2,1,30);
insert into sc values(2,2,10);
--1,找出没有选修过“李明”老师讲授课程的所有学生姓名
select sname from s
where s.sno not in(
select sc.sno from c
join sc on c.cno=sc.cno
where cteacher='李明')
--2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
select s.sno,s.sname,bc.a from s
join
(select sno,avg(scgrade) a from sc
where scgrade<60
group by sno
having count(scgrade)>=2) bc
on s.sno=bc.sno;
--3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
select sname from s
where sno in(
select sno from sc where cno=1
intersect
select sno from sc where cno=2 );
--4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
select sno from sc
where cno=1 and scgrade>
(select scgrade from sc
where sno=2 and cno=1);
--5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和 “2”号课的成绩
select s1.sno,s1.scgrade,s2.scgrade from sc s1
join sc s2
on s1.sno=s2.sno
where s1.cno=1 and s2.cno=2 and s1.scgrade<s2.scgrade
-------------------------------------------------------------------------------------------------------------------------------------------------
--10
--有课不及格的学生(in)
select * from s
where sno in(select sno from sc where scgrade<60)
--有课不及格的学生(exists)
select * from s
where exists(select * from sc where scgrade<60 and s.sno=sc.sno)
--没有参加考试的学生(in)
select * from s
where sno not in(select sno from sc )
--没有参加考试的学生(exists)
select * from s
where not exists(select * from sc where s.sno=sc.sno)