创建用户
CREATE USER "yaohw" --创建一个用户,
IDENTIFIED BY "yaohw" --密码为DEFAULT TABLESPACE "spa" --默认表空间是 GTOA
TEMPORARY TABLESPACE "TEMP" --临时表空间是 TEMP
ACCOUNT UNLOCK; --帐号正常未锁定GRANT"CONNECT" TO "yaohw" WITH ADMIN OPTION;
--授予用户LNCKQ 创建连接的角色,并可再授权GRANT"DBA" TO "yaohw" WITH ADMIN OPTION;
--授予用户LNCKQ 数据库管理员的橘色,并可再授权
日期处理
to_date('2004-11-12 12-07-32','yyyy-mm-dd hh24-mi-ss')
分页查询(经验证在MySQL中同样好使???)
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <&#61; 40
)
WHERE RN >&#61; 21
注&#xff1a;内层控制最大行数&#xff0c;外层控制最小行数&#xff0c;即展示第21行到第40行数据
还有第二种写法
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
)
WHERE RN BETWEEN 21 AND 40
绝大多数的情况下&#xff0c;第一个查询的效率比第二个高得多。
分页查询时&#xff0c;当返回列没有添加别名&#xff0c;且字段值重复时&#xff0c;会提示错误&#xff1a;
SELECT *FROM (SELECT rownum r, records.*from (select role.id,admin.id from role , admin ) recordswhere rownum < 3)where r >&#61; 1
递归查询
变态的Oracle可以做递归
--如果只用connect by 而不加 prior 查找的将是 level 为1的一级。
select ... from tablename--据说可以在这放上where
where cond0start with cond1 connect by prior cond2
元数据查询
元数据简介
元数据 (metadata) 最常见的定义为"有关数据的结构数据"&#xff0c;或者再简单一点就是"关于数据的信息"&#xff0c;日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS) 中&#xff0c;元数据描述了数据的结构和意义。比如在管理、维护 SQL Server 或者是开发数据库应用程序的时候&#xff0c;我们经常要获取一些涉及到数据库架构的信息&#xff1a;
某个数据库中的表和视图的个数以及名称 &#xff1b;
某个表或者视图中列的个数以及每一列的名称、数据类型、长度、精度、描述等&#xff1b;
某个表上定义的约束&#xff1b;
某个表上定义的索引以及主键/外键的信息。
下面我们将介绍几种获取元数据的方法。
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;获得元数据&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;
- 创建表&#xff0c;并给表和字段加上描述
CREATE TABLE MANTIS_CODE(
ID VARCHAR2(32) NOT NULL,
NAME VARCHAR2(255) NOT NULL
);CREATE TABLE MANTIS_CODE_ITEM(
CODE_ID VARCHAR2(32) NOT NULL,
VALUE VARCHAR2(32) NOT NULL,
NAME VARCHAR2(255)
)
;
- .创建主键
alter TABLE MANTIS_CODE add constraint PK_MANTIS_CODE primary key (ID)- 联合主键
alter TABLE MANTIS_CODE add constraint PK_MANTIS_CODE primary key (ID&#xff0c;NAME)- 创建表描述
COMMENT ON TABLE mantis_code is &#39;代码表&#39;- 创建字段描述
COMMENT ON COLUMN mantis_code.ID is &#39;代码标识&#39;- 创建外键
alter table MANTIS_CODE_ITEM add constraint FK_MANTIS_CODE_ITEM foreign key(CODE_ID) references MANTIS_CODE(ID)- 取得表的描述
select * from user_tab_comments where comments is not null- 取得字段
select t.TABLE_NAME,t.COLUMN_NAME,t.DATA_TYPE,t.DATA_LENGTH,t.DATA_PRECISION,t.DATA_SCALE,t.NULLABLE,t.DATA_DEFAULT from user_tab_columns t where t.TABLE_NAME&#61;&#39;USER_INFO&#39;
- 取得字段的描述
select * from user_col_comments where comments is not null;- 取得表的主键
select * from user_cons_columns cc,user_constraints c
where c.constraint_name &#61; cc.constraint_name
and c.constraint_type &#61; &#39;P&#39;
and cc.table_name &#61; &#39;USER_INFO&#39;- 取得外键
select r.CONSTRAINT_NAME,
r.TABLE_NAME,
r.R_CONSTRAINT_NAME,
rc.COLUMN_NAME,
pc.COLUMN_NAME as PK_COLUMN_NAME,
pc.TABLE_NAME as PK_TABLE_NAME
from USER_CONSTRAINTS r,
USER_CONS_COLUMNS rc,
USER_CONSTRAINTS p,
USER_CONS_COLUMNS pc
where r.CONSTRAINT_TYPE &#61; &#39;R&#39;
and r.CONSTRAINT_NAME &#61; rc.CONSTRAINT_NAME
and pc.CONSTRAINT_NAME &#61; p.CONSTRAINT_NAME
and p.CONSTRAINT_TYPE &#61; &#39;P&#39;
and r.R_CONSTRAINT_NAME &#61; p.CONSTRAINT_NAME
and r.TABLE_NAME &#61; &#39;USER_ROLE_MAP&#39;如果取得数据库表则从ALL_CONSTRAINTS ALL_CONS_COLUMNS中取得
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;另外一种组织方式来获得元数据&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;--表信息
select * from all_tab_comments t
where owner&#61;&#39;DBO&#39;--列信息
select * from all_col_comments t
where owner&#61;&#39;DBO&#39;--主键、外键对照
select OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, R_OWNER, R_CONSTRAINT_NAME
from all_constraints
where owner&#61;&#39;DBO&#39; and (Constraint_Type&#61;&#39;P&#39; or Constraint_Type&#61;&#39;R&#39;)
--主键、外键信息
select *
from all_cons_columns
where owner&#61;&#39;DBO&#39;
order by Constraint_Name, Position
TODO...