日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Oracle 其他数据库对象

發布時間:2025/4/9 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 其他数据库对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  其他數據庫對象:
    序列(SEQUENCE)
    索引(INDEX)
    視圖(VIEW)

  1.序列(SEQUENCE)
    對應的數據庫字典:user_sequences
    作用:用來產生唯一性值的數據庫特殊對象

  創建序列語法:
  create sequence 序列名
  start with n          ?表示從幾開始,默認值是1
  ncrement by n        ??每計數一次增加多少,默認是1
  maxvalue n         序列最高峰值n
  minvalue n         ?序列最低峰值n
  cache n           ?提供n個預分配的序列,保存在內存中
  cycle | nocycle        ?是否循環
  oredr | noorder       ?有序還是無序序列

?

  例如:
?  ?給員工創建一個序列
  create sequence tbl_emp_id start with 4;

  如何使用序列?
  nextval:取序列的下一個值(tbl_emp_id.nextval)
  currval:取序列的當的前值(tbl_emp_id.currval)

  在插入數據時使用:
  insert into tbl_emp values(tbl_emp_id.nextval,....)

  刪除序列:
  drop sequence 序列名;

  索引(INDEX)
  對應的數據詞典user_indexes

  它是一個比較重要的數據庫對象,作用是可以有效的提高數據庫的查詢效率(數據庫性能優化)

  創建索引的兩種方式:
  1自動創建
  當表中的列添加了主鍵約束或者唯一性約束時,則系統會自動為此列創建唯一性的索引,索引名就是約束名

  2手動創建
  語法:
  create index 索引名 on 表名(列名...);


  create index 索引名 on emp(name)

  select salary from emp where name = 'mark';

  select salary from emp wehre rowid = (select rowid from emp where name= 'mark');

?

   注意:
    1.索引有自己獨立的儲存空間和命名空間
    2.創建索引也會相對犧牲一些數據庫性能

索引的原理:
1.默認情況下,索引是采用BTree(二叉樹)的數據結構

2.偽列(rowid),存放的數據行記錄的正真“物理地址”。

--根據某物理地址查詢某一行記錄
//先獲取記錄的rowid
select rowid from s_emp where first_name="Carmen";

//根據行記錄rowid查找相應的記錄
select* from s_emp where rowid=(select rowid from s_emp where first_name="Carmen");

3.索引建立的原理:
把創建索引的列值與rowid合成一個鍵值樹,這個鍵值對就是索引,然后把它們存放到指定的數據結構中(二叉樹,位圖)中,并且是獨立的索引空間

4.索引查詢的原理:
當我們的查詢語句中where 條件的列建立了索引,則查詢分為一下2步:
a.先查索引,在句列中的值直接找到rowid
b.根據第一步得到的rowid直接定位到相應的行記錄結束查詢

5.建立索引的策略:
a.主鍵和唯一性列 合適
b.不經常發生改變的列 合適
c.滿足以上兩個條件,經常做查詢的列 合適
d.重復值太多的列 不合適
e.null值太多的列 不合適

6.刪除索引

drop index 索引名;
-----------------------------------------------------


視圖(VIEW)
對應的數據字典:user_view
他是一個數據庫對象,它是表格的一個“窗口”,用來保存查詢語句的對象,視圖是依附于表的,并且與表格共享儲存空間。

定義:本質就是一條合法的查詢語句


作用:
1.配合權限,根據業務來做分級管理
2.減少復雜性,增加數據的安全性

創建視圖的語法:
create view 視圖名 as 子句;
with read only ;視圖只讀


例如:
--以只讀方式創建s_emp表中id,salary兩列的視圖
create view view_name as select id,salary from s_emp with read only;
注意:操作視圖必須擁有一定的權限,對只讀視圖不能進行DML操作

刪除視圖
drop view 視圖名;

視圖分類:
關系視圖,內嵌視圖,對象視圖,物化視圖
-----------------------------
補充:查詢當前用戶可執行什么操作
select * from session privs;

--查詢某個權限可執行的所有操作
select* from DBA_SYS_PRIVS where grantee='DBA';(需要DBA)

--查詢當前用戶被賦予的系統角色
select *from SESSIONS_ROLES order by role;

--授予權限的兩種方式
1.grant createany view to 用戶名
2.grant connect,resource,dba to 用戶名

轉載于:https://www.cnblogs.com/ty-v/p/7880529.html

總結

以上是生活随笔為你收集整理的Oracle 其他数据库对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。