You are on page 1of 5

Una consulta SQL bsica puede constar con un mximo de seis clusulas, de las cuales slo dos son

obligatorias (SELECT y FROM). Las clusulas se especifican en el siguiente orden: SELECT < lista de atributos > FROM < lista de tablas > WHERE < condicin > GROUP BY < atributo(s) de agrupacin > HAVING < condicin de agrupacin > ORDER BY < lista de atributos > SELECT: indica qu atributos o funciones se van a recuperar. FROM: especifica todas las relaciones (tablas) que se necesitan en la consulta. WHERE: especifica las condiciones, si es que hacen falta, para seleccionar tuplas de esas relaciones, incluyendo las condiciones de reunin. GROUP BY: especifica atributos de agrupacin. HAVING: especifica una condicin que deben cumplir los grupos seleccionados, no las tuplas individuales. Las funciones agregadas integradas COUNT, SUM, MIN, MAX y AVG se usan junto con la agrupacin. ORDER BY: especifica un orden para presentar el resultado de una consulta.

Estos son algunos comandos utiles usados por MySQL para manejar bases de datos. Es un listado basico donde no hay mucha explicacion. Simplemente es una guia para comenzar a trabajar con la base de datos Mysql. Obtener informacion sobre la base de datos Mysql:

show databases; Listar todas las bases de datos. connect [database]; Conectarse a esa base de datos. show tables; Listar todas las tablas de una base de datos. show table status; Muestra informacion sobre las tablas de la base de datos. describe [table]; Muestra la estructura de una tabla de la base de datos.

Manejo de bases de datos Mysql:

drop table [table]; Elimina la tabla, incluyendo registros y estructura.

drop table if exists [table]; Elimina la tabla de la base de datos, pero antes verifica que exista. truncate table [table]; Elimina los registros, pero mantiene la esrtuctura de la tabla. rename table [table] to [nuevo nombre de tabla]; Renombra una tabla de la base de datos.

Algunos comandos utiles para cunsultas Mysql:

select * from [table] limit [numero]; Muestra los registros desde el 1 hasta [numero]. Ej. select * from tabla limit 10; Muestra los 10 primeros registros. select * from [table] limit [numero inicio],[numero]; Muestra los registros desde el numero de inicio hasta numero inicio + numero. Ej. select * from tabla limit 11,10; Muestra desde registro 11 hasta el 20.

Bases de datos Mysql en consola:


$ mysqladmin -u -p create crear base de datos. $ mysqladmin -u -p drop borrar la base de datos. $ mysqladmin -u root -p proc listar procesos en ejecucion en el servidor de bases de datos Mysql. $ mysqladmin -u root -p -i 5 status verificar status cada 5 segundos. $ mysqldump opt -u -h -p > /path/to/file Exportar base de datos a un archivo. $ mysqldump opt -u -h all-databases -p > /path/to/file Exportar TODAS las bases de datos a un archivo. $ mysql -h -u -p < /path/to/file Importar un archivo a la base de datos a mysql $ mysqlcheck -o -u root -p all-databases Optimizar las bases de datos mysql.

Verificacion y reparacion de bases de datos erroneas:


check table [table]; Verificar la tabla. repair table [table]; Reparar la tabla rota.

Entre las diferencias que conozco estan las siguientes: Procedimientos almacenados * Funciones * Consultas - Estan compitalados - Estan compitalados No estan compitalados - Pueden devolver o no valores - Siempre devuelven valores - No se pueden ser select en valores (Evitan injection) No envita sql injectio

- Solo pueden devolver valores - Debuelven valores, tablas - Pueden poseer o ejecutar funciones No pueden tener procedimientos almacenados

Prctica 5: Procedimientos y Funciones en C++.


En su concepcin ms simple, un procedimiento es una construccin que permite dar nombre a un conjunto de sentencias y declaraciones asociadas que se usan para resolver un subproblema dado. Los procedimientos no siempre realizan la misma funcin y pueden recibir parmetros. No repetir cdigo no es la nica razn para estructurar un programa usando procedimientos. Puesto que un subproblema puede codificarse como un procedimiento, un problema complejo puede dividirse en subproblemas ms simples, quienes a su vez pueden ser de nuevo subdivididos hasta llegar a la descripcin de subproblemas muy simples que se puedan codificar como procedimientos escritos en C++. La filosofa que acabamos de presentar se denomina Refinamiento Progresivo o por pasos, diseo descendente, Programacin Top-Down o bien Divide y Vencers. En C++ no hay diferencias entre procedimientos y funciones: todo son funciones, con la diferencia de que un procedimiento es una funcin que no devuelve nada (void). Tanto procedimientos como funciones, deben ser declarados antes de poder ser usados. Esto es posible de dos formas: indicando su cabecera (nombre, parmetros y tipo de retorno) despus de la zona de constantes y antes del programa principal, o bien escribir el procedimiento o la funcin entera en dicha zona. Nosotros recomendamos la primera opcin, ya que evita problemas de orden de implementacin para solucionar problemas de mbito. Mientras que un procedimiento ejecuta un grupo de sentencias, una funcin adems devuelve un valor al punto donde se llam. Una llamada a una funcin puede aparecer como operando de alguna expresin. El valor de la funcin se usa, por tanto, para calcular el valor total de la expresin. El uso de una funcin puede ser algo como 2.0+Maximo(3.0,p)/6.90, de forma que la llamada devolver el mayor valor entre 3.0 y el contenido de la variable p y con dicho valor se evaluar el resto de la expresin. Otro ejemplo puede ser: p = Maximo( 3.0, p ).

