.

Categoría 'Bases de Datos'


Oct 27 2007

Concatenar Campos en MySQL

Share This

Published by Webmaster under Bases de Datos

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 3 out of 5)
Loading ... Loading ...

2 responses so far

La función CONCAT de MySQL permite concatenar campos como uno solo.
Por ejemplo:

MySQL:
  1. SELECT CONCAT(YEAR(fecha_inicio),‘-’, YEAR(fecha_final)) as Ciclo FROM tabla ;

Lo que nos dará:
2001-2005


 


Oct 14 2007

Inyección de código SQL

Share This

Published by Webmaster under Bases de Datos

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Deja tu Comentario

ms_sql_logo.gifYa vimos como evitar la inyección de código SQL de una forma simple.
La inyección de código SQL consiste en la modificación del comportamiento de nuestras consultas mediante la introducción de parámetros no deseados en los campos a los que tiene acceso el usuario.

Este tipo de errores puede permitir a usuarios malintencionados acceder a datos a los que de otro modo no tendrían acceso y, en el peor de los casos, modificar el comportamiento de nuestras aplicaciones. Clic Para Continuar »


 


Jul 23 2007

Cómo arreglar: WordPress database error: [Unknown column ‘link_count’ in ‘where clause’]

Share This

Published by Webmaster under Bases de Datos, Documentos

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Deja tu Comentario

La mayoría ya arreglaron el problema que tuvieron al actualizar a la versión 2.1 o similar de Wordpress, pero todavía he encontrado comentarios en otros blogs donde no lo han solucionado.

Algunos solamente alteraron la tabla de categorías así:

MySQL:
  1. ALTER TABLE `wp_categories` ADD `link_count` BIGINT( 20 ) NOT NULL DEFAULT ‘0′,
  2. ADD `posts_private` TINYINT NOT NULL DEFAULT ‘0′,
  3. ADD `links_private` TINYINT NOT NULL DEFAULT ‘0′;

 

Y agregando la tabla

MySQL:
  1. CREATE TABLE `wp_link2cat` (
  2.   `rel_id` BIGINT(20) NOT NULL AUTO_INCREMENT,
  3.   `link_id` BIGINT(20) NOT NULL DEFAULT ‘0′,
  4.   `category_id` BIGINT(20) NOT NULL DEFAULT ‘0′,
  5.   PRIMARY KEY  (`rel_id`),
  6.   KEY `link_id` (`link_id`,`category_id`)
  7. ) ENGINE=MyISAM ;

 

Enlaces que pueden interesarte:

Directorio


 


Jun 04 2007

Diferencias Entre MyISAM y InnoDB

Share This

Published by Webmaster under Bases de Datos

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

2 responses so far

  • ISAM
  • MyISAM
  • InnoDB
  • DBD (Berkeley Database)

El servidor de bases de datos MySQL soporta distintos tipos de tablas, como las antes mencionadas, de éstas, InnoDB y MyISAM merecen una atención especial y mencionaremos algunas diferencias.

Las tablas del tipo InnoDB están estructuradas de forma distinta que MyISAM, ya que se almacenan en un sólo archivo en lugar de tres, y sus principales características son que permite trabajar con transacciones, y definir reglas de integridad referencial.

Las transacciones aportan una fiabilidad superior a las bases de datos. Si disponemos de una serie de consultas SQL que deben ejecutarse en conjunto, con el uso de transacciones podemos tener la certeza de que nunca nos quedaremos a medio camino de su ejecución.

Para este fin, las tablas que soportan transacciones, como es el caso de InnoDB, son mucho más seguras y fáciles de recuperar si se produce algún fallo en el servidor, ya que las consultas se ejecutan o no en su totalidad. Por otra parte, las transacciones pueden hacer que las consultas tarden más tiempo en ejecutarse.

Por ejemplo:

Al ejecutar sentencias de modificación de datos SQL en MyISAM, y se produce algún corte en la conexión y las consultas no se han ejecutado completamente, puede que queden sólo parte de los registros actualizados y no sabremos qué registros no se han actualizado.

En cambio, utilizando InnoDB, si se produce un corte mientras se ejecuta la consulta SQL no se aplicarán los cambios y podremos volver a ejecutarla, es decir, garantiza que una transacción se ejecute íntegramente, de lo contrario la anula.

MyISAM no permite integridad referencial (uso de claves foráneas para “enlazar” varias tablas), en cambio InnoDB sí permite este tipo de relaciones.

InnoDB es más eficiente que MyISAM en cuanto a tiempos de respuesta para operaciones habituales, tales como INSERT, UPDATE, etc.