You are on page 1of 26

Prctica 1: Creacin de una base de datos en MySQL

so

PRCTICA 1
CREACIN DE UNA BASE DE DATOS EN MySQL

Prctica 1: Creacin de una base de datos en MySQL


OBJETIVO:
Conocer las instrucciones bsicas necesarias para crear, manipular y
eliminar una base de datos.

FUNDAMENTO TERICO:
MySQL utiliza el Lenguaje de Consulta Estructurado (SQL). Se trata del
lenguaje utilizado por todas las bases de datos relacionales. Las
instrucciones de SQL se pueden considerar divididas en dos grupos principales:
las estructurales, tambin llamadas de definicin de datos (DLL) y las
instrucciones de datos, tambin llamadas de manipulacin de datos
(DML). Las primeras se destinan a crear, modificar y eliminar bases de datos y
las estructuras de las tablas que las conforman.

Las DML, en cambio, se ocupan de incorporar nuevos registros a las


tablas, buscar determinados registros segn los criterios necesarios,
modificar los datos grabados o eliminarlos.
Creacin de Bases de Datos y su estructura
Para crear una base de datos usamos la instruccin
CREATE DATABASE IF NOT EXISTS baseDeDatos;
La mayora de las instrucciones de MySQL deberemos terminarlas con un
punto y coma (;). La clusula IF NOT EXISTS es opcional, pero si no se
incluye y la base de datos ya existe se producir un error al intentar
crearla, por lo que se recomienda agregarla siempre.
Las bases de datos slo necesitan ser creadas una sola vez, pero deben
ser seleccionadas cada vez que se inicia una sesin de MySQL. Puede
hacerse a travs del comando
USE baseDeDatos
Podemos observar que en esta y otras sentencias no ser necesario
terminarlas con punto y coma. Mediante el comando USE le indicamos a
MySQL que se trabajar con la base de datos baseDeDatos.
Otro comando que se utilizar con mucha frecuencia es SHOW el cual
nos permitir listar las bases de datos que contiene nuestro servidor o
las tablas que posee la base de datos actual, su sintaxis simple es:

SHOW < DATABASES >| < TABLES >;


Es necesario mencionar que este comando tiene muchos usos, sin
embargo para el alcance de esta prctica slo se abordarn estos dos
casos.
Para eliminar una base de datos escribiremos la instruccin DROP
DATABASE seguida del nombre de la base
de datos, adicionalmente podemos agregar la clusula IF EXISTS para
prevenir que se produzca un error.
DROP DATABASE IF EXISTS baseDeDatos;
No est por dems mencionar que utilizar esta instruccin se elimina
todo lo referente a la base de datos en cuestin y esta operacin es
irreversible.
Finalmente para salir del ambiente de consola de MySQL utilizaremos el
comando QUIT.
DESARROLLO:
1. Mencione la clasificacin de las instrucciones de SQL.
2. Inicie sesin en ambiente de consola de MySQL y efecte las
siguientes actividades. (documente cada uno de los resultados
obtenidos, de ser posible tomar una imagen de lo que hay en
pantalla y agregarlo a un archivo Word).
a) Utilice la instruccin SHOW para mostrar las bases de datos
existentes en el entorno de MySQL
b) Cree la base de datos inv_ferretero.
c) Utilice nuevamente la instruccin SHOW para mostrar las
bases de datos existentes en el entorno de MySQL
d) Intente crear nuevamente la base de datos inv_ferretero,
no utilice la clusula IF NOT EXISTS y documente el resultado
obtenido.

e) Use la instruccin SHOW para listar las bases de datos en el


entorno pero no coloque el punto y coma (;) al final de
la instruccin, documente la respuesta de MySQL.
f) Cree la base de datos farmacia_simi.
g) Establezca como base de datos actual la base de datos
inv_ferretero
h) Cambie a la base de datos farmacia_simi como base de
datos actual
i) Elimine la base de datos inv_ferretero.
j) Utilice la instruccin SHOW para mostrar las bases de datos
existentes en el entorno de MySQL

PRCTICA 2
CREACIN DE TABLAS EN MySQL

OBJETIVO:
Conocer y aplicar las instrucciones SQL necesarias para crear, manipular
y eliminar la estructura de una base de datos.
FUNDAMENTO TERICO:
Creacin de una tabla
Una vez que hemos seleccionado la base de datos con la cual se va a
trabajar, para crear una tabla deberemos utilizar la instruccin CREATE
TABLE seguida del nombre que tendr la nueva tabla y despus definir
los campos y su tipo de datos entre parntesis.
CREATE TABLE nombreTabla (Campo1 Tipo_de_dato, campo2
Tipo_de_dato);
Como la definicin de los diferentes campos puede llegar a ser extensa,
MySQL permite escribir en varios renglones antes de procesar el
comando hasta que encuentra un punto y coma, por lo que el siguiente
sera un ejemplo vlido
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1),
-> birth DATE, death DATE);
Los tipos de datos que se pueden manejar desde SQL son los que se
resumen a continuacin:
TIPO
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
FLOAT (M,D)

DESCRIPCIN
Nmero entero de 0 a 255 sin signo o de -128 a 127
con signo
Entero de 0 a 65,535 sin signo o de -32,768 a 32,767
con signo
Entero de 0 a 16,777,215 sin signo o de -8,388,608 a
8,388,607 con signo
Entero de 0 a 4,294,967,295 sin signo o de
-2,147,483,648 a 2,147,483,648 con signo
El rango con signo es de -9,223,372,036,854,775,808 a
9,223,372,036,854,775,807. El rango sin signo es de 0
a 18,446,744,073,709,551,615.

Nmero en coma flotante de simple precisin. M es


la cantidad mxima de dgitos, sin contar el signo
ni el punto decimal, D es el nmero de dgitos

DOUBLE (M,D)

DECIMAL (M,D)
DATE
DATETIME
TIME
CHAR (N)
VARCHAR (N)
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
ENUM
(V1,V2,etc)

decimales.
Nmero en coma flotante de doble precisin. M es
la cantidad mxima de dgitos, sin contar el signo
ni el punto decimal, D es el nmero de dgitos
decimales.
Nmero guardado como cadena alfanumrica. M es
la cantidad mxima de dgitos, sin contar el signo
ni el punto decimal, D es el nmero de dgitos
decimales.
Fecha en formato AAAA-MM-DD o AA-MM-DD.
fecha y hora en formato AAAA-MM-DD HH:MM:SS
Hora en formato HH:MM:SS, o bien HHMMSS o
HHMM
Cadena de N caracteres. Se reservan N caracteres
aunque el dato que luego se grabe ocupe menos.
Cadena de longitud variable. Se reservan N
caracteres pero si el dato ocupa menos, se reduce
la longitud.
Texto plano con un mximo de 255 caracteres.
Texto plano con un mximo de 65,535 caracteres.
Texto plano con un mximo de
16,777,215
caracteres.
Texto plano con un mximo de 4,294,967,295
caracteres.
Archivo binario (puede ser texto RTF, imgenes,
etc.) con un mximo de 255 bytes.
Archivo binario con un mximo de 65,535 bytes.
Archivo binario con un mximo de 16,777,215
bytes.
Archivo binario con un mximo de 4,294,967,295
bytes.
Campo que acepta cualquiera de los posibles
valores enumerados entre parntesis.

Se recomienda escribir siempre en maysculas los tipos de datos al


momento de definir una nueva tabla, pues si bien es cierto la mayora de
los motores de las bases de datos los reconocen en minsculas existen
algunos que no lo hacen.

Cuando se crea una tabla, al declarar los campos que la constituirn,


adems del tipo de cada dato, se le pueden asignar algunos atributos,
en la siguiente tabla se listan los ms comunes.
ATRIBUTO
NULL
NOT NULL

DEFAULT valor

ZEROFILL

AUTO_INCREMENT

DESCRIPCIN
Indica que el campo podr quedar sin ningn contenido
cuando se cree un registro o cuando se modifique uno
ya existente
Indica que en ese campo se debe tener asignado un
contenido obligatoriamente en cada registro; si se
intenta dejar sin contenido se producir un error.
Indica el valor que el campo asumir por defecto al
crear un nuevo registro de la tabla; este valor podr
ser modificado por el capturista. Si el campo es
alfanumrico se acotar con comillas simples.
Este atributo aplica a campos numricos cuando
queremos que se rellenen con ceros los dgitos a la
izquierda del valor introducido.
Este atributo se asigna a un campo numrico cuando
deseamos que se incremente de forma automtica; es
decir, cada nuevo registro que se cree almacenar un
valor que sea una unidad ms que el registro anterior.
En caso de eliminar un registro, el valor que tena en
ese campo no se volver a asignar a ningn otro.

Se utiliza cuando queremos que no se pueda


repetir el valor de un campo en otro registro,
atributo ideal para las llaves principales. Sin
UNIQUE
embargo, MySQL no reconoce este atributo, sino
que por compatibilidad lo ignora sin provocar un
error.
Aplicado a campos numricos, hace que el motor
de la base de datos genere un error si se intenta
UNSIGNED
introducir un valor con signo, lo que, en la prctica
impedir utilizar valores negativos.
Define un campo como llave principal lo que valida
PRIMARY KEY
que no se puedan repetir los valores en dicho
campo, sustituyendo el uso del atributo UNIQUE.
Por ejemplo podramos definir una nueva tabla con las siguientes
sentencias:
CREATE TABLE IF NOT EXISTS empleados(
numero INT NOT NULL,
nombre VARCHAR (50),

salario FLOAT (6,2) ZEROFILL,


categoria CHAR (30),
sexo ENUM (M,F),
departamento CHAR (2),
PRIMARY KEY (numero)) TYPE = MyISAM;
La definicin de un campo como llave principal se puede realizar en la
misma lnea que se define el campo o bien agregar una lnea al final de
la lista de campos como una clusula lo que le da ms legibilidad a la
definicin.
Una vez creada la tabla, usando la instruccin DESCRIBE podramos
observar la estructura de una tabla bajo la siguiente sintaxis
DESCRIBE nombreTabla;
Por ejemplo, al escribir en la lnea de comandos DESCRIBE empleados;
obtendramos algo como esto:

El SQL permite la utilizacin de claves forneas, las que normalmente,


se asignan a campos coincidentes con otros que a su vez han sido
definidos como claves primarias o principales en otras tablas y que
permiten crear las relaciones entre las tablas. Sin embargo MySQL no
emplea claves forneas.
Para eliminar tablas de una base de datos utilizaremos la instruccin
DROP TABLE seguida del nombre de la tabla y al igual que sucede con
las bases de datos esta operacin es irreversible perdindose los datos y
la estructura de la misma.
DROP TABLE IF EXISTS nombreTabla;
En algunas ocasiones ser necesario modificar la estructura de una tabla
ya creada conservando la informacin que ya contiene, esto es posible
mediante el uso de la instruccin ALTER TABLE cuya sintaxis genrica es
la siguiente:
ALTER TABLE nombreTabla
ADD campo definicionDelCampo,

CHANGE campoAntiguo campoNuevo definicionDelCampo,


DROP campo;
Lo primero que se especificar ser el nombre de la tabla en cuestin,
obviamente dicha tabla deber existir en nuestra base de datos;
podremos agregar campos a nuestra tabla con la clusula ADD, cambia
el nombre y la definicin de campos ya existentes con CHANGE o
eliminar campos mediante DROP. No es necesario que se incluyan
las tres clusulas sino slo las que se requieren.
des
Por ejemplo:
ALTER TABLE empleados
CHANGE departamento depto CHAR (5);
Producira el siguiente cambio en la estructura

DESARROLLO
1. Inicie sesin en el ambiente de consola de MySQL y seleccione
como base de datos actual
farmacia_simi y ejecute las
siguientes tareas (documente cada uno de los ejercicios):
a. Mostrar las tablas existentes mediante el comando SHOW
b. Crear la tabla medicamentos definida de la siguiente
forma:
TABLA: MEDICAMENTOS
CAMPOS
TIPO DE DATOS
ATRIBUTOS
idmedicamen
NOT NULL
INT
PRIMARY KEY
to
medicamento VARCHAR (50)
NOT NULL
id_proveedor
INT
NOT NULL
NOT NULL
DEFAULT
tipo
VARCHAR(35)
Antibiticos

c. Mostrar la estructura de la tabla medicamentos.


d. Crear la tabla proveedores definida como sigue:
TABLA: PROVEEDORES
CAMPOS
TIPO DE DATOS
ATRIBUTOS
NOT NULL
id_proveedor
INT
PRIMARY KEY
proveedor
VARCHAR (50)
NOT NULL
ciudad
VARCHAR (25)
NOT NULL
telefono
CHAR(13)
NOT NULL
e. Mostrar la estructura de la tabla proveedores.
f. Modificar la estructura de la tabla medicamentos
cambiando el nombre del campo id_proveedor por
proveedor.
a. Agregue los siguientes campos a la tabla medicamentos
CAMPOS
TIPO DE DATOS
ATRIBUTOS
foto
TINYTEXT
descrip
TEXT
NOT NULL
presentacion
VARCHAR (25)
NOT NULL
b. Mostrar la nueva estructura de la tabla medicamentos.
c. Mostrar las tablas de la base de datos farmacia_simi.

PRCTICA 3

INGRESO DE DATOS A TABLAS EN MySQL

OBJETIVO:
Conocer las diferentes formas para agregar datos a una tabla en MySQL.
FUNDAMENTO TERICO.

Agregar datos a una tabla


Para agregarle informacin a una tabla, MySQL posee las instrucciones
LOAD DATA e INSERT. La primera instruccin nos permite cargar los
datos desde un archivo de texto donde los datos han sido separados por
una tabulacin o algn otro carcter delimitador y dispuestos en el
orden en que se crearon las columnas con la sentencia CREATE TABLE.
Para el caso de los campos que es necesario que queden vacos, o que
no se conozca la informacin en ese momento, deberemos rellenar con
el valor NULL indicando con \N en el lugar correspondiente. La
instruccin LOAD DATA requiere adems que indiquemos como
terminarn cada uno de los registros o renglones para el caso del
archivo de texto; para ello si estamos usando un sistema Windows
donde las lneas de texto terminan con retorno de carro y nueva lnea
deberemos utilizar LINES TERMINATED BY \r\n; para el caso de un
sistema OS X solo se empleara LINES TERMINATED BY \r.
La sintaxis de esta instruccin es:
LOAD DATA LOCAL INFILE /path/archivo.txt INTO TABLE nombreTabla
LINES TERMINATED BY \r\n;
Opcionalmente podremos especificar en la sentencia LOAD DATA los
caracteres que actuarn como separador de campo y fin de lnea, pero
los valores por defecto son tabulacin y nueva lnea.
De tal forma que si tenemos un archivo llamado trabajadores.txt en
nuestro directorio raz con la siguiente informacin

La sentencia que deberemos escribir en la lnea de comandos de MySQL


es
LOAD DATA LOCAL INFILE c:\trabajadores.txt INTO TABLE empleados
LINES TERMINATED BY \r\n;
Obtendramos como resultado:

Para ver el contenido de la tabla haremos una consulta simple con la


siguiente sentencia
SELECT * FROM empleados;
Esto nos dara el siguiente resultado:

Podemos observar que son los mismos datos contenidos en el archivo de


texto con la diferencia de que los datos del campo depto han sido
truncados por MySQL, esto es porque comprobando la estructura nos
damos cuenta de que dicho campo es de tipo CHAR con una longitud
mxima de 5 caracteres.

La segunda instruccin para agregar datos a una tabla nos posibilita


para introducir registro por registro desde la lnea de comandos, su
sintaxis es la siguiente:
INSERT INTO nombreTabla
VALUES (valor1, valor2, valor3, etc);
Los valores deben introducirse en el orden adecuado con respecto a los
campos de la tabla en cuestin, adems, si los campos son de tipo
alfanumrico o de fecha se deben introducir delimitados por comillas
simples. Por ejemplo la siguiente sentencia insertara un nuevo registro
en la tabla empleados
INSERT INTO empleados
VALUES (4, Rosita Alvarez, 1200.00, NULL, F, Venta);
Producira la siguiente salida al hacer una consulta del contenido de la
tabla:

Cuando deseamos modificar el contenido de un campo de solo un


registro es conveniente utilizar la instruccin UPDATE la cual establece
el valor de un campo especfico del registro que cumpla con cierta
condicin determinada, por ejemplo:
UPDATE empleados SET salario=3500.00 WHERE numero=1;
Actualizara el campo salario asignndole el valor de 3500.00 del
registro cuyo campo numero es igual a 1, las condiciones que utilicen
campos alfanumricos o de tipo fecha, debern colocarse entre comillas
simples ().

En caso de no utilizar la clusula WHERE se actualizaran todos los


registros de la tabla en su campo salario.
Si lo que necesitamos es eliminar algn o algunos registros que cumplan
con cierto criterio, entonces deberemos usar la instruccin DELETE por
ejemplo:
DELETE FROM empleados WHERE depto=Compr;
Borrara todos los registros de la tabla empleados donde el campo depto
tenga un valor igual a Compr, para nuestro caso sera nicamente el
registro nmero 2, produciendo la siguiente salida:

