Академический Документы
Профессиональный Документы
Культура Документы
Contenido
JOINS (inner join: identificar combinaciones de dos campos en tablas distintas) ............................ 11
Como el único usuario que trae por default MariaDB es root y sin contraseña, debes tener cuidado
con tu vecino Kraquerto Pérez que está siempre listo para romper toda instalación posible, y
postear en el foro de Latyn Jaquers su nueva hazaña sobre ti. “Bueno, te tienes que anticipar a
Kraquerto”, le dice Chimpan. Haz lo siguiente en la línea de comandos cuando vas a ejecutar
MyMa por primera vez.
“C:\MariaDB\bin\mysqld.exe” -- install
lo que hace la línea anterior es lo siguiente: -u root es el usuario root con el que vas a entrar, y
mysql es el nombre de la base de datos que quieres abrir directamente. MyMa ya trae información
específica sin protección sobre el servidor en la BD mysql, y Kraquerto lo sabe muy bien. Una vez
dentro del entorno creado por mysql.exe ejecutamos las siguientes instrucciones.
SET PASSWORD=PASSWORD(‘anaconda’);
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Kraquerto va a pasar un muy mal rato tratando de reventar tu base de datos… a menos que
ingrese a tu sistema por algún hueco del Shell y pueda ver el historial de tus comandos, pero no
verá allí lo que escribiste dentro del entorno de mysql.exe, así que… va duro, a menos que le digas
que la clave es un animal que se arrastra y que te aprieta hasta matar… y le tomará 15 minutos.
Imagina que Pancracio Alberto acaba de crear una base de datos llamada “macarrones” y que
aprendió que no quiere utilizar al usuario root para administrar la BD. Entonces debe crear otro
usuario para ese fin. Ese usuario de MyMa no tiene nada que ver con los usuarios del SO Linux o el
SO Windows. Vamos a crear un usuario llamado ‘fabulosito’ con la clave ‘password99’ y acceso a
total a la base de datos ‘macarrones’ con el siguiente ejemplo de uso de GRANT:
Tabla: fiestas
Columnas: Nombre_campo Tipo Tamaño Atributos
Paciero Cadena 30 no nulo
Celular Cadena 15 no nulo
Email Cadena 35 no nulo
Clase_paciero Cadena 14 no nulo, enum
id Entero + no nulo, incremento, llave
Pancracio Alberto ha comenzado a creer, y en unos dos años será todo un Jedi si le dedica 30 mins
diarios a MyMa, pero si le dedica más tiempo por día llegará a ser un Jedi mucho antes de ese
tiempo y no le preguntará ya nada a Kraquerto ni a Chimpan Dolfo. Está ansioso por añadir datos
para que Kraquerto lo sepa, pues tiene pensado hasta colocar la BD en un formulario en Internet
para que Kraquerto y otros amigos lo ayuden a anotar a los amigos y amigas que irán a su fiesta.
En el INSERT anterior, Pancry no incluyó el campo ‘id’ porque la base de datos lo crea en el registro
e incrementa ‘automágicamente’ cada vez. En el campo ‘clase_paciero’ al colocar el valor 3, no se
almacena el número 3, sino el valor que se ocupa del ENUM en la posición 3, contando desde 1.
Ahora Pancry añade un segundo registro y luego muestra todo lo ingresado en la pantalla:
Se pueden colocar todos los campos o seleccionar sólo algunos campos en el orden en que lo
deseamos.
Toda sentencia que lleve AND debe ser cierta en cada miembro para que sea verdadera toda, es
decir, cada miembro comparado debe ser cierto. Si un solo miembro de la comparación resulta
falso, toda la operación se considera falso, aunque todos los demás miembros restantes fueran
verdaderos.
Pancracio Alberto tiene 21 años. Con este solo hecho y algunas cosas que conocemos de él ya
podemos crear algunas conclusiones (he aquí la importancia de la lectura comprensiva):
En el primer IF “la cosa” que se va a hacer siempre se realiza porque todo es cierto… a menos que
cambie de sexo.
En el segundo IF “la cosa” que se quiere hacer no resulta a la primera porque algo la hace falso; el
primer miembro, por eso, se ejecutará siempre la segunda acción, pues algo falso hizo que todo lo
demás aunque cierto, ya no fuera verdadero.
En los casos de OR con que algún miembro cualquiera sea cierto, es suficiente para que toda la
sentencia de comparación sea verdadera. Eso quiere decir que Pancracio Alberto puede construir
“Tablas de la verdad” con todo lo que sabe de algo. Estas tablas son una táctica útil para tomar
decisiones reales.
Para el desbloqueo:
UNLOCK TABLES;
MyMa bloquea por default (en InnoDB), sólo en el registro que se tiene abierto. MyISAM bloquea
toda la tabla en uso. Para bloquear la tabla de modo exclusivo y evitar que Kraquerto inserte o
duplique también, usa la siguiente instrucción:
Cualquier otro usuario deberá esperar hasta que se libere el bloqueo para poder escribir o leer de
las tablas bloqueadas, porque los bloqueos de escritura tienen prioridad sobre los de lectura.
SHOW CREATE TABLE fiestas; Podrás ver el código, pero con alguna basurita
Muchas veces Pancracio Alberto usará un nombre de campo o columna que estará repetido en
más de una tabla. Por tal razón será necesario utilizar calificadores y alias para resolver esta
ambigüedad. Desde un principio les mencioné que es más “smart” utilizar una semántica de
nombres de campos que describan su utilización, especialmente en tablas diferentes. Por ejemplo
la tabla ‘nombres’ y la tabla ‘pagos’ pueden tener repetido el campo ‘id’. ¿Qué harías si tienes 25
tablas que repiten un mismo nombre de campo? ¿Qué le preguntarías a Kraquerto? Ahora
veremos qué hacer.
Pancracio Alberto puede crear una nueva tabla que le informe qué personas han realizado pagos
para cooperar con su fiesta. Todos sabemos que los Gorreros y los Limpios nunca aportan para las
fiestas, sino, dejarían de ser Gorreros y Limpios y habría que hacer un UPDATE al registro
correspondiente. Pancry puede saber cuánto ha aportado cada uno y cuál es el total global de los
aportes.