Sunteți pe pagina 1din 51

Fundamentos DDL en MySQL

3. Creacin de una tabla y mostrar sus campos (create table - show tables describe - drop table)
A)Queremos almacenar los datos de los coches de una agencia.
1- Cree una tabla llamada "coche", debe tener los siguientes campos:
marca varchar(15)
modelo varchar(30)
y matricula char(7)

2- Intente crearla nuevamente. Aparece mensaje de error.


3- Visualice las tablas existentes (show tables).

4- Visualice la estructura de la tabla "coche" con describe.

5- Intente crear de nuevo la tabla coche usando si no existe (crate table if not exists)

6- Elimine la tabla, si existe (drop table if exists).

7- Intente eliminar la tabla sin la clusula if exists.


Debe aparecer un mensaje de error cuando no existe la tabla.

B) Queremos almacenar informacin referente a nuestros libros.

1- Compruebe las tablas para ver si existe la tabla libros.

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- 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.

Principios bsicos de Manipulacion de datos DML.


4. Carga de registros a una tabla y su recuperacin (insert into - select)
A) Trabaje con la tabla "agenda".
1- Cree una tabla llamada "agenda". Debe tener los siguientes campos:
nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11):

2- Visualice las tablas existentes para verificar la creacin de "agenda".

3- Visualice la estructura de la tabla "agenda". (describe).

4- Ingrese los siguientes registros:


('Alberto Mores','Colon 123','4234567');
('Juan Torres','Avellaneda 135','4458787');

5- Seleccione y muestre todos los registros de la tabla con select.

B) Trabaje con la tabla "libros".


1- Compruebe si existe la tabla libros.

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. (show tables).

4- Visualice la estructura de la tabla "libros". (describe).

5- Ingrese los siguientes registros:


'El aleph','Borges','Planeta';

'Martin Fierro','Jose Hernandez','Emece';


'Aprenda PHP','Mario Molina','Emece';

6- Muestre todos los registros. (select).

5. Recuperacin de algunos campos (select)


A)Un videoclub que alquila pelculas en video almacena la informacin de sus
pelculas en alquiler en una tabla llamada "peliculas".
1- Compruebe si la tabla existe listando las tablas disponibles.
2- Cree la tabla:
titulo cadena de (20),
actor cadena de (20),
duracion entero,
cantidad entero
3- Vea la estructura de la tabla.
4- Ingrese los siguientes registros:
('Mision imposible','Tom Cruise',120,3);
('Mision imposible 2','Tom Cruise',180,2);
('Mujer bonita','Julia R.',90,3);
('Elsa y Fred','China Zorrilla',90,2);
5- Realice un "select" mostrando solamente el ttulo y actor de todas las pelculas:
6- Muestre el ttulo y duracin de todas las peliculas.
7- Muestre el ttulo y la cantidad de copias.
B) Una empresa almacena los datos de sus empleados en una tabla llamada
"empleados".
1- Compruebe que la tabla existe.

2- Tiene que tener la siguiente estructura:


EMPLEADOS
nombre cadena de (20),
documento cadena de (8),
sexo cadena de (1),
domicilio cadena de (30),
sueldobasico float
3- Vea la estructura de la tabla:
4- Ingrese algunos registros:
('Juan Perez','22345678','m','Sarmiento 123',300);
('Ana Acosta','24345678','f','Colon 134',500);
('Marcos Torres','27345678','m','Urquiza 479',800);
5- Muestre todos los datos de los empleados.
6- Muestre el nombre y documento de los empleados.
7- Realice un "select" mostrando el nombre, documento y sueldo bsico de todos los
empleados.
C) Un comercio que vende artculos de computacin registra la informacin de sus
productos en la tabla llamada "articulos".
1- Compruebe la tabla.
2- Cree la tabla "articulos" con los campos necesarios para almacenar los siguientes datos:
- cdigo del artculo: entero,
- nombre del artculo: 20 caracteres de longitud,
- descripcin: 30 caracteres de longitud,
- precio: float.
3- Vea la estructura de la tabla (describe).
4- Ingrese algunos registros:
(1,'impresora','Epson Stylus C45',400.80);
(2,'impresora','Epson Stylus C85',500);
(3,'monitor','Samsung 19',100);
5- Muestre todos los campos de todos los registros.
6- Muestre slo el nombre, descripcin y precio.

6. Recuperacin de registros especficos (select - where)


A) Trabajamos con nuestra tabla "agenda".
1- comprobamos el estado de la tabla.
2- Tiene que tener esta estructura:

nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11).


3- Ingrese los siguientes registros:
'Alberto Mores','Colon 123','4234567',
'Juan Torres','Avellaneda 135','4458787',
'Mariana Lopez','Urquiza 333','4545454',
'Fernando Lopez','Urquiza 333','4545454'.
4- Seleccione todos los registros de la tabla. (select).
5- Muestre todos los que vivan en 'Urquiza 333'
6- Seleccione el registro cuyo nombre sea 'Juan Torres'.
7- Seleccione el registro cuyo domicilio sea 'Colon 123'.
8- Muestre los datos de quienes tengan el telfono '4545454'.
9- Elimine la tabla "agenda".
B) Trabaje con la tabla "libros".
1- Compruebe la tabla si existe.
2- Debe tener la siguiente estructura:
titulo cadena de (20),
autor cadena de (30),
editorial cadena de (15)
3- Visualice la estructura de la tabla "libros".
4- Muestre todos los registros, que contenga minimo:
'El aleph','Borges','Planeta';
'Martin Fierro','Jose Hernandez','Emece';
'Aprenda PHP','Mario Molina','Emece';
'Cervantes','Borges','Paidos';
5- Ingrese algn registro con tu libro favorito.
6- Seleccione los registros cuyo autor sea 'Borges'.
7- Seleccione los registros cuya editorial sea 'Emece'.
8- Seleccione la editorial los libros cuyo ttulo sea 'Martin Fierro'.
9- Mostrar solo el autor del libro que hayas introducido.
10- Elimine la tabla "libros".
C) Un comercio que vende artculos de computacin registra los datos de sus artculos
en una tabla llamada "articulos".
1- Comprueba que existe la tabla.
2- Comprueba la tabla "articulos" con la siguiente estructura:
codigo entero,
nombre varchar(20),

descripcion varchar(30),
precio float
3- Ingrese algunos registros:
(4,'teclado','ingles Biswal',100);
(5,'teclado','espaol Biswal',90);
4- Seleccione todos los datos de los registros cuyo nombre sea "impresora".
5- Muestre slo el cdigo, descripcin y precio de los teclados.
6- Mostrar el cdigo y el nombre de los artculos cuyo precio sea 100.
7- Elimine la tabla artculos.

7. Operadores Relacionales = <> < <= > >=


A)Un comercio que vende artculos de computacin registra los datos de sus artculos
en una tabla con ese nombre.
1- compruebe si existe la tabla artculos.
2- Cree la tabla, con la siguiente estructura:
codigo entero,
nombre cadena de (20),
descripcion cadena de (30),
precio float,
cantidad entero
3- Vea la estructura de la tabla (describe).
4- Ingrese algunos registros:
(1,'impresora','Epson Stylus C45',400.80,20);
(2,'impresora','Epson Stylus C85',500,30);
(3,'monitor','Samsung 19',100,10);
(4,'teclado','ingles Biswal',100,50);
(5,'teclado','espaol Biswal',90,50);
5- Seleccione todos los registros de la tabla. (select).
6- Muestre los datos de las impresoras.
7- Seleccione los artculos cuyo precio sea mayor o igual a 500:
8- Seleccione los artculos cuya cantidad sea menor a 30:
9- Selecciones el nombre y descripcin de los artculos que no cuesten 100:
10- Mostrar los artculos que no sean impresoras.
B) Un video club que alquila pelculas en video almacena la informacin de sus
pelculas en alquiler en una tabla denominada "peliculas".

1- Elimine la tabla, si existe.


2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo:
titulo cadena de (20),
actor cadena de (20),
duracion entero,
cantidad entero
3- Vea la estructura de la tabla:
4- Ingrese los siguientes registros:
('Mision imposible','Tom Cruise',120,3);
('Mision imposible 2','Tom Cruise',180,2);
('Mujer bonita','Julia R.',90,3);
('Elsa y Fred','China Zorrilla',90,2);
5- Seleccione las pelculas cuya duracin no supere los 90 minutos:
6- Seleccione todas las pelculas en las que el actor no sea 'Tom Cruise':
7- Seleccione todas las pelculas de las que haya ms de 2 copias:
C) Trabaje con la tabla "agenda" en la que registra los datos de sus amigos.
1- Elimine "agenda", si existe.
2- Cree la tabla, con los siguientes campos: apellido (cadena de 30), nombre (cadena de 20),
domicilio (cadena de 30) y telefono (cadena de 11).
3- Visualice la estructura de la tabla.
4- Ingrese los siguientes registros:
Mores, Alberto, Colon 123, 4234567,
Torres, Juan, Avellaneda 135, 4458787,
Lopez, Mariana, Urquiza 333, 4545454,
Lopez, Fernando, Urquiza 333, 4545454.
Suarez, Mariana, Sarmiento 643, 4445544.
Lopez, Ana, Sucre 309, 4252587.
Peralta,Susana,Gral. Paz 1234,4123456.
5- Seleccione todos los registros de la tabla.
6- Seleccione los amigos cuyo apellido sea 'Lopez'.
7- Seleccione los registros cuyo nombre NO sea 'Mariana'.
8- Seleccione los registros cuyo domicilio sea 'Colon 123'.
9- Muestre los datos de quienes tengan el telfono '4545454'.

8. Modificacin de registros de una tabla (update)


Trabaje con la tabla "agenda" que almacena los datos de sus amigos.

1- Compruebe la tabla si existe.


2- Compruebe su estructura
3- Visualice su contenido
5- Modifique el registro cuyo nombre sea "Juan" por "Juan Jose"(update- where):
6- Actualice los registros cuyo nmero telefnico sea igual a 4545454 por '4445566':
7- Actualice los registros que tengan en el campo "nombre" el valor "Jose" por "Juan Jose"
(ningn registro afectado porque ninguno cumple con la condicin del "where").
B) Un comercio que vende artculos de computacin registra los datos de sus artculos
en una tabla con ese nombre.
1- Compruebe "articulos", si existe.
2- Vea la estructura
3- Compruebe su contenido.
5- Actualice el precio a "400" del artculo cuya descripcin sea "Epson Stylus C45":
6- Actualice la cantidad a 100 de todos los teclados:
7- Actualice la cantidad a 50 y el precio a 550 del artculo con cdigo 2:
8- Actualice la cantidad a 100 de todos los registros con cantidad=1000
(no hay registros que cumplan la condicin, ningn registro afectado):
9- Actualice la cantidad a 100 de todos los registros con cantidad>30
10- Por una oferta especial todos los precios se actualizan con un 5% de descuento.

9. Borrado de registros de una tabla (delete)


A)Trabaje con la tabla "agenda" que registra la informacin referente a sus amigos.
1- Comprueba si existe la tabla.
2- Comprueba su estructura con los siguientes campos: apellido (cadena de 30), nombre
(cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11):
3- Muestre los registros de la tabla.

4- Debe contener como minimo (insert into):


Mores, Alberto, Colon 123, 4234567,
Torres, Juan, Avellaneda 135, 4458787,

Lopez, Mariana, Urquiza 333, 4545454,


Lopez, Jose, Urquiza 333, 4545454,
Peralta, Susana, Gral. Paz 1234, 4123456.
5- Elimine el registro cuyo nombre sea 'Juan'.
6- Elimine los registros cuyo nmero telefnico sea igual a '4545454'.
7- Elimine a todos los que se apellidan Lopez.
B) Trabaje con la tabla "libros" en la cual almacena la informacin de sus libros una
librera.
1- Comprueba la tabla.
2- Si no tiene la siguiente estructura, crela de nuevo: titulo (cadena de 20 caracteres de
longitud), autor (cadena de 30), editorial (cadena de 15) y precio (float).
3- Visualice la estructura de la tabla "libros".
4- Que contenga los siguientes registros:
El aleph, Borges, Planeta, 15.00;
Martin Fierro, Jos Hernndez, Emece, 25.50;
Aprenda PHP, Mario Molina, Emece, 26.80;
Cervantes y el quijote, Borges, Paidos, 45.50;
Matemtica estas ah, Paenza, Paidos, 50.00;
5- Muestre todos los registros.
6- Elimine los registros cuyo autor sea igual a 'Paenza'. (1 registro eliminado)
7- Nuevamente, elimine los registros cuyo autor sea igual a 'Paenza'. (ningn registro afectado)
8- Borre los registros cuyo precio sea menor a 20.(<20).
9- Borre los registros que cuyo precio sea mayor o igual a 40. (>=).
10- Elimine todos los registros de la tabla.
C) Un comercio que vende artculos de computacin registra los datos de sus artculos
en una tabla con ese nombre.
1- Comprueba que existe la tabla.
2- tiene que tener la siguiente estructura:
ARTICULOS
codigo entero,
nombre cadena de (20),
descripcion cadena de (30),
precio float,
cantidad entero
3- Vea la estructura de la tabla (describe).
4- Compruebe e ingrese algunos registros:
(1,'impresora','Epson Stylus C45',400.80,20);
(2,'impresora','Epson Stylus C85',500,30);

(3,'monitor','Samsung 19',100,10);
(4,'teclado','ingles Biswal',100,50);
(5,'teclado','espaol Biswal',90,50);
5- Seleccione todos los registros de la tabla.
6- Elimine los artculos cuyo precio sea mayor o igual a 400.
7- Elimine todas los monitores.
8- Elimine todos los artculos cuyo cdigo sea diferente a 4.

Fundamentos de definicion de datos DDL


10.

Clave primaria.

A)Trabaje con la tabla "libros" de una librera.


1- Crela con los siguientes campos y clave: cdigo (entero),
titulo (cadena de 40 caracteres de longitud), autor (cadena de 30),
editorial (cadena de 15), cdigo ser clave primaria.
2- Visualice la estructura de la tabla "libros", compruebe la clave primaria.
3- 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;
4- Seleccione todos los registros.
5- Ingrese un registro con cdigo no repetido y nombre de autor repetido.
6- Ingrese un registro con cdigo no repetido y ttulo y editorial repetidos.
7- Intente ingresar un registro que repita el campo clave (aparece mensaje de error
por clave repetida).
B) Una empresa almacena los datos de sus clientes en una tabla llamada "clientes".
1- Elimine la tabla "clientes" si existe:
2- Crela con los siguientes campos y clave:
documento cadena de (8),
apellido cadena de (20),
nombre cadena de (20),
domicilio cadena de (30),
telefono cadena de (11),
clave primaria -> (documento)
3- Visualice la estructura de la tabla para comprueba la clave primaria establecida.
4- Ingrese los siguientes registros:
(documento,apellido,nombre,domicilio, telefono)
('22345678','Perez','Marcos','Colon 123','4545454');
('23222222','Garcia','Ana','Avellaneda 1345','4252652');
('20454545','Lopez','Susana','Urquiza 344','4522525');
('35454545','Lopez','Susana','Urquiza 344','4522525');
Note que hay 2 registros con todos los datos iguales excepto el documento.
6- Ingrese un cliente con cdigo no repetido y apellido y nombre repetido.
7- Ingrese un cliente con cdigo no repetido y domicilio repetido.

8- Intente ingresar un registro con documento repetido (aparece mensaje de error por clave
repetida).
C) Un instituto de enseanza almacena los datos de sus estudiantes
en una tabla llamada "alumnos".
1- Elimine la tabla "alumnos" si existe.
2- Cree la tabla con la siguiente estructura:
expediente cadena de (4),
documento cadena de (8),
apellido cadena de (30),
nombre cadena de (30),
domicilio cadena de (30),
clave primaria -> (expediente)
3- Ingrese los siguientes registros:
(expediente,documento,apellido,nombre,domicilio)
('A233','22345345','Perez','Mariana','Colon 234');
('A567','23545345','Morales','Marcos','Avellaneda 348');
('B654','24356345','Gonzalez','Analia','Caseros 444');
('A642','20254125','Torres','Ramiro','Dinamarca 209');
('B509','20445778','Miranda','Carmen','Uspallata 999');
('C777','28111444','Figueroa','Natalia','Sarmiento 856');
4- Seleccione todos los registros.
5- Ingrese 2 alumnos con igual nombre y apellido pero distinto expediente.
6- Intente ingresar un registro que repita el campo clave ("expediente").
Aparece mensaje de error por clave repetida.

11.

Campo entero con autoincremento.

Una farmacia guarda informacin referente a sus medicamentos en una tabla llamada
"medicamentos".
1- Cree la tabla con la siguiente estructura:
codigo entero autoincremento,
nombre varchar(20)
laboratorio varchar(20)
precio float
cantidad entero
codigo es clave primaria
2- Visualice la estructura de la tabla "medicamentos" (describe).
3- Ingrese los siguientes registros:
(0,'Sertal','Roche',5.2,100);
(0,'Buscapina','Roche',4.10,200);
(0,'Amoxidal 500','Bayer',15.60,100);

4- Verifique que el campo "cdigo" gener los valores de modo automtico:


5- Intente ingresar un registro con un valor de clave primaria repetido.
6- Ingrese un registro con un valor de clave primaria no repetido salteando la secuencia:
Ejemplo: (12,'Paracetamol 500','Bago',1.90,200);
7- Ingrese el siguiente registro:
(0,'Bayaspirina','Bayer',2.10,150);
Note que sigue la secuencia.
8- Intente ingresar un registro sin tener en cuenta el valor autoincremento
('Bayaspirina','Bayer',0,150);
Tiene que devolver un error
B) Un videoclub almacena informacin sobre sus pelculas en una tabla llamada
"peliculas".
1- Elimine la tabla si existe.
2- Crela con la siguiente estructura:
-codigo (entero), autoincremento,
-titulo (cadena de 30),
-actor (cadena de 20),
-duracion (entero),
-clave primaria: codigo.
3- Visualice la estructura de la tabla "peliculas".
4- Ingrese los siguientes registros:
('Mision imposible','Tom Cruise',120);
('Harry Potter y la piedra filosofal','xxx',180);
('Harry Potter y la camara secreta','xxx',190);
('Mision imposible 2','Tom Cruise',120);
('La vida es bella','zzz',220);
5- Seleccione todos los registros y verifique la carga automtica de los cdigos.
6- elimine desde workbench o phpmyadmin la fila que contenga el valor 1 como clave primaria.
10- Ingrese el siguiente registro, sin valor para la clave primaria:
insert into peliculas (titulo,actor,duracion)
values('Mujer bonita','Richard Gere',120);
Note que sigue la secuencia tomando el ltimo valor generado, aunque ya no est.
11- Ingrese el siguiente registro, con valor para la clave primaria:
insert into peliculas (codigo,titulo,actor,duracion)
values(1,'Tootsie','D. Hoffman',90);
Lo acepta porque la clave no est repetida.
12- Intente ingresar un registro con valor de clave repetida.
13- Ingrese el siguiente registro, sin valor para la clave primaria:
insert into peliculas (titulo,actor,duracion)
values('Un oso rojo','Julio Chavez',100);
Note que sigue la secuencia.

12.

Comando truncate table.

A)Una farmacia guarda informacin referente a sus medicamentos en una tabla


llamada "medicamentos".
1- Elimine algunas filas de la tabla desde Workbench o phpmyadmin.
2- Ingrese 2 registros:
(0,'Sertal','Roche',5.2,100);
(0,'Amoxidal 500','Bayer',15.60,100);
3- Vea los registros para verificar que continu la secuencia al generar el valor para "codigo":
4- Vace la tabla con truncate.
5- Ingrese el siguiente registro:
(0,'Buscapina','Roche',4.10,200);
6- Vea los registros para verificar que al cargar el cdigo reinici la secuencia en 1.
7- Elimine la tabla con drop y compruebe que ya no esta en el listado de tablas de la base de
datos.
B)Un videoclub almacena informacin sobre sus pelculas en una tabla llamada
"peliculas".
1- Verifique si existe la tabla
2- compruebe su estructura estructura:
-codigo (entero), autoincremento,
-titulo (cadena de 30),
-actor (cadena de 20),
-duracion (entero),
-clave primaria: codigo.
3- Muestre el contenido de la tabla.
4- ingrese algunos registros y verifique la carga automtica de los cdigos.
5- Elimine todos los registros desde workbench o phpmyadmin.
6- Ingrese el siguiente registro, sin valor para la clave primaria:
insert into peliculas (titulo,actor,duracion)
values('Mujer bonita','Richard Gere',120);
7- Vea los registros para verificar que al generar el valor para "codigo" continu la secuencia:
8- Elimine todos los registros vaciando la tabla:
truncate table peliculas;

9- Ingrese el siguiente registro:


insert into peliculas (titulo,actor,duracion)
values('Elsa y Fred','China Zorrilla',90);
10- Muestre el registro ingresado para verificar que inici la secuencia nuevamente para el
campo "codigo":

13.

Valores null.

Retome la tabla llamada "medicamentos" que almacena la informacin de los


productos que se venden en una farmacia.
1- Cree la tabla con la siguiente estructura:
codigo entero autoincremento,
nombre varchar(20) no nulo
laboratorio varchar(20)
precio float
cantidad entero no nulo
codigo es clave primaria
2- Visualice la estructura de la tabla "medicamentos".
3- Ingrese los siguientes registros:
'Sertal gotas','Roche',5.2,100
'Sertal compuesto','Roche',7.1,150
'Buscapina','Roche',null,200
'Amoxidal 500','Bayer',15.60,0
'Amoxidal jarabe','Bayer',25,120
'Amoxinil',null,25,120
'Bayaspirina','',0,150
4- Verifique que el campo "codigo" gener los valores de modo automtico (select).
Observe los valores null introducidos.
5- Intente ingresar el siguiente registro con valor "null" para el campo "nombre":
null,'Bayer',10.20,100
Aparece un mensaje de error.
6- Intente ingresar el siguiente registro con valor "null" para el campo "cantidad":
'Benadryl comprimidos','Bayer',10.20,null
Aparece un mensaje de error.
7- Ingrese el siguiente registro con valor "null" para el campo correspondiente al cdigo:
(null,'Benadryl comprimidos','Bayer',10.20,null);
No muestra un mensaje de error. Si recuperamos todos los registros, ver que almacen el
siguiente valor de la secuencia de autoincremento.
8- Recupere los registros que contengan valor "null" en el campo "laboratorio",
luego los que tengan una cadena vaca en el mismo campo. Note que el resultado
es diferente:
9- Recupere los registros que contengan valor "null" en el campo "precio",
luego los que tengan el valor 0 en el mismo campo. Note que el resultado es diferente:

10- Recupere los registros cuyo precio sea distinto de 0, luego los que
sean distintos de "null":
Note que la salida de la primera sentencia no muestra los registros con valor 0 y tampoco los
que tienen valor nulo; el resultado de la segunda sentencia muestra los registros con valor para
el campo precio (incluso el valor 0). Esto es porque los valores "null" no pueden compararse con
operadores relacionales.
11- Recupere los registros en los cuales el laboratorio no contenga una cadena vaca, luego los
que sean distintos de "null":
Note que la primera sentencia solicita los registros que no tengan cadena vaca, es decir, los que
guardan una cadena, como "null" no es una cadena, no retorna los registros con valor nulo. El
resultado de la segunda sentencia solicita que no muestre los valores nulos, es decir, que
muestre cualquier cadena, incluso vaca.

14.

Valores numricos sin signo (unsigned)

Trabaje con la tabla que almacena los datos sobre pelculas.


1- Elimine la tabla "peliculas", si existe.
2- Tenga en cuenta el rango de valores que almacenar cada campo:
-codigo: entero a partir de 1, autoincrementable, siempre positivo
-titulo: caracteres de 40 de longitud, no nulo,
-actor: cadena de 20,
-duracion: entero sin signo,
-clave primaria: codigo.
3- Cree la tabla.
4- Intente introducir un registro con valor positivo en duracion y otro con valor negativo en el
campo duracin.
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- Cree la tabla y al definir los campos tenga en cuenta el rango de valores que almacenar
cada campo:
- nombre: cadena de 30 caracteres,
- edad: entero sin signo. No hay edades con valores negativos.
- sexo: 'f' o 'm',
- domicilio: cadena de 30,
- ciudad: cadena de 30,
- telfono: cadena de 11,
- compra total: valor con decimales mayor o igual a cero. No hay compras con total negativo.
3- Intente introducir un valor negativo en el campo edad y en el campo compra_total.

15.

Clave ajena o fornea.

A)Una empresa tiene registrados sus clientes en una tabla llamada "clientes",
tambin tiene una tabla "provincias" donde registra los nombres de las provincias.
1- Elimine la tabla "clientes" y "provincias", si existen:
2- Crelas con las siguientes estructuras:
PROVINCIAS
codigo tinyint positivo autoincremento,
nombre cadena de 20,
clave primaria -> codigo
CLIENTES
codigo entero sin signo autoincremento,
nombre cadena de 30 no nulo,
domicilio cadena de 30,
ciudad cadena de 20,
codigoprovincia tinyint positivo,
telefono cadena de 11,
clave primaria -> codigo
clave ajena (codigoprovincia) -> PROVINCIAS (codigo)
En este ejemplo, el campo "codigoprovincia" de "clientes" es una clave fornea, se emplea para
enlazar la tabla "clientes" con "provincias".
3- Ingrese algunos registros para ambas tablas:
Ingrese algunas provincias con su codigo en la tabla provincias.
Provincias
(1,Alicante);
(2,Valencia);
(3,Castellon);
Clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)
('Lopez Marcos', 'Colon 111', 'Crdoba', 1,'null');
('Perez Ana', 'San Martin 222', 'Cruz del Eje', 1,'4578585');
('Garcia Juan', 'Rivadavia 333', 'Villa Maria', 1,'4578445');
('Perez Luis', 'Sarmiento 444', 'Rosario', 2, null);
('Ramos Betina', 'San Martin 999', 'Bahia Blanca', 15,'4223366');
4- Puedes introducir cualquier valor en la clave ajena?
5- Prueba a introducir un valor nulo para el campo codigoprovincia de la tabla clientes.

16.

Atributo default en una columna de una tabla

Un comercio que enva pizzas y empanadas a domicilio registra los pedidos


diariamente en una tabla llamada "pedidos" con los siguientes datos:
- numero de pedido, autoincrementable, entero sin signo comienza en 1. - nombre: pizza o
empanada, por defecto "empanada",

- tipo: por ejemplo, si es pizza: especial, muzarela, etc., si son empanadas: arabes, pollo,
jamn y queso, criollas, etc.
- precio: precio por unidad, valor con decimales que no supera los 99.99 y ser siempre
mayor a 0, por defecto "1"
- cantidad: cantidad de articulos, entero sin signo desde 1 e inferior a 200 aprox., por defecto
"12"
- domicilio del cliente.
1- Modifica la tabla pedidos si existe.
2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo.
3- Ingrese los siguientes registros:
(nombre,tipo,precio,cantidad,domicilio)
('pizza','muzarela','4.00',3,'Sarmiento 235')
(tipo,precio,cantidad,domicilio)
('arabe','1.00',24,'Urquiza 296')
(nombre,tipo,domicilio)
('empanada','saltea','Colon 309')
(tipo,domicilio)
('arabe','San Martin 444')
(nombre,tipo,precio,domicilio)
('piza','especial','4.00','Avellaneda 395')
4- Muestre todos los campos de todos los pedidos para ver cmo se guardaron los datos no
ingresados.
A) 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- Cree la tabla con la siguiente estructura:
VISITANTES
nombre
cadena de (30) no nulo,
edad
tinyint sin signo,
sexo
caracter de (1) Por defecto -> 'f',
domicilio
cadena de (30),
ciudad
cadena de (20) Por defecto -> Alicante,
telefono
cadena de (11),
mail
cadena de (30) Por defecto -> 'no tiene',
montocompra
decimal (6,2)
4- Ingrese algunos registros sin especificar valores para algunos campos para ver cmo opera la
clusula "default".
5- Muestre todos los registros.
B) Una pequea biblioteca de barrio registra los prstamos de sus libros en una tabla
llamada "prestamos". En ella almacena la siguiente informacin: ttulo del libro,
documento de identidad del socio a quien se le presta el libro, fecha de prstamo,
fecha en que tiene que devolver el libro y si el libro ha sido o no devuelto.
1- Elimine la tabla "prestamos" si existe.
2- Cree la tabla:

PRESTAMOS
titulo
documento
fechaprestamo
fechadevolucion
devuelto

cadena de (40) no nulo,


caracter de (8) no nulo,
fecha no nulo,
fecha,
caracter de (1) Por defecto -> 'n'

3- Ingrese algunos registros:


('Manual de 1 grado','23456789','2006-08-10','2006-08-12');
('Alicia en el pais de las maravillas','23456789','2006-08-12','2006-08-14');
('El aleph','22543987','2006-08-15','2006-08-17');
('Manual de geografia 5 grado','25555666','2006-08-30','2006-09-01');
4- Seleccione todos los registros para ver qu se guard en el campo "devuelto" para el cual no
ingresamos datos.

17.

Atributo zerofill en una columna de una tabla.

Un banco tiene registrados las cuentas corrientes de sus clientes en una tabla llamada
"cuentas".
1- Elimine o modifique la tabla, si existe.
2- Los valores son los siguientes:
numero entero de 8, zerofill y autoincremental
documento caracteres de 8, no nulo
nombre cadena de 30
saldo decimal de 9999999,99,
clave primaria -> (numero)
3- Visualice la estructura de la tabla:
note que en la columna que muestra el tipo aparece "zerofill" en el campo
"numero".
4- Ingrese los siguientes registros:
(1234,'22333444','Juan Perez',2000.60)
(2566,'23333444','Maria Pereyra',5050)
(5987,'24333444','Marcos Torres',200)
(14434,'25333444','Ana Juarez',8000.60)
5- Vea cmo se guardaron los nmeros de cuenta haciendo un select de la tabla.
6- Ingrese un valor negativo para el nmero de cuenta:
(-1234,'27333444','Luis Duarte',2800)
note que no lo toma y sigue la secuencia.
Trabaje con la tabla que almacena los datos sobre pelculas, llamada "peliculas".
1- Elimine la tabla si existe.
2- Crela con la siguiente estructura:

create table peliculas(


codigo int(4) zerofill auto_increment,
titulo varchar(30) not null,
actor varchar(20),
duracion tinyint zerofill default 90,
primary key (codigo)
);
3- Vea la estructura de la tabla:
describe peliculas;
note que el atributo "zerofill" aparece en los campos "codigo" y "duracion", en la columna que
describe el tipo de cada dato.
4- Ingrese algunos registros.
5- Ingrese un valor de cdigo negativo.
6- Ingrese un valor de duracin negativo.

Datos
18.

Tipos de datos

19.

Tipos de datos (texto)

Una concesionaria de coche vende autos usados y almacena los datos de los coches en
una tabla llamada "autos".
1- Cree la tabla con la siguiente estructura:
patente
char(6),
marca
varchar(20),
modelo
char(4),
precio
float unsigned,
clave primaria -> (patente)
2- Ingrese los siguientes registros:
'ACD123','Fiat 128','1970',15000
'ACG234','Renault 11','1990',40000
'BCD333','Peugeot 505','1990',80000
'GCD123','Renault Clio','1990',70000
'BEC333','Renault Megane','1998',95000
'BVF543','Fiat 128','1975',20000
Hemos definido el campo "patente" de tipo "char" y no "varchar" porque la cadena de
caracteres siempre tendr la misma longitud (6 caracteres), con esta definicin ocupamos 6
bytes, si lo hubisemos definido como "varchar(6)" ocupara 7 bytes. Lo mismo sucede con el
campo "modelo", en el cual almacenaremos el ao, necesitamos 4 caracteres fijos. Para el
campo "precio" definimos un float sin signo porque los valores nunca sern negativos.

4- Compruebe la estructura de la tabla


5- Liste los registros para comprobarlos.
6- Intente introducir datos que no sean texto en los campos patente, marca y modelo.
7- Intente introducir cadenas de texto ms largas que lo establecido para ver que ocurre.
Una empresa almacena los datos de sus clientes en una tabla llamada "clientes".
1- Elimine la tabla "clientes" si existe:
2- Crela con los siguientes campos y clave:
CLIENTES
documento carcter de (8),
apellido
cadena de (20),
nombre
cadena de (20),
domicilio
cadena de (30),
telefono
carcter de (9),
clave primaria -> (documento)
3- Analice la definicin de los campos. Se utiliza char(8) para el documento porque siempre
constar de 8 caracteres. Para el nmero telefnico se usar "char" y no un tipo numrico porque
si bien es un nmero, con l no se realizarn operaciones matemticas.
4- Ingrese algunos registros:
('2233344','Perez','Juan','Sarmiento 980','4342345');
('2333344','Perez','Ana','Colon 234');
('2433344','Garcia','Luis','Avellaneda 1454','4558877');
('2533344','Juarez','Ana','Urquiza 444','4789900');
5- Seleccione todos los clientes de apellido 'Perez'.
6- seleccione el apellido, domicilio y telfono de todas las 'Ana'.

20.

Tipos de datos (numricos)

Un comercio que enva pizzas y empanadas a domicilio registra los pedidos


diariamente en una tabla llamada "pedidos" con los siguientes datos:
- numero de pedido, autoincrementable, entero sin signo comienza en 1.
- nombre: pizza o empanada,
- tipo: por ejemplo, si es pizza: especial, muzarela, etc., si son empanadas: salteas, picantes,
arabes, etc.
- precio: precio por unidad, valor con decimales que no supera los 99.99 y ser siempre
mayor a 0,
- cantidad: cantidad de articulos, entero sin signo desde 1 e inferior a 200.
- telfono del cliente.
- domicilio del cliente.
- clave primaria ser el nmero de pedido

2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo y aquellos que permitan
nulos o no.
3.- compruebe la estructura de la tabla
A) El departamento de Meteorologa de una ciudad tiene almacenados en una tabla las
estadsticas de temperatura y precipitaciones de varias ciudades del mundo. La tabla
tiene registrados los siguientes datos:
Ciudad
Bs.As.
Canberra
Brasilia
Madrid
Mexico
Moscu
Oslo
Ottawa
Santiago
Viena

Pas
Argentina
Australia
Brasil
Espaa
Mexico
Rusia
Noruega
Canad
Chile
Austria

Temp.Max.Temp.Min.
30
8
28
0
27
13
31
2
23
7
24
13
28
16
26
16
29
3
25
4

Precipitaciones(Anual)
1200
620
1500
400
850
690
750
900
300
600

1- Elimine la tabla "estadisticas".


2- Cree la tabla eligiendo el tipo de dato adecuado para almacenar los datos descriptos arriba:
- ciudad y pas: cadena de caracteres,
- temperaturas (mxima y mnima): entero desde -20 hasta 40 aprox.
- precipitaciones media anual: desde 0 a 2000 aprox.

B) Un instituto de fsica que realiza investigaciones acerca de los gases guarda en una
tabla las temperaturas crticas y la presin crtica de los mismos. La tabla contiene
estos registros:
Gas
TemperaturaCrtica
Helio269.7
Hidrgeno239.9
Nitrgeno147.1
Oxgeno120.0
Dix.decarb.31.3
Amonaco132.4
Vapordeagua374.2

PresinCrtica
2.26
12.8
33.5
50.1
72.9
111.5
218.0

1- Elimine la tabla "gases" si existe.


2- Cree la tabla eligiendo el tipo de dato adecuado para almacenar los datos descriptos arriba:
- Gas: cadena,
- Temperatura Crtica: valores decimales desde -300 hasta 400 aprox.,
- Presin Crtica: valores decimales positivos hasta 300 aprox.
C) Un banco tiene registrados las cuentas corrientes de sus clientes en una tabla llamada
"cuentas".
La tabla contiene estos datos:
NmerodeCuenta Documento
123422555666

Nombre
PerezLuis

Saldo
2000.60

256633558778
345634567765
390034590697
456035098098

PereyraMaria
LopezSusana
TorresMarcos
JuarezAna

5050.00
10.00
50.50
232.00

1- Elimine la tabla "cuentas" si existe.


2- Cree la tabla eligiendo el tipo de dato adecuado para almacenar los datos descriptos arriba:
- Nmero de cuenta: entero sin signo, no nulo,
- Documento del propietario de la cuenta: cadena de caracteres de 8 de longitud (siempre 8),
no nulo
- Nombre del propietario de la cuenta: cadena de caracteres,
- Saldo de la cuenta: valores positivos y negativos altos.

21.

Tipos de datos (fechas y horas)

Un concesionario de coches vende autos usados. Guarda los siguientes datos en la


tabla "autos":
- marca (fiat 128, renault 11, peugeot 505, etc.)
- modelo (ao)
- dueo (nombre del dueo)
- precio (valor con decimales siempre positivo que puede llegar hasta 999999.99 aprox.).
1- Elimine la tabla si existe.
2- Cree la tabla eligiendo el tipo de dato adecuado para almacenar estos datos:

3- Ingrese los siguientes registros:


'Renault 11','90','Juan Lopez',80000
'Fiat 128','1990','Ana Ferreyra',51000
'Peugeot 505','1998','Luis Luque',99000
'Peugeot 505','97','Carola Perez',85000
4- Compruebe la estructura de la tabla
5- Muestre las filas de la tabla.
6- Ingrese un coche con el valor para "modelo" de tipo numrico: de 2, de 4 cifras y compruebe
los resultados mostrando la tabla.
Ejemplo 'Peugeot 505',1995,'Carlos Lopez',88000
'Fiat 128','70','Juan Lopez',50000
7- Intente introducir una fecha (ao-mes-dia) completa en modelo. Y comprueba el resultado.
8-Intenta introducir la fecha actual en formato (dia-mes-ao).
9- Seleccione todos los autos cuyo modelo sea menor a "1995".
10 - Muestre los coches que no sean de "1970".

Una empresa almacena los datos de sus empleados en una tabla "empleados".
1- Elimine la tabla, si existe:
2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo:
nombre
cadena de (20),
documento
caracter de (8),
sexo
caracter de (1),
domicilio
cadena de (30),
fechaingreso
fecha
3- Ingrese algunos registros:
('Juan Perez','22333444','m','Colon 123','1990-10-08');
('Ana Acosta','23333444','f','Caseros 987','1995-12-18');
('Lucas Duarte','25333444','m','Sucre 235','2005-05-15');
('Pamela Gonzalez','26333444','f','Sarmiento 873','1999-02-12');
('Marcos Juarez','30333444','m','Rivadavia 801','2002-09-22');
4- Seleccione todos los datos de los empleados que ingresaron a la empresa antes del 2000:
5- Muestre el nombre y la fecha de ingreso de los empleados de sexo masculino:
7- Ingrese un empleado con valor para "fechaingreso" en la cual coloque 2 digitos
correspondientes al ao:
EJ:('Susana Duarte','30123456','f','Sucre 1234','99-02-12');
8- Ingrese un empleado colocando slo un dgito en la parte de la fecha correspondiente al mes
y da:
EJ:('Daniel Herrero','30000001','m',null,'1980-2-03');
9- Ingrese una fecha de ingreso sin separadores:
EJ:('Ana Juarez','31123123','f',null,'19900306');
10- Ingrese un valor de tipo fecha y hora:
EJ:('Juan Mores','32222333','m',null,'1990-03-06 10:15');
Slo guarda la parte de la fecha.
11- Ingrese un valor que MySQL no reconozca como fecha:
EJ:('Hector Perez','34444555','m',null,'1990036');
Almacenar ceros.

22.

Valores por defecto.

Trabaje con la tabla que almacena los datos sobre pelculas, llamada "peliculas".
1- Elimine la tabla si existe.
2- Crela con la siguiente estructura:
-codigo (entero sin signo, autoincrementable),
-titulo (cadena de 30, not nulo),
-actor (cadena de 20),
-duracion (entero sin signo hasta 200 apox.),

-clave primaria (codigo).


3- Agregue los siguientes registros para ver cmo guarda MySQL los valores no ingresados:
insert into peliculas (titulo,actor,duracion)
values('Mision imposible','Tom Cruise',120);
insert into peliculas (codigo,duracion)
values(5,90);
insert into peliculas (titulo,actor)
values ('Harry Potter y la piedra filosofal','Daniel R.');
insert into peliculas (titulo,actor,duracion)
values ('Harry Potter y la piedra filosofal','Daniel R.',120);
4- Seleccione todos los datos de las pelculas para ver cmo guard MySQL los valores no
ingresados. En el primer registro ingresado, en el campo "codigo" ingresar "1", el primer valor
para campos "auto_increment". En el segundo registro ingresado se almacena una cadena vaca
para el ttulo y el valor "null" para el actor. En el tercer registro guarda "6" en "codigo", el
siguiente valor de la secuencia tomando el valor ms alto y en "duracion" almacena "0". En el
cuarto registro sigue la secuencia del cdigo.
Una empresa almacena los datos de sus empleados en una tabla "empleados".
1- Elimine la tabla, si existe.
2- Cree la tabla:
nombre
cadena de (20),
documento
caracter de (8) no nulo,
sexo
caracter de (1),
domicilio
cadena de (30),
fechaingreso
fecha no nulo,
fechanacimiento fecha,
sueldo
decimal(5,2) sin signo no nulo
3- Agregue los siguientes registros para ver cmo guarda MySQL los valores no ingresados:
insert into empleados (nombre,documento,sexo)
values('Marcela Medina','22333444','f');
insert into empleados (domicilio,fechaingreso)
values('Avellaneda 200','2005-08-16');
insert into empleados (fechanacimiento,sueldo)
values('1970-09-26',500.90);
4- Seleccione todos los datos de los empleados para ver cmo guard MySQL los valores no
ingresados.
En el primer registro ingresado, en los campos "domicilio" y "fechanacimiento" ingresar "null",
porque ninguno de los campos estn definidos como "not null"; en el campo "fechaingreso"
almacena "000-00-00" ya que dicho campo no admite valores nulos; en el campo "sueldo"
guarda "0.00" porque el campo no admite valores nulos. En el segundo registro ingresado se
almacena "null" en los campos "nombre", "sexo" y "fechanacimiento" pues estos campos
admiten valores "null"; en el campo "documento", que no admite valores nulos, se almacena
una cadena vaca. En el tercer registro guarda "null" en los campos "nombre", "sexo" y
"domicilio", ya que los permiten; en el campo "documento", almacena una cadena vaca.

23.

Valores invlidos.

Una empresa registra los datos de sus empleados en una tabla llamada "empleados".
1- Elimine la tabla "empleados" si existe.
2- Cree la tabla:
documento 8 caracteres no nulo
nombre cadena de 30 no nulo
domicilio cadena de 30
fechaingreso fecha no nulo
fechanacimiento fecha
clave primaria->(documento)
3- Intente ingresar la fecha "20-10-2005" para la fecha de ingreso:
insert into empleados (documento,fechaiIngreso,fechanacimiento)
values('22333444','20-10-2005',null
Se almacenan ceros.
4- Intente almacenar "null" en "fechaingreso":
insert into empleados (documento,fechaingreso,fechanacimiento)
values('22333444',null,'2005-10-10'
Muestra un mensaje de error.
5- Intente almacenar valores nulos en los campos "documento" y " nombre".
6- Almacene un valor numrico en un campo de tipo caracter.
7- Almacene en "documento" el valor "22.345.678".
Trabaje con la tabla que almacena los datos sobre pelculas, llamada "peliculas".
1- Elimine la tabla si existe.
2- Crela con la siguiente estructura:
codigo
entero sin signo auto_incremental,
titulo
cadena de (15) no nulo,
actor
cadena de (20),
duracion
tinyint sin signo,
clave primaria -> (codigo)
3- Ingrese el siguiente registro:
insert into peliculas values(-10,'Mision imposible','Tom Cruise',120);
4- Muestre los registros para ver qu valor se guard en "codigo".
5- Intente ingresar el siguiente registro (error por clave duplicada):
insert into peliculas values(1,'Mision imposible 2','Tom Cruise',120);
6- Intente ingresar el siguiente registro:
insert into peliculas values(null,'Mision imposible 2','Tom Cruise',120);
7- Muestre los registros para ver qu valor se guard en "codigo".
8- Intente ingresar el siguiente registro (no ingresa, el campo "ttulo" no admite valores nulos):
insert into peliculas values(3,null,'Tom Cruise',120);
9- Ingrese el siguiente registro:

insert into peliculas values(5,'Harry Potter y la camara secreta','Daniel R.',150);


10- Muestre los registros para ver qu se almacen en "titulo" (cadena cortada).
11- Ingrese el siguiente registro:
insert into peliculas values(10,'Elsa y Fred','China Zorrilla',12345);
12- Muestre los registros para ver qu se almacen en "duracin" (el valor lmite permitido por
el rango ms cercano al ingresado).

Modificacin de la estructura
24.

Agregar campos a una tabla (alter table - add)

A) Trabaje con la tabla "peliculas" de un video club.


1- Elimine la tabla, si existe.
2- Cree la tabla con la siguiente estructura:
codigo entero sin signo autoincremental,
titulo cadena de 30 no nulo,
actor cadena de 20,
clave primaria (codigo)
3- Ingrese algunos registros.
4- Agregue un campo para almacenar la duracin de la pelcula, de tipo tinyint unsigned:
5- Visualice la estructura de la tabla con "describe".
6- Agregue el campo "director" para almacenar el nombre del director, de tipo varchar(20)
despus de titulo.
7- Visualice la estructura de la tabla con su nuevo campo.
8- Intente agregar el campo actor como cadena de 30. Aparece un mensaje de error.
B) Un comercio que vende al por mayor artculos de librera y papelera tiene una tabla llamada
"articulos".
1- Elimine la tabla, si existe.
2- Cree la tabla con la siguiente estructura:
codigo entero sin signo autoincremental,
nombre cadena de 20 no nulo,
descripcion cadena de 30,
precio decimal 4,2 positivo,
clave primaria (codigo)
3- Ingrese los siguientes registros:
(nombre,descripcion,precio)
('escuadra','plastico 20 cm.',3.50);
('lpices colores','Join x12',4.50);
('regla','30 cm.',2.50);
('fibras','Join x12',10.30);
4- El comercio, que hasta ahora ha vendido sus artculos por mayor, comenzar la venta por
menor. Necesita alterar la tabla agregando un campo para almacenar el precio por menor para
cada artculo.
Agrege un campo llamado "preciopormenor" de tipo decimal 4,2 y positivo
5- Muestre todos los registros:
Note que para el nuevo campo los valores se pusieron en "null".

25.

Eliminar campos de una tabla (alter table - drop)

Un comercio que vende al por mayor artculos de librera y papelera tiene una tabla
llamada "articulos".
1- Utilice la tabla articulos.
2- Elimine el campo precio.
3- Comrpuebe la estructura de la tabla.
4- Elimine el campo codigo.
5- comprueba la estructura y como ha desaparecido la clave primaria.
6- Intente borrar el campo precio de nuevo.
7- Intenta borrar los 3 campos que quedan en la misma sentencia.
Trabaje con la tabla "peliculas" de un video club.
1- Compruebe la tabla, si existe.
2- Cree la tabla con la siguiente estructura:
codigo int unsigned auto_increment,
nombre varchar(30) not null,
protagonista varchar(20),
actorsecundario varchar(20),
director varchar(25),
duracion tinyint unsigned,
primary key(codigo),
3- Ingrese algunos registros.
4- Elimine el campo "director":
5- Visualice la estructura modificada:
8- Intente eliminar un campo inexistente como director. Aparece un mensaje de error:
9- Elimine los campos "actorsecundario" y "duracion" en una misma sentencia:
Trabajamos con nuestra tabla "usuarios" que almacena los nombres de los usuarios y
sus claves.
1- Compruebe la tabla si existe.
2- Cree la tabla:
nombre varchar(30),
clave varchar(10)

3- Elimine el campo "clave":


4- Visualice la estructura de la tabla:
5- Intente eliminar el nico campo de la tabla:
Aparece un mensaje de error y la sentencia no se ejecuta, esto es porque no se puede dejar
una tabla vaca de campos.

26.

Modificar campos de una tabla (alter table - modify)

Trabaje con la tabla "peliculas" de un video club.


1- La tabla tiene que tener la siguiente estructura. Modifique o cree la tabla de nuevo.
codigo entero sin signo,
nombre cadena de 20 no nulo,
actor cadena de 20,
director cadena de 25,
duracion tinyint
2- Modifique el campo "duracion" por tinyint unsigned.
3- inserte algunos valores a la tabla. El nombre de la pelcula llegue a los 20 caracteres.
4- Modifique el campo "nombre" para poder almacenar una longitud de 10 caracteres.
5- Muestre los registros de la tabla.
6- Modifique el campo "nombre" para poder almacenar una longitud de 40 caracteres y que no
permita valores nulos.
6- Modifique el campo "actor" para que no permita valores nulos:
7- Intente definir "auto_increment" el campo "codigo" (mensaje de error).
B) Un comercio que vende artculos de computacin registra los datos de sus artculos
en una tabla con ese nombre.
1- Elimine "articulos", si existe.
2- Cree la tabla, con la siguiente estructura:
codigo int unsigned,
nombre varchar(25) not null,
descripcion varchar(30),
precio decimal(4,2) unsigned,
cantidad tinyint,
primary key(codigo)
3- Modifique el campo "precio" para que pueda guardar valores hasta "9999.99".
4- Modifique el campo "codigo" para que se autoincremente.
5- Modifique el campo "cantidad" para que no permita valores negativos.

27.

Clave primaria compuesta

Una pequea biblioteca de barrio registra los prstamos de sus libros en una tabla
llamada "prestamos". En ella almacena la siguiente informacin:
-ttulo del libro, cadena de 40 no nulo
-documento de identidad del socio a quien se le presta el libro, carcter de 9 no nulo
-fecha de prstamo, tipo fecha no nulo
-fecha de devolucin del libro, tipo fecha
-devuelto: si el libro ha sido o no devuelto. Carcter de 1, por defecto a N.
1- Elimine la tabla "prestamos" si existe.
2- Necesitamos una clave que identifique cada registro en la tabla "prestamos". El mismo libro
no puede prestarse en la misma fecha.
Qu claves usamos?
3- Cree la tabla y comprueba su estructura para ver que hay dos campos como clave primaria.
4- Ingrese los siguientes registros para la tabla "prestamos":
(titulo,documento,fechaprestamo)
('Manual de 1 grado','22333444','2006-07-10'
('Manual de 1 grado','22333444','2006-07-20'
('Manual de 1 grado','23333444','2006-07-15'
('El aleph','22333444','2006-07-10'
('El aleph','30333444','2006-08-10'
Note que un mismo libro fue prestado a un mismo socio pero en una fecha distinta.
5- Intente ingresar un valor de clave primaria repetida:
Ejemplo: ('Manual de 1 grado','25333444','2006-07-10'
6- intenta crear una tabla con 2 campos como clave primaria. El segundo campo tiene que ser
autonumerico
A) Un consultorio mdico en el cual trabajan 3 mdicos registra las consultas de los
pacientes en una tabla llamada "consultas".
1- Elimine la tabla si existe.
2- La tabla contiene los siguientes datos:
- fechayhora: datetime not null, fecha y hora de la consulta,
- medico: varchar(30), not null, nombre del mdico (Perez,Lopez,Duarte),
- documento: char(8) not null, documento del paciente,
- paciente: varchar(30), nombre del paciente,
- obrasocial: varchar(30), nombre de la obra social ('IPAM','PAMI').
);

3- Un mdico slo puede atender a un paciente en una fecha y hora determinada. En una fecha
y hora determinada, varios mdicos atienden a distintos pacientes. Cree la tabla definiendo una
clave primaria compuesta:
4- Ingrese varias consultas para un mismo mdico en distintas horas el mismo da.
5- Ingrese varias consultas para diferentes mdicos en la misma fecha y hora.
6- Intente ingresar una consulta para un mismo mdico en la misma hora el mismo da.
B) Un club dicta clases de distintos deportes. En una tabla llamada "inscriptos"
almacena la informacin necesaria.
1- Elimine la tabla "inscriptos" si existe.
2- La tabla contiene los siguientes campos:
- documento del socio alumno: char(8) not null
- nombre del socio: varchar(30),
- nombre del deporte (tenis, futbol, natacin, basquet): varchar(15) not null,
- ao de inscripcion: year,
- matrcula: si la matrcula ha sido o no pagada ('s' o 'n').
3- Necesitamos una clave primaria que identifique cada registro. Un socio puede inscribirse en
varios deportes en distintos aos. Un socio no puede inscribirse en el mismo deporte el mismo
ao. Varios socios se inscriben en un mismo deporte. Cree la tabla con una clave compuesta.
4- Inscriba a varios alumnos en el mismo deporte en el mismo ao.
5- Inscriba a un mismo alumno en varios deportes en el mismo ao.
6- Ingrese un registro con el mismo documento de socio en el mismo deporte en distintos aos.
7- Intente inscribir a un socio alumno en un deporte en el cual ya est inscripto en un ao en el
cual ya se haya inscripto.
8- Intente eliminar un campo parte de la clave.

28.

Agregar y eliminar la clave primaria (alter table)

Trabaje con la tabla llamada "medicamentos" de una farmacia.


1- Elimine la tabla, si existe o modificala. Vacia la tabla de contenido.
2- Cree la tabla con la siguiente estructura sin clave primaria.
codigo int unsigned no nulo,
nombre cadena de 20 no nulo,
laboratorio cadena de 20,
precio decimal 6,2 positivo
3- Visualice la estructura de la tabla "medicamentos".
4- Agregue una clave primaria por la columna "codigo":

La clave agregada, no es auto_increment, por ello, al agregar registros debemos ingresar el


cdigo, si no lo hacemos, se almacenar el valor "0" en el primer registro agregado.
5- Insertar en los campos
(nombre, laboratorio, precio)
('Sertal compuesto','Bayer',5.10);
Lista el contenido de la tabla.
Si intentamos agregar ms registros, aparecer un mensaje indicando que la clave est
repetida:
(nombre, laboratorio, precio)
('Paracetamol 1000','Bago',2.90);

6- Para solucionar esto podemos modificar el campo codigo convirtindolo en


autoincrementable:
codigo entero, positivo, autoincremental
7- Veamos los registros, El campo codigo ha debido de alterarse.
8- Ingrese ms registros:
(nombre, laboratorio,precio)
('Paracetamol 500','Bago',1.90);
('Bayaspirina','Bayer',2.10);
9- Intente eliminar la clave primaria con alter table.
Aparece un mensaje de error. La clave no se puede eliminar porque el campo "codigo" es
"auto_increment" y si existe un campo con este atributo DEBE ser clave primaria.
10- Modifique el campo "codigo" quitndole el atributo "auto_increment":
11- Elimine ahora la clave primaria:
12- Introduzca mas registros.
(nombre, laboratorio,precio)
('Bayaspirina','Bayer',3.10);
13- Intente poner como clave primaria el campo nombre.
Una pequea biblioteca de barrio registra los prstamos de sus libros en una tabla
llamada "prestamos".
1- Elimine la tabla "prestamos" si existe.
2- Cree la tabla:
codigo entero unsigned,
titulo cadena de (40) no nulo,
documento caracter de (8) no nulo,
fechaprestamo fecha no nulo,
fechadevolucion fecha,
devuelto caracter de (1) /* si se devolvi 's' sino 'n'*/
3- Agregue una clave primaria compuesta por "codigo" y "fechaprestamo". Comprueba la
estructura.
4- Intente agregar un registro con clave repetida.

5- Elimine la clave primaria. Comprueba la estructura.

29.

Agregar y eliminar la clave ajena (alter table)

A)Una empresa tiene registrados sus clientes en una tabla llamada "clientes",
tambin tiene una tabla "provincias" donde registra los nombres de las provincias.
1- Compruebe la estructura y el contenido de las tablas clientes y provincias.
2- Intente modificar el campo codigoprovincia de la tabla clientes para que sea del tipo char(2)
con alter table.
3- elimine la clave ajena de la tabla clientes.
B)Una tienda registra sus facturas en la tabla venta y a sus clientes en la tabla
cliente:
1- Cree las tablas con la siguiente estructura:
CLIENTE
id_cliente
entero no nulo
nombre
cadena de 30
clave primaria (id_cliente)
VENTA
id_factura
entero no nulo
id_cliente
entero no nulo
cantidad
entero
clave primaria (id-factura)
2- Cree la clave ajena del campo id_cliente en la tabla venta que apunte a la clave primaria de
la tabla cliente. El borrado de registros tiene que estar restringido. La actualizacin se hace en
cascada. Para ello use alter table.
3- compruebe la estructura de las tablas.
4-Borra ahora la clave ajena.

30. Cambiar el nombre de un campo de una tabla (alter table - change)


A) Un comercio que vende por mayor artculos de librera y papelera tiene una tabla llamada
"articulos".
1- Elimine o modifique la tabla si existe.
2- Cree la tabla con la siguiente estructura:
codigo entero sin signo auto_increment,
nombre cadena de 20 no nulo,
descripcion cadena de 30,
precio decimal 4,2 positivo,

poner codigo como clave primaria.


3- Ingrese los siguientes registros:
(nombre,descripcion,precio)
'escuadra','plastico 20 cm.',3.50
'lpices colores','Faber x12',4.50
'lpices colores','Faber x24',7.50
'regla','30 cm.',2.50
'fibras','Faber x12',10.30
'fibras','Faber x6',5.10
4- El comercio, que hasta ahora ha vendido sus artculos por mayor comenzar la venta por
menor. Necesita alterar la tabla modificando el nombre del campo "precio" por "preciopormayor"
adems desea redefinirlo como no nulo:
5- Tambin necesita alterar la tabla agregando un campo para almacenar el precio por menor
para cada artculo. Agrege un campo llamado "preciopormenor" que no permita valores nulos:
6- Muestre todos los registros:
Note que para el nuevo campo los valores se pusieron en "null".
B)Trabaje con la tabla "peliculas" de un video club.
1- Comprueba que la tabla tiene la siguiente estructura:
codigo int unsigned,
nombre varchar(40) not null,
actor varchar(20),
director varchar(25),
duracion tinyint unsigned
3- Cambie el nombre del campo "actor" por "protagonista" y modifquelo para que permita
valores nulos.
4- Cambie el campo "nombre" por "titulo" sin alterar los otros atributos.
5- Cambie el nombre del campo "duracion" por "minutos".

31.

Renombrar tablas (alter table - rename - rename table)

A)Trabajamos con la tabla "peliculas" de un video club.


1- Cambie el nombre de la tabla por "films" con "alter table":
2- Vea si existen las tablas "peliculas" y "films" con show tables.
3- Cambie nuevamente el nombre, de la tabla "films" por "peliculas" usando "rename".
4- vea si existen las tablas.
B)Una empresa tiene almacenados los datos de sus clientes en una tabla llamada
"clientes" y los datos de sus empleados en otra tabla denominada "empleados".
1- Elimine ambas tablas si existen.

2- Cree las tablas dndoles el nombre equivocado, es decir, del nombre clientes a la tabla que
contiene los datos de los empleados y el nombre empleados a la tabla con la informacin de
los clientes:
TABLA CLIENTES
documento caracteres de 8 no nulo,
nombre cadena de 30,
domicilio cadena de 30,
fechaingreso date,
sueldo decimal 6,2 positivo
TABLA EMPLEADOS
documento caracteres de 8 no nulo,
nombre cadena de 30,
domicilio cadena de 30,
ciudad cadena de 30,
provincia cadena de 30
3- Vea la estructura de ambas tablas con describe.
4- Intercambie los nombres de las dos tablas:
5- Verifique el cambio de nombre y compruebe si existe la tabla "auxiliar"

ndices
32.

ndice de una tabla.

33.

ndice de tipo primary.

1- Vea la estructura de los ndices de varias tablas creadas y analice la informacin:


show index from <tabla>;

34.

ndice comn (index)

Retome la tabla llamada "medicamentos" de una farmacia.


1- Elimine la tabla, si existe.
2- Cree la tabla e indxela por el campo "laboratorio":
create table medicamentos(
codigo int unsigned auto_increment,
nombre varchar(20) no nulo,
laboratorio varchar(20),
precio decimal (6,2) unsigned,
cantidad int unsigned,
primary key(codigo),
index i_laboratorio (laboratorio)
);
3- Visualice los ndices de la tabla "medicamentos" y analice la informacin:
show index from medicamentos;
4- crea otra vez la tabla sin asignar nombre al ndice. Visualiza los ndices y la estructura de la
tabla.
A) Retomamos la tabla "clientes" de una empresa.
1- Elimine la tabla "clientes", si existe.
2- Crela y defina un ndice por mltiples campos, por ciudad y provincia:
documento caracter de (8) no nulo,
nombre cadena de (30) no nulo,
domicilio cadena de (30),
ciudad cadena de (20),
provincia cadena de (20),
telefono cadena de (11),
clave primaria -> (documento),
ndice llamado i_ciudadprovincia de los campos ciudad y provincia
3- Muestre los ndices:
show index from clientes;

4- Analice la informacin:
Aparecen 3 filas, 3 ndices. Uno de ellos corresponde a la clave primaria (PRIMARY), es nico
(los valores no se repiten) y no acepta valores nulos. Otro ndice, llamado "i_ciudadprovincia",
es No nico, es decir, acepta valores repetidos, consta de 2 campos, el orden es "ciudad" y
"provincia" y acepta valores nulos (ambos campos).
B) Trabaje con la tabla "agenda" que registra la informacin referente a sus amigos.
1- Elimine la tabla si existe.
2- Cree la tabla con la siguiente estructura:
apellido cadena de (30),
nombre cadena de (20) no nulo,
domicilio cadena de (30),
telefono cadena de (11),
mail cadena de (30),
ndice i_apellido del campo apellido.
3- Ingrese los siguientes registros:
('Perez','Juan','Sarmiento 345','4334455','juancito@gmail.com');
('Garcia','Ana','Urquiza 367','4226677','anamariagarcia@hotmail.com');
('Lopez','Juan','Avellaneda 900',null,'juancitoLopez@gmail.com');
('Juarez','Mariana','Sucre 123','0525657687','marianaJuarez2@gmail.com');
('Molinari','Lucia','Peru 1254','4590987','molinarilucia@hotmail.com');
('Ferreyra','Patricia','Colon 1534','4585858',null);
('Perez','Susana','San Martin 333',null,null);
('Perez','Luis','Urquiza 444','0354545256','perezluisalberto@hotmail.com');
('Lopez','Maria','Salta 314',null,'lopezmariayo@gmail.com');
4- Vea la informacin de los ndices:
show index from agenda;
5- Haga bsquedas con select por los distintos apellidos.

35.

ndice nico (unique)

A) Un instituto de enseanza guarda los siguientes datos de sus alumnos:


- ao de inscripcin, no nulo
- nmero de inscripto, comienza desde 1 cada ao, positivo y no nulo
- nombre del alumno,
- documento del alumno, no nulo
- domicilio,
- ciudad,
- provincia,
- clave primaria: nmero de inscripto y ao de inscripcin.
1- Elimine o modifica la tabla "alumnos" si existe.
2- Cree la tabla definiendo una clave primaria compuesta (ao de inscripcin y nmero de
inscripto), un ndice nico por el campo "documento" y un ndice comn por ciudad y provincia.
3- Vea los ndices y la estructura de la tabla.

4- Ingrese algunos registros. Ingrese 2 4 alumnos para los aos 2004, 2005 y 2006.
5- Intente ingresar un alumno con clave primaria repetida.
6- Intente ingresar un alumno con documento repetido.
7- Ingrese varios alumnos de la misma ciudad y provincia.
8- haga bsquedas por documento, ciudad y provincia.
B) Una clnica registra las consultas de los pacientes en una tabla llamada "consultas"
que almacena la siguiente informacin:
- fecha de la consulta,
- nmero de consulta por da,
- documento del paciente,
- obra social del paciente,
- nombre del mdico que atiende al paciente,
1- Elimine la tabla si existe.
2- Cree la tabla con una clave primaria compuesta (fecha y nmero de consulta); un ndice
nico (fecha,documento y mdico). Hay 2 campos por los cuales podemos realizar consultas
frecuentemente: "medico" y "obrasocial", cree ndices para esos campos.
3- Cree la tabla con la siguiente estructura:
create table consultas(
fecha date,
numero int unsigned,
documento char(8) no nulo,
obrasocial varchar(30),
medico varchar(30),
primary key(fecha,numero),
unique i_consulta(documento,fecha,medico),
index i_medico (medico),
index i_obrasocial (obrasocial)
);
4- Vea los ndices.
5- Los valores de la clave primaria no pueden repetirse. Intente ingresar dos pacientes el
mismo da con el mismo nmero de consulta.
6- Los valores para el ndice nico no pueden repetirse. Intente ingresar una consulta del mismo
paciente, en la misma fecha con el mismo mdico.
7- Note que los ndices por los campos "medico" y "obrasocial" son comunes, porque los valores
se repiten. Ingrese consultas en las cuales se repitan los mdicos y las obras sociales.
C) Una empresa de arrendamiento de vehculos con chofer tiene registrada la
informacin de sus vehculos en una tabla llamada "remis".
1- Elimine la tabla si existe.
2- Cree la tabla con una clave primaria por nmero de vehculo y un ndice nico por "patente",
ste es un valor por el cual podemos realizar consultas frecuentemente y es nico (igual que el
nmero del remis):

create table remis(


patente char(6) no nulo,
numero tinyint unsigned no nulo,
marca varchar(15),
modelo year,
primary key (numero),
unique i_patente (patente),
);
3- Vea los ndices y analice la informacin.
4- Los valores de la clave primaria no pueden repetirse. Intente ingresar 2 vehculos con el
mismo nmero.
5- Los valores para el ndice nico no pueden repetirse. Intente ingresar 2 vehculos con igual
patente.

36.

Borrar indice (drop index)

A)Un instituto de enseanza guarda los datos de sus alumnos en una tabla llamada
"alumnos".
1- Vea los ndices de la tabla.
2- Elimine el ndice que agrupa a ciudad y provincia.
5- Verifique la eliminacin usando "show index".
6- Intente eliminar el ndice PRIMARY.
7- Elimine el ndice nico.
8- Verifique la eliminacin usando "show index".
B) Trabaje con la tabla "peliculas" de un video club.
1- Si existe la tabla
2- Cree la tabla con la siguiente estructura:
codigo entero sin signo autoincremental
nombre cadena de 30 no nulo,
protagonista cadena de 20,
actorsecundario cadena de 20,
director cadena de 25,
duracion tinyint positivo,
tendr como clave primaria codigo y un indice i_director de director.
3- Ingresa algn registro.
4- Vea los ndices;

5- Elimine el campo "director" con alter table.


6- Visualice la estructura modificada con describe y los ndices.
7- Cree un ndice i_actores de protagonista y actorsecundario.
8- Compruebe los ndices
9- borre con alter table la columna protagonista
10- comprueba ahora la estructura y los ndices de la tabla y observa que ha pasado.

37.

Creacin de ndices a tablas existentes (create index)

1- Vuelva a crear los ndices borrados en el ejercicio anterior


La tabla "clientes" almacena informacin sobre los clientes de una empresa.
2- Crela con esta estructura y pon una clave primaria.
Id_cliente entero autonumerico
documento caracteres de 8 no nulo,
nombre cadena de 30 no nulo,
domicilio cadena de 30,
ciudad cadena de 20,
provincia cadena de 20,
telefono caracteres de 11
3- Agregue un ndice comn por ciudad y provincia con un nombre i_ciudadprovincia. Agregue
otro por domicilio sin nombre.
4- Vea la informacin de los ndices show index.
5- Agregue un ndice nico por el campo "documento" con el nombre i_documentos.

38.

Agregar ndices(alter table - add index)

A) Trabaje con la tabla "alumnos" en el cual un instituto de enseanza guarda los


datos de sus alumnos.
1- Elimine la tabla "alumnos" si existe.
2- Cree la tabla:
legajo entero sin signo auto_increment,
nombre cadena de 30,
documento carcter de 8 no nulo,
domicilio cadena de 30,
ciudad cadena de 20,
provincia cadena de 20,
clave primaria -> legajo

3- Vea los ndices de la tabla.


4- Agregue un ndice comn por los campos "ciudad" y "provincia" (que pueden repetirse)
5- Agregue un ndice nico (no pueden repetirse los valores; por el campo "documento":
6- Visualice los ndices:
B)Una clnica registra las consultas de los pacientes en una tabla llamada "consultas".
1- Elimine la tabla si existe.
2- Cree la tabla con una clave primaria compuesta (fecha y nmero de consulta)
fecha de tipo fecha,
numero entero sin signo,
documento caracer de 8 no nulo,
obrasocial cadena de 30,
medico cadena de 30,
3- Agregue un ndice nico llamado "i_consulta" compuesto por los campos "documento",
"fecha" y "medico":
4- Hay 2 campos por los cuales podemos realizar consultas frecuentemente: "medico" y
"obrasocial", cree ndices para cada uno de esos campos.
5- Vea los ndices.

39.

Borrado de ndices (alter table - drop index)

Trabajamos con la tabla "alumnos" en la cual un instituto de enseanza guarda los


datos de sus alumnos.
1- Compruebe la tabla "alumnos" si existe.
2- Vea la estructura de la tabla.
3- Vea los ndices de la tabla.
4- Elimine el ndice nico.
5- Elimine el ndice comn.
6- Vea los ndices.
B) Una clnica registra las consultas de los pacientes en una tabla llamada
"consultas".
1- Comprueba la estructura de la tabla y mira los ndices.
2- Elimine el ndice nico.
3- Elimine los ndices comunes.

4- Vea los ndices.

Otros tipos de datos en MySQL


40.

Tipo de dato enum.

A) Trabajamos con la tabla "empleados" de una empresa.