Obsrvese que el tipo del resultado que devolver la funcin aparece declarado en la cabecera sustituyendo a la palabra void que identifica a un procedimiento. En este sentido, en C++, puede verse a un procedimiento como un tipo especial de funcin que devuelve un valor void (nulo). Las funciones en C++ pueden devolver cualquier tipo menos arrays. Toda funcin debe ejecutar una sentencia return.

6.2) Variables locales y globales. Las reglas de mbito de un lenguaje son las reglas que controlan si un fragmento de cdigo conoce o tiene acceso a otro fragmento de cdigo o de datos.

Una variable local es aquella cuyo mbito se restringe a la funcin que la ha declarado se dice entonces que la variable es local a esa funcin. Esto implica que esa variable slo va a poder ser manipulada en dicha seccin, y no se podr hacer referencia fuera de dicha seccin. Cualquier variable que se defina dentro de las llaves del cuerpo de una funcin se interpreta como una variable local a esa funcin. Cuando una variable x es local a una funcin func1, significa que la funcin func1 es la propietaria de dicha variable, y puede acceder a ella y modificarla. Si cualquier otra funcin del programa necesita conocer el valor de la variable x, es la funcin func1 la que debe transferir el valor de x a travs del paso de argumentos en la llamada a la funcin. Si adems esta funcin desea modificar el valor de dicha variable, entonces tendr que devolver el nuevo valor a func1, y ser func1 quien se encargue de asignar el valor devuelto a su variable x. El argumento formal (los veremos en la siguiente seccin) mbito de un argumento formal es el mismo que el de una variable local; el argumento formal definido en la cabecera de una funcin slo podr ser accedido dentro del cuerpo de dicha funcin, y no en otros lugares del programa.

Una variable global es aquella que se define fuera del cuerpo de cualquier funcin, normalmente al principio del programa, despus de la definicin de los archivos de biblioteca (#include), de la definicin de constantes simblicas y antes de cualquier funcin. El mbito de una variable global son todas las funciones que componen el programa, cualquier funcin puede acceder a dichas variables para leer y escribir en ellas. Es decir, se puede hacer referencia a su direccin de memoria en cualquier parde del programa.

El uso de variables globales no es aconsejable a pesar de que aparentemente nos parezca muy til, esto se debe a varias razones fundamentales: Legibilidad menor. Nos condiciona en muchos casos que el programa slo sirvapara un conjunto de casos determinados. El uso indiscriminado de variables globales produce efectos colaterales. Esto sucede cuando existe una alteracin no deseada del contenido de una variable global dentro de una funcin, bien por invocacin, bien por olvidar definir en la funcin una variable local o un parmetro formal con ese nombre. La correccin de dichos errores puede ser muy ardua. Atenta contra uno de los principios de la programacin, la modularidad. El bajo acoplamiento supone no compartir espacios de memoria con otras funciones, y potenciar el paso de informacin (llamadas) para que la funcin trate la informacin localmente. Las variables declaradas dentro de una funcin son automticas por defecto, es decir, slo existen mientras se ejecuta la funcin. Cuando se invoca la funcin se crean estas variables en la pila y se destruyen cuando la funcin termina. La nica excepcin la constituyen las variables locales declaradas como estticas ( static ). En este caso, la variable mantiene su valor entre cada dos llamadas a la funcin an cuando su visibilidad sigue siendo local a la funcin. Una funcin siempre es conocida por todo el programa, excepto cuando se declara como esttica, en cuyo caso slo la podrn utilizar las funciones del mismo mdulo de compilacin.

En C, todas las funciones estn al mismo nivel de mbito. Es decir, no se puede definir una funcin dentro de otra funcin. Esto es por lo que C no es tcnicamente un lenguaje estructurado en bloques.

Tambin puede suceder que en un mismo mbito aparezcan variables locales y globales con el mismo nombre. Cuando sucede esta situacin, siempre son las variables locales y argumentos formales los que tienen prioridad sobre las globales. Para ver reflejado todo esto ms grficamente se muestra un ejemplo a continuacin:

You might also like