Sei sulla pagina 1di 13

Unidad 2 2

2.1 Insercin, eliminacin y modificacin de registros 2


Insertar un solo registro a la tabla carreras. 2
Insertar varios registros en la tabla de alumnos 3
Insertar registros o actualizar si existe un campo nico duplicado: 3
Modificar registros de la tabla carreras. 4
Eliminar registros de la tabla carreras. 4
2.2 Consultas 4
Consultar en la tabla alumnos 4
2.3 Funciones, conversin, agrupamiento, ordenamiento 5
Funciones de cadena en la tabla titulos 5
Funciones de fecha en la tabla prstamos 6
Funciones aritmticas, matemticas y funciones de conversin 6
Funciones de ordenamiento en la tabla titulos 7
2.4 Joins 8
2.5 Subconsultas 8
2.6 Operadores set 8
2.7 Vistas 8
Proyecto 9
Unidad 2

2.1 Insercin, eliminacin y modificacin de registros

Insertar un solo registro a la tabla carreras.

Sin especificar campos. Debe ser en el mismo orden de la tabla:

INSERT INTO carreras VALUES (DEFAULT, 'ISC',

'INGENIERIA EN SISTEMAS COMPUTACIONALES', NOW());

Especificando los campos. Debe ser en el mismo orden que los campos

especificados:

INSERT INTO carreras (id, clave, nombre,

fecha_modificacion) VALUES (DEFAULT, 'ISC',

'INGENIERIA EN SISTEMAS COMPUTACIONALES', NOW());

Especificando campos se pueden omitir los campos con valores por DEFAULT o

que pueden ser NULL


