Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Curso de Mysql

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 36

CURSO DE MYSQL (I): INTRODUCCIÓN A LAS

BASES DE DATOS RELACIONALES.

 Introducción a las Bases de Datos Relacionales.

QUÉ ES UNA BASE DE DATOS


Una base de datos es un conjunto de
datos organizados e interrelacionados que se organizan y relacionan entre sí de
manera sistemática, esto es, siguiendo unas determinadas reglas. En muchos
sitios veremos que se refieren a una base de datos con la
abreviatura BD o DB (del inglés database).
Ejemplos de bases de datos:
 La base de datos de una tienda online, con los datos de sus clientes,
productos, métodos de pago, etc.
 La base de datos de un foro online, almacenando las conversaciones,
usuarios, temas, etc.
 La base de datos de un blog, con los artículos, categorías, etiquetas,
etc.

OBJETOS DE UNA BASE DE DATOS


Las bases de datos normalmente presentan 6 tipos de objetos:

 Tablas

 Vistas

 Funciones

 Índices

 Procesos almacenados

 Triggers o disparadores

Veamos cada uno de estos objetos con más detalle.

1
TABLAS
Las tablas son los principales objetos de una base de datos. Representan la
estructura física donde se almacenan los datos. Las tablas contienen registros y
cada registro contiene campos. Un registro es cada una de las filas de la tabla,
mientras que el campo es cada una de las columnas de la tabla.

VISTAS
Son tablas que se forman a partir de otras tablas como resultado de una consulta
SQL. Se pueden realizar sobre ellas las mismas operaciones que sobre las tablas,
pero es importante recordar que los cambios afectan a las tablas originales, pues
una vista es sólo eso, un modo de visualizar los datos de otras tablas.

FUNCIONES
Son operaciones que el sistema gestor de base de datos realiza sobre las mismas.
Estas operaciones son necesarias para poder interactuar con la base de datos.
Ejemplo: Operaciones para crear los objetos de la base de datos: tablas, vistas,
etc.

2
ÍNDICES
Los índices permiten acceder a los elementos con mayor rapidez a los registros de
una tabla de una base de datos. Normalmente se utilizan en aquellos campos que
son más frecuentes en las búsquedas.
Ejemplo: Utilizar el número de pasaporte para localizar a un ciudadano europeo en
una base de datos interestatal. De todos los datos de la tabla “ciudadano
europeo”, escogeríamos el pasaporte como índice.

PROCESOS ALMACENADOS
Se trata de un programa que se almacena en la base de datos y que se ejecuta
directamente en el sistema gestor de base de datos.
Ejemplo: buscar en la base de datos todos los usuarios cuya fecha de nacimiento
sea hoy y enviarles una felicitación de cumpleaños

TRIGGERS O DISPARADORES
Es un proceso que se ejecuta únicamente cuando se cumple una condición
preestablecida. Los triggers o disparadores pueden crear, editar o borrar tablas en
una base de datos.
Ejemplo: Envío de un correo electrónico de bienvenida a un usuario que se acaba de
registrar.

QUÉ ES UN SISTEMA GESTOR DE BASES DE


DATOS
Un sistema gestor de bases de datos es una aplicación informática que permite
al usuario interactuar con las bases de datos. Es una interfaz que permite al
usuario acceder a los datos almacenados en las bases de datos que lo integran.
Nos acostumbramos a referir a estos sistemas con las siglas DBMS, que
provienen del nombre en inglés: Database Management System.

MODELOS DE BASES DE DATOS


3
Tenemos diferentes modelos de bases de datos, entre ellos cabe destacar:

MODELO TABLA.
Se trata de una serie formada por una tabla bidimensional
compuesta por registros y por campos en la que se recogen los datos.

MODELO JERÁRQUICO.
Se basa en registros organizados en forma de árbol jerárquico inverso.
o Ventajas: Facilita las relaciones 1:N unidireccionales o padre-hijo, en el
que el padre es el elemento superior y el hijo el que queda justo debajo
(igual que sucede con CSS). 1:N significa que un padre puede tener
muchos hijos, pero un hijo sólo puede tener un padre.
o Inconvenientes: Es un modelo que implica la duplicidad de registros, lo
que dificulta mucho su gestión en casos de bases de datos grandes.

4
MODELO DE REDES.
Está basado en registros. Un registro puede tener otro registro, es una extensión
del modelo anterior, su diferencia fundamental es la modificación del concepto
de nodo: se permite que un mismo nodo tenga varios padres.

MODELO RELACIONAL.
Este es el modelo que se acabó imponiendo y el más popular actualmente. Está
basado en el modelo de tablas, pero permitiendo la relación entre las diferentes

5
tablas en base a unas reglas. MySQL se basa en este modelo, por lo que lo
vamos a ver con más detalle. Ahora simplemente especificar estos puntos:

 Los elementos de una base de datos relacional son capaces de


relacionarse sin necesidad de duplicar la información.

 Utilizan SQL (Structured Query Language) para obtener la información


de varias fuentes en una única consulta

 Utilizan claves para establecer estas relaciones (claves primarias y


externas, que veremos enseguida).

Hay otros modelos, como el transaccional, el multidimensional, o el orientado a


objetos. Para más información, os recomiendo este artículo de la Wikipedia
sobre Modelos de Bases de Datos.

CONCEPTOS BÁSICOS DE LAS BASES DE


