您的位置:首页 > 数据库 > Oracle

Oracle数据库上机练习4

2019-04-27 13:05 316 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NSJim/article/details/89600429

Oracle上机练习题(四)

试卷总分:100

答题时间:240分钟

 

第一部分根据题意,完成对应的SQL语句

(一)管理用户 

1.

创建用户 Bob,口令为 CRUSADER。为 Bob 分配缺省表空间 USERS 和
临时表空间 TEMP。此外,还应确保 Bob 可以登录(GRANT CREATE SESSION
TO bob;)。[2分]

--Create user
 create user Bob
 identified by CRUSADER
 default tablespace USERS
 temporary tablespace TEMP;
--Grant/Revoke system privileges
grant create session to Bob;

2.

创建用户 Emi,口令为 MARY。为 Emi 分配缺省表空间 USERS 和临时
表空间 TEMP。[2分]

create user Emi
 identified by MARY
 default tablespace USERS
 temporary tablespace TEMP;

3.

修改用户
a)以用户 Bob 的身份登录,更改其临时表空间。
b)以用户 SYSTEM 的身份登录,删除 Bob 的缺省表空间限额。
c)以用户 Bob 的身份登录,将其口令更改为 SAM。[6分]

a) alter user Bob temporary tablespace UNDOTBS1T;
b) alter user Bob quota 0 on USERS;
c) alter user Bob identified by SAM;

4.

从数据库中删除 Emi 的帐户。[2分]

drop user Emi;

5.

假设 Bob 忘记了他的口令。为他指定一个口令 OLINK,并要求他下次
登录时对口令做出相应更改。[2分]

alter user Bob
 identified by OLINK
 password expire;

6.

以 Bob 身份登录,结果如何?[2分]

Your password has expired;

(二)管理权限 

1.

以用户 SYSTEM 的身份创建用户 Emi 并赋予它登录到数据库并在其方
案中创建对象的能力。[2分]

create user Emi
 identified by Emi;
grant create session to Emi;
grant create any table to Emi;

2.

以用户 SYSTEM 的身份赋予 Emi 从 Scott 的 DEPT 表中进行选择的能力。[2分]

grant select on Scott.DEPT to Emi;

3.

以 Scott 的身份重新连接,并赋予 Emi 从 Scott 的 DEPT 表中进行选择的
能力。此外,使 Emi 能向其他用户赋予选择权限。[2分]

grant select on DEPT to Emi with grant option;

4.

对象权限的级联授权。
a)以 Emi 的身份使 Bob 能够访问 Scott 的 DEPT 表。
b)以 Scott 的身份撤消 Emi 读取 Scott 的 DEPT 表的权限。
c)以 Bob 的身份查询 Scott 的 DEPT 表。[6分]

a) grant select on Scott.DEPT to Bob;
b) revoke select on DEPT from Emi;
c) select * from Scott.DEPT t;

(三)管理角色 

1.

创建名为 DEV 的角色,该角色允许被授予该角色的用户能够创建表、视
图并能够从 Scott 的 DEPT 表进行选择。[2分]

create role DEV;
grant select on Scott.DEPT to DEV;
grant create any table to DEV;
grant create any view to DEV;

2.

以 Emi 用户身份创建一个有关 Scott 的 DEPT 表的视图 D_VIEW。[2分]

create view D_VIEW
 as
 select * from scott.dept t where t.deptno <> 40;

3.

将 RESOURCE 角色和 DEV 角色分配给 Emi。[2分]

grant RESOURCE,DEV to Emi;

4.

以 Emi 用户身份创建一个有关 Scott 的 DEPT 表的视图 D_VIEW。[2分]

create view D_VIEW
 as
 select * from scott.dept t where t.deptno <> 40;

第二部分 根据题意,完成对应的SQL语句

【题一】

1.

创建名字为hy_tablespace的表空间,默认大小为10M;@@[2分]

create tablespace hy_tablespace
 datafile 'd:/temp/hy.dbf'
 size 10m;

2.

创建一个用户,用户名以自己名字命名,并指定命名空间为hy_tablespace;@@@@[2分]

create user NingSen 
 identified by 123456 
 default tablespace hy_tablespace;

3.

给用户授予connect和resource角色;[2分]

grant connect to NingSen;
grant resource to NingSen;

4.

创建一张员工表(Emp),字段定义如下
empno    NUMBER(4), 员工编号
ename    VARCHAR2(10),    员工姓名
job      VARCHAR2(9),          岗位
mgr      NUMBER(4),        上级领导编号
hiredate  DATE,                    生日
sal      NUMBER(7,2),      工资
comm    NUMBER(7,2),      奖金
deptno  NUMBER(2)        部门编号[2分]

