El fundamento de nuestro cosmos digital es una acumulación de datos que aumenta sin cesar. Como consecuencia, los sistemas de gestión de bases de datos como MySQL son los elementos centrales de Internet y del planeta interconectado. Estos permiten procesar grandes cantidades de datos de manera electrónica, archivarlos con coherencia y guardarlos de forma permanente. Para esto, los datos complejos se descomponen en cantidades manejables y, en función de las necesidades, se relacionan entre sí. En nuestro manual de MySQL para principiantes te presentamos los principios básicos de la gestión de bases de datos y te mostramos a través de ejemplos cómo puedes optimizar la gestión de los datos de tu proyecto web con MySQL.
MySQL se cuenta junto a Oracle y Microsoft SQL Server entre los
sistemas de gestión de bases de datosrelacionales más populares a escala mundial (encuentras un listado actual en). El software desarrollado en 1994 por la empresa MySQL AB cuenta el día de hoy en día con el patrocinio de
Oracle Corporationy se comercializa bajo un
sistema de licencias dual.Asimismo, además de la edición Enterprise propietaria, Oracle ofrece una versión de código abierto con una licencia GPL.
Esta licencia dual ofrece a las compañías la posibilidad de desarrollar aplicaciones propias basándose en MySQL sin tener que someterlas a la licencia de código abierto. En la comunidad open source, no obstante, la absorción de MySQL por parte de Oracle es objeto de críticas.
MySQL está escrito en C y C++ y, además, está provisto de un
analizador sintáctico de SQLbasado en Yacc con un tokenizador (escáner léxico) propio. También, el sistema de gestión de bases de datos se resalta por su
amplio soporte de sistemas operativos.
La abreviatura SQL procede de “Structured Query Language”, un lenguaje de programación que sirve para administrar estructuras de bases de datos. Entre las posibles operaciones se hallan la consulta, integración, actualización y eliminación de datos existentes.
En el ámbito del desarrollo web, la integración del proyecto MySQL en el catálogo de productos de Oracle es objeto de falta de confianza y crítica debido, primordialmente, al incremento incesante de las diferencias entre la versión MySQL con licencia GPL y el producto Enterprise de pago. Las nuevas funciones del sistema de gestión de bases de datos son cada vez más frecuentes, si bien solo en la versión propietaria. Las
bases de datos de errores no públicasy los tests insuficientes hacen suponer a la comunidad que, bajo las alas del software Oracle, el proyecto open source no goza de igualdad de condiciones, lo que desencadena un apoyo cada vez menor por la parte de esta.
Ya en el año dos mil nueve, el equipo de desarrollo primordial en torno a Michael “Monty” Widenius, inventor de la base de datos MySQL, le dio la espalda al popular sistema de bases de datos y puso en marcha
con MariaDB un fork de código abierto de MySQL.A finales de dos mil doce, distribuciones Linux como Fedora, OpenSUSE, Slackware y Arch Linux fueron las primeras en sustituir MySQL por MariaDB como instalación estándar. Un enorme número de proyectos open source, de empresas de software y plataformas web conocidas prosiguieron el mismo ejemplo, entre ellas Mozilla, Ubuntu, Google, Red Hat Enterprise Linux, Web of Trust, Team Speak, la Fundación Wikimedia y XAMPP.
Aún hoy queda patente que, en comparación con la versión de MySQL de código abierto, MariaDB sigue desarrollándose. Por tanto, se puede suponer que el fork vaya a superar pronto a su proyecto madre.
En el campo del software se puede charlar de un fork como una rama de desarrollo que brota de la bifurcación de un proyecto (en su mayoría, de fuente abierta). Un fork se crea sobre el código fuente del proyecto madre y se desarrolla en un proyecto de seguimiento independiente.
Hoy en día, la gestión electrónica de datos tiene lugar principalmente con
sistemas de bases de datos (SBS), que están formados por 2 componentes, la propia
base de datos (BD)y el
sistema de gestión de la base de datos (SGBD):
El siguiente gráfico muestra una presentación esquemática de un Sistema de Bases de Datos:
Según su definición, MySQL es un SGBD relacional. Esto quiere decir que la totalidad de los datos que utiliza MySQL se guarda en tablas relacionadas entre sí a través de claves (keys).
Veamos cómo se puede ilustrar esto con un caso sencillo. A continuación aparecen las tablas
autoresy
obras:
Todas las tablas de una base de datos relacional están formadas por columnas y filas, y cada columna está diseñada para un
atributodeterminado. En la tabla
autoresse encuentran, por servirnos de un ejemplo, los atributos
id, nombrey
apellido.Las filas de una tabla están designadas como
rowsy cada una de ellas contiene un conjunto de datos, el cual viene identificado (numerado), por norma general, por medio de una
clave primaria. El tipo de atributo establecido como clave primaria se define en el momento de crear la tabla. El requisito es que la clave primaria permita una asignación inequívoca, de forma que esta solo puede emplearse una vez en la columna. Para ello se recomienda una numeración en serie vía
ID.
La tabla
obraspresenta, además de la
clave primaria
id_obras,
id_autorescomo
clave foránea(foreign key). Esta crea una relación entre las dos tablas y enlaza los conjuntos de datos de una tabla con los de la otra. Cuando se establece una conexión entre dos tablas de una base de datos relacional se puede charlar de un
join.Esta conexión podría tener lugar con la próxima consulta a la base de datos: “carga todas las obras del autor John Ronald Reuel Tolkien con la fecha de la primera publicación”.
Tolkien ha sido clasificado en la tabla
autorescon la clave primaria
id_autores
1. Para preguntar todas las obras de dicho autor, este se presenta en la tabla
obrascomo clave foránea. De esta manera se piden todos y cada uno de los rows enlazados con el
id_autores1.
En la práctica, todas y cada una de las operaciones de bases de datos en MySQL se realizan con comandos SQL estandarizados como SELECT, INSERT, UPDATE y DELETE, mas hablaremos de ellos en capítulos posteriores de nuestro manual de MySQL.
Como es lógico, también se pueden guardar todos los datos referentes a los autores y a sus obras en una única tabla. Un almacenaje de datos de estas características implica que una base de datos contenga un sinnúmero de entradas redundantes, ya que, por servirnos de un ejemplo, los datos en las columnas
nombrey
apellidose especifican de forma individual para cada obra. Una redundancia de esta clase no solo supone una carga para la memoria, sino también da sitio a que se deban realizar actualizaciones en diversos puntos de la base de datos. De ahí que que cuando se trabaja con bases de datos relacionales se limite su contenido a un asunto por tabla. Se habla, en un caso así, de una
normalizaciónde los datos.
El campo de aplicación primordial de MySQL es el
almacenamiento de datos en el contexto de las páginas web dinámicas.La combinación de MySQL con el software de servidores web Apache y los lenguajes de script PHP o Perl se ha consolidado como estructura clásica de software en el desarrollo web. El stack web puede hacerse como LAMP (Linux), MAMP (macOS) o WAMP (Windows) con los sistemas operativos de servidores habituales.
Para los que empiezan a trabajar con MySQL pueden ser recomendables los
entornos locales
XAMPPpara recabar las primeras experiencias con el sistema de gestión de bases de datos, el cual se basa en MariaDB en la versión actual.
A continuación, te presentamos algunos ejemplos prácticos para arrojar más luz sobre los fundamentos de MySQL. Nuestro tutorial para MySQL tiene como base el
entorno de prueba de XAMPPy los códigos de snippets y las capturas de pantalla se centran en las operaciones de bases de datos que se llevan a cabo a través de
PHPcon ayuda de un
servidor Apache HTTPen un ordenador Windows. En vez de la clásica base de datos MySQL, en un caso así, se aplica el fork MariaDB. En nuestros días, los dos sistemas de gestión de bases de datos son tan compatibles que todas y cada una de las operaciones son precisamente iguales. En el marco de un tutorial para principiantes es indiferente si se trabaja con MySQL o bien con MariaDB.
Para saber cómo puedes instalar un entorno de prueba de manera local en tu ordenador Windows, visita nuestro. Si deseas aprender a trabajar con bases de datos relacionales desde el principio lo recomendable es que te centres de manera directa en MariaDB. Un entorno alternativo y gratis que se basa en MySQL es.
También tienes la posibilidad de integrar un stack web personalizado. MySQL y MariaDB se pueden conjuntar, según sea necesario, con diferentes sistemas operativos, servidores web y lenguajes de scripts. Los
paquetes de descarga gratis y con licencia GPLestán libres en la páginay. Puedes obtener instrucciones detalladas de instalación para diferentes plataformas en la
documentaciónen inglés dey.
Para la gestión de MySQL nos fundamentamos en la aplicación web libre
phpMyAdmin, contenido en el bulto de instalación de XAMPP, mas también se ofrece por separado en la página web oficial del proyecto como
phpMyAdmin es considerado como el
software estándar para la administración de bases de datos MySQLen la World Wide Web. La aplicación web escrita en PHP y JavaScript facilita las operaciones de bases de datos a través de
interfaces gráficas de usuario. De este modo se pueden crear y administrar las tablas de la base de datos relacional cómodamente en el navegador web. En este sentido, no es preciso de entrada conocer los correspondientes comandos SQL.
Si has instalado XAMPP,
inicia el sistema gestor de bases de datos
(MySQL o MariaDB)en el panel de control, de igual forma como se comienzan los otros componentes del stack. Para esto, emplea el botón “Start” que hay bajo “Actions”. Para poder acceder a phpMyAdmin a través del navegador de internet, es necesario que empieces el servidor web Apache. Los módulos activados aparecen resaltados en color verde en el
panel de control de XAMPP.También puedes conocer el estado actual de los módulos de XAMPP en forma de notificación por medio del cuadro de texto.
XAMPP fue desarrollado en el marco del proyecto de software Apache Friends como sistema compacto de pruebas para su uso en ordenadores locales. El bulto de software no está pensado para poner a disposición servicios web en Internet. Como sistema productivo, XAMPP no es apto para el ámbito de la seguridad debido a sus numerosas limitaciones.
En el modo de prueba local, se puede acceder a la
interfaz web del software de administracióna través de
.
Siempre y cuando se haya definido una
contraseñapara la cuenta
rooten la instalación de MySQL
,será necesario introducirla en la pantalla de registro en phpMyAdmin. En caso de usar esta herramienta en un producto de alojamiento web, los datos de registro serán concedidos por el distribuidor correspondiente. En un caso así, como usuario, no acostumbras a tener derechos de acceso raíz.
Una vez has iniciado sesión, phpMyAdmin muestra la
página de inicio de la aplicación, la que deja efectuar los ajustes básicos para conseguir el
conjunto de caracteres
(colación)de la conexión de MySQL o para elegir el
modo de visualizacióndeseado (idioma, diseño y tamaño de fuente). En la parte derecha aparece un resumen de los datos de referencia de tu servidor de base de datos, del software de servidor web usado, así como de la información sobre la versión actual de phpMyAdmin. La barra del menú está, como el resto de barras de menú de la aplicación, diseñada en forma de pestañas. Para elegir unas u otras, tan solo hay que hacer clic en
Databases,
SQL,
Status,
User accounts,
Export,
Import,
Settings,
Replication,
Variablesy
More.
En el extremo izquierdo de la interfaz de usuario aparece un
panel de navegaciónen el que se indican todas las tablas en la base de datos a las que tienes acceso con phpMyAdmin. Bajo el logotipo del programa en el rincón superior izquierda, hay una función con la que puedes acceder tanto a la página de comienzo del software como a la documentación oficial. Además, también existe la posibilidad de configurar el panel de navegación y actualizar su vista.
A continuación empezaremos nuestro curso intensivo de MySQL a fin de que puedas crear tu primera base de datos.
Para crear una base de datos con phpMyAdmin hay que escoger la pestaña “Databases” (bases de datos) en la barra del menú de la página de inicio.
Introduce un
nombre para la base de datosen el campo de entrada bajo “Create database” (crear nueva base de datos) y escoge un cotejamiento (collation). En este caso es conveniente la colación
utf8mb4_unicode_ci. Con ella notificamos al servidor de bases de datos sobre la codificación para los datos transmitidos o recibidos. Las variantes mb4 también autorizan signos exóticos como símbolos o emojis, que se escapan a los comandos básicos de Unicode (Basic Multilingual Plane) y, por tanto, resultan aconsejables.
Confirma la entrada haciendo clic en “Create” (crear). La base de datos creada aparece en el panel de navegación en el lado izquierdo de la pantalla. Las nuevas bases de datos no incluyen ningún contenido. Para depositar datos es preciso que, a continuación, crees una tabla.
Para crear una nueva tabla, escoge la base de datos deseada y navega por la barra de menú hasta llegar a la pestaña “Structure” (estructura).
Crea una tabla e introduce el nombre (por ejemplo,
users) y el
número deseado de columnasmediante el botón “Create table” (generar tabla). Recuerda que a cada columna le corresponde un atributo de la entrada en la tabla. Si precisas incluir más columnas, lo puedes hacer más tarde.
Si, por ejemplo, quieres crear una base de datos de usuarios, puedes recurrir a los próximos elementos para las columnas de la tabla:
Para la base de datos de usuarios, crea la tabla
userscon 7 columnas y confirma la entrada con “Go”.
Una vez creada la tabla, phpMyAdmin te da la posibilidad de delimitar los nombres de las columnas y de
realizar los ajustes de formato para los datos previstos.
La tabla que aparece a continuación incluye una descripción de la estructura de las tablas así como de los posibles ajustes.
Todas estas opciones comprenden los ajustes más esenciales de las columnas de las tablas. Si te mueves cara la derecha con ayuda de la barra de desplazamiento encontrarás otras posibilidades de configuración —no incluidas en este tutorial de MySQL para principiantes.
La siguiente tabla expone
diferentes géneros de datosque se pueden procesar tanto con MySQL como con MariaDB, así como su campo de valores y sus requisitos de almacenaje.
Para la tabla de ejemplo
usersse han configurado los próximos ajustes:
Los posibles valores para la columna
idse definen como
números enteros(íntegro, INT) y llevan el atributo
UNSIGNED. El
idsolo puede adoptar valores numéricos positivos. En “Index” hemos escogido el ajuste
PRIMARYpara
id. A este respecto, el número de identificación hace de
clave primariapara la tabla
usersy la marca de verificación en “
A_I” (
Auto_Increment) indica al sistema gestor de bases de datos que los identificadores de cada entrada deben generarse como números sucesivos.
Los valores para las columnas
forename,
surname,
emaily
passwordse definen como un tipo de datos
VARCHAR. Se trata, en este caso, de cadenas de caracteres variables cuya longitud (M) está limitada a cincuenta caracteres a través de la opción “
Length/Value”.Para la columna
emailse activa el índice
UNIQUE.De este modo se asegura que cada dirección de correo electrónico de la tabla se guarde una única vez.
Para las columnas
created_aty
updated_athemos escogido el tipo de datos
TIMESTAMP. El sistema de gestión de bases de datos almacena datos temporales para crear y actualizar las entradas en formato
YYYY-MM-DD HH:MM:DD.Puesto que el sistema debe producir automáticamente una
marca temporalpara cada entrada, elegimos el valor estándar
CURRENT_TIMESTAMPpara la columna
created_at.La columna
updated_atadquiere importancia cuando se actualiza una entrada. En este sentido, dejamos los
valores Nullpara esta columna y se establece
NULLcomo valor estándar.
En PHP, el valor
NULLrepresenta una entrada vacía, por lo que un campo tiene el valor
NULLcuando no se le haya asignado ningún valor.
Como
motor de almacenamientose emplea el formato estándar de tabla de MySQL conocido como
InnoDB.
phpMyAdmin traduce todos los ajustes que se pueden realizar a una tabla en código SQL y, si es necesario, este puede visualizarse, en “
Vista previa de SQL”.
En el capítulo sobre las consultas a las bases de datos te ofrecemos una descripción detallada sobre la sintaxis de SQL.
Los ajustes pueden guardarse haciendo clic en “Save” (guardar). La tabla
usersse muestra en el panel de navegación de la base de datos bajo la opción
test.
Para poder dirigir una tabla ya creada, haz click en el nombre de la tabla en el panel de navegación. Acto seguido, phpMyAdmin te muestra una visión general de los datos guardados en la tabla correspondiente en la pestaña “Browse” (visualizar). En el caso de la tabla del ejemplo, la consulta no produce ningún resultado por el hecho de que aún no contiene datos.
La barra del menú cuenta con diferentes pestañas para
gestionar las tablas de datos. Si quieres modificar la estructura de una tabla de datos, haz click en la etiqueta “Structure”; para agregar datos elige la opción “Insert” (añadir). phpMyAdmin también deja buscar en las tablas, administrar derechos y exportar conjuntos de datos o importarlos de otras tablas.
Si deseas corregir tu tabla posteriormente para incluir columnas adicionales, quitar las que existen o comprobarlas, ve a la pestaña “Structure”.
Puedes añadir columnas con la opción“Add columns”, mediante la que puedes señalar el número deseado de columnas nuevas y la posición de exactamente las mismas.
En el siguiento gráfico se añade una nueva columna por medio de
updated_at:
Si quieres
eliminar columnas ya existentes, selecciónalas marcando la casilla pertinente y haz clic en “Drop”.
La
edición de una columnase lleva a cabo a través del botón “Change”. A través de este se te redirige a una vista de edición que se semeja a la que se utiliza para la creación de tablas:
En algunas circunstancias, los cambios efectuados en la estructura de las tablas pueden conllevar una pérdida de información. Por eso, antes de editar o bien suprimir las tablas anteriormente creadas es conveniente que hagas una: haz click en la pestaña “Export” (exportar), selecciona el formato de datos deseado para el backup y confirma el cambio mediante la opción “Go”. A continuación, se abre una ventana de diálogo en la que el navegador web te pide el destino de almacenaje para la descarga. El programa gratis
es una opción alternativa a la creación de copias de respaldo de bases de datos con phpMyAdmin.
Para introducir los datos en una tabla vía phpMyAdmin se puede recurrir a dos opciones: o se importan conjuntos de datos de un fichero externo (por ejemplo, de una copia de respaldo) o bien se crean las entradas en la tabla manualmente. Elige la tabla de ejemplo
usersy ve a la pestaña “Insert” (introducir).
phpMyAdmin te muestra la próxima
máscara de entrada de datos:
En el apartado “Column” aparece una lista de las columnas que se han definido para la tabla
users,y “Type” cobija información sobre el tipo de datos que se espera, así como el número máximo de caracteres entre paréntesis. Omitimos “Function” y pasamos de manera directa a “Value”, apartado en el que se definen los valores de cada una de las columnas de la tabla del ejemplo.
En el capítulo precedente se ha configurado la tabla
usersde tal forma que el sistema de gestión de bases de datos provea automáticamente de contenido a los campos de las columnas
id,
created_aty
updated_at.En la columna
idse da un número de identificación a cada entrada por medio de
AUTO_INCREMENT.Al campo
created_atse le asigna de forma automática la data actual y a
updated_atel sistema le concede el valor estándar
NULL. Sin embargo, se tienen que introducir los datos de forma manual para las columnas
forename,
surname,
emaily
password,tal y como se ve a continuación con datos de usuario ficticios:
Pinchando en “Go” los datos se trasfieren a la tabla. phpMyAdmin brinca automáticamente a la pestaña “SQL” y resume las
operaciones efectuadas en la base de datos en una sentenciasegún la sintaxis de SQL:
En principio, todas las operaciones que se realizan en phpMyAdmin a través de una interfaz gráfica de usuario también pueden escribirse en SQL, lo que es parte del procedimiento habitual en el marco del desarrollo web.
Las llamadas
consultas SQL(SQL queries) se hallan en el código fuente de todas las aplicaciones web dinámicas y dejan que el servidor web interactúe con la base de datos. El lenguaje de bases de datos SQL se basa en comandos y deja, por ejemplo, consultar y emplear datos en el marco del funcionamiento del programa. En el próximo capítulo del presente manual de MySQL te presentamos los comandos SQL más esenciales, como por ejemplo
SELECT,
INSERT,
DELETEy
UPDATE,y te ofrecemos información sobre la sintaxis de las operaciones de bases de datos básicas.
Pero primero introducimos datos de usuario adicionales en la tabla
usersy echamos una ojeada a la tabla resultante en la pestaña “Browse”:
Con un clic sobre el
nombre de una columnase puede organizar la tabla en el orden que se desee.
Tras haber introducido las entradas en la tabla de ejemplo
users, en los siguientes capítulos mostramos cómo se pueden pedir estos
datos vía PHP a través del servidor web Apache.
Para ello, el primer paso consiste en crear la
conexión con la base de datos. marketing digital internacional : MySQL Extension, MySQL Improved Extension () y PHP Data Objects ().
A partir de aquí nos concentramos en las
conexiones de bases de datos vía PDO.
Para poder hacer solicitudes a una base de datos con un script de PHP, la base de datos se ha de autenticar primeramente. Con la siguiente línea de código se crea una conexión con la base de datos a través de un PDO:
Se recomienda integrarla al principio de cada script que contenga operaciones de bases de datos.
Se usa la palabra clave de PHP
newpara crear una instancia de la clase base de PDO, cuyo constructor espera tres parámetros: el
Data Source Name (DSN),un nombre de usuario y la contraseña para la base de datos, si la hubiera. En un caso así, el DSN está formado por los siguientes parámetros:
Si todavía no has definido los datos de acceso para tu base de datos, usa el nombre de usuario
rooty una contraseña vacía:
La conexión con la base de datos se guarda en la variable
dólares americanos pdo. Esto deja remitir a ella posteriormente en el script.
Una vez creada la conexión con la base de datos, se le pueden realizar distintas consultas conforme se marcha escribiendo el código en el script. Cuando se finaliza, también se interrumpe la conexión de la base de datos.
Para extraer información de un banco de datos es necesario recurrir al
lenguaje de bases de datos SQL, que se basa semánticamente en el inglés y tiene un mantenimiento fácil. Su sintaxis es, en gran medida, autoexplicativa.
En SQL se trabaja con sentencias, que también se conocen como consultas o preguntas.
Una consulta SELECT sencilla está formada, por poner un ejemplo, por los siguientes componentes:
Primero se define el comando de SQL
SELECTy a continuación las columnas y tablas correspondientes a las que hace referencia el comando. Se usa un punto y coma para cerrar la sentencia.
Asimismo, tienes la posibilidad de ampliar la sentencia para una
condición opcionalo para una
función de clasificación o bien de agrupación:
En este sentido se aplica la convención de que, para facilitar la lectura, los comandos de SQL se escriben en mayúscula y los nombres de las bases de datos, de las tablas y de los campos en minúscula. SQL es esencialmente un
lenguaje sin formatoy no hace distinciones entre mayúsculas y minúsculas.
En en caso de que recurras a nombres de tabla y de columna que se correspondan con palabras clave de SQL predefinidas (no recomendable), estos deben ir
entre comillas simples (' '
).
A continuación, ilustramos la sintaxis de sentencias SQL sencillas con ejemplos de los comandos
SELECT,
INSERT,
UPDATEy
DELETE.
Se emplea el
comando
SELECT
para preguntar series de datos (
rows) de un número determinado de tablas. Si se quieren mostrar en el navegador tanto el nombre y los apellidos como las direcciones de correo electrónico de todos los usuarios en la tabla de ejemplo creada de antemano, debes crear en el directorio
htdocsde tu ambiente de XAMPP un nuevo fichero PHP
text.phpe incluir el siguiente script:
Este ejemplo de código se lee de la siguiente manera: en primer lugar se inicia el script con la etiqueta de comienzo de PHP
<?php.En la segunda línea se establece la conexión con la base de datos
testen
localhosty se guarda en la variable
dólares americanos pdo.La sentencia SQL con el comando
SELECTse encuentra en la línea tres. En este punto se señala al sistema de gestión de bases de datos que consulte las columnas
forename,
surnamey
emailde la tabla
users.Esta sentencia se guarda en la variable
dólares americanos sql.
Las líneas de la 4 a la 7 muestran el constructor
foreach,que permite la iteración sobre arrays, lo que significa que una estructura de datos se repasa de forma gradual. Tanto los arrays que se quieren iterar como el modo en que se deben guardar los datos consultados se definen entre comillas detrás del constructor
foreach:
La variable
dólares americanos pdose comunica con la base de datos deseada a través de la conexión definida en la línea 2. Con la función
query()y mandamos al banco de datos la sentencia SQL almacenada en la variable
$ sql.
El servidor web pide las columnas
forename,
surnamee
emailde la tabla
usersde la base de datos
testy recorre
todas y cada una de las filasde la tabla en el marco del constructor
foreach. La palabra clave de PHP
asen la variable
dólares americanos rowdefine dónde se deben guardar los datos elegidos.
En la primera ronda del constructor
foreach,el array tendría el próximo aspecto:
Una parte del bucle
foreachen nuestro ejemplo es la reproducción como texto a cada vuelta del bucle vía
echo. Aquí, se repasa cada línea de la tabla, se leen los datos depositados para las columnas definidas en la sentencia SQL y se emiten a través del navegador web.
Si se deben leer todas las columnas de una tabla de datos, se debe emplear el asterisco (
*) como
espaciadoren la secuencia SQL.
Con ello se tiene la posibilidad de usar todos los datos incluidos en
usersen el marco del script. En el siguiente screenshot se complementa el texto con la
fecharelativa a la creación de la entrada:
En los 2 ejemplos precedentes, el servidor web emite datos de usuario en el orden en el que se han introducido en la tabla
users(conforme al identificador). Si deseas emitir los datos en otro orden, defínelo con ayuda de la palabra clave de SQL
ORDER BY.En el próximo ejemplo se ofrecen los datos en orden alfabético según el nombre:
Rara vez se crean manualmente con phpMyAdmin las entradas de una base de datos. Por norma general, es el servidor web es el que escribe los datos durante la ejecución del script, como ocurre, por servirnos de un ejemplo, cuando un usuario de Internet cumplimenta un formulario on line en una página web o deja un comentario en una tienda virtual. En los dos casos se usa el
comando de SQL
INSERT
en un segundo plano
.
Las sentencias SQL con el comando
INSERTse crean siguiendo el próximo esquema:
Esto se lee de la próxima manera: abre la tabla pertinente y también introduce los valores 1, dos y tres en las columnas 1, dos y 3.
Un script PHP sencillo con el que se pueda añadir otra entrada en la tabla de ejemplo
userspuede tener la siguiente apariencia:
En primer lugar se crea la conexión con la base de datos y se guarda en la variable
$ pdo.A continuación, se define la sentencia SQL y se almacena en la variable
dólares americanos sql.En la línea cinco se emplea el operador flecha (
->) para acceder a la variable
$ pdoy, con ayuda de la función
exec(),ejecutar la sentencia SQL guardada en
dólares americanos sql.
Para asegurar que el script introduzca a un conjunto de caracteres en la tabla
users,es preciso revisar el número de las filas implicadas con ayuda de la
condición
if.
Esta se ocupa de que el string
New record created successfullysolo se emita a través del navegador cuando la cantidad de conjuntos de datos incluidos sea 1. Si el script vuelve a ejecutarse, el aviso no aparecerá. Las entradas dobles se evitan definiendo como UNIQUE al valor
email.
Al acceder a la vista general de la tabla de ejemplo
usersen la base de datos
testse puede observar que la tabla se ha ampliado con la entrada cinco. El número de identificación y la data se añaden de forma automática según lo previsto.
Para actualizar conjuntos de datos ya existentes, se puede recurrir al
comando SQL
UPDATE
tal y como se muestra en el próximo ejemplo:
Esta sentencia SQL tiene el próximo significado: elige la tabla indicada y reemplaza el valor en la columna1 por el valor1 y el valor en la columna2 por el valor2 siempre que la columna3 tenga el valor3. Si te olvidas de incluir la condición, MySQL sobreescribe estos campos en todos los conjuntos de datos.
En este caso trabajamos con una sentencia SQL que vincula una operación a una
condición. Si trasladamos esto a la tabla de nuestro ejemplo, la dirección de correo electrónico del usuario John Doe se actualiza por medio del siguiente script de PHP:
En la sentencia SQL definimos que el valor actual en la columna
emailtenga que ser sustituido por el valor
siempre y cuando el valor en la columna contenga el
id1. Por consiguiente, se actualiza el conjunto de datos con la clave primaria 1. Además, también se debe actualizar en la misma sentencia SQL el valor para la columna
updated_atcon ayuda de la función de MySQL
now(),que devuelve la fecha actual. A continuación, se ejecuta la sentencia como antes con la línea de código
$ pdo->exec($ sql)en el contexto de una condición if.
Si la actualización se ha llevado a cabo con éxito, phpMyAdmin debería señalar en la etiqueta “Browse” que la tabla está actualizada:
En el ejemplo, hemos actualizado una dirección de correo electrónico y hemos reemplazado el valor estándar
NULLen la columna
updated_atpor el registro de data y hora. El comando
UPDATEpermite también trasferir
valores de una columna a otra. Esta operación puede utilizarse cuando se amplía la tabla
usersdel ejemplo para la columna
email_registration,lo que ofrece la posibilidad de distinguir entre dos direcciones de correo electrónico: una empleada durante el proceso de registro y otra de contacto actual que se puede alterar con el tiempo. Al comienzo, sin embargo, ambas direcciones son iguales, de modo que se pueden trasferir los valores de un campo a otro. Para ello creamos la columna nueva
email_registrationcon phpMyAdmin usando “Add columns” en la pestaña “Structure”:
Para transferir los valores se usa la sentencia
UPDATEsiguiente:
Debido a que se quieren actualizar todos y cada uno de los registros, no hace falta elaborar ninguna condición para la actualización.
Si se ejecuta el script en el servidor web, el sistema gestor de bases de datos transfiere los valores de la columna
emailpara todos y cada uno de los conjuntos de datos a la columna
email_registration.
Las entradas se pueden eliminar con el
comando SQL
DELETE
, que se emplea siguiendo el esquema que te presentamos a continuación:
Si trabajas con identificadores en tu base de datos, es conveniente identificar con ellos las entradas que vas a borrar. Si, por poner un ejemplo, deseas eliminar la entrada cinco en la tabla del ejemplo, debes proceder de la siguiente manera:
El comando SQL
DELETEelimina siempre y en toda circunstancia una fila entera. Si deseas quitar valores en columnas determinadas de una base de datos, puedes recurrir a la sentencia
UPDATE. Con
UPDATE
tabla SET columna
= NULL WHERE se le puede asignar el valor
NULLa una columna, mas toda vez que se haya autorizado dicho valor para la columna correspondiente.
Con PDO se pueden realizar operaciones de bases de datos en calidad de
sentencias preparadas(prepared statements). Actualmente, estas “consultas prefabricadas” son una práctica habitual en el desarrollo web y están respaldadas, sobre todo, por todos y cada uno de los sistemas de gestión de bases de datos modernos.
La inyección SQL se fundamenta en un conocido fallo de seguridad en el
entorno de las bases de datos SQL:si se entregan datos de usuario, por ejemplo, vía
$ _GETcon parámetros estáticos, esto deja a los atacantes enriquecer el input con metacaracteres que pueden conducir a efectos indeseados caso de que estos alcancen al intérprete de SQL sin enmascaramiento. Este método de infiltración puede prevenirse con eficiencia a través de consultas parametrizadas. En este sentido, los prepared statements hacen las veces de plantillas para los comandos SQL que se transmiten a la base de datos separados de los verdaderos parámetros. Esta valida los datos entregados, disfraza los metacaracteres automáticamente y también introduce los parámetros en vez de los marcadores en la secuencia SQL.
Las sentencias preparadas ofrecen, además de seguridad, una
ventaja en cuanto a rendimiento. Esta se hace perceptible cuando exactamente el mismo comando SQL se debe ejecutar en bucle con diferentes parámetros. Tras ser analizado sintácticamente, la sentencia preparada se introduce en el sistema de base de datos y tiene que ejecutarse con nuevos parámetros. Así, las consultas complejas pueden agilizarse de forma notable.
En PDO, los prepared statements pueden ejecutarse con ayuda de la función
prepare(). Esta prepara una sentencia para la ejecución y devuelve un objeto de secuencia. Como marcador para los valores pertinentes se utiliza o bien el símbolo de interrogación (
?) o un
parámetro con nombre (
named parameter).
El siguiente ejemplo de código muestra la operación INSERT como sentencia preparada con
parámetros sin nombre:
Inicialmente se genera un objeto sentencia de la consulta deseada con ayuda de la función
prepare()y se guarda en el array
dólares americanos statement. En vez de valores de parámetro concretos, se emplea el signo de interrogación como marcador.
Si una sentencia SQL solo contiene marcadores, los valores entregados separadamente en el código se han de vincular a la sentencia. En PHP se emplea para esto la función
bindParam().Utilizamos el operador flecha (
->) para acceder al método
bindParam()del objeto
$ statementy asignarle variables (1 hace referencia al primer signo de interrogación, dos al segundo, etc.).
Ahora, la plantilla SQL resultante puede ejecutarse tan frecuentemente como se desea con los parámetros deseados. En el ejemplo actual se definen los valores de las variables para dos registros. La ejecución de las sentencias SQL prefabricadas tiene sitio para cada entrada a través de
execute().
Los
parámetros con nombreresultan algo más claros que los marcadores con el signo de interrogación. Se trata, en este caso, de marcadores adaptados designados, según las necesidades, por el próximo esquema:
Los parámetros con nombre no pueden contener espacios en blanco o guiones, con lo que en su sitio se debe utilizar el guion bajo (
_).
El siguiente ejemplo muestra la operación
INSERTcomo sentencia preparada con parámetros con nombre:
En la sentencia preparada se hallan los parámetros con nombre
:forename,
:surname,
:emaily
:password. Estos se vinculan a las variables
$ forename,
$ surname, $ emaily
$ passwordpor medio de
bindParam(). En el ejemplo actual hemos designado tanto los parámetros como las variables en correspondencia con los nombres de las columnas de la tabla del ejemplo, ya que no es la sintaxis la que lo predetermina. Sí se recomienda utilliar una
denominación coherentea favor de un código fuente inteligible. Tanto la asignación de los valores de las variables como la ejecución de la sentencia SQL se hace de forma análoga al ejemplo precedente.
MySQL y MariaDB aguantan diversas funciones para trabajar con información sobre la fecha y la hora. Puedes consultar aquí la. En nuestro tutorial de MySQL para principiantes te presentamos algunas de .
Un posible escenario de aplicación para las funciones de data y hora son, por poner un ejemplo, las consultas a las bases de datos en las que se deben leer todos los conjuntos de datos
creados en un día determinado.
El siguiente script emite todos los registros de la tabla
usersdel ejemplo creados hoy:
Para enseñar únicamente las entradas de el día de hoy se usa la próxima condición en la sentencia SQL:
En primer sitio, se extrae la data de la marca temporal guardada en la columna
created_atcon ayuda de la función
DATE()y se compara en el siguiente paso con la data actual. El comando
SELECTsolo escoge las entradas cuya marca temporal coincida con la fecha actual.
Como alternativa puedes elegir la entrada actualizada el 17.05.2017, a cuyo efecto hay que amoldar la condición de la sentencia SQL:
En este caso se compara la data de referencia con una concreta. Asimismo, se pueden limitar las consultas a un año, mes o bien día determinados.
La siguiente sentencia hace referencia a todas y cada una de las entradas de la tabla
userscreadas en mayo:
Además de los signos de igualdad, SQL también soporta los próximos operadores de comparación en las condiciones:
Asimismo, también se pueden vincular múltiples condiciones con operadores lógicos:
La siguiente sentencia deja, por poner un ejemplo, escoger todas las entradas creadas después de febrero y ya antes de abril:
Hasta ahora se han guardado los datos relativos a la fecha y hora en nuestra base de datos en el formato anteriormente indicado. Con MySQL y MariaDB estos no están establecidos. La función
DATE_FORMAT()ofrece la posibilidad de
ajustar la data y la hora con parámetros opcionales.
La tabla que aparece a continuación muestra posibles parámetros para la función
DATE_FORMAT(),tal y como aparece especificado en la documentación.
Si un script no se ejecuta como estaba previsto, se pueden presentar fallos sintácticos en el código fuente o surgir tablas con nombres, columnas o variables incorrectos. El servidor de bases de datos no emite automáticamente estos mensajes de fallo, sino que, con frecuencia, el resultado deseado no se manifiesta sin hacer referencia alguna a la operación fallida.
Con
errorInfo(),PDO ofrece una función con la que se pueden recobrar otros
datos sobre fallos en la última operación realizadaen la base de datos, por poner un ejemplo, para emitirlos a través del navegador de internet.
En el siguiente
script de actualización de la dirección de correo electrónicose emplea la función
errorInfo()combinada con el constructor
if. La condición es la correcta ejecución de la sentencia SQL. Si esta se hace como es debido, el servidor web emite el string
Update successful.De lo contrario, se ejecuta el código concretado en
else.
En el ejemplo, se notifica al usuario de que se ha producido un fallo en SQL y se emite tanto la sentencia SQL correspondiente como información adicional sobre errores por medio de
errorInfo():
Si el script se ejecuta a través del servidor web, se obtiene la siguiente información:
El comando SQL
UPDATEhace referencia a una tabla con el nombre
user.La tabla de nuestro ejemplo lleva por nombre
users.El servidor SQL no es capaz de hallar la tabla pedida y ofrece el mensaje
Table 'test.user' doesn't exist.El motivo del fallo ha sido un fallo tipográfico en la sentencia SQL que se corrige con sencillez.
En cuanto a los valores de retorno de la función
errorInfo(),se puede hablar de un array con tres elementos:
[0] = código de error SQL
[1] = código de error específico del controlador
[2] = mensaje de fallo específico del controlador
La información a la que se accede a través de
errorInfo()puede definirse indicando los elementos deseados entre corchetes.
En la práctica, no es muy común que el navegador de internet entregue información detallada sobre los errores, pues no sirven de nada a los usuarios. Por el contrario, los atacantes potenciales pueden emplear estos mensajes de error para continuar a las consultas SQL y encontrar las debilidades de las aplicaciones. Por esto, es recomendable que la información general dada a los usuarios sobre los fallos sea muy general y que la
información referente a exactamente los mismos se almacene
de forma interna.
Esto podría lograrse como se muestra a continuación:
En lugar de producir el valor de retorno de la función
errorInfo()a través de
echoen el navegador de internet, se guarda junto con la marca temporal actual, la ruta del fichero y la sentencia SQL en la variable
dólares americanos error.
La
función
PHP
DATE()
ofrece la marca temporal de Unix en el formato detallado. La llamada incesante mágica
__FILE__entrega la ruta completa para el archivo
test.php. Solicitamos la sentencia SQL actual como en el ejemplo precedente vía
dólares americanos statement->queryString. Por último, se almacenan los datos guardados en
$ errorcon ayuda de la función
file_put_contents()como texto en el fichero
sqlerrors.logen la carpetita
htdocs.
Como ya se ha mentado en el capítulo sobre las bases de datos relacionales, se pueden preguntar datos de diferentes bases de datos simultáneamente. Si ya estás familiarizado con las operaciones básicas de bases de datos, volveremos a recurrir a ellas para demostrar cómo se pueden vincular las distintas tablas de tu base de datos en un join (en español, unión o conexión).
La combinación de las tablas de una consulta tiene lugar con ayuda del comando SQL
JOIN. presupuesto tiendas virtual badajoz í se vinculan dos o más
tablas normalizadaspor medio de columnas enlazadas, lo que se puede hacer a través de una clave foránea.
A continuación, te demostramos cómo se enlazan las tablas de bases de datos con el siguiente ejemplo:
La tabla muestra una selección de algunas de las canciones más famosas de los años 60 y puede servir como
ejemplo negativo de un mal diseño de bases de datos.
A primera vista llama la atención el hecho de que la tabla muestre gran cantidad de datos redundantes. Estos se suprimen y distribuyen en el marco de la normalización en tablas separadas y se combinan entre sí con ayuda de claves foráneas.
Un buen diseño de bases de datos se distingue por tener un
mínimo de redundancia.Sin embargo, deben evitarse las entradas dobles a través de la normalización de las tablas de datos. En el marco del modelo de bases de datos relacional se han establecido 3
formas normales complementariasque establecen reglas fijas para una estructuración de datos óptima.
Una tabla se corresponde con la primera forma normal cuando todos y cada uno de los valores de los atributos son atómicos. Se comprende por valores de atributo atómicos aquellos que solo
contienen información, lo que se puede observar meridianamente en nuestro ejemplo negativo.
Observemos, por poner un ejemplo, las columnas
album_titlee
interpretde la tabla
album.En lugar de incluir cada dato de la tabla en una columna diferente, lo hemos hecho más fácil y hemos introducido datos relativos al año de publicación del álbum, así como de la existencia de la banda entre paréntesis detrás del título del álbum o de los datos del intérprete. Este descuido se hace evidente cuando, por poner un ejemplo, se quieren consultar todos y cada uno de los títulos publicados en un año determinado.
En este caso, es conveniente crear tablas de datos siguiendo las reglas de la primera forma normal. En la tabla de nuestro ejemplo esto tendría el próximo aspecto:
Los datos aparecen separados y pueden leerse sin inconvenientes. Asimismo, la tabla prosigue conteniendo redundancias, como antes. Sigue leyendo y te vamos a explicar cómo puedes quitarlas.
Una tabla está en segunda forma normal cuando se cumplen todas y cada una de las condiciones de la primera forma normal y cada atributo que no forme una parte de la totalidad de la clave primaria de la tabla es independiente funcionalmente.
A menudo, hay tablas de datos que contienen una columna que funciona como clave primaria. Las tablas de este género se corresponden automáticamente con la segunda forma normal si se cumplen las condiciones de la primera forma normal. En ocasiones puede ocurrir que la clave primaria de una tabla aparezca en 2 columnas, tal como ocurre en la tabla del ejemplo.
Para obtener el título deseado de la columna
titlede la tabla
titlese necesita, por un lado, el
album_idy por otro el número del título en la columna
track. Se puede conseguir el título
Sympathy for the Devil,por ejemplo, por medio de la clave primaria
album_ID = tres AND track = 1,por lo que en un caso así se puede hablar de una clave primaria compuesta. Esta es precisa para las consultas referidas a la columna
title. Las columnas
album_title, released, interprety
years_activedependen de
album_id.Sin embargo, para estas columnas no existe ninguna dependencia funcional respecto a la totalidad de las claves primarias. No se cumplen, por consiguiente, las condiciones de la segunda forma normal.
Esto puede alterarse colocando la columna
titleen una tabla nueva y vinculándola mediante una clave foránea (
album_id) con la tabla de salida:
La tabla
albumrevisada solo contiene una
clave primariay cumple automáticamente las condiciones de la segunda forma normal. La nueva tabla
titlecontiene la columna sin clave
title, que es, a nivel funcional, absolutamente dependiente de las dos unas partes de la clave primaria (
album_idy
track)y se corresponde, así, con la segunda forma normal.
En la segunda forma normal, la tabla de datos
albumtambién contiene entradas redundantes.
Si una tabla se corresponde con la tercera forma normal, deben cumplirse todas y cada una de las condiciones de la segunda forma normal y de la primera forma normal. Además, se debe revisar que ningún atributo no clave dependa de forma transitiva de un atributo clave. Puede que esta condición parezca muy difícil, pero se puede explicar en pocas palabras: se da una
dependencia transitivasiempre que un atributo no clave dependa de otro atributo no clave.
Precisamente esto es lo que se aplica a la tabla
albumdel ejemplo. Aquí se encuentran las columnas
interprety
years_active. Al paso que se puede identificar al intérprete a través de
album_id,el año de formación de la banda depende tanto de los intérpretes como, a nivel transitivo, del
album_id.Esto tiene como desventaja que toda vez que se añada un álbum nuevo a un intérprete que se ha mencionado, el sistema de gestión de bases de datos guarda automáticamente un valor redundante en la columna
years_active.
Para cumplir las condiciones de la tercera forma normal y suprimir todas y cada una de las redundancias de nuestra tabla, se deben incluir las columnas
interprety
years_activeen una tabla separada y vincularlas con la tabla de salida
albummediante la clave foránea
(interpret_id).
Así, se obtienen 3 tablas normalizadas:
interpret,
albumy
title.
Si se quiere transmitir un título determinado en nuestra base de datos, además de la información sobre el álbum y el intérprete, estas han de estar combinadas entre sí en 3
tablas separadas con ayuda del comando JOIN y de la clave foránea correspondiente.
Si eliges el
motor de bases de datos
InnoDB, puedes acotar cómodamente relaciones de claves foráneas a través de la interfaz gráfica del software de administración phpMyAdmin. Además, la clave primaria de una tabla puede emplearse como clave foránea en otras muchas tablas.
En nuestro ejemplo se requieren 2 conexiones para enlazar las tres tablas normalizadas
album,
interprety
title:
Las
relaciones de diseño web seo sevilla foráneaspueden contemplarse en el próximo gráfico:
A la hora de establecer el vínculo entre las tablas de datos una columna que funciona como clave foránea debe contener los atributos
UNIQUEo
INDEX.
La
relación entre las
claves primarias y las foráneasse corresponde, por lo general, con la relación del tipo 1:n. Cada campo de datos en la columna clave primaria de la tabla A está relacionado con varios campos de datos (n) en la columna clave foránea de la tabla B. Cada campo de datos en la columna clave foránea de la tabla B hace referencia a un campo de datos de la columna clave primaria de la tabla A. Como ejemplo, en la columna de clave primaria
album_idde la tabla
albumhay cuatro entradas vinculadas a través de la clave foránea
title.album_idcon las 8 entradas de la tabla
title.
Para establecer las
relaciones deseadas, creamos las tablas
album,
interprety
titleen phpMyAdmin y definimos nuestras claves primarias en el marco de la creación de la tabla como ya se ha indicado a través de la opción “Index”. Es conveniente tener en consideración aquí el hecho de que las columnas que funcionarán posteriormente como claves foráneas se tienen que marcar como
INDEXo
UNIQUEmediante la opción Index. Para las relaciones 1:n solo es apto
INDEX, pues los valores en el campo
UNIQUEno deben repetirse.
A continuación se definen las
claves foráneas. Para esto, retorna a la tabla
albumdel ejemplo. Escoge la tabla en el panel de navegación y haz click en la pestaña
Structureen la barra de menú, que contiene el botón “Relation view” (vista de la relación):
Las relaciones de claves foráneas se definen en la vista de relaciones de las tablas de datos por medio del campo de entrada “
Foreign key constraints”:
En la tabla
album,la columna
interpret_iddebe marchar como clave foránea, que se fundamenta en la clave primaria
interpret_idde la tabla
interpret.
Por lo tanto, se debe escoger la columna
interpret_idcomo clave foránea en el menú desplegable bajo “Column”. Ten presente que aquí solo se detallan columnas marcadas como
INDEX,
UNIQUEo
PRIMARY.En el campo de entrada triple “Foreign key constraint (InnoDB)” se debe precisar en qué clave primaria, de qué tabla y en qué base de datos debe fundamentarse la clave foránea. Para ello, realiza la siguiente selección:
base de datos:
test
tabla:
interpret
clave primaria:
interpret_id
El campo “Constraint name” puede quedarse vacío, aunque el sistema de gestión de bases de datos le da un nombre automáticamente. Sin embargo, debe definirse el modo perfecto en que se comporta una tabla con claves foráneas cuando la clave primaria latente para la clave foránea se modifique o se suprima.
Si, por poner un ejemplo, se elimina un intérprete de la tabla padre
interpret, también desaparece la clave primaria relacionada con dicha entrada. Se trata, por tanto, de determinar lo que debe pasar con las entradas relacionadas con esta entrada por medio de una clave foránea, lo que en nuestro ejemplo se refiere a los álbumes de un intérprete.
Para determinar el comportamiento de una tabla con claves foráneas caso de que se den las opciones
UPDATEo
DELETE, tanto en MySQL como en MariaDB se puede recurrir a cuatro opciones.
Una vez definida la opción deseada para la relación de claves foráneas, haz clic en “Save” para confirmar la entrada. El sistema de gestión de bases de datos da un nombre de forma automática a la nueva relación.
Las relaciones de claves foráneas te dejan acceder a los datos de diferentes tablas con una única sentencia SQL. Para ello, puedes recurrir a cuatro tipos de
JOINen MySQL y MariaDB:
En este tutorial de MySQL nos centramos en
INNER JOIN.
La sintaxis de INNER JOIN prosigue el siguiente esquema:
El comando
SELECTcombinado con el marcador
*indica al sistema de gestión de bases de datos que lea los valores de todas y cada una de las columnas para los que son de aplicación la condiciones de las cláusulas ON y WHERE.
Puesto que en este caso se habla de
INNER JOIN, solo se extraen de la base de datos los conjuntos de datos en los que existan coincidencias entre la clave foránea de la
tabla1y la clave primaria de la
tabla2. Además, se puede acotar una
función de filtro opcionalcon ayuda de la cláusula
WHERE.
Te aclaramos esto a continuación con un ejemplo basado en nuestras tablas normalizadas
album,
interprety
title:
El script del ejemplo muestra una operación
INNER JOINen la que la tabla
albumestá relacionada con la tabla
interprety se seleccionan los conjuntos de datos en los que se da una coincidencia entre la clave primaria y la foránea.
Nuestra base de datos recoge todos y cada uno de los conjuntos de datos (un
LEFTo
RIGHT JOINtendría exactamente el mismo resultado). A continuación se generan los valores leídos con ayuda de un bucle
foreachy de la construcción del lenguaje
echoen el navegador.
En el marco de una sentencia SQL, se extraen los datos del intérprete de la tabla
interprety los relativos al título del álbum y al año de publicación del disco que aparecen en la tabla
album.
La decisión de los conjuntos de datos del join que deben visualizarse viene acotada con una condición en la
cláusula
WHERE
. Si, por poner un ejemplo, se quiere acceder a los álbumes publicados en el año 1968, se puede proceder de la próxima manera:
Mediante la condición
WHERE released = 1968se limita dicha emisión en el navegador a un solo álbum.
Beggars Banquetde los
Rolling Stoneses el único álbum en nuestra todavía base de datos abarcable que se publicó en el año 1968.
Con ayuda del comando
JOINse pueden unir varias tablas en una red de datos. En el ejemplo siguiente se combina la tabla
albumen un INNER JOIN con las tablas
interprety
titlepara lanzar información completa sobre los títulos musicales guardados en la base de datos.
De ser preciso, es posible delimitar una cláusula
WHEREcon una función de filtrado. Un ejemplo de ello es si se quiere producir información sobre la pista siete del álbum “Abbey Road”.
Es aconsejable prestar atención al hecho de que en la tabla
titlenos encaramos a una
clave primaria múltiple. Si se quiere hacer referencia a un título determinado, además del número de la pista, se precisa el
album_idque aparece en la tabla junto al título del álbum.
Este manual de MySQL para principiantes está concebido como un curso intensivo que explica los
fundamentos sobre los sistemas de bases de datos basados en SQLy presenta ejemplos de interés práctico de fáciles operaciones de bases de datos. Si la información expuesta sobre las posibilidades de la aplicación objeto de la presente guía es de tu interés, también puedes consultar la documentación enlazada en el capítulo introductorio sobre los sistemas de gestión de bases de datos MySQL y MariaDB. Asimismo, Internet también alberga gran cantidad de páginas web que ofrecen tutoriales y ejemplos de uso sobre el popular sistema de gestión de bases de datos.
Es recomendable, también, visitar la plataforma en línea, en la que una amplia comunidad de usuarios formada por más de 6,5 millones de desarrolladores intercambian información y hablan de los problemas relativos al desarrollo del software. La Digital Guide de IONOS, también, contiene otros muchos artículos sobre bases de datos, a los que puedes acceder haciendo clic sobre las etiquetas que aparecen más abajo.
¿Te ha agradado el artículo? 4.8
¿Te ha agradado el artículo? 4.8