DATOS RELACIONALES
Los principales conceptos de las bases de datos relacionales son:

 Datos

 Entidades

 Claves primarias

6
 Claves externas

 Relaciones

 Restricciones de integridad referencia

 Metadatos

A continuación veremos cada uno de ellos con detalle y ejemplos que sirvan para
entender los conceptos.

DATOS.
Tomando la definición de Ramez Elmasri, los datos son hechos conocidos que se
pueden registrar y que tienen un significado implícito.
Ejemplos: nombre, apellido, dirección, teléfono.

ENTIDADES.
Una entidad es todo aquello de lo que nos interesa tener unos datos guardados.
Ejemplos: Clientes, personas, productos, trabajadores.
En un modelo de entidad-relación, las relaciones las conforman los atributos y los
campos del tema que nos interesa guardar.

CLAVES PRIMARIAS
Cada entidad tiene que tener una clave primaria que identifique únicamente al
conjunto de datos. Siguiendo con el ejemplo, la entidad Clientes tendrá como
clave primaria el código cliente, la entidad facturas el número facturas y la entidad

7
producto el código producto. Es muy importante que la clave primaria sea única y
que jamás se pueda repetir. Así, no pueden haber dos facturas con un mismo
número.

CLAVES EXTERNAS
Las claves externas son las claves externas de otra entidad que forman parte de la
tabla de la entidad actual. Así, en nuestro ejemplo, en la entidad Factura, el código
cliente y el código producto son entidades externas.

RELACIONES
Las relaciones son lo que dice el término, como se relacionan las entidades entre
sí a través de sus campos y atributos. Así, en nuestro ejemplo, la entidad Facturas
se relaciona con las entidades Clientes y Productos a través del código cliente y el
código producto de cada uno de sus campos respectivamente.

RESTRICCIONES DE INTEGRIDAD REFERENCIAL


8
Las restricciones de integridad referencia son las condiciones que se han de
cumplir para que el modelo tenga sentido y sea coherente.
Siguiendo con nuestro ejemplo, para que en las Facturas se pueda poner el
código cliente, antes ha de existir el cliente.

METADATOS
Los metadatos son datos que informan sobre los datos presentes en una base de
datos.
Ejemplos: longitud de un campo (número de caracteres), tipo de campo (texto,
número..), información del campo, etc.

SQL Y MYSQL
QUÉ ES SQL
SQL (Structured Query Language) es un lenguaje declarativo estándar para la
gestión de bases de datos relacionales, que permite recuperar y modificar
fácilmente información de interés de las bases de datos mediante consultas.
Actualmente, la mayoría de sistemas gestores de contenidos utilizan SQL, por lo que si se
conoce SQL, se puede trabajar con diferentes DBMS como MySQL, Oracle, SQL Server,
PostgreSQL, etc.
Características de SQL:

 Es un lenguaje declarativo de alto nivel que permite una alta


productividad, ya que está basado en la gestión de un conjunto de
registros.

 Explota tanto la flexibilidad como la potencia de los sistemas relacionales

 Se divide en dos sublenguajes:

o Data Definition Language (DDL): lenguaje para la creación de objetos de


una base de datos
o Data Manipulation Language (DML): lenguaje para la manipulación y
consulta de los datos de una base de datos.

9
INTRODUCCIÓN A MYSQL
QUÉ ES MYSQL
MySQL es un sistema de base de datos basado en el modelo relacional, multihilo
y multiusuario. Multihilosignifica que el sistema distribuye automáticamente las
tareas a realizar entre los procesadores disponibles, optimizando el rendimiento.
El nombre proviene de la unión de My con SQL. My era la hija del cofundador de
la empresa originaria de la idea.
Por qué utilizar MySQL:
 Es código abierto, lo que significa que es gratis de utilizar y que se
puede modificar.
 Su uso está muy extendido: desde sistemas gestores de contenidos
como WordPress y Drupal, a grupos de empresas como Prisa.
 Es muy fácil de aprender y utilizar, al ser muy intuitivo.
 Funciona muy bien junto con PHP, lo que permite crean páginas web
dinámicas con facilidad.

OPERACIONES BÁSICAS CON MYSQL


Con MySQL se pueden realizar muchos tipos de operaciones. Las operaciones básicas
son:

 Crear bases de datos

 Crear usuarios, grupos de usuarios y contraseñas.

 Crear y modificar tablas

 Eliminar tablas

 Cargar datos

 Añadir y modifcar registros en las tablas

 Consultar y actualizar los registros

 Eliminar registros

10
 Hacer consultas conjuntas a varias tablas en modo vista

 Operaciones de agrupación, orden, comparación, etc.

 Operaciones avanzadas, como programación de triggers, procesos


almacenados, etc.

En esta primera entrega del Curso de MySQL hemos visto una introducción a las bases
de datos, los sistemas gestores de BD, el modelo relacional en que se basa SQL y una
breve introducción a MySQL.

CURSO DE MYSQL (II): INSTALACIÓN Y


CONCEPTOS BÁSICOS DE MYSQL.
INSTALACIÓN DE MYSQL EN TU
COMPUTADORA
Hay diferentes formas de instalar MySQL en tu PC, entre ellas cabe destacar:
 Usar el paquete oficial de MySQL.Hay varios paquetes
