檢視:
create view
檢視名as
select
子查詢
select * from
檢視名;
索引:create index
索引名on表名(
列名1,列名2
…) drop index
索引名.
注意:索引會加快查詢速度,但會減慢修改和新增的速度,所以一般只在查詢次數多的列上加索引,主鍵會在建立時自動加索引 序列
: 建立序列
create sequence
序列名
increment by 1--
每次加幾個
start with 1-- 從1
開始計數
maxvalue 1000000 --
不設定最大值
nocycle--
一直累加,不迴圈 ;
使用序列
序列名.currval--
返回序列的當前值,不增加值
序列名.nextval=
增加序列的值的值,然後返回增加後的值
可以使用序列的地方: -
不包含子查詢、
snapshot
、view
的select 語句
- insert
語句的子查詢中
- insert
語句的values 中
- update
的set 中
注意:1.currval
必須初始化後才能使用,即必須使用過
nextval
後才能使用
currval
2. 第一次nextval
返回的是初始值,以後
nextval
會增加你定義的增量
3. 一次nextval
會增加一次
sequence
的值,如果同乙個語句裡面使用多個
nextval
,那麼會多次增加值
刪除序列
drop sequence stuno_
序列名;
sql語句優化: 1
.表名順序:
oracle
的解析器按照從右到左的順序處理
from
子句中的表,選擇記錄條數最少的表作為基礎表。如果有
3 個以上的表連線查詢
, 那就需要選被其他表所引用的表
.作為基礎表 2
.where
子句中的連線順序.:
oracle
採用自下而上的順序解析
where
子句,
濾掉最大數量記錄的條件必須寫在
where
子句的末尾
. 3
.select
子句中避免使用
* 號:
oracle
在解析的過程中
, 會將
'*'
依次轉換成所有的列名
, 這個工作是通過查詢資料,字典完成的
, 這意味著將耗費更多的時間 4
.整合簡單
,無關聯的資料庫訪問:
,你可以把它們整合到乙個查詢中
(union
子句)
5.盡量多使用
commit
:釋放記憶體中的資源 6
.使用表的別名:
當在sql
語句中連線多個表時
, 使用表的別名並把別名字首於每個列上 7
.用exists
替代in
、用not exists
替代not in:
使用exists(
或not exists)
通常將提高查詢的效率
.。在子查詢中,
not in
子句將執
行乙個內部的排序和合併。無論在哪種情況下
, in
和not in
都是最低效的8.
sql語句用大寫。 9
.避免在索引列上使用
not :
通常我們要避免在索引列上使用
not, not
會產生在和在索引列上使用函式相同的影響。
當oracle
遇到not,
他就會停止使用索引轉而執行全表掃瞄。 10
.避免在索引列上使用函式和計算:
where
子句中,如果索引列是函式的一部分,
oracle
將不使用索引而使用全表掃瞄. 11
.用》=
替代》 。
Oracle其他物件
b 檢視 b b 建立檢視 b create or replace view as b 序列 b b 建立序列 b create sequence increment by n start with n maxvalue n minvalue n cycle nocycle cache n noca...
其他容器學習筆記
1 vector 沒有實現序列化介面 2 無參建構函式的預設值是10 3 新增資料需要判斷是否需要擴容,擴大為原來的2倍 3 很多方法新增了synchronized同步語句塊,是執行緒安全的 4 元素允許為空 5 jdk 1.0的產物,用的比較少了 6 遍歷資料用enumeration,不能用ite...
學習筆記11 其他命令
一 開關機 1 重啟 reboot 立即重新啟動作業系統 2 關機 格式1 shutdown h 時間 什麼時候開機 shutdown h now 立刻關機,其中now相當於時間為0的狀態 shutdown h 20 25 系統在今天的20 25 會關機 格式2 shutdown h n n分鐘後自...