데이터베이스 저장 프로세스와 저장 함수 보기

3650 단어
1 스토리지 프로세스를 사용하는 이유
저장 프로세스: 비교적 복잡한 논리로 하나의 업무에 넣어야 한다. select, insert, 업데이트 등 일련의 조작을 포함할 수 있다.
2, 저장 프로세스와 저장 함수의 차이
데이터베이스에 저장되어 모든 사용자 프로그램이 호출할 수 있는 하위 프로그램을 저장 프로세스와 저장 함수의 차이라고 한다. 저장 함수는return 문장을 통해 하나의 값을 되돌릴 수 있다. 만약에 하나의 되돌림 값이 있으면 저장 함수를 사용하고, 되돌림 값이 있거나 여러 개의 되돌림 값이 있으면 저장 프로세스를 사용한다.
문법create or replace procedure hello as begin dbmsoutput.put_line('Hello World!');   end; 
저장 프로세스 문법:create[or replace] procedure 프로세스 이름(파라미터 목록) as PLSql 서브루틴(plsql 서브루틴에 1declare 키워드를 포함할 수 없음) 저장 프로세스 A:exec hello(plsql 서브루틴에 1declare 키워드를 호출할 수 없음)    B: begin         raisesalary(1);         raisesalary(2);         commit;        end;2 매개 변수가 있는 저장 프로세스create or replace procedure raisesalary(enid in number)//in은 as를 입력하는 것을 표시합니다 - 인상 전 임금을 저장하는 변수를 정의합니다 psalsemp.salary%type; begin     select salary into psal from s_emp where  id = enid;   update emp set salary = salary + 1000 where id = enid; - 일반적으로 프로세스와 저장 함수 중의commit 데이터를 저장하지 않습니다. 왜냐하면 두 사람에게 임금을 올려주면 같은 나쁜 업무에서dbms를 보장할 수 없기 때문입니다output.put_line('상승 전:'| | psal |'상승 후:'| | (psal + 1000)),  end;//soctt 권한grent debug connect session, degugany procedure to scott 부여;
3 저장 함수 저장 함수는 저장 프로세스 구조와 유사하다.그러나 함수 값 구문을 되돌려 주는 return 자문이 있어야 합니다:create [or replace] function 함수 이름 (매개 변수 목록) return 함수 값 유형 AS PLSql 서브루틴 create or replace function query empincome (enid in number as) return number as - 인상 전 임금 psal temployee.salary%type;  pcomm t_employee.comm%type; begin     select salary,comm into psal,pcomm from t_employee where  id = enid;   return psal*12+nvl(pcomm,0); end;
4out 매개 변수 저장 프로세스와 저장 함수는 모두 out 매개 변수(여러 개 가능)가 저장될 수 있다. 저장 프로세스는 out를 통해 반환값을 실현할 수 있다. 만약에 하나의 반환값만 저장 함수로 한다면 반환값과 여러 개의 반환값이 있으면 저장 프로세스를 사용한다.
create or replace procedure queryraisesalary(enid in number,
                         psalary out number,
                      pcomm out number)
as  
begin  
  select salary,comm into psalary,pcomm from t_employee where  id = enid;
  
end;

2.1 뷰란?
데이터베이스에 있는 보기는 가상 테이블이지만, 실제 테이블과 마찬가지로 일련의 이름과 열을 포함한다.행과 열 데이터는 정의된 보기 조회에서 인용된 테이블에서 왔으며, 보기를 적용할 때 동적으로 생성됩니다.또한 보기는 이미 존재하는 보기를 바탕으로 정의할 수 있다.
보기는 정의를 거쳐 데이터베이스에 저장되고 그에 대응하는 데이터는 표처럼 데이터베이스에 한 부 더 저장되지 않으며 보기를 통해 보이는 데이터는 기본 표에 저장된 데이터일 뿐이다.보기에 대한 조작은 커서 조작과 마찬가지로 조회, 수정, 삭제할 수 있습니다.보기를 통해 보이는 데이터를 수정할 때 상응하는 기본표의 데이터도 변화한다.또한 기본표의 데이터가 바뀌면 이런 변화도 자동으로 보기에 반영된다.
2.2 보기의 역할
(1) 단순화
보이는 게 필요한 거야.보기는 사용자가 데이터에 대한 이해를 간소화할 수 있을 뿐만 아니라 그들의 조작도 간소화할 수 있다.자주 사용하는 검색어는 보기로 정의될 수 있으며, 사용자는 이후의 모든 작업에 대해 모든 조건을 지정할 필요가 없다.
(2) 보안
보기를 통해 사용자는 자신이 볼 수 있는 데이터만 조회하고 수정할 수 있습니다.데이터베이스에 있는 다른 데이터는 볼 수도 장가갈 수도 없다.데이터베이스 권한 수여 명령은 모든 사용자가 데이터베이스에 대한 검색을 특정한 데이터베이스 대상에 제한할 수 있지만 특정한 줄과 열에 제한할 수 없다.그러나 보기를 통해 사용자는 데이터베이스의 행렬 단계의 서브집합에 제한될 수 있다.
(3) 논리적 데이터 독립성
보기는 사용자가 실제 테이블 구조 변화가 가져오는 영향을 차단하는 데 도움을 줄 수 있다.
(1) 단일 데이터 테이블을 바탕으로 보기 만들기
create view view_01 as select empno , ename , job , hiredate , sal from emp;
select * from view_01 ;                  
//   
create view view_03 as select e1.empno bianhao, e1.ename xingming, e1.job zhiwei, e1.mgr lindaobianhao, e2.ename lindaoxingming, 
d.dname bumenmingchen, d.loc bumenweizhi

from emp e1 , emp e2 , dept d

where e1.mgr=e2.empno and e1.deptno=d.deptno ;

3 뷰 보기
describe view_03

4 뷰를 사용하는 경우
자주 사용하는 조회나 복잡한 연합 조회는 보기를 만들어야 한다. 이것은 성능을 최적화시킬 수 있다. 또한 권한 관리와 관련된다. 예를 들어 특정한 표의 일부 필드에 기밀 정보가 포함되어 있기 때문에 낮은 권한의 사용자가 방문하지 못하게 하는 경우도 있다. 이럴 때 사용자에게 자신의 데이터를 읽을 수 있는 권한을 제공하는 보기를 제공하면 된다.
 
 
 

좋은 웹페이지 즐겨찾기