>데이터 베이스 >SQL >데이터베이스 저장 프로시저에 대한 간략한 설명

데이터베이스 저장 프로시저에 대한 간략한 설명

步履不停
步履不停원래의
2019-06-14 11:25:3940420검색

데이터베이스 저장 프로시저에 대한 간략한 설명

저장 프로시저란 무엇인가요?

다른 프로그래밍 언어를 접해 본 적이 있다면 저장 프로시저도 메소드와 비슷하다는 점을 이해하기 쉬울 것입니다.

 메서드인 것으로 밝혀졌으므로 비슷한 메서드 이름, 메서드가 전달하는 변수 및 반환 결과가 있으므로 저장 프로시저에는 저장 프로시저 이름, 저장 프로시저 매개 변수 및 반환 값이 있습니다.

 저장 프로시저의 장점:

  • 저장 프로시저의 기능은 SQL 언어의 기능과 유연성을 크게 향상시킵니다.
  • 데이터의 보안과 무결성이 보장될 수 있습니다.
  • 저장 프로시저를 통해 사용자는 허가 없이 통제 중인 데이터베이스에 간접적으로 접근할 수 있어 데이터 보안이 보장됩니다.
  • 저장 프로시저를 통해 관련 작업이 함께 발생하여 데이터베이스의 무결성이 유지됩니다.
  • 저장 프로시저를 실행하기 전에 데이터베이스는 문법과 구문을 분석하고 최적화된 실행 계획을 제공합니다. 이 컴파일된 프로세스는 SQL 문의 성능을 크게 향상시킬 수 있습니다.
  • 네트워크 트래픽을 줄일 수 있습니다.
  • 기업 규칙을 구현한 컴퓨팅 프로그램을 데이터베이스 서버에 넣어 중앙 집중적으로 제어합니다.

저장 프로시저는 시스템 저장 프로시저, 확장 저장 프로시저, 사용자 정의 저장 프로시저로 나눌 수 있습니다.

시스템 저장 프로시저

먼저 시스템 저장 프로시저를 살펴보겠습니다. 시스템 저장 프로시저는 시스템에 의해 정의됩니다. 주로 MASTER 데이터베이스에 저장되며 이름은 "SP"로 시작하거나 "XP"로 시작합니다. 이러한 시스템 저장 프로시저는 MASTER 데이터베이스에 있지만 다른 데이터베이스의 시스템 저장 프로시저를 계속 호출할 수 있습니다. 새 데이터베이스가 생성될 때 현재 데이터베이스에 자동으로 생성되는 일부 시스템 저장 프로시저가 있습니다.

일반적으로 사용되는 시스템 저장 프로시저:

exec sp_databases; --데이터베이스 보기
  • exec sp_tables; --테이블 보기
  • exec sp_columns 학생; exec sp_helpConstraint Student;--제약 조건
  • exec sp_helptext 'sp_stored_procedures';--저장 프로시저 생성 정의 문 보기
  • exec sp_stored_procedures;
  • exec sp_rename Student, stuInfo;--테이블 이름 변경
  • exec sp_renamedb myTempDB, myDB ;- -데이터베이스 이름 변경
  • exec sp_defaultdb 'master', 'myDB';--로그인 이름에 대한 기본 데이터베이스 변경
  • exec sp_helpdb;--데이터베이스 도움말, 데이터베이스 정보 쿼리
  • exec sp_helpdb master;
  • exec sp_attach_db--데이터베이스 연결
  • exec sp_detach_db -- 분리된 데이터베이스
  • 저장 프로시저 구문:
  • 저장 프로시저를 만들기 전에 저장 프로시저의 이름 지정에 대해 이야기해 보겠습니다. 저장 프로시저에 대한 여러 기사를 보았고 좋아합니다. 저장 프로시저를 추가할 때 저장 프로시저 이름 앞에 접두사를 추가하는 습관을 들이는 것이 중요합니다. 이는 사소한 일이지만 작은 세부 사항이 큰 성공 또는 실패를 결정하는 경우가 많습니다. 어떤 사람들은 proc_name과 같은 접두사를 추가하는 것을 좋아합니다. 이 접두사 usp_name도 참조하세요. 전자의 proc은 Procedure의 약어이고, 후자의 sup는 User Procedure를 의미합니다. 저는 첫 번째 방법을 선호하므로 아래 저장 프로시저 이름은 모두 첫 번째 방법으로 작성됩니다. 이름의 표기는 낙타 명명법을 사용합니다.
  • 저장 프로시저 생성 구문은 다음과 같습니다.

CREATE PROC[EDURE] 存储过程名 

@参数1 [数据类型]=[默认值] [OUTPUT] 

@参数2 [数据类型]=[默认值] [OUTPUT]

AS 

SQL语句

EXEC 过程名[参数]

저장 프로시저 인스턴스 사용:

1. 매개변수 없음

create procedure proc_select_officeinfo--(存储过程名)as select Id,Name from Office_Info--(sql语句)

exec proc_select_officeinfo--(调用存储过程)

2. 입력 및 출력 매개변수

create 프로시저 proc_office_info--(저장 프로시저 이름)
@Id int,@Name varchar(20) 출력--(매개변수 이름 매개변수 유형) 나가는 매개변수는
begin

select로 출력

과 함께 추가되어야 합니다. @Name=Name from dbo.Office_Info where Id=@Id --(sql 문)
end

declare @houseName varchar(20) --변수를 선언하고 저장 프로시저에 의해 전달된 값을 가져옵니다

exec proc_office_info--( 저장 프로시저 이름)
4 ,@houseName 출력--(파라미터에 출력을 추가해야 한다는 전설이 있습니다. @변수 = OUTPUT을 사용하면 에러가 발생하므로 작성 방법을 변경하세요)


select @ houseName--(표시 값)



4. 반환 값


create procedure procedure_proc_GetoffinfoById ----  Name  dbo.Office_Info  Id=@Id----(存储过程名称之后,空格加上参数,多个参数中间以逗号分隔)

注:参数赋值是,第一个参数可以不写参数名称,后面传入参数,需要明确传入的是哪个参数名称

SQL과 관련된 더 많은 기술 기사를 보려면

SQL Tutorial

열을 방문하세요.

위 내용은 데이터베이스 저장 프로시저에 대한 간략한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.