En caso de que la clusula WHERE se omita se borrarn todos los


registros de la tabla en cuestin.
DESARROLLO
1. Inicie sesin en el ambiente de consola de MySQL y seleccione
como base de datos actual
farmacia_simi y ejecute las
siguientes tareas (documente cada uno de los ejercicios):
a. Usando la instruccin INSERT agregue la siguiente
informacin en la tabla proveedores:
id_proveed
provedor
ciudad
telefono
or
PiSA de Mexico
Mxico, D. F. 55
556
1
6789
Unilever
de Xalapa, Ver.
2
Mexico
Medicamentos del Culiacn,
3
Pacfico
Sin.
b. Ejecute una consulta sencilla para ver el contenido de la
tabla proveedores.
c. Utilizando el bloc de notas, cree un archivo de texto y
nmbrelo medicinas.txt
y almacene la siguiente
informacin:
2 Paracetamol
1 Analgsico
\N Auxiliar en el
Pastillas

3 Lomotil

3 Antidiarrico

4 Flanax

5 Bisolvon
6

Dextrometorfa
no

Antiinflamatori
o
Antiespectora
2
nte
Antiespectora
2
nte

\N
\N
\N
\N

tratamiento del
dolor
Auxiliar en el
tratamiento de
la gastritis
Para golpes y
golpazos
Auxiliar en la
tos
Auxiliar en la
tos

pastillas
Pastillas
Suspensi
n
Suspensi
n

d. Use la instruccin LOAD DATA para cargar los datos del


archivo de texto creado en el paso anterior a la tabla
medicamentos.
e. Ejecute una consulta sencilla para ver el contenido de la
tabla medicamentos.
f. Actualice el campo presentacin con el valor de grageas
a todos los registros de la tabla medicamentos cuyo
proveedor sea 3.
g. Ejecute una consulta sencilla para ver el contenido de la
tabla proveedores.
h. Elimine todos los registros de la tabla medicamentos
donde el campo medicamento sea igual a paracetamol.
i. ejecute una consulta sencilla para ver el contenido de la
tabla medicamentos.

PRCTICA 4
CREACIN DE CONSULTAS EN MySQL

OBJETIVO:
Conocer y aplicar las instrucciones necesarias para extraer informacin
desde una tabla en MySQL.
FUNDAMENTO TERICO:

Extraer informacin.
Para extraer informacin de una tabla utilizaremos la clusula SELECT,
su sintaxis general es:
SELECT camposSeleccionados
FROM nombreTablas
WHERE condiciones;
En la seccin camposSeleccionados indicaremos los campos que se
quieren extraer, tambin se suele indicar con * el cual le indica al motor
de la base de datos que extraiga todos los campos de la tabla. En la
seccin nombreTablas se indicar los nombres de la(s) tabla(s) donde
est almacenada la informacin que se requiera, finalmente en la
seccin condiciones se indicar, de ser preciso, si los campos deben
cumplir con alguna caracterstica para poder ser tomados en cuenta
como parte del resultado de la consulta; por ejemplo:
SELECT * FROM empleados WHERE sexo=F;
Generara como salida todos los registros de la tabla empleados donde
el campo sexo tiene como valor F, es decir, todos los empleados que
son mujeres

Si lo que deseamos es conocer nicamente ciertos campos y no todos


los registros completos, en lugar de usar * deberemos indicar los
nombres de los campos, separados por comas, de los cuales se quiere
extraer la informacin, por ejemplo
SELECT nombre, salario, depto FROM empleados;
Nos dara como salida el nombre, el salario y el departamento de todos
los registros de la tabla empleados.

Las condiciones de la clusula WHERE pueden ser compuestas utilizando


para ello los operadores AND y OR, por ejemplo la sentencia
SELECT * FROM empleados WHERE salario>2000 AND
depto=Venta;
Devolvera todos los registros de los trabajadores cuyo salario sea mayor
que $2,000.00 y que pertenezcan al departamento de Venta.

Si se deseara saber de qu departamentos son los trabajadores que se


tienen registrados en la tabla empleados, podramos usar la siguiente
consulta
SELECT depto FROM empleados;
Lo que nos dara el siguiente resultado

