Archivo mensual de Marzo del 2008
Archivado el Martes 25 de Marzo del 2008

Test 7
Supongamos la siguiente serie de comandos:
MySQL:
-
CREATE TABLE pruebas (
-
key1 INT NOT NULL PRIMARY KEY,
-
key2 INT NOT NULL UNIQUE
-
);
-
-
INSERT INTO pruebas VALUES (1,1), (2,2);
La tabla contiene ahora (1,1) y (2,2). Ahora hacemos
MySQL:
-
REPLACE INTO pruebas VALUES (1,3);
Pregunta 1: La tabla contiene ahora (1,3) y (2,2). Explica por qué.
Ahora ejecutamos:
MySQL:
-
REPLACE INTO pruebas VALUES (1,2);
Pregunta 2: La tabla ahora contiene una sóla columna (1,2). ¿ Por qué ?
Pregunta 3: ¿ Cual es el valor de "Rows affected" en tu cliente después de las dos consultas REPLACE ?
Pulsa para Mostrar/Ocultar la solución
Respuesta 1: REPLACE eliminará cualquier registro que provoque una violación de la PRIMARY KEY o UNIQUE KEY, antes de insertar los nuevos datos. Ya que el primer registro (1, 3) entra en conflicto con la PRIMARY KEY (1,1), ese registro es borrado y (1,3) se insertará en su lugar.
Respuesta 2: Ahora tenemos dos conflictos: El primer registro (1,2) provoca una violación de la PRIMARY KEY y el segundo registro provoca una violación de la clave UNIQUE. Asi que ambos deben ser borrados para "hacer sitio" al nuevo registro.
Respuesta 3: El primer REPLACE afecta a dos registros (uno eliminado, uno añadido). El segundo replace afecta por su parte a tres registros (dos eliminados, uno añadido). Más información sobre la sintaxis de REPLACE disponible aqui.
Traducido con permiso expreso de Mysql Test Quiz 7 Original
Creado por Carsten H. Pedersen
Otros Test anteriores:
Categorías Bases de datos, Miscelánea, MySQL | 1 comentario »
Archivado el Lunes 24 de Marzo del 2008
- Truequi es una web social que nos permite intercambiar objetos, pujar por ellos y hacer amigos, sin costo alguno.

- Fotoflexer es un editor de imágenes online con un set de funciones y efectos realmente impresionante

- .htaccess editor es una herramienta online que nos permite generar rápidamente un archivo .htaccess para nuestra web, para fijar redirecciones, usuarios/contraseñas, etc... de forma simple, sin tener que recurrir a la documentación de apache.

- MyLiveSignature es un servicio web que nos permite crear firmas personalizadas, fijando tipo de letra entre más de 120, colores, inclinación, etc... útil para resultados rápidos y resultones.

- WaveMaker Visual Ajax Studio es una aplicación que nos permite desarrollar aplicaciones web de forma visual, mediante Drag & Drop

Categorías Clicking | Sin comentarios »
Archivado el Lunes 24 de Marzo del 2008

Test 6
La siguiente consulta es perfectamente válida y hace lo que se espera de ella:
MySQL:
-
SELECT DATE(hora_creacion) AS DATE,
-
COUNT(*) AS numero_altas
-
FROM altas
-
GROUP BY fecha
-
ORDER BY fecha;
En MySQL, podemos ahorrarnos parte de la consulta anterior, y conseguir exactamente el mismo set de resultados. ¿ Qué parte podemos omitir ?
Pulsa para Mostrar/Ocultar la solución
Podemos omitir el ORDER BY. En MySQL, cuando usamos GROUP BY, los registros se ordenan de forma automática según los valores de las columnas indicadas en el GROUP BY, como si tuviésemos un ORDER BY en esas mismas columnas. De hecho, debemos indicar ORDER BY NULL si queremos evitar este comportamiento por defecto. Además, podemos indicar directamente ASC o DESC sobre el GROUP BY para hacer que la ordenación siga dichos parámetros. Más información aqui.
Traducido con permiso expreso de Mysql Test Quiz 6 Original
Creado por Carsten H. Pedersen
Otros Test anteriores:
Categorías Bases de datos, Miscelánea, MySQL | 2 comentarios »
Archivado el Domingo 23 de Marzo del 2008
El cantautor Fernando Álvarez interpretando su canción "Quiero un novio" en el Café Alcaraván, Salamanca.
Categorías Humor, Música | Sin comentarios »
Archivado el Domingo 23 de Marzo del 2008
Las estadísticas son como las minifaldas:
te dan algunas ideas, pero esconden lo más importante.
Ebbe Skovdahl, entrenador de fútbol noruego
Via Dile que es Pelé
Categorías Humor, Opiniones ajenas | Sin comentarios »
Archivado el Domingo 23 de Marzo del 2008
No tengo pregunta secreta, ni captcha... y mucho menos contraseña.
A mi un login me reconoce por mi porte.
Categorías Humor | Sin comentarios »
Archivado el Domingo 23 de Marzo del 2008

Un shumino e’ como un billete d’mil pela,
que po’ mu’ arrugao que eté ziempre tié
un való innntrinsico...
Makinavaja
Categorías Humor, Miscelánea | Sin comentarios »
Archivado el Miércoles 19 de Marzo del 2008
Fernando Álvarez y Alfredo Pérez en el "Savor", Salamanca el 13 de febrero de 2008
Categorías Humor | Sin comentarios »
Archivado el Martes 18 de Marzo del 2008
Ensalada mixta de enlaces PHP:
Categorías Clicking, Programación | Sin comentarios »
Archivado el Martes 18 de Marzo del 2008

Test 5
Este Test es cortesia de Lasse Christiansen, aparentemente residente de Japón.
Imaginemos los siguientes comandos:
MySQL:
-
CREATE TABLE test (
-
id VARCHAR(1) NOT NULL,
-
PRIMARY KEY (id)
-
);
-
INSERT INTO test VALUES ('0'), ('1'), ('2'), ('a'), ('b');
Los INSERT funcionan como deben y el resultado es que ahora tenemos los registros ‘0′, ‘1′, ‘2′, ‘a’ y ‘b’.
Ahora hacemos:
MySQL:
-
DELETE FROM test WHERE id=0;
Y se borran tres registros... ¿ Por qué ?
Pulsa para Mostrar/Ocultar la solución
Respuesta: Este comportamiento es intencionado. Debemos fijarnos que el 0 de la sentencia DELETE no está entrecomillado, y cuando comparamos valores de diferentes tipos (en este caso caracteres de texto y un entero), MySQL intenta complacernos convirtiendolos primero a FLOAT* y luego haciendo la comparación de la sentencia WHERE . En el ejemplo mostrador, las cadenas ‘0′, ‘a’ y ‘b’, asi como el entero 0 con el que comparamos, se convierten en 0.0 al hacer la comparación como FLOAT — y por tanto son iguales y entran en la condición de borrado.
*Esto es simplificar las cosas un poco demasiado, en otros casos podriamos encontrar valores NULL y/o de tipo temporal en medio de nuestra consulta. Más información aqui.
Traducido con permiso expreso de Mysql Test Quiz 5 Original
Creado por Carsten H. Pedersen
Otros Test anteriores:
Categorías Bases de datos, Miscelánea, MySQL | 2 comentarios »