--base de datos --5 tablas registros --cada registro tiene valor --producto ventra create table productovendido (idproductovendido serial,idventa serial,idproducto serial, cantidad float, precioventa float); create table venta(idventa serial,fecha date, idcliente serial, montotoal_numeric float,constraint PKventa primary key(idventa)); create table producto(idproducto serial,nombre varchar(30),preciocompra float,existencia float,idproveedor serial, preciominimo float,constraint PKproducto primary key(idproducto)); create table proveedor(idproveedor serial,nombre varchar(50),telefono varchar(15),email varchar(200),rfc varchar(13),constraint PKproveedor primary key(idproveedor)); create table cliente(idcliente serial,nombre varchar(50),primerapellido varchar(50),segundoapellido varchar(50),rfc varchar(50),telefono varchar(50), correoelectronico varchar(200),direccion_pais varchar(100),direccion_estado varchar(100),direccion_delegacion varchar(100),direccion_colonia varchar(100),direccion_calle varchar(100),direccion_numext varchar(100),direccion_numint varchar(100),direccion_cp varchar(6), constraint PKcliente primary key(idcliente)); alter TABLE productovendido add constraint FK_productovendido_venta foreign key(idventa) references venta(idventa) on delete restrict on update restrict; alter TABLE productovendido add constraint FK_productovendido_producto foreign key(idproducto) references producto(idproducto) on delete restrict on update restrict; alter table venta add constraint FK_venta_cliente foreign key(idcliente) references cliente(idcliente)on delete restrict on update restrict; alter table producto add constraint FK_producto_proveedor foreign key(idproveedor) references proveedor(idproveedor) on delete restrict on update restrict; alter table cliente add column credito float; alter table cliente add column deuda float; alter table cliente add column fecha_alta date; alter table cliente add column fecha_nacimiento date; alter table producto add column preciosugerido float; alter TABLE producto alter column idproveedor DROP NOT NULL; -- Registros en la tabla "cliente" INSERT INTO cliente (nombre, primerapellido, segundoapellido, rfc, telefono, correoelectronico, direccion_pais, direccion_estado, direccion_delegacion, direccion_colonia, direccion_calle, direccion_numext, direccion_numint, direccion_cp, credito, deuda, fecha_alta, fecha_nacimiento) VALUES ('Eduardo', 'Garcia', 'López', 'ABC123', '1234567890', '[email protected]', 'México', 'Ciudad de Mexico', 'Cuauhtémoc', 'Centro', 'Calle 1', '123', '1A', '12345', 6000, 15000, '2010-01-01', '1990-05-10'), ('María', 'Martínez', 'Sánchez', 'DEF456', '9876543210', '[email protected]', 'México', 'Estado de México', 'Naucalpan', 'Colonia Bella Vista', 'Calle 2', '456', '2B', '54321', 23340, 2000, '2023-02-02', '1990-08-15'), ('Roberto', 'Alvarado', 'Hernández', 'GHI789', '5555555555', '[email protected]', 'México', 'CDMX', 'Iztacalco', 'Colonia Centro', 'Calle 3', '789', '3C', '67890', 1000, 2340, '2021-03-03', '1990-12-20'), ('Ana', 'Pérez', 'Gómez', 'JKL012', '9999999999', '[email protected]', 'México', 'Estado de México', 'Toluca', 'Colonia Del Valle', 'Calle 4', '012', '4D', '98765', 3240, 1500, '2021-04-04', '1992-07-25'), ('Luis', 'Rodríguez', 'Vargas', 'MNO345', '1111111111', '[email protected]', 'México', 'CDMX', 'Benito Juárez', 'Colonia Roma', 'Calle 5', '345', '5E', '54321', 2000, 4350, '2021-05-05', '1998-10-30'), ('Laura', 'Hernández', 'Santos', 'PQR678', '2222222222', '[email protected]', 'México', 'CDMX', 'Coyoacán', 'Colonia Del Carmen', 'Calle 6', '678', '6F', '23456', 7860, 34550, '2021-06-06', '1993-03-12'), ('Carlos', 'González', 'Ramírez', 'STU901', '3333333333', '[email protected]', 'México', 'Estado de México', 'Ecatepec', 'Colonia Industrial', 'Calle 7', '901', '7G', '65432', 13130, 500, '2021-07-07', '1997-01-05'), ('Sofía', 'Díaz', 'Luna', 'VWX234', '4444444444', '[email protected]', 'México', 'Estado de México', 'Cuautitlán', 'Colonia San Miguel', 'Calle 8', '234', '8H', '12345', 25420, 1210, '2021-08-08', '1991-06-18'), ('Fernando', 'Martínez', 'Herrera', 'YZA567', '5555555555', '[email protected]', 'México', 'CDMX', 'Azcapotzalco', 'Colonia San Marcos', 'Calle 9', '567', '9I', '98765', 3000, 1450, '2021-09-09', '1996-09-23'), ('Gabriela', 'López', 'Jiménez', 'BCD890', '6666666666', '[email protected]', 'México', 'CDMX', 'Iztapalapa', 'Colonia Santa Cruz', 'Calle 10', '890', '10J', '23456',1840, 1000, '2021-10-10', '1994-04-06'), ('Andrea', 'González', 'Vargas', 'EFG123', '7777777777', '[email protected]', 'México', 'CDMX', 'Miguel Hidalgo', 'Colonia Polanco', 'Calle 11', '123', '11K', '34567', 1930, 3640, '2021-11-11', '1999-02-14'), ('Javier', 'Hernández', 'Ortega', 'HIJ456', '8888888888', '[email protected]', 'México', 'Estado de México', 'Nezahualcóyotl', 'Colonia Juárez', 'Calle 12', '456', '12L', '65432', 5000, 35000, '2021-12-12', '1997-07-28'), ('Patricia', 'Blanco', 'Blanco', 'KLM789', '9999999999', '[email protected]', 'México', 'CDMX', 'Álvaro Obregón', 'Colonia Las Águilas', 'Calle 13', '789', '13M', '12345', 7360, 2000, '2022-01-01', '1993-10-10'), ('Roberto', 'Mendoza', 'Gómez', 'NOP012', '1111111111', '[email protected]', 'México', 'Estado de México', 'Cuautitlán Izcalli', 'Colonia Centro', 'Calle 14', '012', '14N', '54321', 5370,5650, '2022-01-01', '1996-05-02'), ('Isabel', 'Pérez', 'Vargas', 'QRS345', '2222222222', '[email protected]', 'México', 'CDMX', 'Tlalpan', 'Colonia San Pedro', 'Calle 15', '345', '15O', '67890', 23240, 1500, '2022-03-03', '1991-08-22'), ('Ricardo', 'Luna', 'Díaz', 'TUV678', '3333333333', '[email protected]', 'México', 'CDMX', 'Xochimilco', 'Colonia Santa Martha', 'Calle 16', '678', '16P', '23456', 2000, 1350, '2022-04-04', '1995-01-17'), ('Carmen', 'Mendoza', 'Torres', 'WXY901', '4444444444', '[email protected]', 'México', 'Estado de México', 'Tlalnepantla', 'Colonia La Loma', 'Calle 17', '901', '17Q', '76543', 12450, 6750, '2022-05-05', '1998-12-03'), ('Raul', 'Perez', 'Gonzalez', 'ZAB234', '5555555555', '[email protected]', 'México', 'Estado de México', 'Ecatepec', 'Colonia Santa Clara', 'Calle 18', '234', '18R', '98765', 3000, 4640, '2022-06-06', '1994-02-28'), ('Laura', 'Hernandez', 'Cortes', 'BCD567', '6666666666', '[email protected]', 'México', 'CDMX', 'Cuajimalpa', 'Colonia Lomas de Vista Hermosa', 'Calle 19', '567', '19S', '23456',1420, 2000, '2022-07-07', '1990-12-11'), ('Mario', 'Gomez', 'Sanchez', 'DEF890', '7777777777', '[email protected]', 'México', 'Estado de México', 'Naucalpan', 'Colonia Satelite', 'Calle 20', '890', '20T', '65432', 8540, 760, '2022-08-08', '1999-04-25'); ; -- Registrar los nombres de los proveedores INSERT INTO proveedor (nombre, telefono, email, rfc) VALUES ('LG', 'XXXXXXXXXX', '[email protected]', 'XXXXXXXXXXXXX'), ('Yamaha', 'XXXXXXXXXX', '[email protected]', 'XXXXXXXXXXXXX'), ('Samsung', 'XXXXXXXXXX', '[email protected]', 'XXXXXXXXXXXXX'), ('Sony', 'XXXXXXXXXX', '[email protected]', 'XXXXXXXXXXXXX'), ('Dell', 'XXXXXXXXXX', '[email protected]', 'XXXXXXXXXXXXX'), ('HP', 'XXXXXXXXXX', '[email protected]', 'XXXXXXXXXXXXX'); CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- Inserta 20 registros en la tabla proveedor INSERT INTO proveedor (nombre, telefono, email, rfc) SELECT 'Proveedor ' || i, 'XXXXXXXXXX', 'proveedor' || i || '@example.com', 'RFC' || i FROM generate_series(7, 20) as i; -- Registrar los productos INSERT INTO producto (idproducto, idproveedor, nombre, existencia, preciominimo, preciocompra) VALUES (1, 1, 'Tele', 30, 4000, 3000), (2, 1, 'DVd', 20, 1000, 900), (3, 1, 'Celular', 3, 2000, 1200), (4, 2, 'Pantalla', 5, 14000, 10000), (5, 2, 'BlueRay', 10, 5300, 5000), (6, 3, 'Mp3 Player', 13, 900, 500), (7, NULL, 'Compu', 15, 17000, 11500), (8, NULL, 'Monitor', 10, 17000, 11500), (9, NULL, 'Iphone', 30, 4000, 3000), (10, NULL, 'Tennis', 20, 1000, 900), (11, 6 ,'xbox', 3, 2000, 1200), (12, 7, 'Pan', 5, 14000, 10000), (13, 8, 'Computadora', 10, 5300, 5000), (14, 9, 'Mp4', 13, 900, 500), (15, 10, 'Cpu', 15, 17000, 11500), (16, 1, 'Mouse', 10, 17000, 11500), (17, 1, 'Teclado', 30, 4000, 3000), (18, 1, 'juegos', 20, 1000, 900), (19, 1, 'Consola', 3, 2000, 1200), (20, 2, 'Toalla', 5, 14000, 10000); --Registrar ventas -- Venta 1 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2018-09-15', 2, 17000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 3, 2, 2000), (currval('venta_idventa_seq'), 6, 1, 900), (currval('venta_idventa_seq'), 5, 3, 5500); -- Venta 2 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 5, 16500); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 5, 2, 5500), (currval('venta_idventa_seq'), 1, 1, 5000); -- Venta 3 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 2, 30000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 4, 2, 15000); -- Venta 4 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2018-09-15', 2, 17000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 3, 2, 2000), (currval('venta_idventa_seq'), 6, 1, 900), (currval('venta_idventa_seq'), 5, 3, 5500); -- Venta 5 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 5, 16500); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 5, 2, 5500), (currval('venta_idventa_seq'), 1, 1, 5000); -- Venta 6 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 2, 30000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 4, 2, 15000); -- Venta 7 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2018-09-15', 2, 17000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 3, 2, 2000), (currval('venta_idventa_seq'), 6, 1, 900), (currval('venta_idventa_seq'), 5, 3, 5500); -- Venta 8 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 5, 16500); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 5, 2, 5500), (currval('venta_idventa_seq'), 1, 1, 5000); -- Venta 9 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 2, 30000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 4, 2, 15000); -- Venta 10 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2018-09-15', 2, 17000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 3, 2, 2000), (currval('venta_idventa_seq'), 6, 1, 900), (currval('venta_idventa_seq'), 5, 3, 5500); -- Venta 11 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 5, 16500); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 5, 2, 5500), (currval('venta_idventa_seq'), 1, 1, 5000); -- Venta 12 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 2, 30000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 4, 2, 15000); -- Venta 13 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2018-09-15', 2, 17000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 3, 2, 2000), (currval('venta_idventa_seq'), 6, 1, 900), (currval('venta_idventa_seq'), 5, 3, 5500); -- Venta 2 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 5, 16500); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 5, 2, 5500), (currval('venta_idventa_seq'), 1, 1, 5000); -- Venta 3 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 2, 30000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 4, 2, 15000); -- Venta 1 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2018-09-15', 2, 17000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 3, 2, 2000), (currval('venta_idventa_seq'), 6, 1, 900), (currval('venta_idventa_seq'), 5, 3, 5500); -- Venta 2 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 5, 16500); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 5, 2, 5500), (currval('venta_idventa_seq'), 1, 1, 5000); -- Venta 3 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 2, 30000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 4, 2, 15000); -- Venta 1 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2018-09-15', 2, 17000); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 3, 2, 2000), (currval('venta_idventa_seq'), 6, 1, 900), (currval('venta_idventa_seq'), 5, 3, 5500); -- Venta 2 INSERT INTO venta (fecha, idcliente, montotoal_numeric) VALUES ('2020-09-17', 5, 16500); INSERT INTO productovendido (idventa, idproducto, cantidad, precioventa) VALUES (currval('venta_idventa_seq'), 5, 2, 5500), (currval('venta_idventa_seq'), 1, 1, 5000); UPDATE cliente SET direccion_estado = 'CDMX' WHERE direccion_estado = 'Ciudad de Mexico'; UPDATE producto SET nombre = 'Televisor' WHERE nombre = 'Tele'; DELETE FROM cliente WHERE direccion_delegacion = 'Ecatepec'; ALTER TABLE cliente RENAME COLUMN direccion_estado to estado; ALTER TABLE cliente RENAME COLUMN direccion_delegacion to DelegacionMunicipio; --BORRAR PRODUCTOS QUE COMPRO EL CLIENTE 2 --PRACTICA SELECT SELECCION --SELECT *from cliente WHERE nombre= 'Eduardo'; --SELECT *from cliente where nombre != 'Eduardo'; --SELECT *from cliente where credito > 5000; --SELECT *from cliente where DelegacionMunicipio= 'Iztacalco'; --SELECT *from producto where preciosugerido >5000; --SELECT *from producto where existencia <5; --SELECT *from cliente where deuda/6 >1000; --SELECT *from cliente where credito - deuda <= 3000; --SELECT *from cliente where (deuda*0.20) > 20000; --SELECT 'El cliente ' || nombre || ' debe deuda ' || deuda|| ' por arriba del credito de ' ||credito|| ' por lo que debe pagar inmediatamente un incremento del 50% + su deuda' , deuda, deuda + (deuda * 0.5) AS deuda_con_incremento FROM cliente WHERE deuda > 10000; --SELECT 'PRACTICA SELECT NULL'; --SELECT *from cliente WHERE credito is NULL; --SELECT *from cliente WHERE segundoapellido is NULL; --SELECT *from cliente WHERE rfc is NOT NULL; --SELECT *from cliente WHERE correoelectronico is NOT NULL; --SELECT *from producto WHERE preciosugerido is NOT NULL; --SELECT *from cliente WHERE delegacionmunicipio is NULL; --SELECT 'practica select operadores '; --practica select operadores --select *from cliente where nombre != 'Edgar' or nombre != 'Juan'; --select *from cliente WHERE credito between 5000 and 10000; --select *from cliente where nombre = 'Eduardo' and primerapellido='Martínez'; --select *from cliente where primerapellido='Alvarado' and nombre !='Juan'; --select *from cliente where nombre='blanca' or primerapellido='Rodríguez'; --select *from cliente where primerapellido='Paz' or segundoapellido ='Paz'; --select * from cliente where primerapellido= 'Ambriz' or primerapellido='Perez' or primerapellido= 'Garcia'; --SELECT * FROM cliente WHERE nombre = 'Abril' AND (primerapellido = 'Govea' OR primerapellido = 'Pérez'); --SELECT * FROM cliente WHERE delegacionmunicipio IN ('Iztacalco', 'GAM', 'Benito Juárez'); --SELECT * FROM cliente WHERE (delegacionmunicipio = 'Iztacalco' OR delegacionmunicipio = 'Coyoacan') AND deuda BETWEEN 10000 AND 20000; --SELECT 'PRACTICA SELECT OPERADORES ESPECIALES'; --SELECT * FROM cliente WHERE credito BETWEEN 5000 AND 10000; --SELECT * FROM cliente WHERE delegacionmunicipio IN ('Iztacalco', 'Coyoacan', 'Benito Juarez'); --SELECT * FROM cliente WHERE deuda BETWEEN 10000 AND 15000 AND deuda/12 BETWEEN 500 AND 1000; --SELECT * FROM cliente WHERE delegacionmunicipio IN ('Iztacalco', 'Coyoacan', 'Benito Juarez') AND deuda BETWEEN 10000 AND 15000; --SELECT * FROM cliente WHERE delegacionmunicipio IN ('Iztacalco', 'Coyoacan', 'Benito Juarez') AND primerapellido = 'Blanco'; --SELECT * FROM cliente WHERE delegacionmunicipio IN ('Iztacalco', 'Coyoacan', 'Benito Juarez') AND (primerapellido = 'Blanco' OR primerapellido = 'Perez' OR primerapellido = 'Garcia')OR (segundoapellido = 'Blanco' OR segundoapellido = 'Perez' OR segundoapellido = 'Garcia'); --SELECT 'Practica Funciones para Condicionar Registros'; --SELECT * FROM cliente WHERE LENGTH(nombre) > 5; --SELECT * FROM cliente WHERE LENGTH(nombre) BETWEEN 5 AND 7; SELECT 'Practica Funciones de Fecha'; SELECT CURRENT_DATE; SELECT CURRENT_DATE + INTERVAL '1 week'; SELECT EXTRACT(YEAR FROM AGE(CURRENT_DATE, fecha_alta)) AS antiguedad FROM cliente; SELECT EXTRACT(YEAR FROM fecha_alta) AS anio, EXTRACT(MONTH FROM fecha_alta) AS mes, DATE_PART('day', fecha_alta) AS dia FROM cliente; SELECT CURRENT_DATE + INTERVAL '1 month' AS primer_pago,CURRENT_DATE + INTERVAL '2 months' AS segundo_pago, CURRENT_DATE + INTERVAL '3 months' AS tercer_pago; SELECT'el día de hoy [' || TO_CHAR(CURRENT_DATE, 'DD/MM/YYYY') || '] es [' || TO_CHAR(CURRENT_DATE, 'Day') || ']' AS resultado; SELECT CONCAT('[', nombre, '] se dio de alta el [', TO_CHAR(fecha_alta, 'Day DD/MM/YYYY'), ']') AS resultado FROM cliente WHERE nombre = 'Roberto ' and primerapellido = 'Alvarado'; SELECT * FROM cliente WHERE EXTRACT(YEAR FROM fecha_alta) = 2010; SELECT * FROM cliente WHERE EXTRACT(MONTH FROM fecha_alta) = 12; SELECT * FROM cliente WHERE EXTRACT(MONTH FROM fecha_alta) = 2 AND EXTRACT(YEAR FROM fecha_alta) = 2009; SELECT * FROM cliente WHERE AGE(CURRENT_DATE, fecha_alta) < INTERVAL '6 months'; SELECT * FROM cliente WHERE DATE_PART('year', AGE(CURRENT_DATE, fecha_nacimiento)) < 18; SELECT * FROM cliente WHERE DATE_PART('day', fecha_nacimiento) = DATE_PART('day', CURRENT_DATE) AND DATE_PART('month', fecha_nacimiento) = DATE_PART('month', CURRENT_DATE); SELECT * FROM cliente WHERE EXTRACT(MONTH FROM fecha_nacimiento) IN (1, 2, 3, 4); SELECT 'Practica Funciones de Cadena'; -- Muestra los primeros tres caracteres del nombre. --SELECT SUBSTRING(nombre, 1, 3) AS primeros_tres_caracteres FROM cliente; -- Muestra los últimos 3 caracteres del nombre. --SELECT RIGHT(nombre, 3) AS ultimos_tres_caracteres FROM cliente; -- Muestra del 2do al 5to carácter del nombre. --SELECT SUBSTRING(nombre, 2, 4) AS caracteres_del_2_al_5 FROM cliente; -- Reemplaza las d por s en nombre. --SELECT REPLACE(nombre, 'd', 's') AS nombre_con_reemplazo FROM cliente; -- Obtiene la longitud del apellido paterno. --SELECT LENGTH(primerapellido) AS longitud_apellido_paterno FROM cliente; -- Muestra en mayúsculas el nombre. --SELECT UPPER(nombre) AS nombre_en_mayusculas FROM cliente; -- Muestra en minúsculas el apellido paterno. --SELECT LOWER(primerapellido) AS apellido_paterno_en_minusculas FROM cliente; -- Muestra a los clientes con su delegación, reemplazando Benito Juárez por B. Juárez. -- SELECT CASE WHEN delegacionmunicipio = 'Benito Juárez' THEN 'B. Juárez' ELSE delegacionmunicipio END AS delegacion_reemplazada FROM cliente; -- Muestra el nombre completo empezando por el apellido paterno con mayúsculas en una sola columna. --SELECT CONCAT(UPPER(primerapellido), ', ', nombre) AS nombre_completo FROM cliente; -- Muestra el nombre de los clientes con las E reemplazadas con el número 3. --SELECT REPLACE(nombre, 'E', '3') AS nombre_con_reemplazo FROM cliente; -- Muestra el nombre completo de los clientes con las o reemplazadas con el número 0 en una sola columna. --SELECT REPLACE(CONCAT(primerapellido, ' ', nombre), 'o', '0') AS nombre_completo_con_reemplazo FROM cliente; SELECT 'Practica Ordenamiento y Limite de resultados'; --SELECT *FROM cliente ORDER BY fecha_alta LIMIT 1; --SELECT *FROM cliente ORDER BY credito DESC LIMIT 1; --SELECT *FROM cliente ORDER BY nombre; --SELECT *FROM cliente WHERE delegacionmunicipio = 'Iztacalco' LIMIT 3; --SELECT *FROM cliente ORDER BY deuda DESC; --SELECT *FROM cliente ORDER BY deuda LIMIT 5; --SELECT delegacionmunicipio, deuda, nombre FROM cliente ORDER BY delegacionmunicipio ASC, deuda DESC; SELECT 'Practica Agrupamiento'; --SELECT SUM(montotoal_numeric) AS montotoal_numeric FROM venta; --SELECT COUNT(*) AS total_clientes FROM cliente WHERE delegacionmunicipio IN ('Iztacalco', 'GAM'); --SELECT delegacionmunicipio, COUNT(*) AS total_clientes FROM cliente WHERE credito > 5000 GROUP BY delegacionmunicipio; --SELECT p.idproveedor, COUNT(*) AS suma_producto FROM producto p GROUP BY p.idproveedor; --SELECT COUNT(DISTINCT idproveedor) AS total_proveedores FROM producto; --SELECT delegacionmunicipio, COUNT(*) AS total_clientes FROM cliente GROUP BY delegacionmunicipio; --SELECT COUNT(*) AS total_clientes FROM cliente; --SELECT MAX(precioventa) AS precio_maximo, MIN(precioventa) AS precio_minimo, AVG(precioventa) AS precio_promedio FROM productovendido; --SELECT EXTRACT(YEAR FROM fecha_nacimiento) AS "Año Nacimiento", COUNT(*) AS "Total Clientes" FROM cliente GROUP BY EXTRACT(YEAR FROM fecha_nacimiento) HAVING COUNT(*) >= 3; --SELECT delegacionmunicipio, COUNT(*) AS "#Clientes", AVG(EXTRACT(YEAR FROM age(current_date, fecha_nacimiento))) AS "Promedio Edad" FROM cliente GROUP BY delegacionmunicipio; SELECT 'Practica Join'; --SELECT P.nombre AS proveedor, PR.nombre AS producto FROM proveedor P JOIN producto PP ON P.idproveedor = PP.idproveedor JOIN producto PR ON PP.idproducto = PR.idproducto; --SELECT P.nombre AS proveedor, PR.nombre AS producto FROM proveedor P LEFT JOIN producto PP ON P.idproveedor = PP.idproveedor LEFT JOIN producto PR ON PP.idproducto = PR.idproducto; --SELECT nombre FROM producto; --SELECT fecha FROM venta; --SELECT C.nombre AS cliente, P.nombre AS producto FROM cliente C JOIN venta V ON C.idcliente = V.idcliente JOIN producto PV ON V.idventa = V.idventa JOIN producto P ON PV.idproducto = P.idproducto; --SELECT C.nombre AS cliente FROM cliente C JOIN venta V ON C.idcliente = V.idcliente JOIN producto PV ON V.idventa = v.idventa JOIN producto P ON PV.idproducto = P.idproducto WHERE P.nombre = 'DVD'; --SELECT c.delegacionmunicipio AS delegacion, COUNT(*) AS total_ventas FROM venta v JOIN cliente c ON v.idcliente = c.idcliente GROUP BY c.delegacionmunicipio; --SELECT P.nombre AS proveedor, COUNT(*) AS total_productos_vendidos FROM proveedor P JOIN producto PP ON P.idproveedor = PP.idproveedor JOIN producto PV ON PP.idproducto = PV.idproducto GROUP BY P.nombre; --SELECT c.delegacionmunicipio AS delegacion, COUNT(*) AS total_ventas FROM venta v JOIN cliente c ON v.idcliente = c.idcliente GROUP BY c.delegacionmunicipio HAVING COUNT(*) > 2; --SELECT P.nombre AS proveedor, COUNT(*) AS total_productos FROM proveedor P JOIN producto PP ON P.idproveedor = PP.idproveedor GROUP BY P.nombre HAVING COUNT(*) > 3; --SELECT 'Practica Subconsultas'; --SELECT * FROM producto WHERE precio_minimo < (SELECT precio_minimo FROM producto WHERE producto = 'Tele'); --SELECT * FROM productos WHERE precio = (SELECT MAX(precio) FROM productos); --SELECT * FROM clientes WHERE credito > (SELECT AVG(credito) FROM clientes); --SELECT * FROM clientes WHERE id_cliente NOT IN (SELECT DISTINCT id_cliente FROM ventas); --SELECT DISTINCT pr.nombre_producto FROM productos_vendidos pv JOIN productos pr ON pv.id_producto = pr.id_producto WHERE pv.id_cliente IN (SELECT id_cliente FROM productos_vendidos WHERE nombre_producto = 'DVD'); --SELECT DISTINCT pr.nombre_producto FROM productos_vendidos pv JOIN productos pr ON pv.id_producto = pr.id_producto JOIN clientes c ON pv.id_cliente = c.id_cliente WHERE pv.id_cliente IN (SELECT id_cliente FROM productos_vendidos WHERE nombre_producto = 'DVD') AND c.credito > (SELECT AVG(credito) FROM clientes); --SELECT * FROM clientes WHERE delegacion = (SELECT delegacion FROM clientes GROUP BY delegacion HAVING COUNT(*) = (SELECT MIN(clientes_count) FROM (SELECT COUNT(*) AS clientes_count FROM clientes GROUP BY delegacion) AS counts)); --SELECT delegacion FROM ventas GROUP BY delegacion HAVING COUNT(*) = (SELECT MAX(ventas_count) FROM (SELECT COUNT(*) AS ventas_count FROM ventas GROUP BY delegacion) AS counts); SELECT 'UNION'; SELECT *, CASE WHEN deuda = 0 THEN 'No Deudor' WHEN deuda BETWEEN 1 AND 5000 THEN 'Deudor Bajo' WHEN deuda BETWEEN 5001 AND 15000 THEN 'Deudor Medio' WHEN deuda >= 15001 THEN 'Deudor Alto' ELSE 'Sin Clasificación' END AS clasificacion_deuda FROM cliente; SELECT *, CASE WHEN fecha_alta >= current_date - interval '1 year' THEN 'Cliente Nuevo Sin Premio' WHEN fecha_alta BETWEEN current_date - interval '4 year' AND current_date - interval '2 year' THEN 'Cliente Medio Premio Especial 1' WHEN fecha_alta <= current_date - interval '5 year' THEN 'Cliente Bueno Premio Especial 2' ELSE 'Sin Clasificación' END AS clasificacion_antiguedad FROM cliente; SELECT 'CASE'; SELECT *, CASE WHEN deuda = 0 THEN 'No deudor' WHEN deuda <= 5000 THEN 'Deudor Pequeño' WHEN deuda <= 15000 THEN 'Deudor Medio' WHEN deuda > 15000 THEN 'Deudor Grande' ELSE 'Sin Clasificación' END AS clasificacion_deuda FROM cliente; SELECT *, CASE WHEN deuda = 0 THEN 'NO DEUDOR' WHEN deuda <= 5000 AND delegacionmunicipio = 'IZTAPALAPA' THEN 'DEUDA BAJA IZTAPALAPA' WHEN deuda <= 5000 AND delegacionmunicipio = 'IZTACALCO' THEN 'DEUDA BAJA IZTACALCO' WHEN deuda <= 5000 AND delegacionmunicipio <> 'IZTAPALAPA' AND delegacionmunicipio <> 'IZTACALCO' THEN 'DEUDOR BAJO' WHEN deuda > 5000 AND deuda <= 15000 AND delegacionmunicipio = 'IZTAPALAPA' THEN 'DEUDA MEDIA IZTAPALAPA' WHEN deuda > 5000 AND deuda <= 15000 AND delegacionmunicipio = 'IZTACALCO' THEN 'DEUDA MEDIA IZTACALCO' WHEN deuda > 5000 AND deuda <= 15000 THEN 'DEUDA MEDIA' WHEN deuda > 15000 THEN 'DEUDOR ALTO' ELSE 'Sin Clasificación' END AS clasificacion, CASE WHEN deuda = 0 THEN 0 WHEN deuda <= 5000 AND delegacionmunicipio = 'IZTAPALAPA' THEN 0.03 WHEN deuda <= 5000 AND delegacionmunicipio = 'IZTACALCO' THEN 0.05 WHEN deuda <= 5000 AND delegacionmunicipio <> 'IZTAPALAPA' AND delegacionmunicipio <> 'IZTACALCO' THEN 0.07 WHEN deuda > 5000 AND deuda <= 15000 AND delegacionmunicipio = 'IZTAPALAPA' THEN 0.04 WHEN deuda > 5000 AND deuda <= 15000 AND delegacionmunicipio = 'IZTACALCO' THEN 0.06 WHEN deuda > 5000 AND deuda <= 15000 THEN 0.08 WHEN deuda > 15000 THEN 0.02 ELSE 0 END AS descuento FROM cliente; select 'VISTAS';--GROUP BY SI SE USA /ORDER BY NO SE USA create view reportecreditobajo as select nombre,credito from cliente where credito <5000; select *from reportecreditobajo; select 'STORED PROCEDURE'; /* --create or replace function [n.funcion]{ //parametros }return attr. as //cuerpoFuncion $$Lenguaje SQL/(PL/SQL) */ create or replace function Funcion(idproductovendidof integer) returns integer as $$ Select sum(cantidad * precioventa) from productovendido where idventa = idproductovendidof; $$Language SQL; Select Funcion(2);
Write, Run & Share PostgreSQL queries online using OneCompiler's PostgreSQL online editor and compiler for free. It's one of the robust, feature-rich online editor and compiler for PostgreSQL. Getting started with the OneCompiler's PostgreSQL editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose database as 'PostgreSQL' and start writing queries to learn and test online without worrying about tedious process of installation.
PostgreSQL is a open source relational database system and is also knows as Postgres.
CREATE command is used to create a table, schema or an index.
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
....);
ALTER command is used to add, modify or delete columns or constraints from the database table.
ALTER TABLE Table_name ADD column_name datatype;
TRUNCATE command is used to delete the data present in the table but this will not delete the table.
TRUNCATE table table_name;
DROP command is used to delete the table along with its data.
DROP TABLE table_name;
RENAME command is used to rename the table name.
ALTER TABLE table_name1 RENAME to new_table_name1;
INSERT Statement is used to insert new records into the database table.
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
Select statement is used to select data from database tables.
SELECT column1, column2, ...
FROM table_name;
UPDATE statement is used to modify the existing values of records present in the database table.
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
DELETE statement is used to delete the existing records present in the database table.
DELETE FROM table_name where condition;