Motivación: SQL Interactivo vs. No Interactivo
|
|
|
- Roberto Marín Botella
- hace 9 años
- Vistas:
Transcripción
1 SQL en entorno de programación C SQL embebido Variables Errores / Whenever Select Cursores: Cursor y Fetch Prepare y Execute 2009/2010 Tema 5 : SQL en entorno de programación C 1 Motivación: SQL Interactivo vs. No Interactivo Hasta la fecha hemos considerado sólo consultas SQL en las que tecleamos en psql o pgaccess (cliente) las ordenes que deseamos ejecutar. Esto se conoce como SQL Interactivo. SQL interactivo es ideal para: Definir la estructura de la base de datos Probar consultas realizar prototipos El SQL interactivo no es una buena solución para la mayoría de las aplicaciones reales que requieren un interfaz con un usuario sin conocimientos de SQL. Para las cuales se necesita, además de SQL, un lenguaje de programación de alto nivel. Tema 5 : SQL en entorno de programación C 2 1
2 SQL embebido Los comandos SQL deben seguir una sintaxis especial que los "aísla" del resto de las ordenes del programa EXEC SQL SQL_statement Un precompilador se encargará de procesar estas ordenes y trasladarlas a llamadas a una librería (que se encarga de las comunicaciones). ecpg Finalmente el compilador nativo compila el programa. gcc Tema 5 : SQL en entorno de programación C 3 Precompilador SQL Editor Precompilador Compilador Lincador Programa nativo + SQL embebido Programa nativo + SQL traducido (ecpg) Código objeto Librerías nativas Librerías DDBB Ejecutable Tema 5 : SQL en entorno de programación C 4 2
3 Un ejemplo Preprocesador para C y SQL embebido (ECPG) #include <stdio.h> /* Esta zona se descibirá más adelante */ int resultado; int main() EXEC SQL CONNECT TO peliculas; EXEC SQL SELECT (1+1) INTO :resultado; printf("1+1=%d\n",resultado); return 0; } /* fichero 297.pgc */ /* hacemos: ecpg 297.pgc -o 297.c */ Tema 5 : SQL en entorno de programación C 5 Un ejemplo (despues de precompilarlo) /* Processed by ecpg (3.1.1) */ /* These include files are added by the preprocessor */ #include <ecpgtype.h> #include <ecpglib.h> #include <ecpgerrno.h> #include <sqlca.h> #line 1 "297.pgc" /* End of automatic include section */ #include <stdio.h> /* exec sql begin declare section */ #line 5 "297.pgc" int resultado ; /* exec sql end declare section */ #line 6 "297.pgc" int main() ECPGconnect( LINE, 0, "peliculas", NULL,NULL, NULL, 0); } #line 9 "297.pgc" ECPGdo( LINE, 0, 1, NULL, "select ( ) ", ECPGt_EOIT, ECPGt_int,&(resultado),(long)1,(long)1,sizeof(int), ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);} #line 10 "297.pgc" printf("1+1=%d\n",resultado); return 0; } /* fichero 297.c */ Tema 5 : SQL en entorno de programación C 6 3
4 Un ejemplo (ahora compilarlo y linkarlo) Fichero: 297.mak INC= /usr/include/pgsql LIB= /usr/share/pgsql PROG= 297 TEMP= 297.c $(PROG): $(PROG).c gcc -I$(INC) -o $(PROG) $(PROG).c -L$(LIB) -lecpg -lpq $(PROG).c: $(PROG).pgc ecpg -o $(PROG).c $(PROG).pgc Hacemos: make -f 297.mak -n Tema 5 : SQL en entorno de programación C 7 Compartir Variables Es posible compartir variables entre el código SQL y el nativo. La definición se realiza usando la sintaxis: EXEC SQL begin declare section; varchar userid[ 10], password[ 10], cname[ 15]; int cno; EXEC SQL end declare section; Declaration section: variables compartidas por SQL y lenguaje nativo ":" se antepone a las variables cuando se usan en SQL Tema 5 : SQL en entorno de programación C 8 4
5 Compartir variables: un ejemplo unsigned long num_enrolled; char crs_code; char SQLSTATE [6];. EXEC SQL SELECT C.NumEnrolled INTO :num_enrolled FROM Course AS C WHERE C.CrsCode = :crs_code; Variables compartidas : se usa para las variables en SQL Declaration section: variables compartidas por SQL y lenguaje nativo ":" se antepone a las variables cuando se usan en SQL Tema 5 : SQL en entorno de programación C 9 NULL SQL trata el valor NULL de forma muy especial que no es directamente exportable a otros lenguajes de programación. Hay unas variables llamadas variables indicadoras que contienen un código que matiza los valores devueltos por la base de datos: 0 el valor de la variable nativa es correcto. -1 el valor de la variable nativa debe tratarse como si fuera NULL. Su valor es irrelevante. >0 el valor de la variable nativa ha sido procesado (probablemente un casting que ha producido una truncación o redondeo) Tema 5 : SQL en entorno de programación C 10 5
6 Ejemplo!!! #include <stdio.h> int main() char resultado[11]; int resultadoind; //las variables indicadoras funcionan en las dos direcciones EXEC SQL CONNECT TO peliculas; resultadoind = 0; strcpy(resultado,"rojo"); EXEC SQL INSERT INTO pepinillo (id,color) VALUES (1,:resultado:resultadoInd); return 0; } /* 297b.pgc */ Tema 5 : SQL en entorno de programación C 12 #include <stdio.h> Ejemplo!!! int main() char resultado[11]; int resultadoind; //las variables indicadoras funcionan en las dos direcciones EXEC SQL CONNECT TO peliculas; resultadoind = -1; strcpy(resultado,"rojo"); EXEC SQL INSERT INTO pepinillo (id,color) VALUES (2,:resultado:resultadoInd); return 0; } /* 297d.pgc */ pelis=> select * from pepinillo ; id color rojo 2 (2 rows) Tema 5 : SQL en entorno de programación C 13 6
7 Conexión Hasta la fecha hemos usado: EXEC SQL CONNECT TO peliculas; para conectarnos Obviamente faltan campos para: usuario password servidor (dirección IP) puerto Tema 5 : SQL en entorno de programación C 14 Ejemplo #include <stdio.h> EXEC SQL INCLUDE sqlca; int resultado; int main() EXEC SQL CONNECT TO peliculas@localhost:5432 USER usuario/contraseña; if (sqlca.sqlcode) printf("%s\n", sqlca.sqlerrm.sqlerrmc); exit(1); } EXEC SQL SELECT (1+1) INTO :resultado; printf("1+1=%d\n",resultado); return 0; } Tema 5 : SQL en entorno de programación C 15 7
8 Errores Se puede acceder a la base de datos para conocer su estado Cómo saber si ha habido algún error durante la ejecución? EXEC SQL include sqlca; El elemento más interesante de la estructura sqlca es sqlcode. El 0 consulta correcta. >0 la consulta se ha realizado satisfactoriamente pero ha ocurrido una excepción (por ejemplo no hay más tuplas disponibles) < 0 ha ocurrido un error Tema 5 : SQL en entorno de programación C 16 Errores #include <stdio.h> EXEC SQL INCLUDE sqlca; int resultado; int main() EXEC SQL CONNECT TO basequenoexiste; if (sqlca.sqlcode) printf("error: No puedo conectar a la base (%d)\n", sqlca.sqlcode); exit(1); } EXEC SQL SELECT (1+1) INTO :resultado; printf("1+1=%d\n",resultado); return 0; } /* 300.pgc */ maquina:~>./300 Error: No puedo conectar a la base (-402) Tema 5 : SQL en entorno de programación C 17 8
9 Códigos de Error struct char sqlcaid[8]; long sqlabc; long sqlcode; struct int sqlerrml; char sqlerrmc[70];} sqlerrm; char sqlerrp[8]; long sqlerrd[6]; char sqlwarn[8]; char sqlstate[5]; } sqlca; Tema 5 : SQL en entorno de programación C 18 WHENEVER Cada comando de SQL embebido puede (potencialmente) generar un error. Para aliviar el trabajo del programador existe la directiva WHENEVER que instruye al precompilador para que genere el código que procesará los errores La sintaxis de la directiva WHENEVER es: EXEC SQL WHENEVER <condición> <acción> Tema 5 : SQL en entorno de programación C 19 9
10 WHENEVER (cont) La condición puede ser: SQLERROR - genera código que se encargue de los errores (SQLCODE < 0). SQLWARNING genera codigo que se encarge de las advertencias (warnings) (SQLCODE > 0) NOT FOUND - genera código que se encargue del caso especial en que todas las tuplas obtenidas como resultado de la consulta ya se han transferido. Tema 5 : SQL en entorno de programación C 20 WHENEVER (CONT) La acción puede ser: CONTINUE ignora el error y continua la ejecución función transfiere el error a la funcion que se encarga de procesar los error. DO BREAK salte del bucle DO CONTINUE continua con la interación siguiente (se supone dentro de un bucle) GOTO label - transfiere el control a otra parte del programa. STOP Aborta transacción. SQLPRINT Muestar mensaje con el error ocurrido (predeterminado). Tema 5 : SQL en entorno de programación C 21 10
11 WHENEVER: Ejemplo!!! #include <stdio.h> int main() int resultadoind; EXEC SQL CONNECT TO peliculas; EXEC SQL WHENEVER sqlerror sqlprint; EXEC SQL INSERT INTO tablaquenoexiste (id,color) VALUES (1,2); printf( El programa no ha abortado tras hacer sqlprint ); return 0; } /* 297c.pgc */ maquina:~>./297c sql error 'relation "tablaquenoexiste" does not exist' in line 13. El programa no ha abortado tras hacer sqlprint Tema 5 : SQL en entorno de programación C 22 SELECT SELECT es un comando de SQL potencialmente complicado de usar. Problema: los lenguajes de programación tradicionales están concebidos para procesar variables aisladas y no grandes tablas de dimensión virtualmente infinita SQL, por el contrario, puede procesar una gran cantidad de filas con un solo comando Aquellos SELECTs que devuelvan 0 o una tupla son fácilmente procesables pero... qué hacer cuando n tuplas son devueltas? Tema 5 : SQL en entorno de programación C 23 11
12 SELECT Devuelve una sola tupla EXEC SQL SELECT fname, lname, address INTO :firstname, :lastname, :address:addressind, FROM PrivateOwner WHERE ownerno = CO21'; Si se devuelve más de una tupla solo la primera de ellas es retenida Tema 5 : SQL en entorno de programación C 24 Cursores Si una consulta puede devolver un número arbitrario de tuplas, es necesario usar cursores. Los cursores permiten al lenguaje nativo acceder a una relación tupla a tupla. Los cursores se comportan como punteros a una tupla del resultado y pueden ser movidos de una tupla a la siguiente (se puede saltar hacia atrás y delante). Los cursores se deben declarar y abrir antes de que puedan ser usados. Una vez abiertos el comando fetch permite avanzar hasta la siguiente tupla Cuando se deje de utilizar: cerrar cursor. Tema 5 : SQL en entorno de programación C 25 12
13 CURSOR - Ejemplo Consideremos la consulta: SELECT titulo, puntuacion,votos FROM pelicula WHERE puntuacion > 9.4; título puntuacion votos High and the Mighty, The Flåklypa Grand Prix Tema 5 : SQL en entorno de programación C 26 Cursor: Declaración Los cursores se declara usando las palabras reservadas: DECLARE <nombre-cursor> CURSOR FOR <consulta> el nombre del cursor y la consulta a realizar EXEC SQL DECLARE miprimercursor CURSOR FOR SELECT titulo, puntuación, votos FROM pelicula WHERE puntuacion > 9.4; Tema 5 : SQL en entorno de programación C 27 13
14 Cursor - OPEN La orden OPEN ejecuta la consulta y coloca un puntero apuntando hacia la primera tupla de la relación resultante EXEC SQL OPEN miprimercursor; Pointer High and the Mighty, The Flåklypa Grand Prix Tema 5 : SQL en entorno de programación C 28 Cursores - FETCH FETCH devuelve la siguiente tupla en la relación resultante de nuestra consulta y la coloca en una variable accesible por el lenguaje nativo EXEC SQL FETCH miprimercursor INTO :titulo, :puntuación, :votos FETCH se coloca normalmente dentro de un bucle que itera hasta que no se devuelven más filas. Esto es, SQLCODE es????. Tema 5 : SQL en entorno de programación C 29 14
15 Cursores: FETCH EXEC SQL WHENEVER NOT FOUND DO BREAK; while(1) EXEC SQL FETCH miprimercursor INTO :titulo, :puntuación, :votos; //MAS CODIGO AQUI } Fetch 1 Fetch 2 High and the Mighty, The Flåklypa Grand Prix Tema 5 : SQL en entorno de programación C 30 CURSOR - CLOSE La orden CLOSE cierra el cursor activo. EXEC SQL CLOSE miprimercursor; Tema 5 : SQL en entorno de programación C 31 15
16 Un ejemplo con todo junto #include <stdio.h> EXEC SQL INCLUDE sqlca; char titulo[256]; float fpuntuacion; int votos; char miquery[256]; EXEC SQL WHENEVER SQLERROR sqlprint; int main() // conectarse EXEC SQL CONNECT TO peliculas; if (sqlca.sqlcode) printf("error: No puedo conectar a la base (%d)\n", sqlca.sqlcode); exit(1); } Tema 5 : SQL en entorno de programación C 32 // declara cursor EXEC SQL DECLARE micursor CURSOR FOR SELECT titulo, puntuacion, votos FROM pelicula WHERE puntuacion > 9.4; EXEC SQL OPEN micursor; EXEC SQL WHENEVER NOT FOUND DO BREAK; while (1) EXEC SQL FETCH IN micursor INTO :titulo, :fpuntuacion, :votos; printf("%s %f %d\n",titulo, fpuntuacion, votos); } EXEC SQL CLOSE micursor; EXEC SQL DISCONNECT; return 0; } /* 312.pgc */ maquina:~>./312 High and the Mighty, The Flåklypa Grand Prix Tema 5 : SQL en entorno de programación C 33 16
17 Modificar datos usando cursores Los cursores pueden ser declarados como READ ONLY o UPDATE Aquellos declarados como UPDATE pueden ser usados para modificar o borrar tuplas READ ONLY es la opción por defecto para declarar un cursor que será usado para modificar la relación debe usarse la sintaxis: EXEC SQL DECLARE misegundocursor CURSOR FOR SELECT titulo, puntuacion, votos FROM peliculas WHERE puntuacion < 5 FOR UPDATE OF titulo,puntuacion,votos; Tema 5 : SQL en entorno de programación C 34 Ejemplo: modificar relaciones usando cursores #include <stdio.h> #include <stdlib.h> #include <string.h> EXEC SQL INCLUDE sqlca; #define CHECKERR(CE_STR) if (sqlca.sqlcode!= 0) printf("%s failed. Reason %ld\n", CE_STR, sqlca.sqlcode); exit(1); } EXEC SQL WHENEVER SQLERROR sqlprint; int main() char titulo[256]; float fpuntuacion; int votos; char miquery[256]; EXEC SQL CONNECT TO peliculas; CHECKERR ("CONNECT TO peliculas"); Tema 5 : SQL en entorno de programación C 35 17
18 Ejemplo: modificar relaciones usando cursores-ii /* Maniaco de Star Trek */ EXEC SQL DECLARE micursor CURSOR FOR SELECT puntuacion, votos, id FROM pelicula WHERE titulo LIKE 'Star Trek%' FOR UPDATE OF puntuacion,votos; EXEC SQL OPEN micursor; CHECKERR ("OPEN CURSOR"); do EXEC SQL FETCH micursor INTO :fpuntuacion, :votos, :id_peli printf("%f %d %d\n",fpuntuacion,votos, id_peli); if (SQLCODE!= 0) break; if(fpuntuacion < 99999) EXEC SQL UPDATE pelicula SET puntuacion = , votos = WHERE id_pelicula=:id_peli; CHECKERR ("UPDATE pelicula"); } } while ( 1 ); EXEC SQL CLOSE micursor; EXEC SQL commit; } /* 326.pgc */ Tema 5 : SQL en entorno de programación C 36 SQL Dinámico vs Estático Hasta el momento hemos visto SQL (embebido) estático SQL estático es, posiblemente, la formula más popular de programar con SQL pero sólo es usable si se conoce las consultas que una aplicación va a hacer durante la fase de diseño de la aplicación. Su principal limitación es que no permite decidir en tiempo real a que tablas o atributos (u otros objetos) nos queremos referir. Esto es: con SQL estático puedes decidir que valor va a tener un atributo en tiempo real pero no que atributo vas a cambiar (o a que base de datos vas a acceder) Tema 5 : SQL en entorno de programación C 37 18
19 EXECUTE IMMEDIATELY La forma más sencilla de ejecutar una sentencia arbitraria en SQL consiste en usar la orden EXECUTE IMMEDIATE : EXEC SQL EXECUTE IMMEDIATE [cadena_con_la_consulta] Por ejemplo: const char *stmt = "CREATE TABLE test1(...);"; EXEC SQL EXECUTE IMMEDIATE :stmt; No se pueden ejecutar sentencias que devuelvan datos de esta manera. (SELECT no esta permitido pero INSERT o UPDATE son posibles) Tema 5 : SQL en entorno de programación C 38 #include <stdio.h> int main() char resultado[11]; int resultadoind; EXEC SQL CONNECT TO peliculas; //Dos Declare secction estilo c++ Ejemplo const char *stmt = "CREATE TABLE test2 (i int, f float);"; EXEC SQL EXECUTE IMMEDIATE :stmt; EXEC SQL COMMIT; return 0; }//immediate /* 500.pgc */ Tema 5 : SQL en entorno de programación C 39 19
20 PREPARE y EXECUTE La base de datos tiene que analizar, validar y optimizar cada sentencia SQL de tipo EXECUTE IMMEDIATE. Si se planea utilizar repetidamente la misma sentencia (o variantes parametrizadas de la misma) entonces combiene preparar las consultas previamente de forma que la validación, optimización y analisis se realice una única vez por grupo de consultas. SQL dinámico cuenta con las intrucciones: PREPARE y EXECUTE para realizar esta tarea Tema 5 : SQL en entorno de programación C 40 Immediate vs Prepare/Execute Tema 5 : SQL en entorno de programación C 41 20
21 int main() /*No se comprueban errores para ahorrar espacio*/ char dbname[64] = peliculas ; char sql_string[1000]; int i; float f; /* Conectarse a la base de datos*/ EXEC SQL CONNECT TO :dbname; /*EXEC SQL SET AUTOCOMMIT TO ON; */ /* Preparara la orden INSERT */ strcpy(sql_string, "INSERT INTO test1 VALUES(?,?)"); EXEC SQL PREPARE prep_ins FROM :sql_string; /* Insertar varias tuplas (en una sola transaccion*/ EXEC SQL BEGIN; for(i = 0; i < 3; i++) switch(i) case 0: f=0.; break; case 1: f=1.; break; case 2: f=2.; break; } EXEC SQL EXECUTE prep_ins USING :i, :f; } EXEC SQL COMMIT; } /* 400.pgc */ Tema 5 : SQL en entorno de programación C 42 21
Introducción al SQL embebido
Introducción al SQL embebido Bases de Datos II 1 Índice 1. Introducción. 2. Estructura típica de un programa 3. Declaración de variables. 4. Utilización de SQL embebido. Sentencias básicas Uso de cursores
SQL EMBEBIDO FELIPE GARCÍA GÓMEZ
UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA SQL EMBEBIDO FELIPE GARCÍA GÓMEZ Profesor: Asignatura: Titulación: Fecha: D. Francisco Ruiz González Bases de Datos Ing. Sup. Informática
Desarrollo Cobol/DB2
Desarrollo Cobol/DB2 Preparación de programas Precompilador DB2 Toma los postulados SQL del programa fuente Revisa la sintaxis de SQL Crea un programa fuente traducido de las sentencias SQL Crea el DBRM
Base de Datos Oracle: desarrollo de aplicaciones
Base de Datos Oracle: desarrollo de aplicaciones Oracle Pro-C/C++ Contenidos Introducción Compilación Código incrustado Comunicación de variables Conexión Transacciones Control de errores Llamadas a procedimientos
SQL Embebido. Introducción (I)
SQL Embebido Introducción (I) SQL directo (o interactivo): las instrucciones se ejecutan directamente desde el terminal y el resultado de las consultas se visualiza en el monitor de la estación. SQL embebido:
Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Seminario 1. Conexión a Oracle
Seminario 1. Conexión a Oracle Laboratorio de Programación Curso 2007/2008 Fran J. Ruiz Emilio Sobreviela Diseño E/R usuario contrasena Usuarios 1:1 es id_cliente nombre 1:1 Clientes apellidos edad 1 Creación
Sintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;
7. CONCEPTOS AVANZADOS DE CURSORES EXPLICITOS En este capítulo veremos algunas cosas bastante útiles respecto a los cursores explícitos, como pueden ser los cursores con parámetros (que nos permitirán
TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL
TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL 5.6 MODIFICACIÓN DE LA BASE DE DATOS SQL posee comandos destinados también para modificar la base de datos, entre estos se tienen operaciones de borrado,
BASES DE DATOS AVANZADAS Transacciones en MYSQL
Ejercicio Transacciones mysql> CREATE TABLE innotest (campo INT NOT NULL PRIMARY KEY) TYPE = InnoDB; Query OK, 0 rows affected (0.10 sec) mysql> INSERT INTO innotest VALUES(1); Query OK, 1 row affected
El Lenguaje PL/SQL. Un lenguaje de propósito general orientado a la inclusión de sentencias SQL. Estructura del código PL/SQL.
Un lenguaje de propósito general orientado a la inclusión de sentencias SQL Estructura del código PL/SQL. Bloques: El Lenguaje PL/SQL sentencias PL/SQL Los ficheros terminan con el caracter
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio
Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006
Bases de Datos SQL 1 SQL Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 2 SQL + Procedural La mayoría de los DBMS actuales permiten extensiones de SQL para la creación de bloques
El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.
Vistas. El resultado de una consulta en el caso de SQL siempre es una tabla, ésta se puede hacer permanente dentro de la base de datos. En este caso se dice que esta tabla resultado es una vista o una
Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:
TEMA 7.- EL ESTANDAR SQL. El Sublenguaje de Manipulación. El Sublenguaje de Definición. El Sublenguaje de Control. El Sublenguaje Huésped. 1. El Sublenguaje de Manipulación. (Se verá en la clase de problemas)
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Oracle básico (IV): Programación en PL/SQL
Oracle básico (IV): Programación en PL/SQL El lenguaje de programación de Oracle, llamado PL/SQL, es un lenguaje portable, procedural y de transacción muy potente y de fácil manejo, con las siguientes
Los paquetes tienen dos partes: una especificación y un cuerpo que están almacenados por separado en la base de datos.
8. PAQUETES DE BASE DE DATOS Los paquetes nos van a permitir agrupar conceptos PL/SQL como pueden ser tipos, procedimientos y funciones. Por ejemplo: una paquete de Contabilidad podrá contener procedimientos
El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.
GUIA DE LABORATORIO # 5 Nombre de la Practica: Manipulación de datos Lugar de ejecución: Centro de Computo MATERIA: Base de Datos II CICLO: 02-2012 I. OBJETIVOS ESPECIFICOS Qué el estudiante: Manipule
Modulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Centro de Capacitación en Informática
Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.
En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro
USAR MYSQL EN PHP PHP tiene una librería de funciones nativas para conectarse a las base de datos MySQL. Por un lado reconoce la librería mysql y por otro mysqli. Se recomienda el uso de mysqli dado que
LENGUAJE. Tema 1 - Introducción
LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del
Ejercicios - Persistencia en Android: ficheros y SQLite
Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base
El Modo SQL de Emacs
El Modo SQL de Emacs Ismael Sanz Departamento de Ingeniería y Ciencias de la Computación Universitat Jaume I 1. Introducción Las bases de datos relacionales suelen proporcionar unos intérpretes interactivos
Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
INSTRUCTIVO DEL COMANDO MAKE
INSTRUCTIVO DEL COMANDO MAKE Introducción Un programa escrito en C está normalmente compuesto por varios archivos. Estos archivos se van modificando según se va completando o cambiando el programa. Cada
- Bases de Datos - - Diseño Físico - Luis D. García
- Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo
SQL (Structured Query Language)
SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite
Conectar Flash con Access usando MDM Zinc
Conectar Flash con Access usando MDM Zinc Con este tutorial pretendo enseñar la conexión básica entre Flash / Actionscript y Microsoft Access mediante MDM Zinc, para poder empezar a crear aplicaciones
LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)
APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde
Ataques a Aplicaciones de Bases de Datos
Ataques a Aplicaciones de Bases de Datos Esteban Martínez Fayó Argeniss (www.argeniss.com) ekoparty security conference Noviembre 2007 Buenos Aires, Argentina Agenda Introducción a la seguridad en Bases
Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1
Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER GUÍA 2 Pág. 1 I. OBJETIVOS Utilizar procedimientos almacenados Conocer el uso de los cursores
Problemas de Redes de Computadores. Conjunto de problemas 1
Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,
INSTITUTO TECNOLOGICO de la laguna Programación Orientada a Objetos en C++
5.- Herencia Múltiple. Un hecho natural es que una persona tenga más de un pariente mayor, esta situación también se puede dar en la herencia de clases, naturalmente este tipo de herencia involucra un
CONSULTAS BASICAS EN SQL SERVER
CONSULTAS BASICAS EN SQL SERVER CONSULTAS DE SELECCION Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta
Procedimientos, Funciones, Trigger y Cursores en ORACLE
Procedimientos, Funciones, Trigger y Cursores en ORACLE PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre que se
El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /
S Q Lenguaje de Consulta Estructurado L Wael Najjar / Wael Stephenson Najjar / Prieto Stephenson Prieto Contenido Parte I El Lenguaje de Consulta Estructurado. Lo que se puede hacer. Lenguaje Estandarizado.
2. Mediante la tabla pg_class, vamos a ver cómo afecta los comandos analyze y vacuum a las tablas.
Objetivos: o Catálogo o Indices o Ficheros / Discos 1. Vamos a crear una tabla y a ver dónde se encuentra su información en el catálogo. Creamos una tabla en el esquema empresa que se llame persona, con
Dev C++. Compilador de C para Windows
Práctica 6 Dev C++. Compilador de C para Windows 1. Introducción Estas notas sirven de apoyo para la realización de las prácticas de programación en lenguaje C de la asignatura Fundamentos de Informática
TEMA 3: EL LENGUAJE C: PRESENTACIÓN
TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de
6 - Recuperar algunos registros (where)
6 - Recuperar algunos registros (where) Hemos aprendido a seleccionar algunos campos de una tabla. También es posible recuperar algunos registros. Existe una cláusula, "where" con la cual podemos especificar
Figura 4.1 Clasificación de los lenguajes de bases de datos
1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje
9- Procedimientos almacenados.
Objetivos: 9- Procedimientos almacenados. Crear procedimientos almacenados para ser usados en el desarrollo de software. Recursos: Microsoft SQL Server Management Studio Guías prácticas. Base de datos
TEMA 20: CONCEPTOS BÁSICOS DE SQL
TEMA 20: CONCEPTOS BÁSICOS DE SQL OBJETIVOS DEL TEMA Introducción al lenguaje de consultas SQL. Para iniciar esta parte del curso se va a utilizar el programa SQLITE que es sencillo, multiplataforma y
Son objetos cuya función es el tratamiento de varios registros exclusivamente durante la ejecución de un programa.
TABLAS INTERNAS Qué son? Cuando desde un programa realizamos una consulta en Base de Datos a través de sentencias SQL, solemos requerir que los resultados se guarden en alguna estructura de nuestro programa,
OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas
OPTIMIZACIÓN DE CONSULTAS EN SQL Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas Análisis de Consultas y Transacciones Para elaborar el diseño físico de la base de datos debemos
Recursos de Aprendizaje
1.0 Entorno del programa 2.0 Creación de un nuevo programa 2.1 Guardar un programa o una lista de posiciones 2.2 La apertura de una lista de programa o de posiciones 2.3 El cierre de una lista de programas
Fórmulas y funciones
05... Fórmulas y funciones En este tema vamos a profundizar en el manejo de funciones ya definidas por Excel, con el objetivo de agilizar la creación de hojas de cálculo, estudiando la sintaxis de éstas
sql*plus es un programa de linea de comandos de oracle que puede ejecutar comandos sql y pl/sql de forma interactiva o mediante un script.
Que es sql plus sql*plus es un programa de linea de comandos de oracle que puede ejecutar comandos sql y pl/sql de forma interactiva o mediante un script. sql*plus opera como una herramienta relativamente
Programación Gambas 3 Prof: Mileti, P. Acceso a base de datos SQLite desde Gambas 3.
Acceso a base de datos SQLite desde Gambas 3. Si deseamos realizar una pequeña aplicación en Gambas que trabaje con una base de datos local (alojada en el mismo disco rígido que nuestra aplicación), la
Introducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
El Entorno Integrado de Desarrollo Dev-C++ (Ayuda básica para las primeras sesiones de prácticas)
El Entorno Integrado de Desarrollo Dev-C++ (Ayuda básica para las primeras sesiones de prácticas) Sobre Dev-C++ Dev-C++ es un Entorno Integrado de Desarrollo para el lenguaje de programación C/C++ que
Programación: QBASIC
1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato
8.1 Un primer bucle FOR... 5 8.2 Varias formas de utilizar el bucle FOR... 5 8.3 Calcular el factorial de un número mediante un bucle FOR...
PROGRAMACIÓN EN C++ PRÁCTICA 08 INTRODUCCIÓN A C++ SENTENCIAS DE CONTROL DEL FLUJO DE UN PROGRAMA: Ejercicio 1. Un primer programa en C++....1 Ejercicio 2. Una conversación en C++....2 Ejercicio 3. Una
Tutorial Oracle SQL Developer 1.2.1
Tutorial Oracle SQL Developer 1.2.1 Departamento de Informática Índice Í0. Introducción...3 1. Conexión y desconexión de la base de datos...3 2. Ejecución de sentencias SQL...4 3. Creación de tablas...6
MATERIAL 2 EXCEL 2007
INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta
BASE DE DATOS QUÉ ES UNA BASE DE DATOS?
BASE DE DATOS BASE DE DATOS QUÉ ES UNA BASE DE DATOS? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Actualmente la mayoría de
USANDO SQL. EN BASE DE Ooo. [email protected]
USANDO SQL EN BASE DE Ooo [email protected] Utilizaremos comandos SQL para crear una base de datos en BASE de OOo a la cual llamaremos EMPRESA DEF. Es necesario tener conocimientos básicos tanto de Base
Bases de Datos 3º Informática de Sistemas
TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS. Concepto y Funciones del SGBD. Lenguajes de los SGBD. Niveles de Abstracción. Arquitectura ANSI/SPARC. Componentes del SGBD. 1. Concepto y Funciones del SGBD.
Bases de datos relacionales y el modelo entidad-relación
Bases de datos relacionales y el modelo entidad-relación Qué es una base de datos relacional? El sistema gestor de bases de datos El modelo entidad-relación entidad, atributos y elementos (tablas, columnas
Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)
aprenderaprogramar.com Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) Sección: Cursos Categoría: Curso Bases de la programación
Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. [email protected], [email protected]
El rol del lenguaje SQL en los SGBDR y en la Relacional. [email protected], [email protected] Resumen demandas de almacenamiento y procesamiento de datos. Es el conjunto de estas dos capacidades
Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.
Necesitas organizar tus cuentas? O calcular tus notas? Miicrosofftt Excell te ayuda a hacerlo Lleva todas tus cuentas, notas, o lo que necesites, de forma automática, a través de las hojas de cálculo de
CURSORES EN SQL SERVER
Año del Centenario de Machu Picchu para el mundo CURSORES EN SQL SERVER Curso: IMPLEMENTACION DE BASE DE DATOS VII Ciclo Integrantes: Vásquez Paredes, Pablo Bustamante Auccasi, Janett Córdova Farfán, Carlos
5- Uso de sentencias avanzadas
Objetivos: 5- Uso de sentencias avanzadas Elaborar sentencias de manejo de datos. Recursos: Microsoft SQL Server Management Studio Guías prácticas. Introducción: Después de trabajar con las sentencias
Lic. Vladimir Cotaquispe Gutierrez PROGRAMACIÓN PL/SQL I - 1. Copyright 2008, Oracle. All rights reserved.
Lic. Vladimir Cotaquispe Gutierrez PROGRAMACIÓN PL/SQL I - 1 INTRODUCCIÓN PL/SQL: Lenguaje de programación procedimental estructurado en bloques que amplía el lenguaje estándar SQL. Permite: Manipular
Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente
Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente 3 o curso de Ingeniería Técnica en Informática de Sistemas 13 de abril de 2007 El objetivo de esta práctica es realizar una
PRÁCTICAS DE GESTIÓN GANADERA:
PRÁCTICAS DE GESTIÓN GANADERA: MANEJO DE HOJA DE CÁCULO (EXCEL) 1. INTRODUCCIÓN AL MANEJO DE EXCEL La pantalla del programa consta de una barra de herramientas principal y de una amplia cuadrícula compuesta
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 5 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 5 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi
Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular.
: Programación 2 Curso 2014-2015 Índice 1 2 3 (1/2) Cuando el programa crece es necesario dividirlo en módulos Cada módulo agrupa una serie de funciones con algo en común El módulo puede reutilizarse en
Tema: Sobrecarga de Operadores.
Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen
Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.
Los punteros en C 1 Introducción Cómo se organiza la memoria asociada a un programa? Como una colección de posiciones de memoria consecutivas. En ellas se almacenan los distintos tipos de datos, que ocupan,
Programación SQL. Lucio Salgado Diciembre 2008
Programación SQL Lucio Salgado Diciembre 2008 1 Gestionadores de Bases de Datos (DBMS) Es el software que permite administrar bases de datos, a través de ella el usuario puede usar los datos con mucha
Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:
(3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores
Bases de Datos / Elementos de Bases de Datos 2011. Que es un Stored Procedure? Stored Procedures: Ventajas
Bases de Datos / Elementos de Bases de Datos 2011 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Que es un Stored
CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.
CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia
Tema 4. Manipulación de datos con SQL
Tema 4 Manipulación de datos con SQL Índice Tema 4 1. Inserción de registros. Consultas de datos anexados. 2. Modificación de registros. Consultas de actualización. 3. Borrado de registros. Consultas de
Preliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo
APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5
APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5 APLICACIONES WEB BASADAS EN PHP Y MYSQL Una aplicación web es básicamente un programa escrito sobre una página web, generalmente en lenguaje
Acceso a bases de datos en Perl
Acceso a bases de datos en Perl Martín Ferrari 16 de Julio de 2003 Resumen Una introducción a la interfaz de bases de datos DBI de Perl. 1. Qué es una Base de Datos El concepto de base de datos es simplemente
Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL
Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL 1. Conexión con la Base de Datos: se debe realizar a partir de algún programa que implemente el protocolo SSH (Secure Shell), a partir
Se guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
CONSULTAS MULTITABLAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE
CONSULTAS MULTITABLAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS MULTITABLAS Hasta ahora hemos visto consultas que obtienen los datos de una sola tabla,
La ventana de Microsoft Excel
Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft
PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:
PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los
Estructuras de Datos y Algoritmos Tecnólogo en Informática
Estructuras de Datos y Algoritmos Tecnólogo en Informática INSTRUCTIVO DEL COMANDO MAKE ESTRUCTURAS DE DATOS Y ALGORITMOS - TECNÓLOGO EN INFORMÁTICA 1 Contenido Introducción... 3 El archivo makefile...
Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones
Contenidos 1. Justificación del uso de funciones. 2. Declaración de funciones: prototipos. 3. Prototipos y ficheros de cabecera. 4. Polimorfismo (sobrecarga de funciones). 5. Argumentos formales y actuales.
Manual de OpenOffice Impress
Manual de OpenOffice Impress. Capítulo 4. Trabajando con gráficos, esquemas y plantillas 1 Manual de OpenOffice Impress Capítulo 4: Trabajando con gráficos, esquemas y plantillas Este material es una adaptación
Introducción al Dev-C++
Introducción al Dev-C++ El Entorno de Desarrollo Dev-C++ http://www.bloodshed.net/devcpp.html Incluye todas las operaciones necesarias para crear o modificar un programa. Posee un editor, un compilador
Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE
Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar
accesos a una base de datos desde un programa escrito en un lenguaje de alto nivel (C, Pascal, COBOL,...). Nosotros vamos a utilizar SQL inmerso en C
SQL INMERSO SQL inmerso, permite e utilizar el lenguaje SQL para realizar accesos a una base de datos desde un programa escrito en un lenguaje de alto nivel (C, Pascal, COBOL,...). Nosotros vamos a utilizar
Curso de PHP con MySQL Gratis
Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este
Bases de Datos / Elementos de Bases de Datos 2015
Bases de Datos / Elementos de Bases de Datos 2015 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Stored Procedures
PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.
PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar
