SlideShare una empresa de Scribd logo
1 de 9
Docente :Ing. Marco Aurelio Porro Chulli
Asignatura :Base de Datos II.
Ciclo : VIII “A”
Integrantes:
• Yenny Isabel Cuello Morón.
• Yanina Bustamante Jibaja.
CURSORES
Es un elemento que representará a un conjunto de datos
determinado por una consulta T-SQL, el cursor permitirá
recorrer fila a fila, leer y eventualmente modificar dicho
conjunto de resultados.
SINTAXIS
DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR select_statement
[ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ]
[;]
Transact-SQL Extended Syntax
DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ]
[ FORWARD_ONLY | SCROLL ]
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[TYPE_WARNING ]
FOR select_statement
[ FOR UPDATE [ OF column_name [ ,...n ] ] ]
[;]
VENTAJAS
Uso reducido
de la red
entre clientes
y servidores:
Mejora en la
seguridad
Mejora de las
posibilidades
de hardware
y software:
Seguridad,
administración
y
mantenimiento
centralizados
para las rutinas
comunes
Reducción en
el coste de
desarrollo y
aumento en
la fiabilidad:
Tipos
Definidos
por el
usuario
Temporale
s
Sistema
Sistema
CREACIÓN DE CURSORES
La sintaxis de declaración de un cursor es la siguiente :
declare cursor prueba _ cursor for
select nombres apellidos, from persona
ahora declaramos las variables con las que vamos a recorrer el cursor
declare @ nombres varchar(25)
declare @ apellidos varchar(25)
Abrimos el cursor para iniciar el recorrido del mismo
open cursor_ prueba
Se mueve al siguiente registro dentro del cursor y los asignamos a las variables antes declaradas
fetch next from cursor_ prueba
into @ , nombres apellidos
Retorna el estatus del último registro recorrido en el cursor cuando es igual a encontró registros
pendientes de recorrer
while @@ _ fetch status = 0
begin
print' : ' El Nombre de la persona es + @ + nombres ' : ' y sus apellidos + apellidos
Se mueve al siguiente registro dentro del cursor
fetch next from cursor_ prueba
into @ , nombres apellidos
end
Cuando concluimos con el recorrido del cursor este debe ser cerrado y luego destruido mediante las
siguientes sentencias
cose cursor_ prueba
Deallocate cursor_ prueba
MODIFICACIÓN DE CURSORES
Sintaxis simplificada
update table_name
set column1 = { expression | select_statement }
[, column2 = { expression | select_statement } ...]
where current of cursor_name
Ejemplo
update titles
set title = "The Executive’s Database Guide"
where current of biz_book
ELIMINACIÓN DE CURSORES
Sintaxis simplificada
delete [ from ] table_name where current of
cursor_name
Ejemplo
delete from titles
where current of biz_book
EJEMPLO
Crear un cursor que permita visualizar los registros de la tablaTbCliente
DECLARE @col1 char(8),@col2Varchar(40),@col3Varchar(40)
DECLARE c_Clientes CURSOR FOR
SELECT codcliente,nombre,direccion FROMTbCliente
--Apertura del cursor
OPEN c_Clientes
FETCH c_Clientes INTO @col1,@col2,@col3
WHILE (@@FETCH_STATUS = 0 )
BEGIN
PRINT @col1 + ' | ' +@col2 + ' | ' + @col3
-- Lectura de la siguiente fila del cursor
FETCH c_Clientes INTO @col1,@col2,@col3
END
-- Cierre del cursor
CLOSE c_Clientes
-- Liberar los recursos
DEALLOCATE c_Clientes
Conclusiones
Usar cursores nos puede simplificar mucho la tarea de programar un
script en otro lenguaje de programación para acabar haciendo lo
mismo que con un cursor programador directamente sobre T-SQL,
que además se ejecutará más rápido.
Los cursores son muy útiles sobre todo cuando no podemos tener
todas las columnas que necesitamos en un solo SELECT. Si podemos
tener a todas las columnas en un solo SELECT puede ser más práctico
usar el comando SELECT … INTO.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (18)

Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
 
