一.序列
1.序列的定義
2.創建序列
BY n :序列增量的步長
START WITH n:要產生的第一個序列數 (如果該子句被省略,序列從 1 開始)
n:指定序列能產生的最大值
:對于升序序列指定 10^27 為最大值,對于降序序列指定-1 為最大值(默認)
n:指定最小序列值
:對于升序序列指定 1 為最小值,對于降序序列指定-(10^26)為最小值(默認)
CYCLE|:指定序列在達到它的最大或最小值之后,是否繼續產生【循環產生從頭開始的與原來一樣的序列】( 是默認選項)
CACHE n|:指定 服務器預先分配多少值,并且保持在內存中(默認情況下, 服務器緩沖20個值)
e.g. 創建一個序列名稱為:,增長間隔為10,從 120 開始,最大值為 9999oracle用戶默認表空間,不緩存。不循環使用
create sequence dept_seq increment by 10 start with 120 maxvalue 9999 nocache nocycle;
注意: 和的先后順序沒關系
當然我們也可以通過可視化工具創建序列
3.操作序列
3.1查詢序列
顯示的是下一次你去取值是多少
e.g.
select sequence_name,increment_by,max_value,min_va lue,last_number from user_sequences;
3.2使用序列
首先我們先介紹一下 和 偽列
e.g. 在 ID 2500 中插入一個新部門名稱
insert into departments(department_id,department_name,location_id) values(dept_seq.nextval,'Support',2500);
4.修改與刪除序列
4.1修改序列
4.2修改序列的原則
e.g. 將 序列中的增長量修改 20,最大值修改為
alter sequence dept_seq increment by 20 maxvalue 999999 nocache nocycle;
4.3刪除序列
e.g. 刪除 序列
drop sequence dept_seq;
二.索引
1.索引的概念
索引指的就是目錄,以字典的目錄進行比喻:創建索引就是把表中的誰加入加到索引中。建索引的目的就是為了加快查詢速度
專業的說就是:在關系型數據庫中,索引是一種單獨的、物理的對數據庫表中一列或多列的值進行排序的一種存儲結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的數據頁的邏輯指針清單。索引的作用相當于圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。
索引提供對表中行的直接和快速訪問,它的目的是用已索引的路徑快速定位數據以減少磁盤I/O。索引由 服務器自動使用和維護,索引邏輯地和物理地獨立于他們索引的表,這意味者索引可以在任何時候被創建或刪除,并且不影響基表或其它的索引。當刪除表時,相應的索引也被刪除
2.索引的類型
3.創建索引的方式
4.使用索引
適當地使用索引,不要濫用
在表上建立更多的索引并不意味者更快地查詢,在帶索引的表上被提交的每個 DML 操作意味者索引必須更新;與表聯系的索引越多,對 數據庫的(性能)影響越大,數據庫在每次 DML 操作之后必須更新所有的索引
4.1建議當此時建索引
4.2建議以下情況不要建立索引
5.操作索引
5.1非唯一性索引的類型
5.2創建索引的語法
e.g. 為 表中的 創建一個索引并命名為 (單行索引)
create index emp_index on employees(last_name);
e.g. 為 表 創 建 一 個 包 括 與 復合索引并命名為(復合索引:索引中包含兩個或者兩個以上的列;索引什么時候生效:當你的鏈接條件中oracle用戶默認表空間,包含了和會去執行相應的索引,并且查找的時候要按照創建索引的順序去寫條件)
create index dept_man_loc on departments(manager_id,location_id);
e.g. 為 表中的 創建一個帶有大寫函數的索引 (創建函數索引)
create index dept_upper2 on departments(upper(department_name));
這時會走函數索引:
* from d where upper(d.)='aaaa';
5.3查詢索引
e.g.
select IC.INDEX_NAME ,ic.COLUMN_NAME,ic.COLUMN_POSITION,ix.uniqueness from user_indexes ix ,
user_ind_columns ic where ix.index_name = ic.INDEX_NAME and ic.TABLE_NAME = 'DEPARTMENTS';
5.4刪除索引
e.g. 刪除名稱為 的索引
drop index dept_upper;
三.同義詞
1.同義詞的概念
同義詞可以除去對象名必須帶的方案限制,并提供給你一個可替換表名、視圖名、序列 名和存儲過程名或其它對象名。該方法對具有特別長的對象的名字很有用。其實就是一個永久的別名
2.創建同義詞
e.g.
select * from em;
3.刪除同義詞
e.g.
drop synonym em;
四.用戶
1.用戶的概念
2.操作用戶
2.1創建用戶
需要具備創建用戶的權限可以使用 sys 或者 用戶來創建新用戶
使用默認表空間(永久表空間就是數據文件。如果我們在創建用戶時,并沒有給他分配永久表空間,那么這個用戶將使用的是默認的永久表空間,我們也可以在創建用戶時給他分配一個永久表空間)
e.g. 創建一個用戶名稱為 ,永久表空間使用 默認的永久表空間
create user u_test identified by oracle;
e.g. 創建一個用戶名為 ,使用 bjsxt 表空間為他的表空間(使用指定表空間)
create user u_bjsxt identified by oracle default tablespace bjsxt temporary tablespace temp;
如果臨時表空間不想指定,把 temp去掉即可,系統會給你分配一個默認的臨時表空間
2.2刪除用戶
e.g. 刪除 用戶
drop user u_test;
e.g. 刪除用戶的同時將該用戶下的其他對象一并刪掉
drop user u_test cascade;