Es notorio que solo tenemos empleados del departamento de Ventas, sin


embargo MySQL devuelve un resultado por cada vez que encuentra un

registro en la tabla, para evitar esto utilizaremos la clusula DISTINCT


como se muestra a continuacin
SELECT DISTINCT depto FROM empleados;
Dando la salida siguiente:

DESARROLLO:
1. Inicie sesin en el ambiente de consola de MySQL y seleccione
como base de datos actual
farmacia_simi y ejecute las
siguientes tareas (documente cada uno de los ejercicios):
a. Muestre todos los registros de la tabla proveedores.
b. Crear una consulta que muestre el medicamento y el tipo de
los registros en presentacin de grageas.
c. Mostrar todos los campos de los medicamentos del tipo
Antiespectorante.
d. Muestre todos los tipos de presentaciones de los
medicamentos almacenados en la tabla medicamentos.
e. Realice la misma consulta del inciso anterior pero ahora
usando la clusula DISTINCT.
f. Muestre los medicamentos en presentacin de pastillas o
grageas.
g. Realice una consulta que muestre nicamente el nombre y la
ciudad de los proveedores.

PRCTICA 5
USO DE FUNCIONES EN CONSULTAS EN MySQL

OBJETIVO:
Conocer y aplicar clusulas adicionales que se pueden aadir a las
consultas para obtener la informacin dispuesta de una forma
especfica, con el fin de crear reportes.
FUNDAMENTO TERICO:
Normalmente el extraer informacin de una tabla es con la finalidad de
que con ella poder realizar alguna operacin adicional, como puede ser
contabilizar el nmero de trabajadores de cada departamento, calcular
el monto total de la nmina con base en la suma de los salarios de los
empleados, etc.
Adems, cuando se insertan los datos en una tabla, normalmente no lo
hacemos en un orden preciso o se ordenan los registros con respecto a
un campo numrico que suele ser el campo de llave principal; sin
embargo, cuando queremos mostrar el resultado de una consulta
generalmente deseamos que esta informacin est ordenada por tal o
cual campo por lo que se precisa tener alguna forma de realizar esta
operacin sobre los datos.
Por todo lo anterior el mismo SQL posee algunas clusulas que
podremos agregar a nuestras consultas para que los resultados se
muestren de la manera que nos sea ms til; por ejemplo al solicitar una
consulta sencilla de la tabla empleados obtendramos algo como lo
siguiente:

Observamos que MySQL muestra los registros tal y como fueron


introducidos en la tabla, sin embargo podra ser posible que quisiramos
el resultado ordenados por el salario, es decir, que colocara primero los
trabajadores que ganan menos y al final los que ganan ms, esto lo
lograremos utilizando la clusula ORDER BY seguida del nombre del
campo por el cual queremos ordenar, por ejemplo:
SELECT * FROM empleados ORDER BY salario;

Si deseamos que el orden sea inverso, deberemos agregar la clusula


DESC al final de la sentencia, por ejemplo:
SELECT * FROM empleados ORDER BY salario DESC;
Obtendriamos como resultado

Un modificador importante que pudiramos utilizar es cambiar el punto


y coma por \G al final de cada sentencia, lo que provoca que el resultado
se muestre verticalmente en lugar de horizontalmente, por ejemplo:

SELECT nombre, salario, depto FROM empleados ORDER BY


salario DESC \G
Generara como resultado

En ocasiones nos interesar agrupar los registros para poder aplicar


algn clculo sobre cada grupo, por ejemplo si quisiramos calcular el
total de los sueldos de los empleados por cada uno de los
departamentos usaremos la clusula SUM(nombreCampo) AS combinada
con la clusula GROUP BY; la primera calcula la sumatoria de un campo
especificado y con la segunda indicamos cuando tendra que mostrar
dicho resultado, por ejemplo:
SELECT depto, SUM(salario) AS TOTAL_SUELDO FROM empleados
GROUP BY depto;

Nos devolvera como resultado:

Observamos que se agrega un nuevo campo TOTAL_SUELDO en el cual


se muestra el total de los sueldos por cada departamento.
De igual manera podemos calcular la media aritmtica de algn campo
con la clusula AVG(nombreCampo) AS combinndola con GROUP BY,
por ejemplo:
SELECT depto, AVG(salario) AS Sueldo_Medio FROM empleados GROUP
BY depto;

El resultado ser:

