>  기사  >  데이터 베이스  >  mysql 저장 프로시저의 커서는 무엇입니까?

mysql 저장 프로시저의 커서는 무엇입니까?

青灯夜游
青灯夜游원래의
2022-01-24 17:28:354548검색

mysql 저장 프로시저에서 커서는 DBMS 서버에 저장된 데이터베이스 쿼리로, 일반적으로 데이터베이스에서 앞으로 또는 뒤로 이동할 때 사용됩니다. 데이터를 검색했습니다.

mysql 저장 프로시저의 커서는 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

MySQL에서는 저장 프로시저나 함수의 쿼리가 여러 레코드를 반환하는 경우가 있습니다. 그러나 간단한 SELECT 문을 사용하면 데이터의 첫 번째 행, 다음 행 또는 처음 10개 행을 가져올 수 없습니다. 커서를 사용하여 쿼리 결과 집합의 레코드를 하나씩 읽어옵니다. 일부 머티리얼에서는 커서를 커서라고도 합니다.

커서 소개

1. 커서: 커서라고도 하며, DBMS 서버에 저장되는 데이터베이스 쿼리이며, Select 문이 아니라 해당 문에 의해 검색된 결과 집합입니다.

2. 목적: 검색된 데이터에 대한 앞으로 또는 뒤로 작업. 주로 사용자가 화면에서 데이터를 스크롤하는 등의 대화형 애플리케이션에 사용됩니다.

3. 기능:

  • 커서를 읽기 전용으로 표시하여 데이터가 읽을 수는 있지만 업데이트 및 삭제할 수는 없습니다.
  • 수행할 수 있는 방향 작업을 제어할 수 있습니다(앞으로, 뒤로, 처음, 마지막, 절대 위치, 상대 위치 등)
  • 일부 열은 편집 가능으로 표시할 수 있고 일부 열은 편집 불가능으로 표시할 수 있습니다. editable
  • 범위를 지정하여 이를 생성한 특정 요청(예: 저장 프로시저) 또는 모든 요청에 ​​커서가 액세스할 수 있도록 합니다.
  • 검색된 데이터를 복사하는 DBMS만(테이블의 활성 데이터를 가리키는 대신) , 커서 열기 및 액세스 중에 데이터를 변경하지 않습니다.

4. 커서를 지원하는 DBMS: DB2, MariaDB, MySQL 5, SQL Server, SQLite, Oracle 및 PostgreSQL, Microsoft Access는

5를 지원하지 않습니다. 기반 응용 프로그램은 그다지 유용하지 않으며(ASP, ASP.NET, ColdFusion, PHP, Python, Ruby, JSP 등) 대부분의 웹 응용 프로그램 개발자는 커서를 사용하지 않습니다

6 사용:

  • 커서 선언: DECLARE 커서_이름 CURSOR FOR SELECT * FROM table_name; // 아직 데이터가 검색되지 않았습니다.
-- MySQL游标的声明
DECLARE cursor_name CURSOR FOR select_statement

-- SQL Server游标的声明
DECLARE cursor_name CURSOR FOR select_statement [FOR [READ ONLY | UPDATE {[co lumn_list]}]]

-- Oracle游标的声明
DECLARE CORSOR cursor_name IS {select_statement}
  • 커서 열기: OPEN 커서_이름; // 데이터 검색을 시작합니다. 즉, 지정된 커서의 SELECT 문이 실행되고 쿼리 결과가 나타납니다. 세트는 메모리의 특정 영역에 저장됩니다.
-- MySQL打开游标
OPEN cursor_name


-- SQL Server打开游标
OPEN cursor_name


-- Oracle打开游标
OPEN cursor_name [param1 [, param2]]
  • 데이터 가져오기: FETCHcursor_name into var1,var2,...,varn; //cursor_name이 데이터를 검색하면 다음 fetch
-- MySQL游标获取数据
FETCH cursor_name INTO var1_name [, var2_name] ...


-- SQL Server游标获取数据
FETCH NEXT FROM cursor_name [INTO fetch_list]


-- Oracle游标获取数据
FETCH cursor_name  {INTO : host_var1 [[INDICATOR] : indicator_var1] [, : host_var2 [[INDICATOR] : indicator_var2]] | USING DESCRIPTOR DESCRIPTOR}
  • 커서를 닫을 때까지 종료 플래그가 트리거되지 않습니다. CLOSE 커서_이름;
-- MySQL关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
CLOSE cursor_name


-- SQL Server关闭游标和释放资源
CLOSE cursor_name
DEALLOCATE cursor_name


-- Oracle关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
CLOSE cursor_name

【관련 추천:mysql 비디오 튜토리얼

위 내용은 mysql 저장 프로시저의 커서는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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