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)!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

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

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