A menudo es interesante saber cuntos registros tiene un grupo, o


cuntos cumplen con cierta condicin, para ello se cuenta con la
clusula COUNT(expresion) AS la cual se suele acompaar de la clusula
WHERE si as se requiere, por ejemplo:
SELECT COUNT(*) AS TOTAL FROM empleados;
Retornara el total de registros de la tabla:

El usar la expresin *, para las tablas MyISAM retorna de manera ms


rpida el total de registros, pues dicha informacin se guarda en un
campo especial de la tabla. No obstante la expresin tambin puede ser
DISTINCT acompaada del nombre de uno de los campos, lo que
retornara el nmero de entradas diferentes de dicho campo, por
ejemplo:
SELECT COUNT(DISTINCT depto) AS NUM_DEPTOS FROM
empleados;
Retorna el siguiente resultado:

Cuando se utiliza la clusula WHERE podemos utilizar cualesquiera de


los operadores relacionales convencionales, es decir, <, >, =, <=, >=
<>. Adems contamos con dos operadores adicionales, los cuales son
LIKE (parecido a) y BETWEEN (comprendido entre los valores). El primero

nos permite usar el comodn % para sustituir caracteres


desconocemos, por ejemplo:
SELECT * FROM empleados WHERE depto LIKE V%;

que

Devolver el resultado siguiente:

Los resultados son los registros cuyo valor en el campo depto comienzan
con una V. El comodn se puede usar para sustituir caracteres antes,
entre o posterior a la expresin, como %t, v%a v%.
La clusula BETWEEN muestra los valores comprendidos entre un valor
superior y un valor inferior, por ejemplo:
SELECT * FROM empleados WHERE salario BETWEEN 1500 AND
3000;
Devolvera como salida

El uso de BETWEEN es equivalente a usar la expresin combinada


(salario > 1500 AND salario<3000).
Finalmente, otra sentencia que resultar til es la clusula LIMIT la cual
limitar el nmero de registros que se desea mostrar en el resultado,
as:
SELECT * FROM empleados LIMIT 10;
Mostrara nicamente diez resultados, si la consulta tuviera ms
resultados, stos se recuperaran con:
SELECT * FROM empleados LIMIT 11, 20;
DESARROLLO:

1. Inicie una nueva sesin de consola de MySQL y realice los


siguientes pasos, no olvide documentar cada uno de los resultados
obtenidos.
a. Crear una nueva base de datos y llamarla libreria_Ortega.
b. Seleccionarla como base de datos actual y crear la tabla
Autores con la siguiente estructura:
TABLA:AUTORES
CAMPOS
TIPO DE DATOS
ATRIBUTOS
NOT NULL
Id_autor
INT
PRIMARY KEY
Autor
VARCHAR (80)
NOT NULL
c. Abra el archivo autores.xls que se le hizo llegar por correo
electrnico, convirtalo a archivo de texto y proceda a
cargar los datos a la tabla autores con el procedimiento
descrito en la prctica 3.
d. Crear la tabla libros con la siguiente estructura
TABLA:LIBROS
CAMPOS
libro
anio_pub

TIPO DE DATOS
TINYTEXT
SMALLINT

Isbn

TINYTEXT

ATRIBUTOS
NOT NULL
NOT NULL
PRIMARY KEY

Clasificacion
VARCHAR(100)
e. Abra el archivo libros.xls que se le hizo llegar por correo
electrnico, convirtalo a archivo de texto y proceda a
cargar los datos a la tabla libros con el procedimiento
descrito en la prctica 3.
f. Ejecute una consulta que muestre nicamente los primeros
20 libros.
g. Crear una consulta que muestre el nombre del libro y el isbn
de todos los libros publicados entre 1980 y 1990.
h.
i. Mostrar los libros que en su ttulo tengan la palabra
computer, ordnelos por su campo anio_pub de forma
descendente.
j. Ejecute una consulta que obtenga el nmero de registros de
la tabla libros.
k. muestre los libros relativos a dBase o relativos a C++.
l. Mostrar los autores cuyo nombre comience con w.
m. Mostrar los autores de nombre Michael o de nombre Julia.

n. Ejecute una consulta que ordene los libros por el ao de


publicacin.
o. Cree una consulta que obtenga el nmero de ttulos por ao
de publicacin.
p. Se requiere conocer la clasificacin de los libros que en su
ttulo tengan la palabra Unix.

You might also like