標籤:oracle
1、事務:有一組命令組成的邏輯單元,保證所有操作要麼全部成功要麼全部失敗。
以下情況事務結束:1)顯式提交(commit) 2)顯式復原(rollback) 3)ddl語句隱藏提交 4)正常結束程式提交 5)非正常結束程式復原
事務特點:ACID特性
1)原子性 2)一致性 3)隔離性 4)持久性
命令:commit 提交 rollback 復原 set autocommit on 自動認可(復原無效)
2、索引:快速存取資料,一個單列最多隻能建一個索引
訪問資料的方法:全表掃描、通過rowid(行號)、索引
索引分類:1)B樹索引:(balance平衡索引)每個節點查詢速度一樣,預設為b樹索引,唯一索引和複合索引同時也是b樹索引。
2)唯一索引(unique):索引列沒有重複值
3)反向鍵索引(reverse):反轉索引列的資料值。適應建在列值連續增長的列上。不能做範圍查詢。
4)位元影像索引(bitmap):適應於列值很少的列上。佔用空間小、減少回應時間,不適應頻繁更改的表
5)其他索引:複合式索引、函數索引
命令: 1)建立索引:create [unique|bitmap] index 索引名 on 表名(列名) [reverse]
2) 重建索引:alter index 索引名 rebulid
3)合并索引:alter index 索引名 coalesce
3、視圖:虛擬表不佔空間,資料存放區在基表中。
文法:create [or replace替換] [force強制] view 視圖名 as sql語句 [with check option約束][with read only唯讀]
force強制建立帶錯誤視圖:無論基表是否存在、列是否有效、表是否有許可權 sql語句中可以帶order by字句
with check option只能插入或更新可以訪問的行
對視圖的修改只能對一個基表並且不能違反約束不包含彙總函式
作用:保證資料安全性、隱藏資料的複雜性、簡化命令、與基表定義的修改隔離、可以靈活的重新命名列
物化視圖:具有實體儲存體空間的特殊視圖。有兩個概念:查詢重寫和物化視圖同步,同步重新整理有on commit(基表更改即同步到視圖)和on demand(手動)兩種方式,重新整理方式有complete(完全)、force(預設,優先fast)、fast(增量)、never(不重新整理)四種
建立物化視圖(需要有相應許可權):1)建立物化日誌:create materialized view log on 表名 with rowid;
2)建立物化視圖:create materialized view 視圖名 build immediate refresh fast on commit enable query rewrite as sql語句
4、序列: 用來產生連續的整數值的列值,可以升序或降序。
文法:create sequence 序列名 [start with 初始數字][increment by 增長值][maxvalue 最大值][minvalue 最小值]
可以用nextval查詢下一個序列值和currval查詢當前序列值,偽列的值儲存在虛擬表dual中
查詢序列:select sequence_name,increment_by from user_sequences
5、同義字:對象的別名,不佔用空間
用途:簡化sql語句、隱藏對象名稱和所有者、為遠程對象提供位置透明性、提供對資料庫物件的公用訪問。
分類:私人同義字、公有同義字
1)私人同義字:只能被當前模式使用者訪問必須有create [any] synonym許可權
creae synonym 同義字名稱 for 對象名
2)公有同義字:可以被所有的使用者訪問,必須有create public synonym許可權
create public synonym 同義字名 for 對象名
6、分區表:將一個表分成幾部分儲存在不同的資料表空間成為一個個分區。
有點:改善表的查詢效能、表更容易管理、便於備份和恢複、提高資料安全性
分區方法:範圍(range)、列表(list)、散列(hash)、複合、間隔、虛擬列分區
文法:create table 表名(欄位1,欄位2,..) patiton by range(分區欄位) (partition p1 values less then (值),partition p2 ....)
查詢分區表:select
from 表名 partition(p1)
命令:
alter user scott account unlock 解除對scott使用者的鎖定
alter user scott identified by 密碼 設定scott使用者的密碼
grant connect,resource to scott 為scott使用者授權
select username,account_status from dba_users 查使用者的鎖定狀態
select object_name,object_type from user_objects 查使用者所有對象及類別
select rowid,rownum from dept 查dept表的偽列rowid和rownum,序列中的nextval和currval都是偽列,可查不可修改
select table_name,index_name,column_name from user_ind_columns 查被索引欄位
create unique index dept_index on dept(dname) 在dept表中建立dname的唯一索引
create index emp_reserve on emp(empno) reverse; 在emp表中建立empno的反向索引
alter table emp drop constraint pk_emp cascade drop index; 刪除主鍵索引
create view v3 as select from dept where loc=‘BOSTON‘ with check option constratint ycq; 在dept表建立v3視圖,並添加約束禁止修改loc列
grant create materialized view,query rewrite,create any table,select any table to scott;授予scott有建立物化視圖和任意表的許可權
select 序列名.nextval,序列名.currval,user,sysdate from dual 查詢下一個和當前序號及目前使用者和系統時間
grant create any synonym to scott; 授予scott使用者有建立任意同義字的許可權
create synonym e for emp; 為emp表建立私人同義字e
create public synonym a for emp; 為emp表建立公有同義字a
create table student (id int,name char(10)) partition by range (id) (partition p1 value less than (‘10‘),partition p2 value less than (‘20‘),partition p3 value less than (‘30‘),partition p4 value less than (maxvalue)); 建立student表,id小於10的為第一分區表...
Oracle事務和常用資料庫物件