Sei sulla pagina 1di 26

Aprendiendo Query MySQL

Aprendamos a ser Autodidactas

Carta al Lector

Este libro fue escrito en el ao 2014. La razn de haber hecho este libro fue para poderlo hacer llegar
a las personas que quieran aprender o iniciarse en cursos de creacin de base de datos en mysql y
puedan hacerlo de manera autodidacta. Adems procure usar los mejores mtodos para ensear la
creacin de query en mysql y que resulte accesible a todo el pblico que lo requiera. Si bien en un
principio fue destinado principalmente para bachilleres que se introducen en el mundo de las bases
de datos, espero que sea de agrado para todo el pblico lector que desee introducirse a este mundo.
Si bien mis objetivos parecen difciles de alcanzar, considero que ser posible llegar a muchas
personas por lo comprensible y amigable que resulta la lectura de este libro.

ndice

Iniciando desde cero................................................................................................................................4


Crear........................................................................................................................................................5
Mostrar....................................................................................................................................................6
Borrar.......................................................................................................................................................7
Insertar datos en tablas...........................................................................................................................8
Consultar datos de una tabla...................................................................................................................9
Reemplazar datos..................................................................................................................................10
Borrar datos...........................................................................................................................................11
Unin de tablas......................................................................................................................................12
Funciones...............................................................................................................................................16
Crear funciones......................................................................................................................................19
Crear procedimientos............................................................................................................................21
Mostrar cdigo de procedimientos y funciones....................................................................................22
Borrar procedimientos y funciones.......................................................................................................23
Estructuras de flujo................................................................................................................................24
Finalizamos............................................................................................................................................25
Anexos...................................................................................................................................................26

4
Iniciando desde cero

Debido a que estamos empezando desde cero la creacin de query en mysql es importante saber que
para este curso haremos uso de la aplicacin XAMPP, con esta aplicacin no tendrs que preocuparte
por pagar licencias o porque uses X sistema operativo, ya que esta aplicacin pertenece a la gran
gama de software libre y est disponible para cualquier sistema operativo.

XAMPP es un conjunto de aplicaciones que te brindan los siguientes servicios:


- Base de datos MySQL.
- Servicio Web.
- Lenguaje de programacin PHP.

5
CREATE

Crear una base de datos:

CREATE DATABASE (nombre de la base);

CREATE DATABASE datos_personales;

El nombre de la base de datos no debe tener espacios en blanco...

Crear una tabla:

Antes de crear una tabla debemos definir que base de datos usaremos ejecutando el query:
USE (nombre de la base de datos);

USE datos_personales;

CREATE TABLE (nombre de la tabla)(

CREATE TABLE personas(

(nombre de columna) (tipo de dato)


(validacin),

id INT NOT NULL AUTO_INCREMENT,


nombres VARCHAR(30) NOT NULL,

(nombre de columna) (tipo de dato)


(validacin),

telefonos INT NULL,

...

PRIMARY KEY(id)

PRIMARY KEY(columna que no repita dato)

);

);

INT define tipos de datos enteros, VARCHAR(30) tipos de datos de cadena de caracteres con mximo
de 30 caracteres. NOT NULL no permite que los datos de esa columna estn vacas, NULL si permite
estn vacas. AUTO_INCREMENT incrementa automticamente su valor.

6
SHOW

Mostrar bases de datos:

SHOW DATABASES;

Mostrar las tablas de una base de datos:

Recuerden que para poder definir que base de datos usaremos debemos ejecutar el query:
USE (nombre de la base de datos);

USE datos_personales;

Si ya hemos ejecutado anteriormente el query que define que base de datos usaremos no es
necesario ejecutarlo cada vez que queremos hacer algo en esta base de datos.
SHOW TABLES;

7
DROP

Borrar base de datos:

DROP DATABASE (nombre de la base);

DROP DATABASE datos_personales;

Borrar tabla:

DROP TABLE (nombre de la tabla);

DROP TABLE personas;

8
INSERT INTO

Insertar datos en una tabla:

