보기, 인덱스, 저장 프로세스, 트리거, 커서 및 사무

15039 단어 저장 프로세스

1. 보기는 물리적 저장 공간을 차지하지 않고 논리적 대상일 뿐이다.이를'허표'로 볼 수 있다
보기는 select 문장으로 지정되어 데이터베이스 테이블의 일부 줄이나 열 데이터를 검색하는 문장 저장 정의입니다
주: 보기 문장을 만들 때order by,compute 또는compute by 자구를 포함할 수 없고 into 키워드도 나타날 수 없습니다
2. 수평 뷰 작성
보기의 흔한 사용법은 사용자가 표의 일부 데이터 줄만 접근할 수 있도록 제한하는 것이다. 이런 방법으로 만들어진 보기를 수평시도, 즉 표의 줄의 서브집합이라고 한다.
create view student_view1
as
select
* from student

where (class_id='0903')

3. 투영 뷰 생성하기
만약 사용자가 표의 일부 열의 데이터만 접근할 수 있도록 제한한다면, 이러한 방법으로 만든 보기를 투영시도, 즉 표의 열의 서브집합이라고 부른다
create view student_view2

as
select
student_id as ' ' ,student_name as ' ',sex as ' ' from student where sex=1 with check option /* select */

4. 결합 뷰 생성하기
사용자는 여러 테이블에서 데이터를 추출하는 연합 보기를 생성하여 조회 결과를 하나의 단독 '가시 표' 로 표시할 수 있다
인덱스
5. 인덱스는 데이터베이스의 대상 중 하나로 인덱스는 표의 데이터 줄에 대한 검색을 가속화하기 위해 만들어진 분산된 저장 구조이다.
색인은 하나의 표를 겨냥하여 만들어진 것으로 데이터 페이지 이외의 색인 페이지로 구성되어 있다
6. 색인의 분류
클러스터 색인
데이터 테이블의 물리적 순서는 색인 테이블의 순서와 같고, 테이블의 한 열 또는 여러 열의 값의 조합에 따라 기록을 배열한다
create unique clustered index book_id_index--       



on book(book_id asc)



with 



fillfactor=50 /*    50%*/

비 클러스터 인덱스
create nonclustered index student_course_index



on student_course(student_id asc,course_id asc)



with

 

fillfactor=50

저장 프로세스
저장 프로세스는 특정한 데이터 조작 기능을 실현할 수 있도록 미리 편집된 일련의 SQL 코드 집합이다.SQL Server 서버에 저장된 특정 데이터베이스와 연관
스토리지 프로세스의 이점:
(1) 재사용한다.저장 프로세스를 재사용할 수 있어 데이터베이스 개발자의 작업량을 줄일 수 있다
(2) 성능 향상저장 프로세스는 만들 때 컴파일되었고 나중에 사용할 때 다시 컴파일하지 않아도 된다.일반적인 SQL 문은 한 번 사용하면 한 번 컴파일되기 때문에 저장 프로세스를 사용하여 효율을 높인다
(3) 네트워크 트래픽 감소저장 프로세스는 서버에 위치하고 호출할 때 저장 프로세스의 명칭과 파라미터만 전달하면 되기 때문에 네트워크 전송의 운송량을 줄일 수 있다
(4) 안전성.매개 변수화된 저장 프로세스는 SQL의 주입 공격을 방지할 수 있을 뿐만 아니라 Grant, Deny, 그리고 Revoke 권한을 저장 프로세스에 적용할 수 있다
스토리지 프로세스를 정의합니다.
 
 create proc spAddStudents

  @name  nvarchar(50)=null

  as

  begin transaction --  

  insert into [StudentInfo].[dbo].[Students]

  (Name)

  values

  (@name)



  if @@ERROR<>0

  begin

  rollback tran

  return

  end



  commit transaction--    

덧셈 계산을 실현하고 연산 결과를 출력 매개 변수로 저장하는 프로세스를 만듭니다
 create proc spAdd

  @value1 int,

  @value2 int,

  @result int output

  as

  select @result=@value1+@value2

  go

spAdd 스토리지 프로세스 실행
  declare @value1 int

  declare @value2 int

  declare @result int

  set @value1=1

  set @value2=1

  exec spAdd @value1,@value2,@result output

  print convert(char(5),@value1) +'+'+convert(char(5),@value2) +'='+ convert(char(5),@result)

트리거
트리거는 복잡한 데이터의 완전성을 실시하는 특수한 저장 과정으로 테이블이나 보기에 업데이트, insert 또는 delete 문장을 실행할 때 자동으로 트리거하여 데이터에 대한 부정확하고 권한이 부여되지 않거나 일치하지 않는 파라미터를 방지한다.
/*  update   */

create trigger [dbo].[TaocanType_update] on [dbo].[Table_TaocanType]

for update 

as

update [dbo].[Table_ChoseTaocanType] set Taocan=inserted.Taocan

from [dbo].[Table_ChoseTaocanType] ,inserted where [dbo].[Table_ChoseTaocanType].TaocanId=inserted.TaocanId

트리거는 외부 키처럼 두 테이블 사이의 참조 완전성을 유지할 수 있다.외부 키가 이 작업을 수행하는 효율이 더욱 높다. 왜냐하면 데이터가 바뀌기 전에 테스트를 받는 것이지, 트리거가 데이터가 바뀐 후에야 트리거하는 것이 아니기 때문이다
유표
커서는 데이터를 처리하는 방법으로 결과에 집중된 데이터를 보거나 처리하기 위해 결과에 집중되어 앞뒤로 데이터를 조회하는 능력을 제공한다
(1) 커서 만들기
(2) 커서 열기
(3) 데이터 읽기
(4) 데이터 조작
(5) 커서 닫기 및 놓기
  declare @taocan nvarchar(50),@youhui nvarchar(50)
declare taocan_cursor scroll cursor -- for select Taocan,youhui from [189Shop].[dbo].[Table_TaocanType] for read only open taocan_cursor --- fetch from taocan_cursor into @taocan,@youhui -- while @@FETCH_STATUS=0-- FETCH begin print ''+@taocan+', :'+@youhui fetch from taocan_cursor into @taocan,@youhui end close taocan_cursor -- deallocate taocan_cursor --

실무, 일, 총무
이른바 사무란 하나의 조작 서열을 가리키는데, 이러한 조작 서열은 모두 집행되거나, 모두 집행되지 않으며, 이것은 분할할 수 없는 작업 단원이다

좋은 웹페이지 즐겨찾기