disponibles según el sistema operativo, incluyendo Windows, Mac OS X
y Linux. El proceso más sencillo de instalación es descargar el paquete
que nos interesa, ejecutar el fichero de instalación y seguir los pasos. En
ladocumentación oficial encontraréis una guía detallada para cada uno
de los sistemas operativos. Aquí vamos a ver los pasos básicos si
escogemos esta instalación para Windows:
 Ejecutamos el fichero MSI installer de Windows
 Seleccionamos Default Configuration
 Seleccionamos Developer Machine, pues esto nos permitirá tener
habilitadas funcionalidades de desarrollador.
 Seleccionamos el uso de la CPU y del disco duro como Moderado, ya que
queremos usarlo con la finalidad de desarrollo y no como servidor dedicado.
 Seleccionamos la opción “Multifunctional Database“.
 Escogemos un password para el usuario root.

11
 Instalar el paquete LAMP, WAMP 0 MAMP, según nuestro sistema
operativo sea Linux, Windows o Mac respectivamente. Estos paquetes
incluyen todo lo necesario para instalar en tu ordenador el servidor
Apache, MySQL y PHP/Perl, de aquí el acrónimo de “AMP” (la L, W y
M son de Linux, Windows y Mac). Estos paquetes requieren muy poco
trabajo de configuración para que funcionen.
 Instalar el paquete XAMPP. Personalmente, esta es mi opción
preferida por la facilidad de instalación. Lo único que tienes que hacer
es ir a la página oficial de Xampp y descargar el instalador. Funciona
tanto para Mac, como para Windows, Linux y Solaris. A continuación
veremos cómo instalar XAMPP.

INSTALACIÓN DE XAMPP
 Ve a la página de XAMPP y haz clic en el enlace que se corresponda a tu
sistema operativo.

 En Download, selecciona XAMPP y a continuación Installer.

 Una vez descargado, ejecútalo. Verás una pantalla como esta:

12
 Selecciona las opciones de XAMPP que te interesen. Te recomendamos
todas las opciones, excepto FileZilla, nosotros al menos utilizamos
FileZilla a parte.

13
 Una vez finalizada la instalación, hay que iniciar los servicios desde el
panel de control de XAMPP. Lo podemos hacer desde el icono que
hemos creado en el escritorio, como desde el archivoxampp-control que
encontraremos en la carpeta donde hayamos instalado XAMPP, en
Windows sería en C:\xampp. Para iniciar los servicios, hemos de pulsar
“Start” en Apache y en MySQL.
Hay varias maneras de poder ejecutar comandos de MySQL,mañana veremos como
hacerlo desde phpmyadmin. Pero antes de nada, es necesario que sepamos que es la
consola de MySQL, cómo la iniciamos y algunos de los comandos de MySQL.
Antes de nada, asegúrate que el servidor de MySQL está en marcha. Si utilizas XAMPP,
es tan fácil como pulsar Start y ver que está en funcionamiento. Cuando instalas el
servidor de MySQL, automáticamente se instala mysql, el monitor de MySQL. Éste es un
programa de comandos por línea.
Veamos pues como iniciar la consola de MySQL:
1. Ejecuta la ventana de terminal:

14
 Windows 7. Haz clic en el botón inicio y en el campo de búsqueda
teclea cmd y pulsa enter. O ves a Todos los Programas > Accesorios >
Símbolo del Sistema.
 Mac OS X. Abre una ventana de búsqueda y escoge Aplicaciones >
Utilidades > Terminal.
 Ubuntu, Escoge Aplicaciones > Accesorios > Terminal, o pulsa el logo
de Ubuntu y tecleaterminal.
2. Ejecuta mysql en la ventana de terminal:
 Windows 7. Ve a la carpeta donde tienes instalado MySQL. En el caso
que hayas instalado XAMPP, teclea cd c:\xampp\mysql\bin y
pulsa enter. Para iniciar mysql, teclea mysql -u root y pulsa enter.
 Mac OS X y Ubuntu: Simplemente escribe mysql -u root y
pulsa enter.
Nota importante. En el caso de haber puesto una contraseña, el comando será mysql -
u root -p password en lugar de mysql -u root, donde has de sustituir password
por tu contraseña.
En el caso que todo haya ido como esperado, verás que en el terminal
aparece mysql>. En Windows verás lo siguiente:

PRIMEROS PASOS EN MYSQL


Ya tenemos instalado MySQL y hemos iniciado la pc. Ahora vamos a aprender los
comandos más importantes para empezar a trabajar con MySQL.
Ver las bases de datos instaladas
Para ver las bases de datos que tenemos instaladas, ejecutamos este comando
en el terminal de mysql:

15
1 show databases;

como justo acabamos de instalar MySQL y no hemos creado todavía ninguna


base de datos, te aparecerán las que viene por defecto,
como information_schema, test o mysql.
Seleccionar una base de datos
Para seleccionar una base de datos, ejecutamos este comando:
1 use test;

Ahora tenemos seleccionada la base de datos test y todo lo que hagamos será
sobre esta base de datos. Para seleccionar otra, usamos el mismo comando,
cambiando el nombre de la base de datos.
Crear una base de datos
1 create database biblioteca;

Si todo va como esperado, aparecerá una línea de código similar a ésta: Query
OK, 1 row affected (0.05 sec). Acabamos de crear una base de datos
llamada “biblioteca”. Para comprobarlo, es tan fácil como utilizar el comando que
justo acabamos de aprender, show databases; Veremos que ahora en el listado
aparece biblioteca.
Cerrar la consola
view source
print?
1 exit;

Para salir de la consola tecleamos simplemente exit y damos a enter. Es el único


caso en que da igual poner o no el punto y coma final.

CONCEPTOS BÁSICOS DE MYSQL


Ya hemos visto como crear una base de datos y como crear una nueva. Ahora es
el momento de poner manos a la obra y meternos de lleno en el mundo de
MySQL. Para hacer fácil lo difícil, aprenderemos los comandos con un ejemplo. Si
os surge cualquier duda o problema, sólo tenéis que dejar un comentario y
haremos todo lo posible por ayudaros.
Para empezar, seleccionemos ahora la base de datos “biblioteca:
1 use biblioteca;

Crear una tabla

16
Partimos de la base de datos que acabamos de crear llamada “biblioteca”. En ella
queremos crear una tabla llamada “libros” que recoja el fondo bibliográfico. Tal y
como explicábamos ayer en el artículo de introducción a las bases de datos
relacionales, una tabla está formada por campos (columnas) y registros (filas)
donde podemos almacenar la información deseada. En nuestra tabla de ejemplo
crearemos los campos “titulo”, “autor”, “fecha_publicacion” y “cantidad”: No
ponemos el campo “editorial” porque, como mañana veremos, es mejor separar
algunos datos en diferentes tablas y luego utilizar un comando para enlazarlas.
view source
print?
1 create table libros(
2 libro_id int unsigned auto_increment,
3 titulo varchar(50) not null,
4 autor varchar(30) not null default 'Desconocido',
5 cantidad smallint unsigned default 0,
6 primary key (libro_id)
7 );

No nos asustemos, aquí hemos introducido muchas cosas de golpe, vayamos


paso por paso. Hemos creado varios campos con una serie de parámetros. Los
campos han de ir separados por coma y dentro del paréntesis. Aquí el punto y
coma va al final, después del paréntesis. Es muy fácil olvidárselo, por lo que
prestad especial atención en este punto. Veamos ahora que hemos
hecho: create table libros crea una tabla llamada libros. Podríamos haber
hecho lo siguiente:
1 create table libros;

Lo que habría pasado, es que habríamos creado una tabla vacía, esto es, sin
ningún campo. Como hemos dicho, una tabla está compuesta por campos y
por registros. Para poder introducir un registro en la misma, primero es necesario
crear los campos, que es lo que hemos hecho. Así en nuestro ejemplo hemos
creado cuatro campos:libro_id, titulo, autor y cantidad. ¿por qué crear un libro_id?
Porque, como explicábamos en laprimera parte de este curso de MySQL para

17
principiantes toda tabla tiene que tener definida una clave primaria que tiene que
ser única para cada registro.
Veamos ahora uno por uno cada uno de los campos creados:
1 libro_id int unsigned auto_increment,

Lo primero que indicamos siempre es el nombre del campo que estamos


creando. int significa integer, lo que quiere decir que tiene que ser un número
entero. unsigned significa que no puede ser negativo, por lo que la cuenta
empezará con el 1. auto_increment significa que el propio gestor de bases de
datos, en este caso MySQL, incrementará de manera automática este valor cada
vez que introduzcamos un registro en esta tabla.
1 titulo varchar(50) not null,
2 );

Ahora estamos creando un campo llamado titulo.varchar significa caracteres


y varchar(50) indica que este campo está formado por una cadena de como
máximo 50 caracteres. significa que este campo es obligatorio y que
no podemos dejarlo en blanco.
1 autor varchar(30) not null default 'Desconocido',

Efectivamente, esta sentencia crea un campo llamado autor de como mucho 30


caracteres que tampoco puede dejarse en blanco. Aquí introducimos una
diferencia, y es que hemos añadido default 'Desconocido'. Significa que si
no introducimos nada, el sistema automáticamente pondrá que el autor es
Desconocido. Así, un libro siempre tiene título, pero no siempre aparece un autor,
pensemos en muchos libros de texto o en libros de autor anónimo.
1 cantidad smallint unsigned default 0,

smallint es un tipo de número entero que no admite valores grandes, esto nos
sirve para evitar errores de tecleado. Aquí hemos creado un campo llamado
cantidad que es un número entero pequeño positivo y que en caso de dejarlo en
blanco el sistema pondrá que no hay ninguno. El motivo por el que el default es 0
y no 1, es porque un libro se puede haber extraviado.
1 primary key (libro_id)

Aquí definimos que la clave primaria de esta tabla sera el id del libro.

18
Imaginemos ahora que ya existía una tabla llamada libros que no nos interesa.
Entonces, habríamos escrito este comando:
1 drop table if exists libros;
2 create table libros(
3 libro_id int unsigned auto_increment,
4 titulo varchar(50) not null,
5 autor varchar(30) not null default 'Desconocido',
6 cantidad smallint unsigned default 0,
7 primary key (libro_id)
8 );

Lo que hace drop table if exists libros; es mirar si existe alguna tabla
llamada "libros" dentro de la base de datos "biblioteca" y si así es, eliminarla.
Mostrar las tablas de una base de datos
Para ver la tabla que acabamos de crear, utilizamos este comando:
1 show tables;

Veremos ahora que aparece "libros" en el resultado.


Mostrar los campos de una tabla
Para inspeccionar los campos de la tabla "libros", usamos el comando explain:
1 explain libros;

Modificar una tabla


Imaginemos ahora que queremos añadir el campo "editorial" a nuestra tabla
"libros". Mañana veremos que es mejor crear una tabla llamada "editorial" y
enlazar ambas tablas, pero a título de ejemplo haríamos esto:
1 alter table libros add editorial varchar(50) not null;

Si ahora ejecutamos el comando explain libros; veremos que ha creado un


campo llamado editorial.
Imaginemos que en lugar de 50 caracteres sólo admita 20. Lo podemos modificar
así
1 alter table libros modify column editorial varchar(20) not null;

Ya hemos creado nuestra tabla libros con cuatro campos. Ahora vamos a proceder
a incluir registros en la tabla.
Insertar registros en la tabla
1 insert into libros (titulo, autor, cantidad)

19
2 values ('Un mundo cualquiera', 'Pepito Frito', 2);

Con esta simple sentencia hemos creado nuestro primer registro en MySQL. Lo
que le decimos es que inserte dentro de libros "Un mundo cualquiera" en el campo
título, "Pepito Frito" en el campo autor y 2 en el campo cantidad. Imaginemos
ahora que hemos comprado un libro más y que queremos actualizar la cantidad a
3, veamos ahora como lo podemos modificar.
Modificar el nombre de una tabla
Si quisiéramos cambiar el nombre de la tabla libros al de fondo_bibliotecario,
haríamos lo siguiente:
1 rename table libros to fondo_bibliotecario;

Modificar registros de una tabla


1 update libros set cantidad=3 where
2 titulo like 'Un mundo cualquiera';

Le decimos que actualiza la tabla libros, poniendo en cantidad 3 y que la condición


