Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Primeramente usaremos la sentencia SHOW para ver cuales son las bases de datos
existentes en el servidor al que estamos conectados.
Figura 1
Figura 2
Al crear una base de datos, esta no se selecciona de manera automtica sino que se
debe hacer de manera explicita usando el comando USE.
Figura 3
La base de datos se crea slo una vez, pero debemos seleccionarla cada vez que
iniciamos una sesin con MySql. Es recomendable que se indique la base de datos
sobre la que vamos a trabajar al momento de invocar al monitor de MySQL. Por
ejemplo:
Figura 4
Crear tablas
Figura 5
Por ejemplo vamos a crear una tabla alumno para la base de datos Biblioteca.
Figura 6
Ahora que se ha creado la tabla alumno, la sentencia SHOW TABLES, debe producir
lo siguiente:
Figura 7
Figura 8
Como podemos apreciar, todas las columnas creadas nos permiten ingresar valores
nulos, pero una tabla necesita tener obligatoriamente una Clave Primaria y no valores
nulos.
En primer lugar eliminamos la tabla alumno usando la sentencia DROP TABLE ALUMNO.
Figura 9
Figura 10
Figura 11
NDICES
Los ndices sirven para optimizar las consultas y bsquedas de datos. Su uso permite
localizar de forma ms rpida, las filas con determinados valores de columnas. La
alternativa es hacer bsquedas secuenciales, que EN tablas GRANDES requieren mucho
tiempo.
1. En primer lugar tenemos las claves primarias las cuales se pueden establecer
tambin de la siguiente forma:
Figura 12
2. El segundo tipo de ndice permite definir ndices sobre una o varias columnas o
sobre parte de ellas. Podemos usar para definir estos ndices las opciones KEY o
INDEX indistintamente.
Figura 13
O
Figura 14
Figura 15
Para crear el ndice este comando utilizara las primeras cuatro letras de nombre del
alumno.
3. El tercero permite definir ndices con claves nicas, para lo cual se utiliza la opcin
UNIQUE.
Figura 16
La diferencia entre un ndice nico y uno normal, es que el ndice nico no permite la
insercin de filas con claves repetidas, a excepcin del valor NULL.
Una clave primaria equivale a un ndice de clave nica, en la que el valor de la clave no
puede tomar valores NULL. Tanto los ndices normales como los de claves nicas si
pueden tomar valores NULL.
Figura 17
Figura 18
CLAVES FORNEAS
Se puede definir claves forneas en cualquier tipo de tabla de MYSQL, pero nicamente
se tiene soporte para claves forneas definidas en tablas de tipo InnoDB. Ya que estas
tablas son las que garantizan la integridad de los datos.
Las tablas del tipo InnoDB se almacenan en un solo archivo, permiten trabajar con
transacciones, y definir reglas de integridad referencial.
Puedes asegurarte de que tienes soporte para el tipo de tablas InnoDB ejecutando la
siguiente sentencia:
Figura 19
Vamos a crear una tabla de tipo InnoDB como por ejemplo. Para ello digitamos las
siguientes instrucciones:
Figura 20
Luego procedemos a insertar los siguientes valores:
Figura 21
Para trabajar con las claves forneas, ambas tablas debern ser del tipo InnoDB, y se
debe usar la sintaxis FOREIGN KEY (campo_fk) REFERENCES nombre tabla
(nombre_campo), adems de definir un ndice para el campo que ha sido declarada la
clave fornea.
Siguiendo con la base de datos biblioteca, creamos las tablas tipo InnoDB edito y libros.
Figura 22
Figura 23
Algunos comandos
Figura 24
Figura 25
Por ejemplo vamos a tratar de eliminar la editorial Bruo de la tabla Edito, la cual
tambin se encuentra asignada en la tabla Libros.
El resultado que nos muestra es que no se puede eliminar una fila, la cual esta
referenciada en otras tablas como clave fornea.
Insertar registros
Para facilitar el ingreso de datos podemos crear un archivo de texto que contenga una
lnea con valores separados por tabuladores, cuidando que el orden de las columnas sea
el mismo que se utiliza en la sentencia create table, para representar valores bulos
usar \N.
Figura 26
Para cargar el contenido del archivo de texto gilmer.txt, usaremos el siguiente comando:
Figura 27
La sentencia LOAD DATA nos permite especificar cual es el separador de columnas, y el
separador de registros, por defecto el tabulador es el separador de columnas (campos), y
el salto de lnea es el separador de registros, que en este caso son suficientes para que la
sentencia LOAD DATA lea correctamente el archivo gilmer.txt.
Para comprobar que los datos se insertaron correctamente, podemos realizar un SELECT
a la tabla alumno.
Figura 28
Asimismo, si se desea aadir un registro a la vez debemos usar la sentencia INSERT, tal
como se mostro anteriormente. Por ejemplo:
Figura 29
Tambin podemos volver a consultar la tabla alumno para ver los datos insertados.
Figura 30
Remplazar Registros
Existe una sentencia REPLACE, que es una alternativa para INSERT, que solo se
diferencia en que si existe algn registro anterior con el mismo valor para una clave
primaria o nica, se elimina el viejo y se inserta el nuevo en su lugar.
Figura 31
Actualizar registros
Por ejemplo vamos a actualizar los datos del registro N 3, con el siguiente comando:
Figura 32
Con la instruccin Select podemos mostrar los cambios que se realizaron con el comando
Update.
Figura 33
Nota que aqu usamos el comando WHERE para poder filtrar nuestra consulta de acuerdo
a una determinada condicin, que en este caso es que el cdigo del alumno sea el
nmero 2.
Consultar Registros:
Figura 34
Selecciona los alumnos que estn estudiando Derecho o que cursen el I ciclo o
estn en la escuela de Ingeniera de sistemas.
Figura 35
Selecciona los alumnos que estn estudiando Derecho y que no tengan datos
de ciclo.
Figura 36
Figura 37
Al igual que en SQL podemos hacer uso del comando DISTINCT, paa filtrar los datos, de
manera, que no se presenten en forma repetitiva
Figura 38
Figura 39
Selecciona el nombre, escuela y ciclo de los alumnos, y ordnalos por nombre.
Figura 40
Figura 41
Usamos el alias AS para definir un nombre de columna que almacene resultado de una
sentencia.
Consulta de varias tablas
Podemos consultar el nombre de los libros que pertenecen a la editorial bruo, para ello
realizamos las siguientes instrucciones:
Figura 42
Eliminar registros
Figura 43
Figura 44
Figura 45
Cuando queremos eliminar todas las filas de una tabla, podemos usar una sentencia
DELETE sin condiciones. Sin embargo, existe una sentencia alternativa, TRUNCATE, que
realiza la misma tarea de una forma mucho ms rpida.
La diferencia es que DELETE hace un borrado secuencial de una tabla, fila a fila.
TRUNCATE borra la tabla y la vuelve a crear vaca, lo que es mucho ms eficiente.
Figura 46
Figura 47
SHOW COLUMNS: Lista las columnas de una tabla dada
Funciones de Encriptado
Funciones de Grupos
PROCEDIMIENTOS ALMACENADOS
Un procedimiento almacenado es una rutina escrita en un lenguaje en particular
almacenado en una base de datos. Tiene un nombre, una lista de parmetros (que puede
ser vaca) y un cuerpo (las sentencias que se ejecutarn al invocarlo).
Sentencia Descripcin
CREATEPROCEDURE Crea un procedimiento almacenado, el cual es
almacenando en la tabla Proc DE LA Base de datos
MySQL.
ALTERPROCEDURE Altera un procedimiento almacenado que fue creado
previamente.
DROPPROCEDURE Borra uno o ms procedimientos almacenados desde la
tabla PROC
SHOW PROCEDURE Retoma las caractersticas de un procedimiento definido
STATUS previamente incluyendo nombre, tipo, fecha de creacin y
fecha de modificacin.
CALL Invoca a un procedimiento almacenado.
DECLARE Usado para definir variables locales, condiciones
cabeceras y cursores.
SELECT INTO Usado para almacenar las columnas indicada
directamente en variables.
FETCH Recupera la fila siguiente usando el cursor especificado y
avanzando el cursor en una fila.
IF Una sentencia condiciona IF-Then-Else-End If
LOOP Una estructura simple, la salida es realizada usando la
sentencia LEAVE.
ITERATE Usado para recomenzar el inicio de los lazos.
WHILE Un lazo con prueba condicional al principio.
Ejemplo:
Figura 48
El delimitador puede ser cualquier carcter que sea aceptado por MySQL que no vayas a
utilizar nunca.
Figura 49
Figura 50
FUNCIONES
Una funcin puede devolver un valor como resultado de su ejecucin adems presenta
limitaciones que un procedimiento almacenado no tiene.
Sentencia Descripcin
CREATE FUNCTION Crea una funcin definida por el usuario esencialmente un
procedimiento almacenado que retorna datos.
ALTER FUNCTION Altera una funcin definida previamente.
ALTER FUNCTION Altera una funcin definida previamente
DROP FUNCTION Borra una o mas funciones de la tabla PRO DE MySQL
SHOW FUNCTIONS Retorna las caractersticas de una funcin y definida
STATUS
BEGIN_END Contiene un grupo de sentencias mltiples para ejecucin
SET Usado para alterar los valores de ambas variables locales,
variables de servidor globales
OPEN Usado para abrir un curso
CLOSE Usado para cerrar un curso.
CASE WHEN Una sentencia CASE condicional.
LEAVE Usado para salir de una sentencia IF, CASE, LOOP,
REPEAT, and WHILE.
REPEAT Un lazo con una declaracin condicional al final.
RETURNS Retorna un valor desde una funcin almacenada.
Ejemplo:
Figura 52
Figura 53
Figura 54
TRIGGERS (DISPARADORES)
Los triggers son objetos relacionados con tablas y almacenados en la base de datos, que
se ejecutan o se muestran cuando sucede algn evento sobre sus tablas asociadas.
Los eventos pueden ser las sentencias INSERT, DELETE, UPDATE que modifican los
datos de una tabla. Los triggers se pueden ejecutar antes (BEFORE y7o despus
(AFTER) de que sean modificandos los datos.
Los triggers tienen dos palabras clave, OLD y NEW que se refieren a los valores que
tienen las columnas antes y despus de la modificacin. Los INSERT permiten NEW, los
DELETE slo OLD y los UPDATE ambas.
Ejemplo:
Un ejemplo de triggers sera guardar los datos que se modifican de un libro en otra tabla
que servira de auditora.
Figura 55
Posteriormente creamos un trigger que se disparar cada vez que alguien modifique un
dato de la tabla libros y lo guardar en una tabla junto al nombre del usuario y la fecha.
Figura 56
Para ver como trabaja el trigger realizaremos lo siguiente.
Figura 57
Figura 58
VISTAS
Una vista es un SELECT almacenado. El motor distingue dos tipos de tablas base y
derivadas. Una tabla base, es una existente en el motor de almacenamiento. Una
derivada, es la que surge de cualquier combinacin de tablas base, literales y/o funciones.
Desde este punto de vista, un SELECT produce una tabla derivada. As, una Vista es un
nombre asociado a la tabla derivada que surge de un SELECT INSPERs Y UPDATEs
modificando la tabla base.
Ejemplos:
Crear una vista que muestre los alumnos de la tabla alumno
Figura 60
Figura 61
Crear una vista que muestre los alumnos que se encuentran en los tres primeros ciclos
Figura 62
Ahora visualizamos los datos de la nueva vista creada
Figura 63
CURSORES
Son tablas temporales que permiten ejecutar grandes consultas, Son soportados dentro
de procedimientos almacenados o funciones. La sintaxis es como un SQL embebido. Los
cursores pueden o no hacer copias de sus tablas de resultados y son de solo lectura.
Antes de la versin 5 MYSQL permita acceder a los metadatos a travs de SHOW, por
ejemplo SHOW TABLES.
Entre otras tablas, se encuentra TABLES, que lista las tablas y vistas que existen en el
motor.