较好的参考网站:https://www.techonthenet.com/oracle/schemas/create_schema.php
关于schema的概念,有点类似于数据库用户权限的概念。
例如:类似的在postgresql中这个public就是一个默认schema,你也可以自己指定,当只有带上该schema时才可以对应的表
CREATE TABLE public.t_permission
(
id integer NOT NULL DEFAULT nextval('t_permission_id_seq'::regclass) ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
permissionname character varying(100) COLLATE pg_catalog."default",
roleid integer,
CONSTRAINT t_permission_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.t_permission
OWNER to postgres;
一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果我们访问一个表时,没有指明该 表属于哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过 select * from emp; 其实,这sql语句的完整写法为select * from scott.emp