其他
1.Oracle 查詢表字段和注釋
可以用來(lái)拼接sql語(yǔ)句,或者拼接生成 java 實(shí)體類
SELECT 'private String ' AS "Java實(shí)體聲明",lower(B.COLUMN_NAME) "字段名小寫",';//'||B.COMMENTS "注釋",A.TABLE_NAME AS "表名稱",A.COMMENTS AS "表注釋" FROM USER_TAB_COMMENTS A,USER_COL_COMMENTS B WHERE A.TABLE_NAME=B.TABLE_NAME and a.table_name='HBB_MENU_TC'
2.Oracle 查詢當(dāng)前用戶下所有表,按照創(chuàng)建時(shí)間排序
用來(lái)備份數(shù)據(jù)
select * from user_tables where table_name like 'DDB%' ORDER BY last_analyzed DESC
3.Mybatis 查詢序列
- 創(chuàng)建序列和修改序列
-- drop sequence seq_t_test;
create sequence seq_t_test;
increment by 1
start with 1//你想要的值
maxvalue 999999999;
------------------------------------------------------------------------
alter sequence seq_t_test increment by n; //n為做自增能夠達(dá)到預(yù)想的值
select seq_t_test.nextval from dual;
-- 再將序列的值修改回去alter sequence seq_t_test increment by 1;
- 查詢序列當(dāng)前值
select 序列名.currval from dual; //獲取序列的當(dāng)前值秦陋,這個(gè)值是可變的页藻。
- 查詢序列下一個(gè)值,值會(huì)改變
select 序列名.nextval from dual;
- mybatis插入記錄成功時(shí)返回主鍵值
<insert id="saveUser" resultType="Integer" parameterType="agUserTc">
<selectKey resultType="LONG" order="BEFORE" keyProperty="aguserid">
SELECT seq_ddb_aguserid.NEXTVAL as aguserid from DUAL
</selectKey>
insert into ddb_ag_user_tc (aguserid, opcode)
values ( #{aguserid,jdbcType=NUMERIC}, #{opcode,jdbcType=VARCHAR} )
</insert>
4.Mybatis dao層傳參 @Param(“.xml中sql的變量名字”)
mybatis的dao層只傳遞一個(gè)參數(shù)到 face層時(shí),變量名隨意;兩個(gè)以上參數(shù)時(shí)變量名需要對(duì)應(yīng)
public List<ApplyInsuredTc> exportIList(@Param("applyno") String applyno);
5.Oracle的case when 語(yǔ)句用法
<select id="exportInsuranceList" resultType="applyInsuredTc">
SELECT A.INSUREDNAME,
CASE A.ISEX
WHEN '0' THEN '女'
WHEN '1' THEN '男'
END AS ISEX,
CASE
WHEN (A .ICARDTYPE = '1') THEN '身份證'
WHEN (A .ICARDTYPE = '2') THEN '護(hù)照'
ELSE '其他'
END AS ICARDTYPE,
A .ICARDCODE,
to_char(A.IBIRTHDAY, 'YYYY-MM-DD HH24:MI:SS') as IBIRTHDAY
FROM
DDB_APPLYINSURED_TC A
WHERE A.APPLYNO =#{applyno}
</select>
6.Oracel多字段模糊查詢(查詢條件相同)
不區(qū)分大小寫.先合并要查詢的列(內(nèi)容為null則默認(rèn)''),然后再查找匹配.
SELECT * FROM HBB_KNOW_TC where instr(Upper(nvl(VTITLE, '')||nvl(VCATEGORY,'')||nvl(VSOURCE,'')),Upper('匹配字符')) > 0
創(chuàng)建表空間和用戶
ORACLE物理上是由磁盤上的數(shù)據(jù)文件、控制文件和LOGFILE構(gòu)成的溪胶。ORACLE中的表就是一張存儲(chǔ)數(shù)據(jù)的表粱腻。表空間 (Tablespace) 是邏輯上的劃分商膊,方便管理的步悠。
1、創(chuàng)建表空間:
格式: create tablespace 表間名 datafile '數(shù)據(jù)文件名' size 表空間大小
create tablespace data_test datafile 'e:\oracle\oradata\test\data_1.dbf' size 2000M;
create tablespace idx_test datafile 'e:\oracle\oradata\test\idx_1.dbf' size 2000M;
(*數(shù)據(jù)文件名 包含全路徑, 表空間大小 2000M 表是 2000兆)
2常空、創(chuàng)建用戶并指定表空間
格式: create user 用戶名 identified by 密碼 default tablespace 表空間表;
create user study identified by study default tablespace data_test;
我們創(chuàng)建一個(gè)用戶名為 study,密碼為 study, 缺省表空間為 data_test -這是在第二步建好的.缺省表空間表示 用戶study今后的數(shù)據(jù)如果沒(méi)有專門指出沽一,其數(shù)據(jù)就保存在 data_test中, 也就是保存在對(duì)應(yīng)的物理文件 e:\oracle\oradata\test\data_1.dbf中
3.授權(quán)給新用戶
grant connect,resource to study;
--表示把 connect,resource權(quán)限授予study用戶
grant dba to study;
--表示把 dba權(quán)限授予給 study
系統(tǒng)權(quán)限分類:
DBA: 擁有全部特權(quán),是系統(tǒng)最高權(quán)限漓糙,只有DBA才可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)铣缠。
RESOURCE:擁有Resource權(quán)限的用戶只可以創(chuàng)建實(shí)體,不可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)昆禽。
CONNECT:擁有Connect權(quán)限的用戶只可以登錄Oracle蝗蛙,不可以創(chuàng)建實(shí)體,不可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)醉鳖。
對(duì)于普通用戶:授予connect, resource權(quán)限捡硅。
對(duì)于DBA管理用戶:授予connect,resource, dba權(quán)限盗棵。
系統(tǒng)權(quán)限只能由DBA用戶授出:sys, system(最開(kāi)始只能是這兩個(gè)用戶)
授權(quán)命令:SQL> grant connect, resource, dba to 用戶名1 [,用戶名2]...;
注:普通用戶通過(guò)授權(quán)可以具有與system相同的用戶權(quán)限壮韭,但永遠(yuǎn)不能達(dá)到與sys用戶相同的權(quán)限,system用戶的權(quán)限也可以被回收纹因。
創(chuàng)建表和約束
- drop是DDL喷屋,會(huì)隱式提交,所以瞭恰,不能回滾屯曹,不會(huì)觸發(fā)觸發(fā)器。
- drop語(yǔ)句刪除表結(jié)構(gòu)及所有數(shù)據(jù)惊畏,并將表所占用的空間全部釋放恶耽。
- drop語(yǔ)句將刪除表的結(jié)構(gòu)所依賴的約束,觸發(fā)器颜启,索引偷俭,依賴于該表的存儲(chǔ)過(guò)程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài)。
-- 刪除表
drop table hbb_emp_tc;
-- 創(chuàng)建表
CREATE TABLE HBB_EMP_TC(
eid NUMBER(8) ,
ename VARCHAR2(50),
esal NUMBER(8,2),
edate DATE DEFAULT SYSDATE,
-- 添加主鍵約束
constraint PK_EMP_EID primary key (eid)
)
SELECT * FROM hbb_emp_tc;
-- 增加注釋
COMMENT ON COLUMN hbb_emp_tc.eid IS '主鍵注釋';
-- 增加字段
ALTER TABLE HBB_EMP_TC ADD eqq VARCHAR2(50);
-- 刪除字段
ALTER TABLE HBB_EMP_TC drop column eqq;
drop table hbb_customers;
-- 創(chuàng)建用戶表
create table hbb_customers(
-- 主鍵約束
id number(8) primary key,
-- 唯一約束 關(guān)鍵詞 UNIQUE,可以僅存一個(gè)null值
name varchar2(20) not null unique,
-- check條件約束
gender varchar2(2) check (gender in ('男','女') ),
-- check約束
age number(3) check (age between 18 and 150)
)
-- 插入一條記錄
insert into hbb_customers values(3,'A3','男',150);
insert into hbb_customers select c1.id+3,name||'4',gender,age from hbb_customers c1 where c1.id=1;
select * from hbb_customers;
SELECT * form orders;
-- 創(chuàng)建用戶訂單表
drop table hbb_orders;
create table hbb_orders(
id number(8),
isbn varchar2(10) default 'isbn',
price number(10,2) not null,
-- 外鍵關(guān)聯(lián)用戶表id hbb_customers.id
cid number(8),
-- 增加主鍵約束
constraint pk_orders_id primary key (id),
-- 增加外鍵約束.on delete cascade 表示級(jí)聯(lián)刪除,刪除customers表中的記錄時(shí),本表對(duì)應(yīng)關(guān)聯(lián)外鍵的記錄也會(huì)一起刪除
constraint fk_orders_customers_cid_id foreign key(cid) references hbb_customers(id) on delete cascade
-- 增加外鍵約束. on delete set null 表示刪除customers表中的記錄時(shí),本表對(duì)應(yīng)關(guān)聯(lián)外鍵的值設(shè)置為 null
-- ,constraint fk_orders_customers_cid_id foreign key(cid) references hbb_customers(id) on delete set null
)