SENTENCIAS SQL
SENTENCIAS SQLSENTENCIAS SQL
SENTENCIAS SQL
 
SENTENCIA SQL
SENTENCIA SQLSENTENCIA SQL
SENTENCIA SQL
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQL
 
Luis cepeda
Luis cepedaLuis cepeda
Luis cepeda
 
CURSORES EN SQL SERVER
CURSORES EN SQL SERVERCURSORES EN SQL SERVER
CURSORES EN SQL SERVER
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...
SQL Server conceptos basicos,DDL Lenguaje de definicion datos,DMLLenguaje de ...
 
CURSORES
CURSORESCURSORES
CURSORES
 
CURSORES
CURSORESCURSORES
CURSORES
 
SENTENCIAS SQL
SENTENCIAS SQLSENTENCIAS SQL
SENTENCIAS SQL
 
CONSULTA SQL ROMERO
CONSULTA SQL ROMEROCONSULTA SQL ROMERO
CONSULTA SQL ROMERO
 
Fundamentos de SELECT SQL
Fundamentos de SELECT SQLFundamentos de SELECT SQL
Fundamentos de SELECT SQL
 
5 cursores
5 cursores5 cursores
5 cursores
 
Yupa cesar bdii_t7
Yupa cesar bdii_t7Yupa cesar bdii_t7
Yupa cesar bdii_t7
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
SENTENCIAS SQL
SENTENCIAS SQLSENTENCIAS SQL
SENTENCIAS SQL
 

Similar a Cursores (20)

Cursores
CursoresCursores
Cursores
 
SESION-07.pptx
SESION-07.pptxSESION-07.pptx
SESION-07.pptx
 
Presentacións Sql mejorado
Presentacións Sql mejoradoPresentacións Sql mejorado
Presentacións Sql mejorado
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
Trabajo bd
Trabajo bdTrabajo bd
Trabajo bd
 
Consultas
ConsultasConsultas
Consultas
 
cursores
cursorescursores
cursores
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Lenguaje transact
Lenguaje transactLenguaje transact
Lenguaje transact
 
Trabajo_profe_omar
Trabajo_profe_omarTrabajo_profe_omar
Trabajo_profe_omar
 
Trabajo_profe_omar
Trabajo_profe_omarTrabajo_profe_omar
Trabajo_profe_omar
 
Trabajo_profe_omar
Trabajo_profe_omarTrabajo_profe_omar
Trabajo_profe_omar
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
13 Guía_Fundamentos de Base de Datos.docx
13 Guía_Fundamentos de Base de Datos.docx13 Guía_Fundamentos de Base de Datos.docx
13 Guía_Fundamentos de Base de Datos.docx
 
13 Guía_Fundamentos de Base de Datos (1).docx
13 Guía_Fundamentos de Base de Datos (1).docx13 Guía_Fundamentos de Base de Datos (1).docx
13 Guía_Fundamentos de Base de Datos (1).docx
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Sql plus temario
Sql plus temarioSql plus temario
Sql plus temario
 
Manual basico de_oracle
Manual basico de_oracleManual basico de_oracle
Manual basico de_oracle
 

Más de yenny isabel cuello moron (17)

Oltp exposicion grupal
Oltp exposicion grupalOltp exposicion grupal
Oltp exposicion grupal
 
Seguridad
SeguridadSeguridad
Seguridad
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Sistemas de seguridad
Sistemas de seguridadSistemas de seguridad
Sistemas de seguridad
 
Activadores
ActivadoresActivadores
Activadores
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Vistas
VistasVistas
Vistas
 
Ddl
DdlDdl
Ddl
 
Transac sql
Transac sqlTransac sql
Transac sql
 
Preparedstatement(grupal)
Preparedstatement(grupal)Preparedstatement(grupal)
Preparedstatement(grupal)
 
Yanina
YaninaYanina
Yanina
 
Resultset
ResultsetResultset
Resultset
 
Statement
StatementStatement
Statement
 
Connection()
Connection()Connection()
Connection()
 
