mysql es sistema de gestion de base de datos relacional.
mysql es de fuente abierta cualquiera lo puede usar y modificar). Esta hecho en lenguaje C y es un compilador. sql es el Lenguaje de Consulta Estructurado. Con mysql se puede instala como servidor y se hacen conexiones tipo cliente al servidor.
El lenguaje consta de: a) comandos. b) clausulas. c) operadores. d) funciones de agregado.
Tipos de comandos de sql a) DLL : permite crear y definir nuevas bases de datos, campos e indices. CREATE : permite crear nuevas tablas. DROP : permite eliminar tablas e indices. ALTER: permite modificar tablas agregando campos, o cambiando la definicion de los campos. b) DML : permite generar consultas para ordenar, filtrar, y extrar datos de la base de datos. SELECT: Utilizado para consultar registros de la base de dato que satisfagan un criterio determinado. INSERT: Utilizado para cargar lotes de datos en la base de datos en una nica operacin. UPDATE: Utilizado para modificar los valores de los campos y registros especificados. DELETE: Utilizado para eliminar registros de una tabla de una base de datos. Clusulas
Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular.
FROM: Utilizada para especificar la tabla de la cual se van a seleccionar los registros. WHERE: Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar. GROUP BY: Utilizada para separar los registros seleccionados en grupos especficos. HAVING: Utilizada para expresar la condicin que debe satisfacer cada grupo. ORDER BY: Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico.
Operadores Lgicos
AND: Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. OR: Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. NOT: Negacin lgica. Devuelve el valor contrario de la expresin.
Funciones de Agregado
Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros. AVG: Utilizada para calcular el promedio de los valores de un campo determinado. COUNT: Utilizada para devolver el nmero de registros de la seleccin. SUM: Utilizada para devolver la suma de todos los valores de un campo determinado. MAX: Utilizada para devolver el valor ms alto de un campo especificado. MIN: Utilizada para devolver el valor ms bajo de un campo especificado. Crear una tabla (CREATE)
Vamos a crear una tabla llamada empleado en alguna base de datos, por ejemplo test.
Observamos que se ponen las columnas en las que se va a insertar, no se puso la columna transaccin ya que esta se inserta por default con la hora y la fecha actuales. Seleccionar (SELECT)
Obtener toda la tabla empleado
test=> SELECT * FROM empleado; Obtener algunas columnas y todos los renglones de la tabla empleado test=> SELECT apellido, sueldo, ingreso FROM empleado;
Seleccionar renglones especficos (WHERE)
En SELECT se usa la clusula WHERE, donde se especifican los renglones que se quieren obtener. Por ejemplo el nombre y apellido de los empleados cuya edad sea mayor igual a 25 aos.
test=> SELECT nombre, apellido FROM empleado test-> WHERE edad >=25; O bien, los que su apellido sea Ramrez test=> SELECT nombre, apellido FROM empleado test-> WHERE apellido = 'Ramrez';
Como se trata de columnas tipo caracter, se usan apstrofes y debe escribirse exactamente como est en la base de datos.
Removiendo datos con DELETE (DELETE)
Con DELETE podemos mover uno bien todos los renglones de una tabla, por ejemplo DELETE FROM empleado; eliminara todos los datos de la tabla empleado. Si utilizamos la clusula WHERE se eliminan los renglones que cumplan la condicin, por ejemplo:
test=> DELETE FROM empleado test-> WHERE ingreso = '2008-12-24; Modificando datos con UPDATE (UPDATE)
En una base de datos adems de insertar y eliminar datos hay que actualizar. Por ejemplo, la edad del empleado Javier Prez es de 35 aos.
test=> UPDATE empleado SET edad = 35 WHERE apellido = 'Prez';
La clusula WHERE controla los renglones en los que se llevar a cabo la modificacin. Si no se pone esta clusula, se cambiaran la edad de todos los empleados a 35.
Ordenando datos con ORDER BY (ORDER BY)
Cuando hacemos un SELECT, los renglones se despliegan con un orden no determinado. Si se quieren obtener los renglones en un orden especfico, es necesario aumentar la clusula ORDER BY al final del SELECT.
test=> SELECT * FROM empleado ORDER BY apellido;
Para invertir el orden se usa DESC
test=> SELECT * FROM empleado ORDER BY edad DESC;
Se puede ordenar por distintas columnas, si en la primera hay dos valores iguales, se usa la siguiente para ver cual va primero. Destruyendo tablas con DROP (DROP)
Cuando queremos eliminar completamente la tabla escribimos: DROP TABLE empleado;
Si queremos eliminar todos los datos de una tabla pero conservar su estructura utilizamos (no ejecutarla):
DELETE FROM empleado; Uso de AND/OR (AND & OR)
AND y OR se usan para conectar condiciones simples. Insertaremos ms datos en empleado:
AND se usa para combinar las dos comparaciones que conecta, ejemplo:
test=> SELECT * FROM empleado WHERE nombre='Mara' AND apellido='Prez';
OR verifica que se cumpla una de las dos comparaciones al menos, ejemplo: test=> SELECT * FROM empleado WHERE sexo = 'F' OR edad = 24;
Si se combinan ANDs y ORs en un mismo query es mejor agrupar los ANDs y los ORs usando parntesis. Los ANDs se evalan primero. Por ejemplo, si se quieren los de apellido Prez y que sean hombres mujeres si no usamos parntesis el resultado es incorrecto, ya que se evala el AND primero:
test=> SELECT * FROM empleado WHERE apellido='Prez' AND sexo='M' OR sexo='F';
Me da los de apellido Prez Y son de sexo M pero tambin todos los de sexo F, ya que primero se ejecuta el AND y despus el OR.
Lo correcto es: test=> SELECT * FROM empleado WHERE apellido='Prez' AND (sexo='M' OR sexo='F'); Este me da los que son de apellido Prez y que son de sexo M F.
Between y Like (FROM)
Si queremos aqullos empleados que estn entre 24 y 30 aos de edad:
test=> SELECT * FROM empleado WHERE edad >= 24 AND edad <= 30; test=> SELECT * FROM empleado WHERE edad BETWEEN 24 AND 30;
Para obtener los datos de los empleados cuyo apellido inicia con la letra R:
test=> SELECT * FROM empleado WHERE apellido LIKE 'R%';
Obtener los que ingresaron en 2008:
test=> SELECT * FROM empleado WHERE ingreso LIKE '2008%';
COUNT
COUNT(*) = cuenta renglones Contar nmero de renglones
test=> SELECT COUNT(*) FROM empleado;
SUM
SUM(nombre_col) = total Obtener la suma de los sueldos
test=> SELECT SUM(sueldo) FROM empleado;
MAX
MAX(nombre_col) = mximo Obtener el sueldo mximo
test=> SELECT MAX(sueldo) FROM empleado;
MIN
MIN(nombre_col) = mnimo Obtener la edad mnima
test=> SELECT MIN(edad) FROM empleado;
AVG
AVG(nombre_col) = promedio Obtener el sueldo promedio
test=> SELECT AVG(sueldo) FROM empleado; GROUP BY
En los ejemplos anteriores nos regres un rengln como resultado y slo se us una columna con el agregado.
Usando los agregados con GROUP BY se tendr la aplicacin del agregado en una columna, en los renglones agrupados por otra columna.
SELECT COUNT(*) FROM empleado, regresa el nmero de renglones en la tabla. Si queremos contar cuntos son sexo M y cuantos F:
test=> SELECT sexo, COUNT(*) FROM empleado GROUP BY sexo;
Si por sexo se quiere saber datos del salario y de la edad:
test=> SELECT sexo,MIN(edad),MAX(edad),AVG(sueldo) FROM empleado GROUP BY sexo ORDER BY 4 DESC; HAVING
Permite probar condiciones en los valores agregados. A menudo se usa con GROUP BY. Con HAVING se pueden incluir o excluir grupos basados en el valor de agregacin para ese grupo.
En el ejemplo de contar los empleados por sexo, podemos limitar para que despliegue solo aqullos que sean ms de 3, el query que cuenta empleados por sexo es:
test=> SELECT sexo, COUNT(*) FROM empleado GROUP BY sexo;
Slo los que sean ms de 3 empleados de ese sexo:
test=> SELECT sexo, COUNT(*) FROM empleado GROUP BY sexo HAVING COUNT(*)>3;