/** TABLE_NO:0010
* TABLE_NAME:序列号信息表(COMM_CONFIG)
* TABLE DESC:为保证序列号生成与数据库无关,本系统单独建表存储不同序列号的当前值。本表只存储一条记录
* AUTHOR:王保政
* DATE:2008-12-18
**/
CREATE TABLE COMM_CONFIG -- 序列号信息表
(
ROW_ID VARCHAR2(40) NOT NULL ENABLE PRIMARY KEY, --记录唯一ID,此ID值在记录生成后不做修改
NEXT_SEQ NUMBER DEFAULT 1 NOT NULL --下一序列值
);
/** TABLE_NO:0020
* TABLE_NAME:子系统基本信息表(BASE_SUB_SYSTEM)
* TABLE DESC:定义子系统的基本信息<本表不设计多语字段>
* AUTHOR:王保政
* DATE:2008-12-20
**/
CREATE TABLE COMM_SUB_SYSTEM
(
ROW_ID VARCHAR2(40) NOT NULL ENABLE PRIMARY KEY,
SYS_CODE VARCHAR2(10) NOT NULL ENABLE UNIQUE, --子系统代号(如CRM表示客户关系管理系统,HR表示人力资源系统)
SYS_NM VARCHAR2(40) NOT NULL ENABLE, --子系统名称
SYS_DESC VARCHAR2(100) ,--子系统说明
IS_WEB_APP CHAR(1) DEFAULT '1',--是否WEB应用 ,默认为是(1) ,本系统对是和否的定义按1/0区分
CONTEXT_ROOT VARCHAR2(30) ,-- WEB应用根目录的名称
JSP_FILE_PATH VARCHAR2(100), -- 使用平台生成JSP代码时,存储JSP文件的路径
JAVA_FILE_PATH VARCHAR2(100),--使用平台生成代码时,存储JAVA文件的路径
ENITY_PACKAGE_NM VARCHAR2(100), --使用平台生成代码时,实体类的包名。
XML_FILE_PATH VARCHAR2(100) ,--使用平台生成代码时,生成的XML配置文件的包路径名。
TEMPLATE_PATH VARCHAR2(100) ,--使用平台生成代码时,使用的JSP模板文件的路径
CREATE_DT VARCHAR2(23), --记录创建时间,格式(带格式的年月日时分秒毫秒):2008-12-20 14:13 59 000
UPDATE_DT VARCHAR2(23), --记录最后修改时间(当创建记录时,最后修改时间和记录创建时间是一样的)
CREATE_UID VARCHAR2(40), --创建者身份标识(登录人帐号)
UPDATE_UID VARCHAR2(40), --修改者身份标识(登录人帐号)
SORT_NO NUMBER, --记录顺序号,如果需要自定义记录显示顺序,可使用此字段
DATA_FLG CHAR(1) --是否使用(0:停用 ,1使用)
);
/** TABLE_NO:0030
* TABLE_NAME:登录帐号基本信息表(COMM_USER)
* 设计思路:可作为统一认证的数据源,此表只存储认证必须的最少信息,主要是身份(帐号)、凭证(口令)
* 及帐号是否可用的信息,更详细的信息可另建子表;对于用户的分类,有企业内部员工,详细信息可与HR的
* 人员信息共用,对于网上会员,可另建数据库表存储会员基本信息,等等。这些按不同分类的用户表可和本表建立
* 主外键约束,此表作为主键表。
* 本表需要在实际应用中不断完善。
* TABLE DESC:登录帐号表
* AUTHOR:王保政
* DATE:2008-12-26
**/
CREATE TABLE COMM_USER
(
USER_ID NUMBER PRIMARY KEY, --其他表有存储登录帐号字段时,使用本字段值存储,优点是用户可随意修改自己的登录帐号
LOGIN_ID VARCHAR2(30) NOT NULL ENABLE UNIQUE , --登录帐号,在登录页面上使用的帐号,建立唯一约束,使登录帐号不能重复
EMP_NO VARCHAR2(10) , --如果为企业内部用户,此字段可对应HR系统的员工工号,在应用系统中也可以此字段作为登录帐号
USERNAME VARCHAR2(60) NOT NULL ENABLE , --登录后在页面上显示的名字,是否为真实姓名还是昵称由具体应用确定
PASSWORD VARCHAR2(60) NOT NULL ENABLE, --登录用户的口令,为安全起见不允许为空,一般应存储加密的口令
USER_EMAIL VARCHAR2(30) , --用户联系邮箱,主要用于系统自动发邮件使用
USER_TEL VARCHAR2(30) , --用户联系电话
USER_MOBILE VARCHAR2(20), --用户手机
USER_TITLE VARCHAR2(20), --用户的称谓,具体由应用系统确定,例如先生/女士/局长/...
USER_TYPE VARCHAR2(16) , --用户类型:企业内部用户,网上会员等,具体含义由应用系统确定,对应编码从数据字典表获取
IS_ACCT_NON_EXPIRED CHAR(1) DEFAULT 1, --帐号是否未过期:1/0:未过期/过期
IS_ACCT_NON_LOCKED CHAR(1) DEFAULT 1, --帐号是否未锁定1/0:未锁定/锁定
IS_PWD_NON_EXPIRED CHAR(1) DEFAULT 1, --口令是否未过期 1/0:未过期/过期
IS_IN_USE CHAR(1) DEFAULT 1, --帐号是否可用信息1/0:可用/不可用
ROW_ID VARCHAR2(40) NOT NULL ENABLE , --唯一行号(UUID)
CREATE_DT VARCHAR2(23), --记录创建时间,格式(带格式的年月日时分秒毫秒):2008-12-20 14:13 59 000
UPDATE_DT VARCHAR2(23), --记录最后修改时间(当创建记录时,最后修改时间和记录创建时间是一样的)
CREATE_UID VARCHAR2(40), --创建者身份标识(登录人帐号)
UPDATE_UID VARCHAR2(40), --修改者身份标识(登录人帐号)
SORT_NO NUMBER --记录顺序号,如果需要自定义记录显示顺序,可使用此字段
);
CREATE INDEX IDX1_COMM_USER ON COMM_USER(USERNAME) ;--TABLESPACE ERP; 因名称经常作为查询条件,所以建立索引
--DROP INDEX IDX1_COMM_USER ;
/** TABLE_NO:0040
* TABLE_NAME:角色信息表(COMM_ROLES)
* TABLE DESC:角色是与系统有关的,比如财务系统中的角色和销售系统中的角色定义是不同的。
* 因为系统实现有可能是按树结构录入角色,所以设计了若干树结构相关字段
* AUTHOR:王保政
* DATE:2008-12-27
**/
CREATE TABLE COMM_ROLES
(
ROLE_ID NUMBER PRIMARY KEY , --角色ID
ROLE_NAME VARCHAR2(40) NOT NULL ENABLE, --角色名称
---- 以下是树结构相关字段 ------------
CLS_CODE VARCHAR2(10) , --子系统编号,角色一般与系统相关
TREE_CODE VARCHAR2(100) UNIQUE, --树节点编码,一般由系统生成(如不使用树结构,则可不使用)
P_TREE_CODE VARCHAR2(100) , --上级节点编码 (如不使用树结构,则可不使用)
LVL_NUM NUMBER , --树节点所属层次(如不使用树结构,则可不使用)
IS_LEAF CHAR(1), --是否末级节点(如不使用树结构,则可不使用)
COMM_CODE VARCHAR2(16) UNIQUE, --角色编码(企业按照自己的规则设置的角色编码)
NODE_NAME VARCHAR2(80), --节点名称(对于树型结构,可能显示一级->二级->三级)
NODE_DESC VARCHAR2(255), --角色说明
----- 以上是树结构相关字段 -----------
ROW_ID VARCHAR2(40) NOT NULL ENABLE ,
CREATE_DT VARCHAR2(23),
UPDATE_DT VARCHAR2(23),
CREATE_UID VARCHAR2(40),
UPDATE_UID VARCHAR2(40),
SORT_NO NUMBER ,
DATA_FLG CHAR(1) DEFAULT 1 NOT NULL ENABLE --是否使用(0:停用 ,1使用)
);
CREATE INDEX IDX1_COMM_ROLES ON COMM_ROLES(ROLE_NAME) ;
/** TABLE_NO:0050
* TABLE_NAME:权限定义表(COMM_AUTH)
* TABLE DESC:权限定义
* 设计说明:(1)在系统实现中作为Spring Security框架读取的资源;
* (2)权限是与子系统相关的,所以不同的子系统使用不同的权限集合。
* (3)权限是树型结构,例如如果具有页面上按钮的权限,则应该也有访问页面的权限
* (4) 在系统实现上,权限既可直接授权给用户,也可按用户-角色-权限模型设计,视应用需求而定
* (5) 本表的权限定义不涉及到ACL,ACL权限具有单独的实现框架。
* (6) 本表的权限定义可控制的资源包括:URL,WEB应用具体的目录,功能菜单树,页面按钮及页面其他元素
* (7) 使用Spring Security框架的权限标签来控制页面元素,本表是权限标签读取的资源。
* AUTHOR:王保政
* DATE:2008-12-27
**/
CREATE TABLE COMM_AUTH
(
AUTH_ID NUMBER PRIMARY KEY, --权限唯一ID
AUTH_NAME VARCHAR2(40) NOT NULL ENABLE, --权限名称
AUTH_TYPE VARCHAR2(16) , --权限类型,如菜单、按钮,功能模块,URL权限等,从数据字典获取权限编码
AUTH_RESOURCE VARCHAR2(255) DEFAULT '/*' NOT NULL ENABLE , --权限对应的资源
---- 以下是树结构相关字段 ------------
COMM_CODE VARCHAR2(30) UNIQUE NOT NULL ENABLE, --权限编码(企业按照自己的规则设置的权限编码,也可由系统根据规则自动生成)
CLS_CODE VARCHAR2(10) , --子系统编号
TREE_CODE VARCHAR2(100) UNIQUE, --树节点编码,一般由系统生成
P_TREE_CODE VARCHAR2(100) , --上级节点编码
LVL_NUM NUMBER , --树节点所属层次
IS_LEAF CHAR(1), --是否末级节点
NODE_NAME VARCHAR2(80), --节点名称(默认取AUTH_NAME)
NODE_DESC VARCHAR2(255), --权限说明
----- 以上是树结构相关字段 -----------
ROW_ID VARCHAR2(40) NOT NULL ENABLE ,
CREATE_DT VARCHAR2(23),
UPDATE_DT VARCHAR2(23),
CREATE_UID VARCHAR2(40),
UPDATE_UID VARCHAR2(40),
SORT_NO NUMBER , --在权限表中,需要按照此字段排序
DATA_FLG CHAR(1) DEFAULT 1 NOT NULL ENABLE --是否使用(0:停用 ,1使用)
);
CREATE INDEX IDX1_COMM_AUTH ON COMM_AUTH(AUTH_NAME) ;
/** TABLE_NO:0060
* TABLE_NAME:用户角色关系表(COMM_USER_ROLE)
* TABLE DESC:定义用户和角色的关系
* AUTHOR:王保政
* DATE:2008-12-27
**/
CREATE TABLE COMM_USER_ROLE
(
SERIAL_NO NUMBER PRIMARY KEY ,
USERID NUMBER, --主键对应COMM_USER.USER_ID,暂不设置外键约束,根据项目需要设置是否增加级联删除的外键约束
ROLE_ID NUMBER, --主键对应COMM_ROLES.ROLE_ID,暂不设置外键约束,根据项目需要设置是否增加级联删除的外键约束
CREATE_DT VARCHAR2(23), --对于关系表而言,不需要修改,所以不设计修改日期和修改人字段
CREATE_UID VARCHAR2(40)
);
/** TABLE_NO:0070
* TABLE_NAME:角色权限关系表(COMM_ROLE_AUTH)
* TABLE DESC:定义角色和权限的关系
* AUTHOR:王保政
* DATE:2008-12-27
**/
CREATE TABLE COMM_ROLE_AUTH
(
SERIAL_NO NUMBER PRIMARY KEY ,
AUTH_ID NUMBER, --主键对应COMM_USER.USER_ID,暂不设置外键约束,根据项目需要设置是否增加级联删除的外键约束
ROLE_ID NUMBER, --主键对应COMM_ROLES.ROLE_ID,暂不设置外键约束,根据项目需要设置是否增加级联删除的外键约束
CREATE_DT VARCHAR2(23), --对于关系表而言,不需要修改,所以不设计修改日期和修改人字段
CREATE_UID VARCHAR2(40)
);
/** TABLE_NO:0080
* TABLE_NAME:用户权限关系表(COMM_USER_AUTH)
* TABLE DESC:定义用户和权限的关系
* 设计说明:对于特定情况下为个别用户授予单独的权限,作为用户-角色-权限模型的例外情况。这在实际应用是很常见的。
* AUTHOR:王保政
* DATE:2008-12-27
**/
CREATE TABLE COMM_USER_AUTH
(
SERIAL_NO NUMBER PRIMARY KEY ,
USER_ID NUMBER, --主键对应COMM_USER.USER_ID,暂不设置外键约束,根据项目需要设置是否增加级联删除的外键约束
AUTH_ID NUMBER, --主键对应COMM_USER.USER_ID,暂不设置外键约束,根据项目需要设置是否增加级联删除的外键约束
CREATE_DT VARCHAR2(23), --对于关系表而言,不需要修改,所以不设计修改日期和修改人字段
CREATE_UID VARCHAR2(40)
);
---下面创建一个用户权限关系的视图,合并了用户-权限,及用户-角色-权限
create view v_user_auth
as
select a.user_id,a.login_id,b.comm_code from
comm_user a,comm_auth b ,comm_user_auth c
where c.user_id = a.user_id
and c.auth_id = b.auth_id
union
select a.user_id,a.login_id,b.comm_code from
comm_user a,comm_auth b , comm_user_role d,comm_role_auth e
where a.user_id = d.user_id
and d.role_id = e.role_id
and e.auth_id = b.auth_id;
/** TABLE_NO:0090
* TABLE_NAME:语种代码表(COMM_LOCALE)
* TABLE DESC:语种代码定义(区分国家和地区)
* 设计说明:因此表记录很少,可直接在初始化过程中一次性导入,不提供维护功能
* AUTHOR:王保政
* DATE:2008-12-28
**/
CREATE TABLE COMM_LOCALE
(
LOCALE_ID VARCHAR2(10) PRIMARY KEY , --语种代码,格式:语言代码(小写)-国家代码(大写),如zh-CN,en-US
LOCALE_NAME VARCHAR2(30) NOT NULL ENABLE, --语种名称(如简体中文,英文(美国))
LOCALE_EN_NAME VARCHAR2(30), --语种名称英文
IS_IN_USE CHAR(1) DEFAULT 1 --是否使用1/0(使用/不使用)
);
/** TABLE_NO:0100
* TABLE_NAME:功能菜单树(COMM_MENU)
* TABLE DESC:功能菜单树
* 设计说明:因考虑到多语,所以功能菜单树设计语种字段,系统维护时,除功能名不同,其他字段修改应保持多语种的同步,
* 系统中也可设计一个方法实现语种之间记录复制(多语字段,时间戳字段不复制),开发时考虑如何给出一个通用的实现方式。
* AUTHOR:王保政
* DATE:2008-12-28
**/
CREATE TABLE COMM_MENU
(
SERIAL_NO NUMBER PRIMARY KEY,
MENU_NAME VARCHAR2(80) NOT NULL ENABLE, --菜单文字(在界面上显示的功能菜单文字)
MENU_URL VARCHAR2(200) DEFAULT '#' NOT NULL , --菜单对应的URL,如果每个菜单需生成对应权限ID,则与权限表对应权限的auth_resource一致。
MENU_AUTH_ID NUMBER, --菜单对应的权限,新建菜单可自动往COMM_AUTH表插入记录。此字段对应COMM_AUTH.AUTH_ID
---- 以下是树结构相关字段 ------------
COMM_CODE VARCHAR2(30) UNIQUE NOT NULL ENABLE, --菜单编号,例如CRM0101<编码规则可以为:子系统编号+树节点编码>
CLS_CODE VARCHAR2(10) , --子菜单所属的系统编号
TREE_CODE VARCHAR2(100) UNIQUE, --树节点编码,一般由系统生成
P_TREE_CODE VARCHAR2(100) , --上级节点编码
LVL_NUM NUMBER , --树节点所属层次
IS_LEAF CHAR(1), --是否末级节点
NODE_NAME VARCHAR2(80), --节点名称
NODE_DESC VARCHAR2(255), --
----- 以上是树结构相关字段 -----------
ROW_ID VARCHAR2(40) NOT NULL ENABLE ,
CREATE_DT VARCHAR2(23),
UPDATE_DT VARCHAR2(23),
CREATE_UID VARCHAR2(40),
UPDATE_UID VARCHAR2(40),
SORT_NO NUMBER , --利用此字段调整菜单显示顺序
DATA_FLG CHAR(1) DEFAULT 1 NOT NULL ENABLE --是否使用(0:停用 ,1使用)
);
ALTER TABLE COMM_MENU ADD CONSTRAINT FK1_COMM_MENU FOREIGN KEY (MENU_AUTH_ID) REFERENCES COMM_AUTH;
CREATE INDEX IDX1_COMM_MENU ON COMM_MENU(MENU_NAME) ;
--初始化
DELETE FROM COMM_CONFIG;
INSERT INTO COMM_CONFIG(ROW_ID,NEXT_SEQ) VALUES('10',1);
--初始化子系统信息表
INSERT INTO COMM_SUB_SYSTEM(ROW_ID,SYS_CODE,SYS_NM) VALUES('1','COMM','基础平台'); --基础平台
INSERT INTO COMM_SUB_SYSTEM(ROW_ID,SYS_CODE,SYS_NM) VALUES('2','CRM','客户关系管理(医院版)'); --CRM
-- 初始化两个用户,口令为maximo,md5加密
INSERT INTO COMM_USER(USER_ID,LOGIN_ID,USERNAME,PASSWORD,ROW_ID)
VALUES(1,'admin','超级管理员','d822eb65cbd84945f427dc08f4571694','f7d6872cfa32415894d70a41d04066ed');
INSERT INTO COMM_USER(USER_ID, LOGIN_ID,USERNAME,PASSWORD,ROW_ID)
VALUES(2,'openjweb','一般用户','d822eb65cbd84945f427dc08f4571694','f68a284e7f8b4c31a12eb3f34bc68187');
--INSERT INTO COMM_USER(USER_ID, LOGIN_ID,USERNAME,PASSWORD,ROW_ID)
--VALUES(3,'roleAnonymous','匿名用户','d822eb65cbd84945f427dc08f4571694','f68a284e7f8b4c31a12eb3f34bc68187');
--初始化两个角色
INSERT INTO COMM_ROLES(ROLE_ID,ROLE_NAME,ROW_ID) VALUES(1,'超级用户','1');
INSERT INTO COMM_ROLES(ROLE_ID,ROLE_NAME,ROW_ID) VALUES(2,'一般用户','2');
INSERT INTO COMM_ROLES(ROLE_ID,ROLE_NAME,ROW_ID) VALUES(3,'CRM用户','3');
--初始化权限表
--INSERT INTO COMM_AUTH(AUTH_ID,COMM_CODE,AUTH_NAME,AUTH_RESOURCE,ROW_ID) VALUES(9999,'IS_AUTHENTICATED_ANONYMOUSLY','匿名权限','/**','1');
INSERT INTO COMM_AUTH(AUTH_ID,COMM_CODE,AUTH_NAME,AUTH_RESOURCE,ROW_ID) VALUES(2,'AUTH_BASIC','匿名权限1','/login1.jsp','1');
INSERT INTO COMM_AUTH(AUTH_ID,COMM_CODE,AUTH_NAME,AUTH_RESOURCE,ROW_ID) VALUES(11,'AUTH_TEST','测试页面访问权限','/test/*','1');
--初始化用户权限关系表
INSERT INTO COMM_USER_AUTH(SERIAL_NO,USER_ID,AUTH_ID) VALUES(1,1,1); --为超级用户授予权限1
INSERT INTO COMM_USER_AUTH(SERIAL_NO,USER_ID,AUTH_ID) VALUES(2,1,2); --为超级用户授予权限2
INSERT INTO COMM_USER_AUTH(SERIAL_NO,USER_ID,AUTH_ID) VALUES(3,2,1); --为一般拥护授予权限1
--初始化语种名称
INSERT INTO COMM_LOCALE(LOCALE_ID,LOCALE_NAME,IS_IN_USE) VALUES('zh-CN','简体中文',1);
INSERT INTO COMM_LOCALE(LOCALE_ID,LOCALE_NAME,IS_IN_USE) VALUES('zh-TW','繁体中文(台湾)',0);
INSERT INTO COMM_LOCALE(LOCALE_ID,LOCALE_NAME,IS_IN_USE) VALUES('en-GB','英语(英国)',0);
INSERT INTO COMM_LOCALE(LOCALE_ID,LOCALE_NAME,IS_IN_USE) VALUES('en-US','英语(美国)',1);
INSERT INTO COMM_LOCALE(LOCALE_ID,LOCALE_NAME,IS_IN_USE) VALUES('ja-JP','日语',0);
INSERT INTO COMM_LOCALE(LOCALE_ID,LOCALE_NAME,IS_IN_USE) VALUES('ko-KR','韩语',0);
分享到:
相关推荐
Oracle数据库开发和设计规范
Oracle数据库课程设计Oracle数据库课程设计Oracle数据库课程设计Oracle数据库课程设计Oracle数据库课程设计Oracle数据库课程设计Oracle数据库课程设计Oracle数据库课程设计Oracle数据库课程设计
深度数据库设计及oracle总结 深度数据库设计及oracle总结
Oracle数据库课程设计医院系统数据库源代码。包含Java代码和SQL语句。源码中默认使用的数据库为运行的Oracle数据库 如需修改,在java源码/database.propertie中修改即可!Oracle数据库课程设计医院系统数据库源代码...
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...
NULL 博文链接:https://hamlzf.iteye.com/blog/665040
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.pdfOracle仓库管理系统课程设计报告数据库部分含Oracle代码.pdfOracle仓库管理系统课程设计报告数据库部分含Oracle代码.pdfOracle仓库管理系统课程设计报告...
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...
ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库
Oracle数据库设计文档——帮助数据库初学者了解数据库设计,
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码 (2).pdfOracle仓库管理系统课程设计报告数据库部分含Oracle代码 (2).pdfOracle仓库管理系统课程设计报告数据库部分含Oracle代码 (2).pdfOracle仓库管理系统...
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码 (2).docxOracle仓库管理系统课程设计报告数据库部分含Oracle代码 (2).docxOracle仓库管理系统课程设计报告数据库部分含Oracle代码 (2).docxOracle仓库管理...
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...