Trabajo de java con base de datos(yanina y yenny)
Trabajo de java con base de datos(yanina y yenny)Trabajo de java con base de datos(yanina y yenny)
Trabajo de java con base de datos(yanina y yenny)
 
Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)
 
Trabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yennyTrabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yenny
 

Cursores

  • 1. Docente :Ing. Marco Aurelio Porro Chulli Asignatura :Base de Datos II. Ciclo : VIII “A” Integrantes: • Yenny Isabel Cuello Morón. • Yanina Bustamante Jibaja.
  • 2. CURSORES Es un elemento que representará a un conjunto de datos determinado por una consulta T-SQL, el cursor permitirá recorrer fila a fila, leer y eventualmente modificar dicho conjunto de resultados.
  • 3. SINTAXIS DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR FOR select_statement [ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ] [;] Transact-SQL Extended Syntax DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ] [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ] [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ] [TYPE_WARNING ] FOR select_statement [ FOR UPDATE [ OF column_name [ ,...n ] ] ] [;]
  • 4. VENTAJAS Uso reducido de la red entre clientes y servidores: Mejora en la seguridad Mejora de las posibilidades de hardware y software: Seguridad, administración y mantenimiento centralizados para las rutinas comunes Reducción en el coste de desarrollo y aumento en la fiabilidad:
  • 6. CREACIÓN DE CURSORES La sintaxis de declaración de un cursor es la siguiente : declare cursor prueba _ cursor for select nombres apellidos, from persona ahora declaramos las variables con las que vamos a recorrer el cursor declare @ nombres varchar(25) declare @ apellidos varchar(25) Abrimos el cursor para iniciar el recorrido del mismo open cursor_ prueba Se mueve al siguiente registro dentro del cursor y los asignamos a las variables antes declaradas fetch next from cursor_ prueba into @ , nombres apellidos Retorna el estatus del último registro recorrido en el cursor cuando es igual a encontró registros pendientes de recorrer while @@ _ fetch status = 0 begin print' : ' El Nombre de la persona es + @ + nombres ' : ' y sus apellidos + apellidos Se mueve al siguiente registro dentro del cursor fetch next from cursor_ prueba into @ , nombres apellidos end Cuando concluimos con el recorrido del cursor este debe ser cerrado y luego destruido mediante las siguientes sentencias cose cursor_ prueba Deallocate cursor_ prueba
  • 7. MODIFICACIÓN DE CURSORES Sintaxis simplificada update table_name set column1 = { expression | select_statement } [, column2 = { expression | select_statement } ...] where current of cursor_name Ejemplo update titles set title = "The Executive’s Database Guide" where current of biz_book ELIMINACIÓN DE CURSORES Sintaxis simplificada delete [ from ] table_name where current of cursor_name Ejemplo delete from titles where current of biz_book
  • 8. EJEMPLO Crear un cursor que permita visualizar los registros de la tablaTbCliente DECLARE @col1 char(8),@col2Varchar(40),@col3Varchar(40) DECLARE c_Clientes CURSOR FOR SELECT codcliente,nombre,direccion FROMTbCliente --Apertura del cursor OPEN c_Clientes FETCH c_Clientes INTO @col1,@col2,@col3 WHILE (@@FETCH_STATUS = 0 ) BEGIN PRINT @col1 + ' | ' +@col2 + ' | ' + @col3 -- Lectura de la siguiente fila del cursor FETCH c_Clientes INTO @col1,@col2,@col3 END -- Cierre del cursor CLOSE c_Clientes -- Liberar los recursos DEALLOCATE c_Clientes
  • 9. Conclusiones Usar cursores nos puede simplificar mucho la tarea de programar un script en otro lenguaje de programación para acabar haciendo lo mismo que con un cursor programador directamente sobre T-SQL, que además se ejecutará más rápido. Los cursores son muy útiles sobre todo cuando no podemos tener todas las columnas que necesitamos en un solo SELECT. Si podemos tener a todas las columnas en un solo SELECT puede ser más práctico usar el comando SELECT … INTO.