实验指导书——大型数据库应用(5)

2019-05-24 17:42

3、修改角色 语法:

ALTER ROLE role_name

[NOT IDENTIFIED]|[IDENTIFIED BY password]; 实例:

ALTER ROLE high_manager_role IDENTIFIED BY highrole; ALTER ROLE middle_manager_role NOT IDENTIFIED;

4、角色的生效与失效 语法:

SET ROLE [role_name[IDENTIFIED BY password ]]|[ALL [EXCEPT role_name]]|[NONE]; 参数说明:

role_name:表示进行生效或失效设置的角色名称;

IDENTIFIED BY password:用于设置角色生效或失效时的认证口令; ALL:表示使当前用户所有角色生效;

EXCEPT role_name:表示除了特定角色外,其余所有角色生效; NONE:表示使当前用户所有角色失效。

实例:

SET ROLE NONE;

SET ROLE high_manager_role IDENTIFIED BY highrole;

SET ROLE middle_manager_role,low_manager_low IDENTIFIED BY lowrole; SET ROLE ALL EXCEPT low_manager_role,middle_manager_role;

5、删除角色 语法结构

DROP ROLE role_name;

6、利用角色进行权限管理 (1) 给用户或角色授予角色 语法:

GRANT role_list TO user_list|role_list;

例如,将CONNECT,high_manager_role角色授予用户user1,将RESOURCE,CONNECT角色授予角色middle_manager_role。

GRANT CONNECT,high_manager_role TO user1;

GRANT RESOURCE,CONNECT TO middle_manager_role;

(2)从用户或角色回收角色 语法:

REVOKE role_list FROM user_list|role_list;

例如,回收角色middle_manager_role的RESOURCE,CONNECT角色。 SQL>REVOKE RESOURCE,CONNECT FROM middle_manager_role;

(3)用户角色的激活或屏蔽 语法:

ALTER USER user_name DEFAULT ROLE [role_name]|[ALL [EXCEPT role_name]]| [NONE]; 例:

ALTER USER user1 DEFAULT ROLE NONE;

ALTER USER user1 DEFAULT ROLE CONNECT,DBA; ALTER USER user1 DEFAULT ROLE ALL;

ALTER USER user1 DEFAULT ROLE ALL EXCEPT DBA;

【实验内容】

1. 创建一个用户口令认证的数据库用户usera_exer,口令为usera,默认表空间为USERS,

配额为10MB,初始账户为锁定状态。

2. 创建一个口令认证的数据库用户userb_exer,口令为userb。

3. 为usera_exer用户授权CREATE SESSION权限、scott.emp的SELECT权限和UPDATE权限,同时允许该用户将获得的权限授予其他用户。 4. 将用户usera_exer的账户解锁。 5. 用usera_exer登录数据库,查询和更新scott.emp中的数据。同时将scott.emp的SELECT权限和UPDATE权限授予用户userb_exer。

6. 禁止用户usera_exer将获得的CREATE SESSION权限再授予其他用户。

7. 禁止用户usera_exer将获得的scott.emp的SELECT权限和UPDATE权限再授予其他用户。 8. 创建角色rolea和roleb,将CREATE TABLE权限,scott.emp的INSERT权限和DELETE权限授予rolea;将CONNECT,RESOURCE角色授予roleb。 9. 将角色rolea,roleb授予用户usera_exer。

实验四 数据操纵和查询SQL语句

【开发语言及实现平台或实验环境】

Oracle10g

【实验目的】

(1)练习插入、更新、删除等基本的数据操纵语句; (2)练习SQL查询语句;

【实验原理】 1. 数据操纵 (1)插入数据

用Insert在基本表customer中插入数据:

SQL>insert into customer values (?Nicholson?,?CA?,6989.99); SQL>insert into customer values (?Martin?,?CA?,2345.45); SQL>insert into customer values (?Laursen?,?CA?,34.34); SQL>insert into customer values (?Bambi?,?CA?,1234.55); SQL>insert into customer values (?McGraw?,?NJ?,123.45);

在表STATE中插入指定的字段:

SQL>insert into state (state_name,state_cd) 2 values ('Massachusetttes', 'M');

SQL>insert into state (state_name,state_cd) 2 values ('California', 'CA');

SQL>insert into state (state_name,state_cd) 2 values ('NewJersey', 'NJ');

SQL>insert into state (state_name,state_cd) 2 values ('NewYork', 'NY');

(2)修改数据

把state表中NewYork改为Florida,NY改为FD: UPDATE state SET state_name = 'Florida', state_cd = 'FD' where state_name = 'NewYork' and state_cd = 'NY';

(3)删除数据

从STATE表删除state_name为Florida和state_cd为FD的记录: DELETE FROM STATE WHERE state_name = 'Florida' AND state_cd = 'FD';

3. 查询

SQL查询包括简单查询、多表连接查询和子查询,例如: (1)显示EMP表中所有的部门号、职工名称和管理者号码:

SELECT DEPTNO,ENAME,MGR FROM EMP;

(2) 算术运算符的使用

SELECT ENAME, SAL+250*12 FROM EMP;

(3)连字符的使用

把职工号和职工名字连接起来,如下:

SELECT EMPNO||ENAME EMPLOYEE FROM EMP;

把职工号和职工名字中间用‘-’连接起来,并输出‘WORKS IN DEPARTMENT’,如下: SELECT EMPNO||'-'||ENAME EMPLOYEE, 'WORKS IN DEPARTMENT', DEPTNO FROM EMP;

(4) 禁止重复

如果列举出EMP表中所有部门号: Select deptno from emp;

(5) 排序

按单个字段排序,如按照ENAME排序,

SELECT ENAME,JOB,SAL*12,DEPTNO FROM EMP ORDER BY ENAME;

(6) 带条件的查询

1)查询工作是CLERK的所有职工的姓名,职工号和部门号

SELECT ENAME, EMPNO, JOB, DEPTNO FROM EMP WHERE JOB = 'CLERK';

(6)操作符的应用 1)BETWEEN的应用

查询工资在1000到2000之间的职工名字和工资信息。

SELECT ENAME,SAL FROM EMP WHERE SAL BETWEEN 1000 AND 2000; 2)IN

查询有7902,7566,7788三个MGR号之一的所有职工: SELECT EMPNO,ENAME, SAL,MGR FROM EMP WHERE MGR IN (7902,7566,7788);

3)LIKE

通配符%代表任意0或多个字符。 通配符_代表任意单个字符。

查询名字以“S”开始的所有职工:

SELECT ENAME FROM EMP WHERE ENAME LIKE 'S%'; 4)IS NULL

查询没有管理者的所有职工:

SELECT ENAME,MGR FROM EMP WHERE MGR IS NULL;

【实验内容】 有4个表:

学生表:S(Snum,Sname,sex,birthday,dept)

课程表:C(Cnum,Cname,Credit,Tnum) 选修表:SC(Snum,Cnum,grade)

教师表:T(Tnum,Tname,sex,birthday,dept,title) 请完成以下操作:

1. 建立表,实现完整性约束;

2. 查询学生表中不姓“王”的学生的情况;

3. 查询所有有成绩的学生的学号、姓名和课程名; 4. 查询所有女教师及其所上的课程; 5. 查询各个课程号及其相应的选课人数;

6. 查询每个学生已选修课程的门数及平均成绩; 7. 将学生刘磊新选修的数据库原理插入选修表中; 8. 将学生张红选修的C3课程的成绩加10分; 9. 将学生张红选修的“数据库原理”删除。


实验指导书——大型数据库应用(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年华罗庚金杯少年数学邀请赛香港赛区决赛初中一年级组试题答

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: