Você está na página 1de 14

PRACTICA 1

Acceso a msyql desde cliente.


Repaso de comandos y ejercicios:
o

Visualiza las BD.

Visualiza las Tablas.

Create table tabla (if not exist)

Visualiza la estructura de una tabla.

Use BD;

Crea una table.

Create database BD;

Seleccin de una BD.

Show tables;

Crea una BD.

Show databases;

Describe tabla;

Elimina una tabla

Drop table tabla (if exist);

Ej. drop table if exists usuarios;

Elimina una BD

Drop database BD;

Ejerccio 1. Queremos almacenar informacin referente a nuestros libros.


1- Elimine la tabla "libros", si existe.
2- Cree una tabla llamada "libros".
Debe definirse con los siguientes campos:
titulo varchar(20),
autor varchar(30),

editorial varchar(15)
3- Intente crearla nuevamente. Aparece mensaje de error.
4- Visualice las tablas existentes.
5- Visualice la estructura de la tabla "libros".
6- Elimine la tabla, si existe.
7- Intente eliminar la tabla.

PRACTICA 2
Acceso a msyql desde cliente.
Repaso de comandos y ejercicios:
o

Insercin de datos.

Consulta.

Create table tabla (if not exist)

Visualiza la estructura de una tabla.

Use BD;

Crea una table.

Create database BD;

Seleccin de una BD.

Select campos from table where condicin;

Crea una BD.

insert into tabla (campos) values (valores);

Describe tabla;

Elimina una tabla

Drop table tabla (if exist);

Ej. drop table if exists usuarios;

Elimina una BD

Drop database BD;

Ejerccio 2. Trabaje con la tabla "libros".


1- Elimine la tabla "libros", si existe.
2- Cree una tabla llamada "libros". Debe definirse con los siguientes campos:
titulo (cadena de 20), autor (cadena de 30) y editorial (cadena de 15).
3- Visualice las tablas existentes.
4- Visualice la estructura de la tabla "libros".
5- Ingrese los siguientes registros:
'El aleph','Borges','Planeta'
'Martin Fierro','Jose Hernandez','Emece'
'Aprenda PHP','Mario Molina','Emece'
6- Muestre todos los registros.
7- Muestre el ttulo y autor de todos los libros.

PRACTICA 3
Acceso a msyql desde cliente.
Repaso de comandos y ejercicios:
o

Tipos de datos

Tipo de Campo

Tamao de
Almacenamiento

TINYINT

1 byte

SMALLINT

2 bytes

MEDIUMINT

3 bytes

INT

4 bytes

INTEGER

4 bytes

BIGINT

Tipo de campo

Tamao de
Almacenamiento

CHAR(n)

n bytes

VARCHAR(n)

n +1 bytes

TINYBLOB, TINYTEXT

Longitud+1 bytes

BLOB, TEXT

Longitud +2 bytes

8 bytes

MEDIUMBLOB,
MEDIUMTEXT

Longitud +3 bytes

FLOAT(X)

4 8 bytes

LONGBLOB, LONGTEXT

Longitud +4 bytes

FLOAT

4 bytes
ENUM('value1','value2',...)

1 dos bytes
dependiendo del
nmero de valores

SET('value1','value2',...)

1, 2, 3, 4 8 bytes,
dependiendo del
nmero de valores

DOUBLE

8 bytes

DOUBLE
PRECISION

8 bytes

REAL

8 bytes

DECIMAL(M,D

M+2 bytes s D > 0, M+1


bytes s D = 0

NUMERIC(M,D)

M+2 bytes if D > 0, M+1


bytes if D = 0

Vaca una tabla.

Tamao de
Almacenamiento

DATE

3 bytes

DATETIME

8 bytes

TIMESTAMP

4 bytes

TIME

3 bytes

YEAR

1 byte

Borra registros de una tabla.

Delete from tabla;

Tipo de
Campo

Delete from tabla where condicin;

Actualiza los registros

Update tabla set campo1=valor1[,] [ where condicin];

Repaso de comandos y ejercicios:


o

Creacin de una clave primaria.

create table tabla (campo1 tipo1, campo1 tipo2, primary


key(campoN));
Creacin de una clave primaria compuesta

create table tabla (campo1 tipo1, campo1 tipo2, primary


key(campoN1,campoN2,));
Creacin de un campo clave con autoincremento.

create table tabla (campo1 tipo1 auto_increment, campo1 tipo2,


primary key(campoN));
Habilite un campo para contener o no valores nulos

create table tabla (campo1 tipo1, campo1 tipo2 [NULL|NOT NULL],


primary key(campoN));
En la insercin no se especifica el campo o se establece a valor nulo.
Habilite los campos numricos sin signo

create table tabla (campo1 tipo1, campo1 tipo2 [unsigned],


primary key(campoN));
Establezca un valor por defecto

create table tabla (campo1 tipo1, campo1 tipo2 [default valor],


primary key(campoN));
Rellena con zeros por la izquierda el campo. Establezca el atributo zerofill.
Si el campo es negativo se pone a ceros

create table tabla (campo1 tipo1, campo1 tipo2 [zerofill], primary


key(campoN));
Borrar todos los registros de una tabla

truncate tabla tabla;

Ejerccio 3. Trabaje con la tabla "libros" de una librera.


1- Elimine la tabla si existe.
2- Crela con los siguientes campos y clave:
codigo (integer),
titulo (cadena de 20 caracteres de longitud), autor (cadena de 30),
editorial (cadena de 15),
codigo ser clave primaria
3- Visualice la estructura de la tabla "libros", compruebe la clave primaria.
4- Ingrese los siguientes registros:
1,El aleph,Borges,Planeta
2,Martin Fierro,Jose Hernandez,Emece
3,Aprenda PHP,Mario Molina,Emece
4,Cervantes y el quijote,Borges,Paidos
5,Matematica estas ahi, Paenza, Paidos
5- Seleccione todos los registros.
6- Ingrese un registro con cdigo no repetido y nombre de autor repetido.
7- Ingrese un registro con cdigo no repetido y ttulo y editorial repetidos.
8- Intente ingresar un registro que repita el campo clave (aparece mensaje de error
por clave repetida).
9- Borre todos los registros de la tabla.
10- Borre la tabla libros y crela nuevamente pero estableciendo el campo cdigo con
autoincremento, sin signo y zerofill. El campo ttulo no podr ser nulo y autor por defecto ser
Tom Curisse no podrn ser nulos y el campo editorial s.

11- Inserte 5 registros con las siguientes consideraciones, y verifique los resultados:
Insertar un registro en el que no se especifique el campo cdigo.
Insertar un registro con el campo cdigo a valor null.
Insertar un registro con la editorial a valor null.
Inserte un registro sin ttulo.
Inserte un registro completo.
12- Visualice todos los registros.
13- Visualice los libros sin editorial.
14- Visualice los registros con editorial.

PRACTICA 4
Acceso a msyql desde cliente.
Repaso de comandos y ejercicios:
o

Visualizacin ordenada de los registros

Operadores lgicos

and, significa "y",

or, significa "y/o",

xor, significa "o",

not, significa "no", invierte el resultado

(), parntesis

El operador between

Select campos from tablas where campo [not] between valor1 and
valor2;

El operador in.

Select campos from tablas order by campo1 [asc|desc] [, campo2


[asc|desc],]

Select campos from tablas where campo in (valor1,valor2,);

El operador Like.. "like" y "not like" son operadores de comparacin que


sealan igualdad o diferencia.

Select campos from tablas where campo [not] like valor;

Valor es una cadena que establece el valor de bsqueda. Los smbolos


que se pueden utilizar en esta condicin son:

El smbolo "%" (porcentaje) reemplaza cualquier cantidad de


caracteres (incluyendo ningn caracter).

El guin bajo "_" reemplaza un carcter.

Ejerccio 4. Trabaje con la tabla llamada "medicamentos" que almacena la informacin de los
productos que vende una farmacia.

1- Elimine la tabla, si existe.


2- Cree la tabla con la siguiente estructura:
create table medicamentos(
codigo int unsigned auto_increment,
nombre varchar(20),
laboratorio varchar(20),
precio decimal(5,2),
cantidad int unsigned,
primary key(codigo)
);
3- Visualice la estructura de la tabla "medicamentos".
4- Ingrese los siguientes registros :
'Sertal','Roche',5.2,100
'Buscapina','Roche',4.10,200
'Amoxidal 500','Bayer',15.60,100
'Paracetamol 500','Bago',1.90,200
'Bayaspirina','Bayer',2.10,150
'Amoxidal jarabe','Bayer',5.10,250
5- Ordene los registros por precio, de mayor a menor.
6- Ordene los medicamentos por nmero del campo "cantidad".
7- Ordene los registros por "laboratorio" (descendente) y cantidad (ascendente).
8- Visualice los medicamentos del laboratorio Bayer y precio mayor a 10.
9- Visualice los medicamentos de precio entre 2 y 8.
10- Visualice los medicamentos de los laboratorios Bayer, Roche, Rovi.
11- Visualice los medicamentos que empiecen por Ba y finalicen en una letra a.

PRACTICA 5
Acceso a msyql desde cliente.
Repaso de comandos y ejercicios:
o

La funcin "count()" cuenta la cantidad de registros de una tabla,


incluyendo los que tienen valor nulo.

Select count(*) from tablas where condicin


Si en lugar de utilizar el operador * utilizamos un nombre de campo, la
cuenta se realiza sobre los valores no nulos de ese campo.

La funcin "sum()" retorna la suma de los valores que contiene el campo


especificado.

Por ejemplo, queremos saber la cantidad de libros que tenemos


disponibles para la venta.

Tambin podemos combinarla con "where". Por ejemplo, queremos


saber cuntos libros tenemos de la editorial "Planeta":

Ejemplo, queremos saber cul es el mayor precio de todos los libros:

select max(precio) from libros;

Queremos saber cul es el valor mnimo de los libros de "Rowling":

select min(precio) from libros where autor like '%Rowling%';

La funcin avg() retorna el valor promedio de los valores del campo


especificado.

Por ejemplo, queremos saber el promedio del precio de los libros


referentes a "PHP":

select sum(cantidad) from libros where editorial ='Planeta';

Para averiguar el valor mximo o mnimo de un campo usamos las


funciones "max()" y "min()" respectivamente.

select sum(cantidad) from libros;

select avg(precio) from libros where titulo like '%PHP%';

Estas funciones se denominan "funciones de agrupamiento" porque


operan sobre conjuntos de registros, no con datos individuales.

Tenga en cuenta que no debe haber espacio entre el nombre de la


funcin y el parntesis, porque puede confundirse con una referencia
a una tabla o campo. Las siguientes sentencias son distintas:

select count(*) from libros;

select count (*) from libros;

La primera es correcta, la segunda incorrecta.


o

Agrupacin de registros. Group by.

select campos, funciones de agrupamiento from tablas


group by campos [having condicin];

La clusula distinct. Con la clusula "distinct" se especifica que los


registros con ciertos datos duplicados sean obviadas en el resultado. Por
ejemplo, queremos conocer todos los autores de los que tenemos libros:

select distinct campo from tabla;

Para contar los distintos autores, sin considerar el valor "null" usamos:
select count(distinct autor)

Ejerccio 5. Un comercio que tiene un stand en una feria registra en una tabla llamada
"visitantes" algunos datos de las personas que visitan o compran en su stand para luego
enviarle publicidad de sus productos.
1- Elimine la tabla "visitantes", si existe.
2- Crela con la siguiente estructura:
create table visitantes(
nombre varchar(30),
edad tinyint unsigned,
sexo char(1),
domicilio varchar(30),
ciudad varchar(20),
telefono varchar(11),
montocompra decimal (6,2) unsigned
);
Note que no tiene clave primaria, no la necesita.
3- Ingrese algunos registros:

'Susana Molina', 28,'f','Colon 123','Cordoba',null,45.50


'Marcela Mercado',36,'f','Avellaneda 345','Cordoba','4545454',0
'Alberto Garcia',35,'m','Gral. Paz 123','Alta Gracia','03547123456',25
'Teresa Garcia',33,'f','Gral. Paz 123','Alta Gracia','03547123456',0
'Roberto Perez',45,'m','Urquiza 335','Cordoba','4123456',33.20
'Marina Torres',22,'f','Colon 222','Villa Dolores','03544112233',25
'Julieta Gomez',24,'f','San Martin 333','Alta Gracia','03547121212',53.50
'Roxana Lopez',20,'f','Triunvirato 345','Alta Gracia',null,0
'Liliana Garcia',50,'f','Paso 999','Cordoba','4588778',48
'Juan Torres',43,'m','Sarmiento 876','Cordoba','4988778',15.30
4- Solicite la cantidad de visitantes al stand (10 registros):
5- Muestre la suma de la compra de todos los visitantes de "Alta Gracia" (78.5):
6- Muestre el valor mximo de las compras efectuadas (53.50):
7- Muestre la edad menor de los visitantes (20):
8- Muestre el promedio de edades de los visitantes (33.66):
9- Muestre el promedio del monto de compra (24.55):
10- Muestra nmero de visitantes de cada sexo
11- Muestra los visitantes de Cordoba organizados por sexo,siempre que haya al menos 3
visitantes de ese sexo

PRACTICA 6
Acceso a msyql desde cliente.
Repaso de comandos y ejercicios:
o

Join. Unin de tablas. Cuando obtenemos informacin de ms de una tabla


decimos que hacemos un "join" (unin).

select campos from tabla1 join tabla2


on tabla1.campo=tabla2.campo;

Left Join. Similar al anterior pero muestra los registros en los que se da la
coincidencia y los registros de la tabla2 que no se encuentran en la tabla1.

select campos from tabla1 right join tabla2


on tabla1.campo=tabla2.campo;

Right Join. Similar al anterior pero muestra los registros en los que se da la
coincidencia y los registros de la tabla1 que no se encuentran en la tabla2.

select campos from tabla1 left join tabla2


on tabla1.campo=tabla2.campo;

Natural join. Se usa cuando los campos por los cuales se enlazan las tablas
tienen el mismo nombre.

select campos from tabla1 natural join tabla2 as alias1 ;

Se puede utilizar natural tambin con left join y right join.

Inner Join. Con "inner join", todos los registros no coincidentes son
descartados, slo los coincidentes se muestran en el resultado.

Ejerccio 6. Un club de dicta clases de distintos deportes a sus socios. Guarda la informacin
de sus socios en una tabla llamada "socios" y las inscripciones en "inscritos".
1- Elimine las tablas, si existen.
2- Cree las tablas:
create table socios(
numero int unsigned auto_increment,

documento char(8) not null,


nombre varchar(30) not null,
domicilio varchar(30),
primary key(numero)
);
create table inscritos(
numerosocio int unsigned,
deporte varchar(20),
ao year not null,
cuota char(1), /*'s' o 'n', si esta pagada o no*/
primary key(numerosocio,deporte,ao)
);
3- Ingrese los siguientes registros:
23,'22333444','Juan Perez','Colon 123'
56,'23333444','Ana Garcia','Sarmiento 984'
102,'24333444','Hector Fuentes','Sucre 293'
150,'25333444','Agustin Perez','Avellaneda 1234'
230,'26333444','Maria Perez','Urquiza 283'
231,'29333444','Agustin Perez','Urquiza 283'
23,'tenis','2005','s'
23,'tenis','2006','s'
23,'natacion','2005','s'
102,'tenis','2005','s'
102,'natacion','2006','s'

4- El socio con documento "23333444" quiere inscribirse en "basquet" este ao, pero no
recuerda su nmero de socio. Inscriba al socio en la tabla "inscriptos" buscando en la tabla
"socios" el nmero de socio a partir del nmero de documento:

5- Intente inscribir una persona cuyo nmero de documento no exista en la tabla "socios":
No se realiza la insercin porque no encuentra el documento en la tabla "socios".
6- La madre de los socios "Perez" quiere inscribir a su hijo "Agustn" en "basquet" este ao,
pero no recuerda su nmero de socio ni su documento. Si se busca el nmero de socio a partir
del nombre ("Agustin Perez"), la consulta retornar 2 registros, porque hay 2 socios llamados
"Agustin Perez". Obtendremos como resultado, la inscripcin a "basquet" este ao, de ambos
socios. Si localizamos el nmero de socio a partir del domicilio ("Urquiza 283"), tambin
obtendremos 2 inscripciones, porque hay 2 socios con ese domicilio. Ingrese la inscripcin del
socio, localizando su nmero de socio con el nombre y domicilio:
7- La madre de los socios "Perez" quiere inscribir a ambos hijos "natacion" este ao, pero no
recuerda sus nmeros de socio ni sus documentos. Inscriba a ambos localizando sus nmeros
de socio con el domicilio:
8- Vea si las inscripciones anteriores se cargaron.

Você também pode gostar