es que el título sea "Un mundo cualquiera". Con where estamos estableciendo
una condición, si no la ponemos, lo que hará es poner 3 en TODOS los registros,
por lo que es muy importante no olvidarse el where.
Imaginemos que hay dos libros llamados "Un mundo cualquiera" escritos por
diferentes autores. En este caso la sentencia sería:
1 update libros set cantidad=3 where (titulo like 'Un

2 mundo cualquiera' and autor like "Pepito


Frito");

Aquí hemos hecho servir una cláusula AND, en la que indicamos que se han de
cumplir las dos condiciones. El motivo del paréntesis es que si no lo ponemos no
tendrá en cuenta la segunda condición.

EL COMANDO SELECT
Hay muchas más cosas que decir sobre select, pero este es un tutorial básico,
por lo que no nos podemos extender. Si quieres saber más, te recomendamos leer
la documentación oficial sobre la sintaxis de SELECT.
Para poder ver el potencial de select, necesitamos crear más registros:
1 insert into libros (titulo, autor, cantidad) values ('Logra un vientre
plano', 'Dolores Barriga', 1);

20
2 insert into libros (titulo, autor, cantidad) values ('Aprende a
bailar','Manolo Descalzo', 1);

Veamos ahora nuestro primer comando de select:


1 select * from books;

Veremos que aparecen todos los libros.


1 select * from libros where cantidad like 1;

Nos devuelve dos resultados, el libro de "Dolores Barriga" y el de "Manolo


Descalzo".
Para que sólo nos muestre el título y el autor, haremos
1 select titulo, autor from libros;

Ahora vamos a ver una tabla de los libros en que sólo se muestra el título y el
autor. Veamos ahora como hacemos que sólo muestre los libros de los que sólo
tenemos 1:
1 select titulo, autor from libros where cantidad=1;

Ahora no aparece el libro de Pepito Frito, ya que de él tenemos 3 en total.


Si queremos seleccionar los libros cuyo autor empiece con "D", haremos lo
siguiente:
1 select * from libros where autor like "D% ;

El signo % actúa como comodín y significa que da igual lo que venga después de
la D. También podemos ponerlo antes. Pongamos que queremos escoger todos
los autores cuyo primer apellido sea Descalzo. Haremos esto:
1 select * from libros where autor like "%Descalzo% ;

EVITAR RESULTADOS REPETIDOS


Imaginemos que tenemos varios autores repetidos, pues cada autor ha escrito
varios libros. Si queremos mostrar los autores y no ponemos ninguna condición,
nos mostrará los resultados repetidos. Para evitarlo, utilizamos distinct.
1 select distinct autor from libros;

LIMITAR EL NÚMERO DE RESULTADO


Si tenemos una base de datos con muchos registros, es posible que queramos
limitar el número de registros que queremos devolver. Para ello utilizamos limit.

21
1 select * from libros limit 3;

Nos devuelve los tres primeros resultados. Imaginemos que queremos que sólo
nos devuelva 3 resultados a partir del registro 5, haríamos lo siguiente:
view source
print?
1 select * from libros limit 5,3;

LOS OPERADORES OR, AND, > Y <


El operador OR
Lo utilizamos para indicar que valide que se cumple un criterio de dos o más
dados. El resultado final es todos aquellos registros que cumplan la condición OR.
Veamos un ejemplo:
1 select * from libros where (autor like &quot;%Descalzo%) or (autor like&qu
ot;Dolores Barriga&quot; );

En este caso nos mostrará todos los libros que tienen como autor a los que se
apellidan Descalzo y los libros de Dolores Barriga.
El operador AND
Lo utilizamos para indicar que valide que se cumplen todos los criterios dados.
1 select * from libros where (autor like &quot;%Descalzo%) and (autor like&q
uot;Dolores Barriga&quot; );

En este caso no nos devolverá ningún resultado, ya que no hay ningún libro que
cumpla ambas condiciones.
El operador > y el operador <
Lo utilizamos para seleccionar los registros que sean mayores o menores que la
condición dada.
1 select * from libros where (cantidad &gt; 1 );

Nos muestra todos los libros de los que hay 2 o más en stock.
1 select * from libros where (cantidad &lt; 3 );

Nos muestra todos los libros de los que hay 3 o menos en stock.

BORRAR REGISTROS, TABLAS Y BASES DE


DATOS
Borrar un registro de una tabla
Para borrar un registro, utilizamos el comando delete from:

22
1 delete from libros where libro_id=2;

Aquí vemos que en lugar de like hemos utilizado el signo igual. La diferencia es
que el signo igual es mucho más restrictivo.
Borrar todos los registros de una tabla
En el caso de querer borrar todos los registros de una tabla, no utilizaremos el
condicional where:
1 delete from libros;

Borrar una tabla


Tal y como hemos visto antes, para borrar una tabla utilizamos el comando drop
table seguido del nombre de la tabla a borrar:
1 drop table libros;

Borrar una base de datos


Para borrar una base de datos utilizamos el comando drop database seguido
del nombre de la base de datos:
view source
print?
1 drop database biblioteca;

EJERCICIO
Este ejercicio ha sido propuesto por Francesc Estanyol en un curso de MySQL
para principiantes impartido en el Cibernàrium de Barcelona. Lo he escogido por
estar muy bien planteado para poner en práctica todos los conceptos hasta aquí
impartidos.
Un videoclub que alquila películas de vídeo guarda información sobre sus
películas de alquiler, sus socios y los alquileres.

 Crea una tabla para guardar las películas con los siguientes campos:

o Título (30 caracteres).

o Actor (40 caracteres).

o Duración (valor entero).

 Consulta la estructura de la tabla.

 Introduce los siguientes registros:

23
o Pulp Fiction, John Travolta, 90

o Misión Imposible, Tom Cruise, 120

o Misión imposible 2, Tom Cruise, 180

o Harry Potter I, Daniel H., 120

o Harry Potter II, Daniel H., 150

 Muestra todos los registros.

 Muestra todos los registros donde los actores se llamen Tom o Daniel.

 Muestra todos los actores, sin valores repetidos.

 Muestra el título y la duración de aquellas películas que duren más de


120 minutos.

 Cambia la duración de Harry Potter II de 150 minutos a 130.

 Inserta un nuevo registro con los valores que quieras, visualízalo y


después bórralo.

 Haz un listado de todas las películas mostrando el título y la duración,


ordenadas primero por duración y después por título.

 Cuenta el número de películas que hay en total en la base de datos.

 Muestra las películas que tengan una duración entre 115 y 145 minutos.

Para cualquier duda en su resolución, os animo a dejar un comentario, haré todo


lo posible por ayudaros.

CONCLUSIÓN
En esta segunda entrega hemos visto como instalar MySQL, como ejecutar la
consola y los conceptos básicos de MySQL.

24
CURSO DE MYSQL(3): COMANDOS Y
FUNCIONES DE MYSQL. PHPMYADMIN.
Hoy vamos a ver cómo enlazar tablas, cómo crear usuarios, las funciones básicas de
MySQL y una introducción a phpMyAdmin.

ENLAZAR TABLAS
Vamos a seguir con el ejemplo de ayer para ver como podemos enlazar tablas
usando el comando joins deselect.
Teníamos la base de datos biblioteca. Para los que justo os incorporáis al curso, la
podéis crear y seleccionar con:
1 create database biblioteca;
2 use biblioteca;

Volvemos a crear la tabla libros, pero esta vez incluimos el campo editorial:
1 create table libros(
2 libro_id int unsigned auto_increment,
3 titulo varchar(50) not null,
4 autor varchar(30) not null default 'Desconocido',
5 codigo_editorial int unsigned not null,
6 cantidad smallint unsigned default 0,
7 primary key (libro_id)
8 );

Y ahora también creamos una tabla editoriales:


1 create table editoriales (
2 editorial_id int unsigned auto_increment,
3 nombre_editorial varchar(25) not null,
4 primary key (editorial_id)
5 );

Ahora necesitamos crear una serie de registros para ambas tablas para ver el
funcionamiento en la práctica:
1 insert into libros (titulo, autor, codigo_editorial, cantidad)

2 values ("Técnicas avanzadas de posicionamiento en


buscadores","Fernando Maciá Domene", 1, 2);

25
3 insert into libros (titulo, autor, codigo_editorial, cantidad)
4 values ("Diseño Web con CSS", "Ralph G. Schulz ", 2, 1);
5 insert into libros (titulo, autor, codigo_editorial, cantidad)

6 values ("Usabilidad. Prioridad en el diseño Web", "Jakob


Nielsen", 1, 1);
1 insert into editoriales (nombre_editorial) values ("Anaya");
2 insert into editoriales (nombre_editorial) values ("Marcombo");

En la tabla editoriales, Anaya es el registro 1 y Marcombo el registro 2. Ahora


queremos mostrar los libros de la editorial Anaya, probad esto:
1 select * from libros where codigo_editorial=1;

Veremos que efectivamente sólo se muestran los libros de la editorial Anaya, pero
en el campo editorial aparece el número 1. Lo que nosotros queremos es que en
este campo aparezca el nombre de la editorial y no su código. Aquí entra el
comando left join para vincular tablas.

LEFT JOIN
1 select * from libros join editoriales
2 on editoriales.editorial_id = libros.codigo_editorial;

En este caso, vemos los libros de todas las editoriales, pero también aparece los
campos codigo_editorial yeditorial_id que no queremos visualizar en los
resultados:

Para evitarlo, cambiamos el comodín asterisco por los campos que queremos
visualizar:
1 select libros.titulo, libros.autor,libros.cantidad,
editoriales.nombre_editorial

2 from libros join editoriales on editoriales.editorial_id


= libros.codigo_editorial;

El resultado es:

26
Si solo queremos visualizar los libros de la editorial Anaya, entonces hemos de
modificar el código:
1 select libros.titulo, libros.autor,libros.cantidad,
editoriales.nombre_editorial

2 from libros join editoriales on editoriales.editorial_id =


libros.codigo_editorial
3 where libros.codigo_editorial=1;

Finalmente, el resultado es:

Hay otros tipos de comandos join, para más información te invitamos a ver
la documentación oficial de MySQL.

UNIÓN DE TABLAS
Con MySQL también podemos unir las consultas a varias tablas en un único
conjunto de resultados. Para ello utilizamos el comando union. Es importante
tener en cuenta que ambas tablas han de tener el mismo número de campos o
nos dará error. Un ejemplo será:
select libros.titulo from libros union select editoriales.nombre_editorial
1
from editoriales;

CREAR UN USUARIO EN MYSQL


Cuando creamos un usuario, tenemos que definir qué tipo de acceso le damos de
los tres disponibles: local, remoto y total. También hemos de definir
los permisos que el usuario tendrá: si sólo de lectura o de lectura y escritura.
Acceso total y permisos de lectura y escritura
A continuación vamos a crear un usuario llamado administrador en la base de
datos biblioteca con la contraseña 123abc. A este usuario le vamos a dar un perfil
de administrador, esto es, total acceso y permisos de escritura y lectura:

27
1 grant all privileges on biblioteca.* to 'administrador'@'localhost'
2 identified by '123abc' with grant option;
3 flush privileges;

Ponemos flush privileges para no tener que esperar a que se reinicie el


servidor para que se hagan efectivos los permisos.
El tema de los permisos y gestión de usuarios excede este curso para
principiantes, para los que queráis saber más, os recomiendo consultar la página
de referencia de MySQL.

LAS FUNCIONES EN MYSQL


La mayoría de las funciones que veremos en este curso de MySQL para
principiantes se crean usando el comando select, pero puedes utilizar las
funciones de MySQL de manera mucho más amplia. A continuación veremos las
funciones básicas de MySQL para incluir en la programación de nuestras bases de
datos.
Convertir una cadena de caracteres en mayúsculas
1 select upper(titulo) from libros;

Nos devuelve el título en mayúsculas de todos los libros incluidos en la


tabla libros.
Convertir una cadena de caracteres en mínusculas
1 select lower(titulo) from libros;

Nos devuelve el título en mínusculas de todos los libros incluidos en la tabla libros.
Concatenar cadenas
Para ilustrarlo, vamos a crear una tabla usuarios dentro de biblioteca
1 use biblioteca;
2 create table usuarios (
3 usuario_id int unsigned auto_increment,
4 nombre varchar(30) not null,
5 primer_apellido varchar(30) not null,
6 primary key (usuario_id)
7 );

Ahora vamos a insertar un par de registros en esta tabla:


insert into usuarios (nombre,
1
primer_apellido) values ("Sara", "Gutiérrez");

28
insert into usuarios (nombre,
2
primer_apellido) values ("Pablo", "Morales");

Para ver el nombre y el apellido como una cadena, hacemos:


1 select concat (nombre, ' ' , primer_apellido) from usuarios;

El resultado será que veremos en pantalla lo siguiente:

En el título de los resultados vemos que pone concat (nombre, ‘ ‘ ,


primer_apellido), pero nosotros queremos que ponga Usuarios. Con esto
introducimos el comando as:
1 select concat (nombre, ' ' , primer_apellido) as Usuarios from usuarios;

Ahora vemos que en lugar de concat (nombre, ‘ ‘ ,


primer_apellido) aparece Usuarios:

Longitud de una cadena de texto


Con el comando length podemos calcular el número de caracteres de una
palabra o frase:
1 select length('mi casa');

El resultado es 7, ya que también cuenta los espacios.


Para más funciones con cadenas, os recomendamos ver la guía oficial de MySQL.

FUNCIONES NUMÉRICAS
Primero de todo, veamos los operadores numéricos:
Suma
1 select 3+5;

Muestra en pantalla 8.
Resta
1 select 3-5;

29
Muestra en pantalla -2.
Multiplicación
1 select 3*5;

Muestra en pantalla 15.


División
1 select 3/5;

Muestra en pantalla 0.60.


Mödulo
El módulo es el resto de una división.
1 select 5%2;

Muestra en pantalla 1.
Entre las funciones numéricas destacamos:
Raíz cuadrada
1 select sqrt(4);

Devuelve 2.
Redondeo
El primer valor de la funcion round(n1, n2) es el número decimal que queremos
redondear y el segundo valor es el número de decimales que se han de conservar.
1 select round(56.443, 2);

Devuelve 56.44.
Rand
Muestra un número aleatorio entre 0 y 1
1 select rand();

Para otras funciones numéricas, os recomendamos este enlace de MySQL.

FUNCIONES PARA LA FECHA Y HORA


Las funciones para la fecha y la hora de MySQL son particularmente flexible y
útiles. Tanto si lo que quieres es hacer un cálculo basado en la fecha (por ejemplo,
obtener la edad dividiendo la fecha actual con la de nacimiento), o simplemente
devolver el nombre del mes, existe una función de MySQL para cada propósito.

30
Aquí sólo veremos una selección de las mismas, puede consultar la página de
desarrollo de MySQL para ver todas las funciones que tienes disponibles.
Mostrar la fecha actual
1 select curdate();

Muestra 2012-03-01.
Mostrar la hora actual
1 select curtime();

Muestra 18:15:32.
Mostrar la fecha y hora actual
1 select now();

El formato del resultado es: 2012-03-01 18:15:32.


Extraer la fecha de un resultado
1 select date('2011-12-31 01:02:03');

El formato del resultado es: 2011-12-31.


Escapa del alcance de este curso el entrar en detalle en todas las funciones
disponibles en MySQL, puedes encontrar toda la información en la guía oficial de
desarrolladores de MySQL.

INTRODUCCIÓN A PHPMYADMIN
Recomiendo el uso de phpMyAdmin a todos los que aprendéis MySQL con el
objetivo de combinarlo en la creación de páginas web dinámicas. En sí, todos los
gestores de contenidos basados en PHP y MySQL lo traen integrado, como es el
caso de WordPress, Joomla y Drupal. phpMyAdmin es una herramienta de
software gratuita pensada para la fácil administración de MySQL en Internet.
Las operaciones más usadas, como crear, modificar y borrar bases de datos,
tablas o registros se pueden realizar a través de su interfaz sin necesidad de saber
MySQL, lo que lo convierte en una estupenda herramienta para las personas que
no conocen el lenguaje. También es útil cuando, aún conociéndolo, se trata de ir
rápido, pues no has de prestar atención en la sintaxis de cada una de las
sentencias. Uno de los puntos fuertes es que cada vez que haces algo con la
interfaz, no sólo da el resultado, sino que te muestra en pantalla la sintaxis que ha

31
utilizado para llevarlo a cabo, lo que también es una herramienta excelente de
aprendizaje.
Veamos un ejemplo. Tenemos ya creadas la base de datos biblioteca junto con las
tablas libros, usuarios y editoriales. Ahora queremos insertar un nuevo libro en la
tabla libros. Veremos esta pantalla:

Como vemos, nos permite introducir dos registros, para ello, deberíamos quitar la
marca de “Ignorar”. Podéis ver en la imagen que he creado un libro titulado “Me lo
invento” de autor “Desconocido” de la editorial 1 y del que tenemos 2 en total.
Cuando pulsamos en “Continuar”, vemos esta pantalla:

32
Como vemos, no sólo nos confirma que se ha creado una nueva fila en la tabla
libros, sino que además nos muestra el código generado. Es una excelente
interfaz gráfica para el desarrollo web.
Entre otras funciones, phpMyAdmin puede crear y eliminar bases de datos, crear,
modificar y eliminar alterar tablas, añadir, editar y borrar campos, ejecutar
cualquier sentencia de MySQL, crear, editar y borrar usuarios, administrar
privilegios, así como importar y exportar datos en varios formatos. Estas funciones
de importar y exportar también son muy útiles cuando queremos trasladar nuestro
blog a otro sistema, por ejemplo, de Drupal a WordPress.

CREAR UNA BASE DE DATOS CON PHPMYADMIN


Para crear una base de datos, vamos a la pestaña “Base de Datos” en el campo
“Crea una base de datos”, ponemos el nombre de la base de datos que queremos
crear y pulsamos “Crear”:

33
ORRAR UNA BASE DE DATOS CON PHPMYADMIN
En la misma pestaña que antes, seleccionamos la base de datos que queremos
borrar y pulsamos “Eliminar”:

CREAR UNA TABLA CON PHPMYADMIN


34
En la pestaña anterior, clicamos encima de la base de datos que queremos
modificar. Veremos que hemos seleccionado la base de datos, porque, tal y como
vemos en la siguiente imagen, aparecerá en el panel lateral de phpMyAdmin.
Suponiendo que no hemos eliminado videoteca.hacemos clic sobre ella y veremos
esto:

Como hacíamos anteriormente, hemos de especificar el número de campos que


tendrá la tabla. En el paso siguiente habremos de especificar los valores de los
campos, tal y como hacíamos manualmente:

35
Para modificar o borrar una tabla, haremos lo mismo que hicimos con las bases de
datos: la seleccionamos y le damos a “Eliminar”. Para insertar un registro, en la
pantalla donde aparece la tabla, pulsamos “Insertar” y en la siguiente pantalla
rellenamos los diferentes campos:

CONCLUSIÓN
Esta ha sido la tercera y última parte de un curso de MySQL para principiantes.
Hemos visto como vincular tablas con joint left y union, como crear usuarios,
las funciones básicas de MySQL y una introducción a phpMyAdmin. Si te ha
interesado el tema y quieres seguir aprendiendo, te recomendamos la web de
desarrollo de MySQL en castellano.

36

También podría gustarte