INSERT INTO (nombre de la tabla)(

INSERT INTO personas(

(nombre de columna1),(nombre de columna2)... nombres, telefonos


)

VALUES(

VALUES(

(dato de la columna1),(dato de la columna2)...

'Ricardo', 73371362

),(

),(

(dato de la columna1),(dato de la columna2)...

'Veronica', NULL

);

);

Con NULL estamos definiendo que no tenemos datos para introducirle.

9
SELECT

Consultar datos de una tabla:

SELECT * FROM (nombre de la tabla);

SELECT * FROM personas;

Para mostrar solo algunas columnas de una tabla debemos ejecutar un query como a este.
SELECT (column1),(column2) FROM (tabla);

SELECT nombres,telefonos FROM personas;

Para mostrar los datos en orden podemos hacerlo con DESC o ASC.
SELECT (columnas) FROM (tabla)

SELECT * FROM personas

ORDER BY (columna) DESC;

ORDER BY id DESC;

Con WHERE podemos hacer restricciones de lo que queremos mostrar usando =, <, >, >=, <=.
SELECT (columnas) FROM (tabla)

SELECT nombres FROM personas

WHERE (columna)=(dato que contenga);

WHERE id=1;

Tambin podemos hacer restricciones usando operadores lgicos AND, OR.


SELECT (columnas) FROM (tabla)

SELECT * FROM personas

WHERE (column)=(dato) OR (column)=(dato);

WHERE id=1 OR id=2;

Si sabemos solo parte del contenido que queremos ver podemos usar LIKE.
SELECT (columnas) FROM (tabla)

SELECT * FROM personas

WHERE (columna) LIKE %(dato)%;

WHERE nombres LIKE '%Ric%';

10
UPDATE

Reemplazar datos:

UPDATE (tabla) SET (columna)=(dato nuevo)

UPDATE personas SET nombres='Antonio'

WHERE (validacin);

WHERE id=1;

Si no ponemos una restriccin se modificaran todas las filas de dicha columna.

11
DELETE

Eliminar datos:

DELETE FROM (tabla)

DELETE FROM personas

WHERE (validacin);

WHERE id=1;

Si no ponemos una restriccin se borraran todos los datos de la tabla.

12
Unin de tablas

Las relaciones de tablas en bases de datos solo pueden ir de uno a uno o de uno a muchos. Por
ejemplo: una persona puede tener muchos nmeros de telfonos.

13
Para poder realizar las consultas que se presentaran a continuacin debes ejecutar los query que se
encuentran en el archivo: agenda_telefonica.sql

INNER JOIN

SELECT nombres.nombres, telefonos.telefonos FROM nombres


INNER JOIN telefonos ON nombres.id_nombres=telefonos.id_nombres;

LEFT OUTER JOIN

SELECT nombres.nombres, telefonos.telefonos FROM nombres


LEFT OUTER JOIN telefonos ON nombres.id_nombres=telefonos.id_nombres;

14
RIGHT OUTER JOIN

SELECT nombres.nombres, telefonos.telefonos FROM nombres


RIGHT OUTER JOIN telefonos ON nombres.id_nombres=telefonos.id_nombres;

UNION

SELECT nombres.nombres, telefonos.telefonos FROM nombres


LEFT OUTER JOIN telefonos ON nombres.id_nombres=telefonos.id_nombres
UNION
SELECT nombres.nombres, telefonos.telefonos FROM nombres
RIGHT OUTER JOIN telefonos ON nombres.id_nombres=telefonos.id_nombres;

15
Consulta uniendo ms de 2 tablas:

SELECT nombres.nombres, telefonos.telefonos, tipos.tipos FROM nombres


INNER JOIN telefonos ON nombres.id_nombres=telefonos.id_nombres
INNER JOIN tipos ON tipos.id_tipos=telefonos.id_tipos;

16
Funciones

COUNT

Cuenta las filas de la columna de una tabla:


SELECT COUNT(columna) FROM (tabla);

SELECT COUNT(id_nombres) FROM nombres;

MAX

Muestra el dato de mayor valor de cierta columna:


SELECT MAX(columna) FROM (tabla);

SELECT MAX(id_nombres) FROM nombres;

MIN

Muestra el dato de menor valor de cierta columna:


SELECT MIN(columna) FROM (tabla);

SELECT MIN(id_nombres) FROM nombres;

SUM

Muestra la suma de los valores de cierta columna:


SELECT SUM(columna) FROM (tabla);

SELECT SUM(id_nombres) FROM nombres;

17
CONCAT

Concatena dos variable o dos columnas:


SELECT CONCAT(dato1,dato2)

SELECT CONCAT(nombres, id_nombres)

FROM (tabla);

FROM nombres;

CURDATE

Muestra la fecha actual (ao-mes-da):


SELECT CURDATE();

CURTIME

Muestra la hora actual (hora:minutos:segundos):


SELECT CURTIME();

NOW

Muestra la fecha y hora actual (ao-mes-da ahora:minutos:segundos):


SELECT NOW();

18
DATEDIFF

Muestra la diferencia en das que hay entre una fecha y otra:


SELECT DATEDIFF('2007-2-6 17:33:25,2007-1-1);

DATE_ADD

Muestra una fecha aumentado en n das:


SELECT DATE_ADD('2007-1-14', INTERVAL 15 DAY);

19
Crear funciones

Antes de crear funciones debemos habilitar la funcin ejecutando el siguiente query:


SET GLOBAL log_bin_trust_function_creators = 1;

Ante de poder crear una funcin debemos crear un delimitador, para delimitar donde termina el
query de nuestra funcin:
DELIMITER //

Despus de haber creado el delimitador cada vez que queramos ejecutar un query debemos terminar
con //, el delimitador se mantiene mientras no se cierre y abra la consola.
CREATE FUNCTION nombre_de_la_funcion()

CREATE FUNCTION hola()

RETURNS tipo_de_variable_que_retornara

RETURNS VARCHAR(30)

BEGIN

BEGIN

DECLARE variable tipo_de_variable;

DECLARE salida VARCHAR(30);

SET variable = proceso;

SET salida = 'Hola mundo';

RETURN variable_que_retornara;

RETURN salida;

END;

END;

//

//

Hasta que no se cierre y abra nuevamente la consola el delimitador se debe usar.


SELECT nombre_de_la_funcion(); //

SELECT hola(); //

20
Creacin de funciones con entrada de datos:
CREATE FUNCTION funcion(variable tipo,
variable tipo)
RETURNS tipo_de_salida
BEGIN
DECLARE variable tipo;
SET variable = proceso;
RETURN variable;
END;

CREATE FUNCTION hola(nombre VARCHAR(30))


RETURNS VARCHAR(30)
BEGIN
DECLARE salida VARCHAR(30);
SET salida = CONCAT('Hola ', nombre);
RETURN salida;
END;
//

//

Ejecutamos la funcin de la siguiente forma:


SELECT funcion(dato); //

SELECT hola('Ricardo'); //

Podemos tambin ejecutar la funcin con columnas de tablas:


SELECT funcion(columna) FROM tabla; //

SELECT hola(nombres) FROM nombres; //

21
Crear procedimientos

Creacin de procedimientos almacenados:


CREATE PROCEDURE nombre_del_proce()

CREATE PROCEDURE nombres()

BEGIN

BEGIN
query

SELECT * FROM nombres;

END;

END;

//

//

Para ejecutar el procedimiento debemos hacer el siguiente query:


CALL nombre_del_procedimiento(); //

CALL nombres(); //

22
Mostrar cdigo de procedimientos y funciones

Mostrar el cdigo de un procedimiento:


SHOW CREATE PROCEDURE procedimiento\G;

SHOW CREATE PROCEDURE nombres\G;

Mostrar el cdigo de una funcin:


SHOW CREATE FUNCTION funcion\G;

SHOW CREATE FUNCTION hola\G;

23
Borrar procedimientos y funciones

Borrar un procedimiento:
DROP PROCEDURE procedimiento;

DROP PROCEDURE nombres;

Borrar una funcin:


DROP FUNCTION funcin;

DROP FUNCTION hola;

24
Estructuras de flujo

IF:
IF condicin THEN
procesos;
ELSEIF condicin THEN
procesos;
ELSE
procesos;
END IF;

DO WHILE:
WHILE condicin DO
procesos;
acumulador;
END WHILE;

Estas estructuras de flujo son muy usadas cuando se crean funciones personalizadas.

25
Finalizamos

Espero que haya sido de provecho este libro para mis lectores, tambin espero que sigan forjando su
aprendizaje ya que mi lema es aprendiendo a ser autodidactas, si quieren comunicarse con migo lo
pueden hacer al correo:

r_a_v_r_@hotmail.com

En el momento que escrib la parte final de este libro, me encontraba escribiendo el comienzo de
otro libro para lectores autodidactas, si deseas aprender ms con libros escritos por su servidor,
puedes hacerlo descargndolos desde mi pgina web:

http://www.ravr.xtrweb.com/

26
Anexos

XAMPP (https://www.apachefriends.org/es/index.html)

Potrebbero piacerti anche