Anda di halaman 1dari 21

mysql

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.

test=> CREATE TABLE empleado (
test(> nombre VARCHAR(20),
test(> apellido VARCHAR(20),
test(> sueldo FLOAT,
test(> sexo CHAR(1),
test(> edad INTEGER,
test(> transaccion TIMESTAMP
DEFAULT CURRENT_TIMESTAMP,
test(> ingreso DATE);


Insertar datos (INSERT)

test=> INSERT INTO empleado (nombre, apellido, sueldo,
sexo, edad, ingreso) VALUES
test-> ('Javier', 'Ramrez', 34452.89, 'M', 23, '4-06-08');


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:

test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso)
VALUES ('Mara', 'Prez', 2317.89, 'F', 23, '30-07-2005');

test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso)
VALUES ('Alejandro', 'Padilla', 4317.86, 'M', 24, '12-08-2006');

test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso)
VALUES ('Raquel', 'Carmona', 5817.86, 'F', 24, '15-02-2006');

test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso)
VALUES ('Armando', 'Pinillos', 7317.86, 'M', 24, '13-08-2005');

test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso)
test-> VALUES ('Mara', 'Romero', 11317.89, 'F', 23, '30-08-2004');


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;

Anda mungkin juga menyukai