INSERT INTO carreras (clave, nombre,

fecha_modificacion) VALUES ( 'ISC', 'INGENIERIA

EN SISTEMAS COMPUTACIONALES', NOW());

Insertar varios registros en la tabla de alumnos

Cuando no es posible que existan registros iguales

INSERT INTO alumnos VALUES (DEFAULT, '05020134',

'HUGO ALBERTO', 'TORRES BAEZ', NULL, '1', NOW()),

(DEFAULT, '05020135', 'JUAN', 'PEREZ', NULL, '1',

NOW());

Cuando puede que existan registros con campo nico duplicado:

INSERT IGNORE INTO alumnos VALUES (DEFAULT,

'05020134', 'HUGO ALBERTO', 'TORRES BAEZ', NULL,

'1', NOW()), (DEFAULT, '05020135', 'JUAN',

'PEREZ', NULL, '1', NOW());

Insertar registros o actualizar si existe un campo nico duplicado:

Insertar un registro a la tabla de alumnos o modificarlo si la matrcula existe:

INSERT INTO alumnos VALUES (DEFAULT, '05020134',

'HUGO ALBERTO', 'TORRES BAEZ', NULL, '1', NOW())

ON DUPLICATE KEY UPDATE telefono = '4531170193',

fecha_modificacion = NOW();
Modificar registros de la tabla carreras.

Modificar un solo campo:

UPDATE carreras SET nombre = 'INGENIERA EN

SISTEMAS COMPUTACIONALES' WHERE id=1;

Modificar varios campos:

UPDATE carreras SET clave = 'ISC', nombre =

'INGENIERA EN SISTEMAS COMPUTACIONALES' WHERE

id=1;

Eliminar registros de la tabla carreras.

Eliminar todos los registros:

DELETE FROM carreras;

Eliminar un solo registro:

DELETE FROM carreras WHERE id=1;

2.2 Consultas

Consultar en la tabla alumnos

Consulta bsica

SELECT * FROM alumnos;

Especificando todos los campos

SELECT id, matricula, nombre, apellido, telefono,

id_carrera, fecha_modificacion FROM alumnos;


Mostrando solamente los campos matricula, nombre y apellido

SELECT matricula, nombre, apellido FROM alumnos;

Filtrando solamente los alumnos de Ingeniera en Sistemas Computacionales

SELECT * FROM alumnos WHERE id_carrera = 1;

Filtrando los alumnos de las carreras de Ingeniera en Sistemas Computacionales

e Ingeniera Bioqumica:

SELECT * FROM alumnos WHERE id_carrera IN (1,2);

Filtrando solamente los alumnos de Ingeniera en Sistemas Computacionales y

que uno de sus nombres es Hugo:

SELECT * FROM alumnos WHERE id_carrera = 1 AND

nombre like "%Hugo%";

Filtrando los alumnos que uno de sus nombres o uno de sus apellidos es Torres:

SELECT * FROM alumnos WHERE nombre like

"%Torres%" OR apellido like "%Torres%";

Para ver el resto de los operadores lgicos, visitar el Manual de Referencia de MySQL.

2.3 Funciones, conversin, agrupamiento, ordenamiento

Funciones de cadena en la tabla titulos

Mostrar todos los autores en maysculas

SELECT UPPER(autor) FROM titulos;

Mostrar los primeras 15 caracteres del campo editorial

SELECT SUBSTRING(editorial,1,15) FROM titulos;


Para ver todas las funciones de cadena, visitar el Manual de Referencia de MySQL.

Funciones de fecha en la tabla prestamos

Mostrar todos los prstamos de 2017

SELECT * FROM prestamos WHERE

YEAR(fecha_prestamo) = "2017";

Mostrar todos los prstamos de octubre de 2017

SELECT * FROM prestamos WHERE

YEAR(fecha_prestamo) = "2017" AND

MONTH(fecha_prestamo) = "10";

Escribir automticamente la fecha y hora actual al insertar un registro

INSERT INTO prestamos VALUES (DEFAULT, '1', '1',

NOW(), NULL, NULL);

Escribir automticamente una fecha programada de entrega de cinco das al

agregar un registro.

INSERT INTO prestamos VALUES (DEFAULT, '1', '1',

NOW(), ADDDATE(NOW(), INTERVAL 5 DAY), NULL)

Para ver todas las funciones de fecha, visitar el Manual de Referencia de MySQL.

Funciones aritmticas, matemticas y funciones de conversin

Sumar dos nmeros

SELECT 5 + 8;
Calcular la potencia de cinco al cubo y renombrar el resultado como potencia

SELECT POW(5,3) AS potencia;

Convertir una cadena a numero

SELECT 5 * '8';

Convertir un nmero a cadena

SELECT CAST(PI() AS CHAR);

Para ver todas las funciones aritmticas y matemticas, visitar el Manual de Referencia

de MySQL.

Funciones de agrupamiento en la tabla alumnos

Mostrar la cantidad de alumnos por carrera

SELECT id_carrera, COUNT(id) FROM alumnos GROUP

BY id_carrera;

Funciones de ordenamiento en la tabla titulos

Mostrar todas los ttulos ordenadas alfabticamente

SELECT titulo FROM titulos ORDER BY titulo ASC;

Mostrar los primeros diez ttulos ordenados de forma descendente

SELECT titulo FROM titulos ORDER BY titulo DESC

LIMIT 0,10;
2.4 Joins

Unin de la tabla alumnos y carreras

Join bsico entre alumnos y carreras. Solo mostrar a los alumnos que s tengan

una carrera.

SELECT * FROM alumnos JOIN carreras ON

alumnos.id_carrera = carreras.id;

SELECT * FROM alumnos INNER JOIN carreras ON

alumnos.id_carrera = carreras.id;

RIGHT JOIN entre alumnos y carreras. Mostrar todos los alumnos y si no tienen

una carrera registrada, mostrar los campos de la tabla carreras en NULL.

SELECT * FROM alumnos RIGHT JOIN carreras ON

alumnos.id_carrera = carreras.id;

LEFT JOIN entre alumnos y carreras. Mostrar todas las carreras y si hay alguna

que no tiene alumnos, mostrar un registro con los campos de la tabla alumno en

NULL.

SELECT * FROM alumnos LEFT JOIN carreras ON

alumnos.id_carrera = carreras.id;

Mostrar una consulta que contenga los campos codigo y observaciones de la tabla

libros y los campos titulo, autor, editorial y lugar_fecha de la tabla titulos.

SELECT codigo, titulo, autor, editorial,

lugar_fecha, observaciones FROM libros JOIN

titulos on libros.id_titulo = titulos.id;


2.5 Subconsultas

2.6 Operadores set

2.7 Vistas
Proyecto

Analiza el siguiente diagrama. Considere lo siguiente:

Las relaciones son RESTRICTED para eliminar y CASCADE para modificar.

El campo codigo_barras de la tabla productos almacena contiene clave UNIQUE.

El campo cantidad de la tabla productos almacena un 0 por default.

El campo total de la tabla ventas almacena un 0 por default.

Todos los campos id son PRIMARY KEY AUTO_INCREMENT.

Todos los campos fecha_modificacion almacenan la fecha del sistema al momento

de insertar o modificar un registro.

La conjuncin de los campos venta y producto conforman una clave UNIQUE.


Escribe la sintaxis para:

1. Agregar un registro a la tabla de categorias. El campo nombre siempre debe estar

en maysculas y sin espacios al inicio. El campo fecha_modificacion debe

almacenar la fecha del sistema al momento de insertarlo.

2. Modificar el registro con id=1 de la tabla categorias. El campo nombre siempre

debe estar en maysculas y sin espacios al inicio. El campo fecha_modificacion

debe almacenar la fecha del sistema al momento de modificarlo.

3. Eliminar el registro con id=1 de la tabla categorias.

4. Consultar todos los registros de la tabla categorias, ordenados alfabticamente.

5. Agregar un registro a la tabla de productos. Los campos codigo_barras y

descripcion siempre debe estar en maysculas y sin espacios al inicio. Cantidad

debe almacenar el valor por default. El campo fecha_modificacion debe

almacenar la fecha del sistema al momento de insertarlo. Si ya exista un producto

con el mismo cdigo de barras, proceder a actualizar los datos de descripcion,

categoria, precio_venta y fecha_modificacion.

6. Modificar los campos descripcion, categoria, precio_venta y fecha_modificacion

del registro con id=1 de la tabla productos. El campos descripcion siempre debe

estar en maysculas y sin espacios al inicio. El campo fecha_modificacion debe

almacenar la fecha del sistema al momento de modificarlo.

7. Eliminar el registro con id=1 de la tabla productos.

8. Consultar todos los registros de la tabla productos unida con la tabla categorias,

de manera que se muestren los campos codigo_barras, descripcion, cantidad y


precio_venta de la tabla productos, as como el campo nombre de la tabla

categorias. Ordenarlos alfabticamente y mostrar solo los primeros 20 registros.

9. Agregar un registro a la tabla de inventario. El campo fecha_modificacion debe

almacenar la fecha del sistema al momento de insertarlo.

10. Modificar los campos cantidad, precio_compra y fecha_compra del registro con

id=1 de la tabla inventario. El campo fecha_modificacion debe almacenar la fecha

del sistema al momento de modificarlo.

11. Eliminar el registro con id=1 de la tabla inventario.

12. Consultar todos los registros de la tabla inventario unida con la tabla productos,

de manera que se muestren los campos cantidad, precio_compra y fecha_compra

de la tabla inventario, as como los campos codigo_barras y descripcion de la

tabla categorias. Ordenarlos por fecha_compra en orden descendente y mostrar

solo los primeros 20 registros.

13. Agregar un registro a la tabla de ventas. El campo total debe almacenar el valor

por defecto. Los campos fecha_venta y fecha_modificacion debe almacenar la

fecha del sistema al momento de insertarlo.

14. Modificar el campo total del registro con id=1 de la tabla ventas. El campo

fecha_modificacion debe almacenar la fecha del sistema al momento de

modificarlo.

15. Eliminar el registro con id=1 de la tabla ventas.

16. Consultar todos los registros de la tabla ventas de una fecha dada. Ordenarlos por

fecha_venta en orden descendente.


17. Agregar cinco registros a la tabla ventas_detalle. Todos los registros deben tener

el mismo id de venta. El campo precio_venta debe contener el mismo valor que el

precio_venta de la tabla de productos. El campo fecha_modificacion debe

almacenar la fecha del sistema al momento de insertarlo. Si ya exista un registro

con el mismo id de producto y mismo id de venta, actualizar el campo cantidad,

sumando al valor que ya tiene el registro, el valor que se insertar.

18. Modificar los campos cantidad y fecha_modificacion del registro con id=1 de la

tabla ventas_detalle. El campo fecha_modificacion debe almacenar la fecha del

sistema al momento de modificarlo.

19. Eliminar el registro con id=1 de la tabla ventas_detalle.

20. Consultar todos los registros de la venta con id=1 de la tabla venta_detalle unida

con la tabla productos, de manera que se muestren los campos cantidad y

precio_venta de la tabla ventas_detalle, as como los campos codigo_barras y

descripcion de la tabla productos. Agregar un campo llamado total, que contendr

la multiplicacin de cantidad y precio_venta.

21. Consultar el total de ventas de 2017.

22. Consultar el promedio de ventas por da de la semana (lunes, martes...)

23. Consultar el da que ms ingresos se obtuvieron.

Potrebbero piacerti anche