2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Oracle其它数据库对象:视图 序列 同义词

Oracle其它数据库对象:视图 序列 同义词

时间:2023-10-05 10:45:28

相关推荐

Oracle其它数据库对象:视图 序列 同义词

SQL> --视图: 由一个或者多个表组成的逻辑表

SQL> -创建一个视图,包含了10,20的员工信息

SQL> --创建一个视图,包含了10,20的员工信息

SQL> ed

已写入 file afiedt.buf

1 create or replace view emp1020(empno,ename,sal,deptno)

2 as

3 select empno,ename,sal,deptno

4 from emp

5* where deptno in (10,20);

SQL>

第 1 行出现错误:

ORA-01031: 权限不足

SQL> --创建视图的权限

SQL> --切换到管理员下,授权

SQL> conn sys/password as sysdba

已连接。

SQL> grant create view to scott;

授权成功。

SQL> conn scott/tiger

已连接。

SQL> create or replace view emp1020(empno,ename,sal,deptno)

2 as

3 select empno,ename,sal,deptno

4 from emp

5 where deptno in (10,20);

视图已创建。

SQL> select * from tab;

TNAME TABTYPE CLUSTERID

------------------------------ ------- ----------

DEPT TABLE

EMP TABLE

BONUS TABLE

SALGRADE TABLE

EMP10 TABLE

EMP101 TABLE

MYUSER TABLE

TESTCHAR TABLE

DDD TABLE

DDDE TABLE

EMP1020 VIEW

已选择11行。

SQL> --从视图中去数据

SQL> select * from emp1020;

EMPNO ENAME SAL DEPTNO

---------- ---------- ----- ----------

7369 SMITH 801 20

7566 JONES 2976 20

7782 CLARK 2551 10

7788 SCOTT 3001 20

7839 KING 5101 10

7876 ADAMS 1101 20

7902 FORD 3001 20

7934 MILLER 1401 10

1235 Mary 1101 10

2222 Mike 2001 20

已选择10行。

SQL> create or replace view emp10201 (empno,ename,sal,annlsal,deptno)

2 as

3 select empno,ename,sal,sal*12,deptno

4 from emp

5 where deptno in (10,20);

视图已创建。

SQL> select * from emp10201;

EMPNO ENAME SAL ANNLSAL DEPTNO

---------- ---------- ----- ---------- ----------

7369 SMITH 801 9612 20

7566 JONES 2976 35712 20

7782 CLARK 2551 30612 10

7788 SCOTT 3001 36012 20

7839 KING 5101 61212 10

7876 ADAMS 1101 13212 20

7902 FORD 3001 36012 20

7934 MILLER 1401 16812 10

1235 Mary 1101 13212 10

2222 Mike 2001 24012 20

已选择10行。

SQL> --创建视图: 要求有员工编号,工资,年薪,部门名称

SQL> create or replace view empdept(empno,ename,sal,annlsal,dname)

2 as

3 select e.empno,e.ename,e.sal,e.sal*12,d.dname

4 from emp e,dept d

5 where e.deptno=d.deptno;

视图已创建。

SQL> select * from empdept;

EMPNO ENAME SAL ANNLSAL DNAME

---------- ---------- ----- ---------- --------------

7369 SMITH 801 9612 RESEARCH

7499 ALLEN 1601 19212 SALES

7521 WARD 1251 15012 SALES

7566 JONES 2976 35712 RESEARCH

7654 MARTIN 1251 15012 SALES

7698 BLAKE 2851 34212 SALES

7782 CLARK 2551 30612 ACCOUNTING

7788 SCOTT 3001 36012 RESEARCH

7839 KING 5101 61212 ACCOUNTING

7844 TURNER 1501 18012 SALES

7876 ADAMS 1101 13212 RESEARCH

EMPNO ENAME SAL ANNLSAL DNAME

---------- ---------- ----- ---------- --------------

7900 JAMES 951 11412 SALES

7902 FORD 3001 36012 RESEARCH

7934 MILLER 1401 16812 ACCOUNTING

1235 Mary 1101 13212 ACCOUNTING

2222 Mike 2001 24012 RESEARCH

已选择16行。

SQL> --序列:Oracle默认一次创建20个值放入内存

SQL> --序列可能不连续

SQL> -- 需要创建序列的权限 create sequence

SQL> conn sys/password as sysdba

已连接。

SQL> grant create sequence to scott;

授权成功。

SQL> conn scott/tiger

已连接。

SQL> --创建一个序列

SQL> create sequence seq1;

序列已创建。

SQL> -- 采用默认值:

SQL> /*

SQL> 步长:1

SQL> 起始值:1

SQL> 最大值:无穷大

SQL> cache:20

SQL> 不循环

SQL> */

SQL> select seq1.nextval from dual;

NEXTVAL

----------

1

SQL> select seq1.currval from dual;

CURRVAL

----------

1

SQL> select seq1.nextval from dual;

NEXTVAL

----------

2

SQL> --在插入中使用序列: insert into myemp values(seq1.nextval,'Tom'.......)

SQL> --同义词

SQL> show user;

USER 为 "SCOTT"

SQL> conn hr/hr

已连接。

SQL> --给scott授权访问employees表

SQL> grant select on employees to scott;

授权成功。

SQL> show user;

USER 为 "HR"

SQL> select * from employees;

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE

----------- -------------------- ------------------------- ------------------------- -------------------- --------------

JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID

---------- ---------- -------------- ---------- -------------

198 Donald OConnell DOCONNEL 650.507.9833 21-6月 -99

SH_CLERK 2600 124 50

199 Douglas Grant DGRANT 650.507.9844 13-1月 -00

SH_CLERK 2600 124 50

200 Jennifer Whalen JWHALEN 515.123.4444 17-9月 -87

AD_ASST 4400 101 10

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE

----------- -------------------- ------------------------- ------------------------- -------------------- --------------

JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID

---------- ---------- -------------- ---------- -------------

201 Michael Hartstein MHARTSTE 515.123.5555 17-2月 -96

MK_MAN 13000 100 20

202 Pat Fay PFAY 603.123.6666 17-8月 -97

MK_REP 6000 201 20

203 Susan Mavris SMAVRIS 515.123.7777 07-6月 -94

HR_REP 6500 101 40

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE

----------- -------------------- ------------------------- ------------------------- -------------------- --------------

JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID

---------- ---------- -------------- ---------- -------------

已选择107行。

SQL> --回到scott下

SQL> conn scott/tiger

已连接。

SQL> host cls

SQL> show user;

USER 为 "SCOTT"

SQL> select * from hr.employees;

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE

----------- -------------------- ------------------------- ------------------------- -------------------- --------------

JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID

---------- ---------- -------------- ---------- -------------

198 Donald OConnell DOCONNEL 650.507.9833 21-6月 -99

SH_CLERK 2600 124 50

199 Douglas Grant DGRANT 650.507.9844 13-1月 -00

SH_CLERK 2600 124 50

200 Jennifer Whalen JWHALEN 515.123.4444 17-9月 -87

AD_ASST 4400 101 10

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE

----------- -------------------- ------------------------- ------------------------- -------------------- --------------

JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID

---------- ---------- -------------- ---------- -------------

196 Alana Walsh AWALSH 650.507.9811 24-4月 -98

SH_CLERK 3100 124 50

197 Kevin Feeney KFEENEY 650.507.9822 23-5月 -98

SH_CLERK 3000 124 50

已选择107行。

SQL> --select * from hr.employees;

SQL> --切换到管理员下,为scott赋予创建同义词的权限

SQL> host cls

SQL> conn / as sysdba

已连接。

SQL> grant create synonym to scott;

授权成功。

SQL> conn scott/tiger

已连接。

SQL> create synonym hremp for hr.employees;

同义词已创建。

SQL> --select * from hr.employees;

SQL> select * from hremp;

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE

----------- -------------------- ------------------------- ------------------------- -------------------- --------------

JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID

---------- ---------- -------------- ---------- -------------

198 Donald OConnell DOCONNEL 650.507.9833 21-6月 -99

SH_CLERK 2600 124 50

199 Douglas Grant DGRANT 650.507.9844 13-1月 -00

SH_CLERK 2600 124 50

200 Jennifer Whalen JWHALEN 515.123.4444 17-9月 -87

AD_ASST 4400 101 10

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE

----------- -------------------- ------------------------- ------------------------- -------------------- --------------

JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID

---------- ---------- -------------- ---------- -------------

196 Alana Walsh AWALSH 650.507.9811 24-4月 -98

SH_CLERK 3100 124 50

197 Kevin Feeney KFEENEY 650.507.9822 23-5月 -98

SH_CLERK 3000 124 50

已选择107行。

SQL> spool off

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。