1- Elimine la tabla empleados, si existe.
2- Cree la tabla con la siguiente estructura:
documento caracteres de 8
nombre cadena de 30
sexo caracteres de 1
estadocivil enum('soltero','casado','divorciado','viudo') no nulo,
sueldobasico decimal(6,2)
clave primaria -> (documento)
3- Ingrese algunos registros y muestra la tabla.
('22333441','Juan Lopez','h','soltero',300);
('23333442','Ana Acosta','m','viudo',400);
4- Intente ingresar un valor "null" para el campo enumerado:
('25333443','Ana Acosta','m',null,400);
5- Ingrese resgistros con valores de ndice para el campo "estadocivil":
('26333444','Luis Perez','h',1,400);
('26336445','Marcelo Torres','h',3,460);
6- Ingrese un valor invlido, uno no presente en la lista y un valor de ndice fuera de rango
(guarda una cadena vaca):
('29333444','Lucas Perez','h',0,400);
('30336444','Federico Garcia','h',5,450);
('31333444','Karina Sosa','m','Concubino',500);
7- Seleccione todos los empleados solteros:
8- Seleccione todos los empleados viudos usando el nmero de ndice de la enumeracin:
9- Seleccione los empleados con estado civil invalido
B) Una empresa de turismo vende paquetes de viajes y almacena la informacin
referente a los mismos en una tabla llamada "viajes":
1- Elimine la tabla si existe.
2- Cree la tabla:
codigo enero positivo auto_increment,
nombre cadena de 50
pension enum ('no','media','completa') no nulo,
hotel enum ('1','2','3','4','5'),/* cantidad de estrellas*/
dias tinyint positivo,
salida date,
precioporpersona decimal(8,2) positivo,
clave primaria -> (codigo)

3- Ingrese algunos registros:


('Mexico mgico','completa','4',15,'2005-12-01');
('Europa fantastica','media','5',28,'2005-05-10');
('Caribe especial','no','3',7,'2005-11-25');
5- Intente ingresar un valor "null" para el campo "pension":
('Mexico maravilloso',null,'4',15,'2005-12-01');
6- Ingrese valor nulo para el campo "hotel"
('Mexico especial','media',3,18,'2005-11-01');
7- Ingrese un valor invlido, no presente en la lista de "pension" (guarda una cadena vaca):
('Caribe especial','ninguna','4',18,'2005-11-01');
8- Ingrese un valor de ndice fuera de rango para el campo "hotel":
('Venezuela nica','no',6,18,'2005-11-01');
9- Seleccione todos los viajes que incluyen media pensin:
10- Seleccione todos los viajes que incluyen un hotel de 4 estrellas:
11- Seleccione los viajes que no se tiene informacin del numero de estrellas del hotel.
C) Una inmobiliaria vende inmuebles; los inmuebles pueden ser: casa, departamento,
local o terreno.
1- Elimine la tabla "inmuebles" si existe.
2- Cree la tabla "inmuebles" para registrar la siguiente informacin:
- tipo de inmueble: tipo enum (casa,dpto,local,terreno), no nulo,
- domicilio: cadena de 30
- propietario: nombre del dueo,
- precio: decimal hasta 999999.99 positivo.
3- Ingrese algunos registros.
4- Seleccione el domicilio y precio de todos los departamentos en alquiler.
5- Seleccione el domicilio, propietario y precio de todos los locales en venta.
6- Seleccione el domicilio y precio de todas las casas disponibles.

41.

Tipo de dato set.

Una academia de enseanza dicta distintos cursos de informtica. Los cursos se


dictan por la maana (de 8 a 12 hs.) o por la tarde (de 16 a 20 hs.), distintos das a la
semana. La academia guarda los datos de los cursos en una tabla llamada "cursos" en
la cual almacena el cdigo del curso, el tema, los das de la semana que se dicta, el

horario, por la maana (AM) o por la tarde (PM), la cantidad de clases que incluye
cada curso (clases), la fecha de inicio y el costo del curso.
1- Elimine la tabla "cursos", si existe.

2- Cree la tabla "cursos" con la siguiente estructura:


create table cursos(
codigo tinyint unsigned auto_increment,
tema varchar(20) not null,
dias set ('lunes','martes','miercoles','jueves','viernes','sabado') not null,
horario enum ('AM','PM') not null,
clases tinyint unsigned default 1,
fechainicio date,
costo decimal(5,2) unsigned,
primary key(codigo)
);
3- Ingrese los siguientes registros:
insert into cursos (tema, dias,horario,clases,fechainicio,costo)
('PHP bsico','lunes,martes,miercoles','AM',18,'2006-08-07',200);
('PHP bsico','lunes,martes,miercoles','PM',18,'2006-08-14',200);
('PHP bsico','sabado','AM',18,'2006-08-05',280);
('PHP avanzado','martes,jueves','AM',20,'2006-08-01',350);
('JavaScript','lunes,martes,miercoles','PM',15,'2006-09-11',150);
('Paginas web','martes,jueves','PM',10,'2006-08-08',250);
('Paginas web','sabado','AM',10,'2006-08-12',280);
('Paginas web','lunes,viernes','AM',10,'2006-08-21',200);
('Paginas web','lunes,martes,miercoles,jueves,viernes','AM',10,'2006-09-18',180);
('Paginas web','lunes,viernes','PM',10,'2006-09-25',280);
('JavaScript','lunes,martes,viernes,sabado','PM',12,'2006-09-18',150);
4- Una persona quiere inscribirse en un curso de "PHP" y slo tiene disponibles los sbados.
Localice los cursos de "PHP" que se dictan solamente los sbados:
5- Otra persona quiere aprender a disear pginas web, tiene disponibles todas las maanas
excepto los mircoles. Vea si existe algn curso que cumpla con sus necesidades:
6- Otra persona necesita aprender JavaScript, tiene disponibles todos las tardes excepto los
jueves y quiere un curso que no supere las 15 clases para el mes de setiembre. Busque algn
curso para esta persona:
A) Trabaje con la tabla "inmuebles" en la cual una inmobiliaria almacena la
informacin referente a sus departamentos en venta.
1- Elimine la tabla "inmuebles" si existe.
2- Cree la tabla "inmuebles":
create table inmuebles(
detalles set ('estacionamiento','terraza','pileta','patio','ascensor'),
domicilio varchar(30),
propietario varchar(30),
precio decimal (9,2) unsigned
);
3- Ingrese algunos registros:

insert into inmuebles (detalles,precio)


('terraza,pileta',50000);
('patio,terraza,pileta',60000);
('ascensor,terraza,pileta',80000);
('patio,estacionamiento',65000);
('estacionamiento',90000);
4- Seleccione todos los datos de los departamentos con terraza:
5- Seleccione los departamentos que no tiene ascensor:
6- Muestre los inmuebles que tengan terraza y pileta solamente:
7- Muestre los inmuebles que no tengan ascensor y si estacionamiento, adems de otros
detalles:
8- Ingrese un registro con valor inexistente en "detalles":
9 Ingrese un registro sin valor para "detalles":
B) Una empresa de turismo vende paquetes de viajes a Mxico y almacena la
informacin referente a los mismos en una tabla llamada "viajes":
1- Elimine la tabla si existe.
2- Cree la tabla:
create table viajes(
codigo int unsigned auto_increment,
nombre varchar(50),
pension enum ('no','media','completa') not null,
ciudades set ('Acapulco','DF','Cancun','Puerto Vallarta','Cuernavaca') not null,
dias tinyint unsigned,
salida date,
precioporpersona decimal(8,2) unsigned,
primary key(codigo)
);
3- Ingrese los siguientes registros:
insert into viajes (nombre,pension,ciudades,dias,salida)
('Mexico mgico', 'completa', 'DF, Acapulco', 15, '2005-12-01');
('Mexico especial', 'media', 'DF, Acapulco, Cuernavaca', 28, '2005-05-10');
('Mexico unico', 'no', 'Acapulco, Puerto Vallarta', 7, '2005-11-15');
('Mexico DF', 'no', 'DF', 5, '2005-10-25');
('Mexico caribeo', 'completa', 'Cancun', 15, '2005-10-25');
4- Ingrese un registro sin valor para el campo "ciudades":
5- Seleccione todos los viajes que incluyan "Acapulco":
6- Seleccione todos los viajes que no incluyan "Acapulco" y que incluyan pensin completa:
7- Muestre los viajes que incluyan "Puerto Vallarta" o "Cuernavaca":

42.

Tipos de datos blob y text.

A)Una inmobiliaria guarda los datos de sus inmuebles en venta en una tabla llamada
"inmuebles".
1- Elimine la tabla si existe:

2- Cree la tabla:
INMUEBLES
codigo entero sin signo auto_increment,
domicilio cadena de (30),
barrio cadena de (20),
detalles text,
clave primaria -> (codigo)
3- Ingrese algunos registros:
Ejemplos:
(1,'Colon 123','Centro','patio, 3 dormitorios, garaje doble, pileta, asador, living, cocina,
comedor, escritorio, 2 baos');
(2,'Caseros 345','Centro','patio, 2 dormitorios, cocina- comedor, living');
(3,'Sucre 346','Alberdi','2 dormitorios, problemas de humedad');
(4,'Sarmiento 832','Gral. Paz','3 dormitorios, garaje, 2 patios');
(5,'Avellaneda 384','Centro',' 2 patios, 2 dormitorios, garaje');
4- Busque todos los inmuebles que tengan "patio":
5- todos los que tengan 2 dormitorios.
6- con garaje.
B)Una biblioteca guarda la informacin de sus libros didcticos en una tabla llamada
"manuales".
1- Elimine la tabla si existe:
2- Cree la tabla con un campo "blob" en el cual se pueda almacenar los temas principales que
trata el libro:
codigo entero sin signo auto_increment,
titulo cadena de (40),
autor cadena de (30),
editorial cadena de (20),
temas blob,
precio decimal(5,2) positivo,
clave primaria (codigo)

3- Ingrese algunos registros.:


Insert into manuales values
(1,'Aprenda PHP','Mario Molina','Emece',
'Instalacion de PHP.
Palabras reservadas.
Sentencias basicas.
Definicion de variables.',
45.6),
(2,'Java en 10 minutos','Mario Molina','Planeta',
'Instalacion de Java en Windows.
Instalacion de Java en Linux.
Palabras reservadas.
Sentencias basicas.
Definir variables.',
55),
(3,'PHP desde cero','Joaquin Perez','Planeta',
'Instalacion de PHP.
Instrucciones basicas.
Definicin de variables.',
50);
4- Busque todos los libros sobre "PHP" que incluyan el tema "variables":
5- Busque los libros de "Java" que incluyan el tema "Instalacion" o "Instalar":

S-ar putea să vă placă și