MySQL Advanced (3) 커서 간단한 튜토리얼
MySQL 커서 간단 튜토리얼
MySQL V5.5부터 InnoDB를 기본 스토리지 엔진으로 사용하는 큰 변화가 생겼다. InnoDB는 트랜잭션을 지원하며 ACID 트랜잭션 지원, 데이터 무결성(외래 키 지원), 재해 복구 기능 등 관련 RDBMS 기능을 갖추고 있습니다.
이제 커서에 대한 지식을 간략하게 정리합니다.
(1) 커서 이해
커서는 단순히 쿼리된 데이터 인덱스를 커서의 조작을 통해(첫 번째 위치, 마지막 위치, 이전 위치, 다음 위치) 이동할 수 있습니다. 데이터에서.
커서를 사용하는 주요 이유 중 하나는 수집 작업을 단일 레코드 처리로 변환하는 것입니다. SQL 언어를 사용하여 데이터베이스에서 데이터를 검색한 후 결과는 메모리 영역에 배치되며 결과는 여러 레코드를 포함하는 모음인 경우가 많습니다. 커서 메커니즘을 통해 사용자는 SQL Server에서 이러한 레코드에 행별로 액세스하고 사용자 자신의 희망에 따라 이러한 레코드를 표시하고 처리할 수 있습니다.
데이터베이스에서 커서는 매우 중요한 개념입니다. 커서는 테이블에서 검색된 데이터에 대해 유연한 작업 수단을 제공합니다. 본질적으로 커서는 여러 데이터 레코드가 포함된 결과 집합에서 한 번에 하나의 레코드를 추출할 수 있는 메커니즘입니다. 커서는 결과 세트(관련 select 문에 의해 검색된 0개, 1개 또는 여러 개의 레코드일 수 있음)와 특정 레코드를 가리키는 결과 세트의 커서 위치로 구성되므로 커서는 항상 SQL select 문과 연결됩니다. . 결과 집합을 처리하기로 결정한 경우 결과 집합을 가리키는 커서를 선언해야 합니다. C 언어로 파일을 처리하는 프로그램을 작성한 적이 있다면 커서는 파일을 열 때 얻는 파일 핸들과 같습니다. 파일이 성공적으로 열리면 파일 핸들이 파일을 나타낼 수 있습니다. 커서의 경우 논리는 동일합니다. 커서는 플랫 파일을 읽는 기존 프로그램과 유사한 방식으로 기본 테이블의 결과 집합을 처리하여 테이블의 데이터를 플랫 파일 형식으로 프로그램에 제공할 수 있음을 알 수 있습니다.
우리는 관계형 데이터베이스 관리 시스템이 본질적으로 집합 지향적이라는 것을 알고 있습니다. MS SQL SERVER에서는 where 절을 사용하여 레코드를 하나만 제한하지 않는 한 테이블의 단일 레코드를 설명하는 표현식이 없습니다. 선택된. 따라서 단일 레코드에 대한 데이터 처리를 수행하려면 커서를 사용해야 합니다. 커서를 사용하면 응용 프로그램이 전체 결과 집합에 대해 동일한 작업을 한 번에 수행하는 대신 쿼리 문 select에서 반환된 행 결과 집합의 각 행에 대해 동일하거나 다른 작업을 수행할 수 있다는 것을 알 수 있습니다. 커서 위치를 기준으로 테이블의 데이터에 대해 동일한 작업을 수행하는 기능 또한 컬렉션 지향 데이터베이스 관리 시스템과 행 지향 프로그래밍을 연결하는 커서입니다. 의사소통 처리 방법.
데이터베이스 개발 과정에서 검색하는 데이터가 단 하나의 레코드인 경우 작성하는 트랜잭션 문 코드에서 SELECT INSERT 문을 사용하는 경우가 많습니다. 하지만 우리는 특정 결과 집합에서 레코드를 하나씩 읽는 상황에 자주 직면합니다. 그렇다면 이 문제를 해결하는 방법은 무엇입니까? 커서는 매우 뛰어난 솔루션을 제공합니다. 즉, 커서
를 사용하는 것은 데이터가 검색된 위치를 식별하는 읽기 가능한 식별자입니다.
(2) 커서 특성
1, 읽기 전용
2, 스크롤 불가
3, 둔감
(3 ) 커서 사용하기
핸들러를 정의하기 전에 커서를 정의해야 하지만, 커서를 정의하기 전에 변수를 정의해야 한다는 점을 강조해야 합니다. 순서는 변수 정의 - 커서 정의 - 핸들러입니다.
1. 커서 정의
DECLARE cursor_name CURSOR FOR select_statement
이 문은 커서를 선언합니다. 서브루틴에서 여러 커서를 정의할 수도 있습니다. 블록의 각 커서 이름은 고유해야 합니다. 커서를 선언한 후에는 이 작업도 단일 작업입니다.
2. Cursor OPEN
OPEN cursor_name
이 문은 이전에 선언한 커서를 엽니다.
3. Cursor FETCH
FETCH cursor_name INTO var_name [, var_name] ...
지정된 오픈 커서로 다음 라인(다음 라인이 있는 경우)을 읽어 커서를 앞으로 이동시키는 명령문입니다. 괜찮습니다.
4. 游标CLOSE
CLOSE cursor_name
这个语句关闭先前打开的游标,注意,用完后必须关闭。
(四)示例
下面是一个存储过程,里面用到游标,逐条更新数据(批量更新数据)
BEGIN DECLARE no_more_record INT DEFAULT 0; DECLARE pID BIGINT(20); DECLARE pValue DECIMAL(15,5); DECLARE cur_record CURSOR FOR SELECT colA, colB from tableABC; /*首先这里对游标进行定义*/ DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_record = 1; /*这个是个条件处理,针对NOT FOUND的条件,当没有记录时赋值为1*/ OPEN cur_record; /*接着使用OPEN打开游标*/ FETCH cur_record INTO pID, pValue; /*把第一行数据写入变量中,游标也随之指向了记录的第一行*/ WHILE no_more_record != 1 DO INSERT INTO testTable(ID, Value) VALUES (pID, pValue); FETCH cur_record INTO pID, pValue; END WHILE; CLOSE cur_record; /*用完后记得用CLOSE把资源释放掉*/ END
以上就是 mysql进阶(三)游标简易教程的内容,更多相关内容请关注PHP中文网(www.php.cn)!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

