建立檢視
優點:建立索引可以大大提高系統的效能。
第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。
第二,可以大大加快 資料的檢索速度,這也是建立索引的最主要的原因。
第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。
第四,在使用分組和排序 子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。
第五,通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的效能。
缺點:降低了系統的維護速度和增大了空間需求
第一,建立索引和維護索引要耗費時間,這種時間隨著資料 量的增加而增加。
第二,索引需要佔物理空間,除了資料表佔資料空間之外,每乙個索引還要佔一定的物理空間,如果要建立聚簇索引,那麼需要的空間就會更大。
第三,當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。
(primary key[列名,[列名]])
create table emp (
id number(6) primary key,--主鍵
name varchar2(20) not null,--非空
*** number(1),
age number(3) default 18,
email varchar2(25) unique,--唯一
deptno number(2) references dept(deptno)—外來鍵
);
帶約束名稱:
create table emp (
id number(6) constraint id_pk primary key,
name varchar2(20) constraint name_nn not null,
*** number(1),
age number(3) default 18,
email varchar2(25) constraint email_uqe unique,
deptno number(2) constraint dept_deptno_ref references dept(deptno)
);
列模式:
create table emp (
id number(6),
name varchar2(20),
*** number(1),
age number(3) default 18,
email varchar2(25),
deptno number(2),
constraint id_pk primary key (id),--也可以兩個以上,聯合主鍵
constraint dept_deptno_ref foreign key (deptno) references dept(deptno),
constraint emial_name_uqe unique (email, name)
);
主鍵索引
主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵。
主鍵就是能夠唯一標識表中某一行的屬性或屬性組,乙個表只能有乙個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新、刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述作用外,常常與外來鍵構成參照完整性約束,防止出現資料不一致。資料庫在設計時,主鍵起到了很重要的作用。
主鍵可以保證記錄的唯一和主鍵域非空,資料庫管理系統對於主鍵自動生成唯一索引,所以主鍵也是乙個特殊的索引。
**唯一索引 **
普通索引: 聯合索引: **反向鍵索引 ** **位圖索引 ** **索引組織表,一定要有主鍵 **create table tab (
id int primary key,
name varchar2(20)
) organization index;
注:索引組織表的insert效率非常低
**分割槽表索引 **
create index 索引名 on table(column) local/global;
mysql不自帶sequence,但是可以設定自動增長序列,設定是必須要有主鍵(primary key)
建立表時建立
creat table emp(
id int auto_increment primary key,
.....
);
建立表後新增
設定自增序列的啟始值
注:也可以讓自增序列值從123變為2,從2重新開始;
建立自增序列
使用時的名字為 **create sequence 序列名start with 2 –從2開始
increment by 3—每次加3
nomaxvalue—沒有最大值
minvalue 1—最小值1
nocycle—不迴圈
nocache;–不快取 **
**修改序列的序列值 **
**alter sequence seqtab注:不能修改為起始值maxvalue 1000; **
修改序列值可以先查詢出來再increment修改回來
select sql.nextval from dual;
alter sequence seq increment by 79;
序列已更改
如果需要經常執行某項複雜的查詢,可以基於複雜查詢建立此檢視即可,簡化複雜查詢;
檢視本質上就是一條select語句,所以當訪問檢視時,只能訪問到所對應的的select語句中涉及到的列,對基表中的其他列起到安全和保密的作用,可以限制資料訪問
授權建立檢視
建立檢視 檢視檢視結構oracle資料庫自增
1 建立sequence create sequence seq seq1 minvalue 1 maxvalue 99999999999999 start with 1 increase by 1 chache 20 如果指定cache值,oracle就可以預先在記憶體裡面放置一些sequence...
資料庫自增型別
from 一 通過t sql 複製 如下 alter table 表名 add 列名 int identity 1,1 not null 這裡用到了identity關鍵字 indentity a,b a b均為正整數,a表示開始數,b表示步長,indentity 1,1 就代表從1開始,每次增加1 ...
Oracle資料庫主鍵自增
在學習mysql時,我們很容易通過auto increment就能實現主鍵自增的功能,但是在oracle資料庫中,是沒有這個關鍵字的,所以也不能通過這樣來實現主鍵自增。下面我就為大家介紹兩種實現主鍵自增的方法。兩種方法的基礎都有乙個概念就是序列 sequence 的概念,一種是利用序列和顯式呼叫的方...