create table emps(
 empno number(4),
 ename varchar2(9),
 job varchar2(9),
 mgr number(4),
 hiredate date,
 sal number(7,2),
 comm number(7,2),
 deptno number(2)
 )

5.

将员工编号设置成主键;[2分]

alter table emps add constraint pk_empno primary key(empno);

6.

创建一个部门表,字段如下
deptno  NUMBER(2) ,    部门编号
dname  VARCHAR2(14),            部门名称
loc    VARCHAR2(13)            部门位置[2分]

create table departments(
 deptno number(2),
 dname varchar2(14),
 loc varchar2(13)
 )

7.

将部门编号设置为主键;[2分]

alter table department add constraints pk_deptno primary key (deptno);

8.

将Emp表中的ename设置为非空。[2分]

alter table emps modify ename not null;

9.

将dept表中的dname设置为非空。[2分]

alter table departments modify dname not null;

10.

将Emp表中的deptno字段设置默认值,默认值为10。[2分]

alter table emps add constraints de_deptno default 10 for deptno;
alter table emps modify deptno default 10;

11.

将Emp表中的deptno字段添加外键约束,关联到dept表中的deptno字段。[2分]

alter table emps add constraints fk_deptno3 foreign key (deptno) references depart

12.

创建一个序列,名为seq_hy,起始值为1,步长为1,没有最大值限制。[2分]

create sequence seq_hy
 start with 1
 increment by 1;

13.

怎样理解数据库和数据库实例的区别?[2分]

类与对象的区别,数据库可以定义数据库实例,数据库实例可以被数据库调用;

14.

怎样理解权限和角色的区别?[2分]

权限是为了管理数据库而具有的特殊管理;
角色是权限的集合;

15.

char和varchar2数据类型有什么区别?[2分]

char:定长,最大字符2000,默认1
varchar2:变长,最大字符4000

【题二】修改表结构

1.

将Emp表中job字段长度改为15;[2分]

desc emps;
alter table emps modify(job varchar2(15));

2.

将Emp字段中的mgr字段名字改为ldn;[2分]

alter table emps rename column mgr to ldn;

3.

向Emp表中添加一个字段性别(sex char(3));[2分]

alter table emps add(sex char(3));

4.

删除Emp表中的员工性别字段;[2分]

alter table emps drop column sex;

5.

删除Emp表;[2分]

drop table emps;

【题三】表结构基本练习

20000

1.

创建表person
包含两个字段empno number(10)和ename varchar2(50),
写出建表语句[2分]

create table person(
 empno number(10),
 ename varchar2(50)
 );

2.

添加字段sal number(10,2)
写出添加语句[2分]

alter table person add(sal number(10,2));

3.

修改字段ename varchar2(100)
写出修改语句[2分]

alter table person modify(ename varchar2(100));

4.

删除单一字段sal
写出删除语句[2分]

alter table person drop column sal;

【题四】

1.

创建STUDENT表(学生表)结构[2分]

create table students(
 studentid number(8) not null,
 lognpwd varchar2(50) not null,
 studentname varchar2(50) not null,
 sex char(2) not null,
 gradeid integer not null,
 phone varchar2(50),
 address varchar2(255),
 borndate date not null,
 identitycard varchar2(18) not null
 );

2.

为GRADE表添加主键约束[2分]

alter table grade add constraint pk_grade primary key(gradeid);

3.

创建GRADE表(年级表)结构。[2分]

create table grade(
 gradeid number(6) not null,
 gradename varchar2(50) not null
 );

4.

为STUDENT表添加主键和外键约束[2分]

alter table students add constraints pk_studentid primary key(studentid);
alter table students add constraints fk_gradeid foreign key(gradeid) references grade(gradeid);

5.

创建SUBJECT表(科目表)结构[2分]

create table subject(
 subjectid number(8) not null,
 subjectname varchar2(50) not null,
 subjecthour number(5) not null,
 gradeid number(6) not null
 );

6.

为SUBJECT表添加主外键约束[2分]

alter table subject add constraints pk_sujectid primary key(subjectid);
alter table subject add constraints fk_gradeid2 foreign key(gradeid) references grade(gradeid);

7.

创建Result表(成绩表)结构[2分]

create table result(
 id number(8) not null,
 studentid number(8) not null,
 subjectid number(8) not null,
 studentreault number(8,3) not null,
 examdate date not null
 );

8.

为Result表添加主键和外键约束[2分]

alter table result add constraints pk_id primary key(id);
alter table result add constraints fk_studentid2 foreign key(studentid) references students(studentid);

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: