create schema 语句
初见create schema 这条语句,还以为oracle 中的schema 是使用该条语句创建呢。其实oracle 中create user 才是创建schema 的语句,user 和 schema 是不可分的。create schema 只不过是提供了一种填充schema 的方式,可以将条DDL语句和DCL语句打包在一起。省去了一条一条执行这些命令的繁琐,被create schema 打包起来的命令整体组成了一个事务,要么全部执行成功,要么不执行。
SQL> conn hr/oracle
Connected.
SQL> create schema authorization hr
2 create table temp as select employee_id,first_name,last_name,salary
3 from employees
4 create view temp1 as select employee_id,first_name,last_name,salary
5 from employees
6 grant select on temp1 to scott;
Schema created.
create schema 语句可以打包create table ,create view 和grant 语句,要能够执行create schema 语句,必须拥有权限执行上述这些命令。
SQL> desc temp
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPLOYEE_ID NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
SALARY NUMBER(8,2)
SQL> desc temp1
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
SALARY NUMBER(8,2)
SQL> conn scott/oracle
Connected.
SQL> select count(*) from hr.temp1;
COUNT(*)
----------
107