建表空間
create tablespace NK_DATA
datafile 'D:/oracle/product/10.2.0/oradata/orcl/NK_DATA1.def' size 1000M
autoextend on next 1000M maxsize unlimited logging
extent management local autoallocate
segment space management auto;
建用戶
create user UNIREPORT
identified by "UNIREPORT"
default tablespace NK_DATA
temporary tablespace FINTEMP
profile DEFAULT;
授權
grant connect to UNIREPORT;
grant dba to UNIREPORT;
grant resource to UNIREPORT;
grant unlimited tablespace to UNIREPORT;
匯出
exp SZ/SZ@fin file=d:\SZ.dmp log=d:\SZ.log grants=y
匯入
imp FIN/FIN@ORCL file=F:\FIN.dmp log=F:\FIN.dmp.log fromuser=FIN touser=FIN buffer=4096000 feedback=100000
新建表
create table aaa (
jl_hh NUMBER(20) default -1 not null,
name VARCHAR2(20),
lsh VARCHAR2(100)
)
新增表欄位
alter table aaa add KK_BBB varchar(100);
修改表名
alter table old_table_name rename to new_table_name;
建立索引
create index IDX_BB_ZZ_SJZZ_HH on BB_ZZ (SJZZ_HH)
tablespace FIN_TABLE
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
查詢陳述句
select * from tablename;
通過等值聯接
select z.name , y.position , y.score from TableX x inner join TableY y on x.id = y.id
inner join TableZ z on x.department = z.id
外聯接
select x.Name,y.Posistion,y.Scored from TableX x left join TableY y ON x.ID =y.ID
基礎函式
sum,distinct ,Decode,nvl,case,with,intersect,minus,substr,having
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
sum,求和
distinct,去重
nvl,如nvl(欄位,‘x’)欄位值等于null
case, case when t=1 then '男' else ‘女’end
with 在兩個值之間的意思
Intersect 回傳兩個輸入集合的交集,可以選擇保留重復項。語法 Intersect(?Set1?, ?Set2?[, ALL])
minus, 取差集
substr, SUBSTR(str,pos,len);
這種表示的意思是,就是從pos開始的位置,截取len個字符(空白也算字符) 。
having HAVING對由sum或其它集合函式運算結果的輸出進行限制
等號=與in
能用=盡量不要用in,資料量大時,in速度比較慢,舉例(a=5 or a=6) 和 a in (5,6)
sqlldr:
大批量資料匯入時使用sqlldr速度很快,需要連個檔案,一個轉換檔案
for /r C:\sqlldr %%a in (*.csv) do type "%%a" >>%%~dpanewcsv.txt
一個控制檔案
LOAD DATA
INFILE 'c:\sqlldr\newcsv.txt'
APPEND INTO TABLE aaa
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(TJR,TJSJ,JL_HH)
注意轉換后的newcsv.txt檔案列,必須大于等于控制檔案的列。
建立視圖
create or replace view v_aaa as
select a.JL_HH, a.name from aaa a;
建立計數器
create sequence SEQ_aaa
minvalue 0
maxvalue 99999999
start with 1970540
increment by 1
cache 20
cycle;
建立同義詞
create or replace synonym aaa_1 for FIN.aaa;同一實體下連個用戶可以直接建立,但是需要授權;
不通實體需要首先建立dblink;
uj5u.com熱心網友回復:
多謝分享,學習了!
uj5u.com熱心網友回復:
多謝分享,學習了!
uj5u.com熱心網友回復:
權限控制不太好
DBA不該給的,而且,resource和dba兩個角色賦予時,會隱含給unlimited tablespace的系統權限,所以最后一句grant多余了,其實這句改成revoke,給當前用戶在自己默認表空間上的quota更好
uj5u.com熱心網友回復:
exp時,大多選項都是打開的,所以grants=y其實是多余的uj5u.com熱心網友回復:
又是三連
那個in和or,其實不僅僅是這兩者,很多的SQL層面改寫的優化都沒你想象中有效,而且不能廣泛推廣。SQL優化影響的因素很多,更多時候與你的資料分布有很大的關系,很少有能絕對適合所有場景的東西
uj5u.com熱心網友回復:
好東西,哪位高手也把mysql總結下!uj5u.com熱心網友回復:
不錯,贊一個,記錄在博客中更好。uj5u.com熱心網友回復:
謝謝您的分享!轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/76480.html
標籤:基礎和管理
上一篇:通訊錄管理系統該怎么制作
