Oracle資料庫學習

2021-07-31 18:11:12 字數 2862 閱讀 4436

本章學習要點:

概念:序列是用於生成唯

一、連續序號的物件序列可以是公升序的,也可以是降序的使用create sequence語句建立序列

語法

create sequence 序列化的名稱

start with 10 –開始10

increment by 10 –每次步長10

maxvalue 2000 –最大值2000

minvalue 10 –最小值10

nocycle –沒有迴圈

cache 10; –快取10個

–1)建立序列化

create sequence seq_id –預設開始值為1,每次步長1;

start with 20

increment by 1 —如果是1(省略不寫)

–2)檢視當前序列

select seq_id.currval from dual;

–2)檢視下乙個序列

select seq_id.nextval from dual;

/* 通過序列的偽列來訪問序列的值

nextval 返回序列的下乙個值

currval 返回序列的當前值

*/修改序列化

alter sequence 序列化名稱

–不可以修改 start with 10 –開始10

increment by 10 –每次步長10

maxvalue 2000 –最大值2000

minvalue 10 –最小值10

nocycle –沒有迴圈

cache 10; –快取10個

maxvalue 5000 cycle;

–什麼是檢視?

檢視以經過定製的方式顯示來自乙個或多個表的資料

檢視可以視為「虛擬表」或「儲存的查詢」

建立檢視所依據的表稱為「基表」

–檢視有哪些優點?

提供了另外一種級別的表安全性

隱藏的資料的複雜性,簡化的使用者的sql命令

隔離基表結構的改變

通過重新命名列,從另乙個角度提供資料

–檢視的語法

create [or replace] [force] view

view_name [(alias[, alias]…)] –別名

as select_statement

[with check option]

[with read only];

注:建立檢視需要授權

sql> conn system/system@orcl;

sql>grant create view to sqb;

–(1)建立檢視

create or replace view vw_emp

as select ename,sal from emp;

–檢視檢視

select * from vw_emp;

–(2)部門經理檢視

select ename,job,sal,comm from emp where deptno=20;

create or replace view vw_emp2

as select ename,job,sal,comm from emp where deptno=20;

–檢視

select * from vw_emp2;

–更新jones的福利500 –>原來的表(基表資料)

update vw_emp2 set comm =nvl(comm,0)+500 where ename=』jones』

select * from emp where ename=』jones』

–(3)檢視每個部門的工資

select deptno,sum(sal) from emp group by deptno

–建立檢視

–檢視中可以使用單行函式、分組函式和表示式

create or replace view vw_e***

(dno,sums) –別名

as select deptno,sum(sal) from emp group by deptno; –分組

select * from vw_e***;

–複雜檢視

在檢視上也可以使用修改資料的dml語句,如insert、update和delete

檢視上的dml語句有如下限制:

–1)只能修改乙個底層的基表

–2)如果修改違反了基表的約束條件,則無法更新檢視

–3)如果檢視包含連線操作符、distinct 關鍵字、集合操作符、聚合函式或 group by 子句,則將無法更新檢視

–4)如果檢視包含偽列或表示式,則將無法更新檢視

select *from emp ;

select * from dept;

–查詢員工的姓名,職位,工資 以及所在的部門名稱,

select ename,job,sal,dept.dname from emp inner join dept on emp.deptno = dept.deptno

create or replace view vw_emp4

as select ename,job,sal,dept.dname from emp inner join dept on emp.deptno = dept.deptno;

–檢視

select * from vw_emp4;

–能否更新資料? smith=1000;

update vw_emp4 set sal=800 where ename=』smith』;

oracle資料庫學習

最近在做使用者資料篩選的時候發現使用者資料載入和查詢比較慢,所以,參考網上資料進行了寫小優化,在資料庫中執行快了那麼一些,在這裡記錄下相關命令。做法 建立字段索引,使用instr函式。1 使用instr代替like 開頭會導致索引失效 instr的基本用法 select count from 表名 ...

Oracle資料庫學習

本章學習要點 1 子查詢 將乙個查詢包含到另乙個查詢中 1 如 emp表中,查詢與 scott 在同乙個部門的雇員資訊 原來我們是先查詢scott所在的部門即 select deptno from emp where ename scott 然後通過返回的部門號在查詢員工資訊 select from...

Oracle資料庫學習

ddl data definition languag 資料定義語言 用來定義和修改表物件的語言.操作的物件是 使用者,資料庫 oracle中只有乙個全域性資料庫 表,表空間 oracle中才有的 試圖之類的,不會對具體資料進行操作 dml data manipulation language 資料...