Navicat 자체는 데이터베이스 비밀번호를 저장하지 않으며 암호화 된 암호 만 검색 할 수 있습니다. 솔루션 : 1. 비밀번호 관리자를 확인하십시오. 2. Navicat의 "비밀번호 기억"기능을 확인하십시오. 3. 데이터베이스 비밀번호를 재설정합니다. 4. 데이터베이스 관리자에게 문의하십시오.

Navicat Premium을 사용하여 데이터베이스 생성 : 데이터베이스 서버에 연결하고 연결 매개 변수를 입력하십시오. 서버를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 생성을 선택하십시오. 새 데이터베이스의 이름과 지정된 문자 세트 및 Collation의 이름을 입력하십시오. 새 데이터베이스에 연결하고 객체 브라우저에서 테이블을 만듭니다. 테이블을 마우스 오른쪽 버튼으로 클릭하고 데이터 삽입을 선택하여 데이터를 삽입하십시오.

MariaDB 용 Navicat은 암호가 암호화 된 양식으로 저장되므로 데이터베이스 비밀번호를 직접 볼 수 없습니다. 데이터베이스 보안을 보장하려면 비밀번호를 재설정하는 세 가지 방법이 있습니다. Navicat을 통해 비밀번호를 재설정하고 복잡한 비밀번호를 설정하십시오. 구성 파일을 봅니다 (권장되지 않음, 위험이 높음). 시스템 명령 줄 도구를 사용하십시오 (권장되지 않으면 명령 줄 도구에 능숙해야 함).

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

Navicat에서 SQL을 수행하는 단계 : 데이터베이스에 연결하십시오. SQL 편집기 창을 만듭니다. SQL 쿼리 또는 스크립트를 작성하십시오. 실행 버튼을 클릭하여 쿼리 또는 스크립트를 실행하십시오. 결과를 봅니다 (쿼리가 실행 된 경우).

Navicat이 데이터베이스 및 해당 솔루션에 연결할 수없는 일반적인 이유 : 1. 서버의 실행 상태를 확인하십시오. 2. 연결 정보를 확인하십시오. 3. 방화벽 설정을 조정하십시오. 4. 원격 액세스 구성; 5. 네트워크 문제 문제 해결; 6. 권한을 확인하십시오. 7. 버전 호환성을 보장합니다. 8. 다른 가능성 문제를 해결하십시오.

응용 프로그램을 열고 새로운 연결 (Ctrl n)을 선택하여 Navicat에서 새로운 MySQL 연결을 만들 수 있습니다. "MySQL"을 연결 유형으로 선택하십시오. 호스트 이름/IP 주소, 포트, 사용자 이름 및 비밀번호를 입력하십시오. (선택 사항) 고급 옵션을 구성합니다. 연결을 저장하고 연결 이름을 입력하십시오.
