PRODUCTO:
ITEM:CREATE TABLE ITEM (nfact int NOT NULL,codigoP int NOT NULL, cantidad float,
subtotal float, PRIMARY KEY (nfact,codigop),FOREIGN KEY(nfact),REFERENCES
FACTURA(nfact),FOREIGN KEY (codigoP),REFERENCES PRODCUTO(codigo);
FACTURA:CREATE TABLE FACTURA(nfact int NOT NULL,fecha date, ncliente int NOT NULL,
subtotal float, PRIMARY KEY (nfact));
CLIENTE
MODIFICAR TABLA: ALTER TABLE PRODUCTO ADD PRIMARY KEY(CODIGO);
ALTER TABLE FACTURA ADD Total Float;
BORRA TABLA:DROP TABLE
USUARIO:SYSDBA
CONTASEÑA:masterkey
EJERCICIO 24/10/2023
CREAR TABLAS
CREATE TABLE CLIENTE (NCLIE INTEGER NOT NULL, NOMBRECL VARCHAR(30) NOT NULL, DIRECC
VARCHAR(20), TEL VARCHAR(15),CIUDAD VARCHAR (15) , PRIMARY KEY (NCLIE));
CREATE TABLE PRODUCTO(CODIGO INTEGER NOT NULL, DESCRIPCION VARCHAR(30), PRECIO
FLOAT, PRIMARY KEY (CODIGO));
CREATE TABLE FACTURA(NFACT INTEGER NOT NULL, FECHA DATE, NCLIENTE INTEGER NOT NULL,
TOTAL FLOAT, PRIMARY KEY (NFACT), FOREIGN KEY (NCLIENTE) REFERENCES CLIENTE
(NCLIE));
CREATE TABLE ITEM (NFACT INTEGER NOT NULL, CODIGOP INTEGER NOT NULL , CANTIDAD
FLOAT, SUBTOTAL FLOAT, PRIMARY KEY (NFACT,CODIGOP),FOREIGN KEY (NFACT) REFERENCES
FACTURA (NFACT), FOREIGN KEY (CODIGOP) REFERENCES PRODUCTO (CODIGO));
INSERTAR PRDUCTOS (REGISTROS) EN LAS TABLAS
INSERT INTO producto VALUES (1,'PRODUCTO A',1800);
INSERT INTO producto VALUES (2,'PRODUCTO B',2500);
INSERT INTO producto VALUES (3,'PRODUCTO C',500);
INSERT INTO producto VALUES (6,'PRODUCTO 4',80000);
INSERT INTO producto VALUES (5,'PRODUCTO 5',30000);
INSERTAR CLINTE (CLIENTE) EN LAS TABLAS
INSERT INTO CLIENTE VALUES(10,'CLIENTE10', 'MZ 18 C3','8876545');
INSERT INTO CLIENTE VALUES(12,'CLIENTE12', 'CLLE NO.13','8886923');
INSERTAR INFO (FACTURA) EN LAS TABLAS
INSERT INTO FACTURA VALUES (2,'10/15/2012',11,35000);
INSERT INTO FACTURA VALUES (1,'12/1/2012',12,29500);
INSERT INTO FACTURA VALUES (4,'2/5/2013',10,32000);
INSERT INTO FACTURA VALUES (3,'1/21/2012',10,20000);
INSERTAR INFO (ITEM) EN LAS TABLAS
INSERT INTO ITEM (NFACT,CODIGOP,CANTIDAD,SUBTOTAL) VALUES (1,1,10,20000);
INSERT INTO ITEM (NFACT,CODIGOP,CANTIDAD,SUBTOTAL) VALUES (2,2,5,10000);
INSERT INTO ITEM (NFACT,CODIGOP,CANTIDAD,SUBTOTAL) VALUES (3,2,20,100000);
INSERT INTO ITEM (NFACT,CODIGOP,CANTIDAD,SUBTOTAL) VALUES (3,1,4,18000);
INSERT INTO ITEM (NFACT,CODIGOP,CANTIDAD,SUBTOTAL) VALUES (3,3,8,80000);
INSERT INTO ITEM (NFACT,CODIGOP,CANTIDAD,SUBTOTAL) VALUES (4,6,7,93000);
ACTUALIZAR O ELIMINAR REGISTROS
ACTUALIZAR = UPDATE PRODUCTO SET PRECIO =48000 WHERE DESCRIPCION ='PRODUCTO B';
ELIMINAR = DELETE FROM ITEM WHERE NFACT = 1;
CODIGO 5
EJERCICIO 7/11/2023
CREAR CATALOGO Y CONSULTAS (SELECT Y FROM)
SELECT CODIGO, DESCRIPCION, PRECIO FROM PRODUCTO
MUESTRE EL PRECIO AUMENTADO EN 27%
SELECT CODIGO, DESCRIPCION, PRECIO, PRECIO*1.27 AS PRECIONUEVO FROM PRODUCTO
CONSULTAR REGISTROS CON CONDICIONES (SELECT, WHERE)
ENCONTRAR DESCRIPCION Y EL PRECIO DE LOS PRODUCTOS QUE VALGAN MAS O IGUAL A $10000
SELECT DESCRIPCION, PRECIO FROM PRODUCTO WHERE PRECIO>=10000
ENCONTRAR LOS PRODUCTOS QUE VALEN MENOS DE $1000 O MAS DE $10000
SELECT * FROM PRODUCTO WHERE PRECIO <10000 OR PRECIO> 1000
EN EL EJERCICIO ANTERIOR MOSTRAR SOLO AQUELLOS QUE ESTEN ENTRE $20.000 Y $80.000
SELECT * FROM PRODUCTO WHERE PRECIO >= 20000 AND PRECIO <=80000
SELECT * FROM PRODUCTO WHERE PRECIO BETWEEN 20000 AND 80000
ENCONTRAR LAS FACTURAS QUE SUS TOTALES NO ESTEN ENTRE $25000 Y $32000
SELECT * FROM FACTURA WHERE TOTAL NOT BETWEEN 25000 AND 32000
ENCONTRAR LOS CODIGOS DE LOS DIFERENTES PRODUCTOS QUE HAN SIDO FACTURADOS
SELECT DISTINT CODIGOP FROM ITEM;
ENCONTRAR LOS CODIGOS DE LOS PRODUCTOS QUE HAN SIDO FACTURADOS
SELECT CODIGOP FROM ITEM;
ENCONTRAR LA INFORMACION DE LOS CLIENTES QUE ESTEN EN ARMENIA, MANIZALES O PEREIRA
SELECT * FROM CLIENTE WHERE CIUDAD ='MANIZALES' OR CIUDAD = 'PEREIRA' OR
CIUDAD = 'ARMENIA'
ENCONTRAR LOS CODIGOS DE LOS CLIENTES, NOMBRES Y CIUDADES TAL QUE SU NOMBRE INICIE
POR (C% CUALQUIER COSA DESPUES DE LA C) (C% CUALQUIER COSA ANTES DE LA C) (%C%
CUALQUIER COSA DESPUES Y ANTES DE LA C)
SELECT NCLIE, NOMBRECL, CIUDAD FROM CLIENTE WHERE NOMBRECL LIKE 'C%'
ENCONTRAR LOS CODIGOS DE LOS CLIENTES, NOMBRES Y CIUDADES TAL QUE SU CIUDAD INICIE
POR C Y TENGA 3 LETRAS MAS (_ LAS LINEAS AL PISO REPRECENTAN LOS ESPACIOS)
SELECT NCLIE, NOMBRECL, CIUDAD FROM CLIENTE WHERE CIUDAD LIKE 'C___'
ENCONTRAR LOS CLIENTES CUYAS DIRECCIONES TENGAN LA CADENA "CRA"EN CUALQUIER
POSICION.
SELECT * FROM CLIENTE WHERE DIRECC LIKE '%CRA%'
CONSULTAR REGISTROS - ORDENAR (ORDER BY - NOTA ESTE DEBE SER EL ULTIMO COMANDO SIN
INGRESAR, EL LO HACE DE FORMA ACENDENTE AUTOMATICAMENTE ) (DESC - ORDENAR EN FORMA
DECENDENTE )
ENCONTRAR EL NUMERO DE FACTURAS, EL CODIGO DEL CLIENTE, EL TOTAL DE CADA FACTURA
ORDENADAS DE MENOR A MAYOR POR EL TOTAL DE FACTURAS
SELECT NFACT,NCLENTE,TOTAL FROM FACTURA ORDER BY TOTAL ASC
SELECT NFACT,NCLENTE,TOTAL FROM FACTURA ORDER BY TOTAL DESC
ENCONTRAR LA INFORMACION DE LAS FACTURAS ORDENADAS POR CODIGO DE CLIENTE EN FORMA
ASCENDENTE Y POR TOTAL EN FORMA DESCENDENTE
SELECT * FROM FACTURA ORDER BY NCLIENTE,TOTAL DESC
CREAR PROVEEDOR E INSERTAR DATOS
CREATE TABLE PROVEEDOR (NPROV INTEGER NOT NULL, NOMBREPR VARCHAR(30) NOT
NULL, CIUDAD VARCHAR(15),PRIMARY KEY (NPROV));
INSERT INTO PROVEEDOR VALUES (1, 'PROVE1','CALI');
INSERT INTO PROVEEDOR VALUES (2, 'PROVE2','MANIZALES');
ENCONTRAR LOS NOMBRES DE LOS CLIENTES Y LOS NOMBRES DE LOS PROVEEDORES CON SU
RESPECTIVA CIUDAD (UNION _ LAS TABLAS DEBEN TENER QUE SER COMPATIBLES, ATRIBUTOS
IGUALES)
SELECT NOMBRECL,CIUDAD FROM CLIENTE UNION SELECT NOMBREPR,CIUDAD FROM
PROVEEDOR
SELECT NOMBRECL AS NOMBRECL_PROV,CIUDAD FROM CLIENTE UNION SELECT
NOMBREPR NOMBRECL_PROV,CIUDAD FROM PROVEEDOR ORDER BY 2
CONSULTAR REGISTROS QUE COMBINAN INFORMACION DE MAS DE UNA TABLA (INNER JOIN-
CONDICIONES DE JOIN )
ENCONTRAR NUMERO DE FACTURA, NOMBRE DE CLIENTE Y TOTAL DE LA FACTURA
SELECT NFACT,NOMBRECL,TOTAL FROM FACTURA,CLIENTE WHERE FACTURA.NCLIENTE
=CLIENTE.NCLIE;
SELECT NFACT,NOMBRECL,TOTAL FROM FACTURA INNER JOIN CLIENTE ON
FACTURA.NCLIENTE=CLIENTE.NCLIE;
MOSTRAR EL NUMERO DE FACTURA, EL NOMBRE DEL CLIENTE Y EL VALOR TOTAL D ELA
FACTURA , TAL QUE ESTE TOTAL SUPERE LOS $30.000
SELECT NFACT,NOMBRECL,TOTAL FROM FACTURA,CLIENTE WHERE NCLIE =NCLIENTE
AND TOTAL > 30000;
SELECT NFACT,NOMBRECL,TOTAL FROM FACTURA,CLIENTE INNER JOIN CLIENTE ON
NCLIE =NCLIENTE AND TOTAL > 30000
MOSTRAR EL NOMBRE DEL CLIENTE, EL NUMERO DE FACTURAS Y LA DESCRIPCION DE LOS
PRODUCTOS COMPRADOS
SELECT NOMBRECL,FACTURA.NFACT,DESCRIPCION FROM CLIENTE, FACTURA, ITEM,
PEDIDO,PRODUCTO WHERE NCLIE =NCLIENTE AND FACTURA.NFACT =ITEM.FACT AND
ITEM.CODIGOP=PRODUCTO.CODIGO
MOSTRAR EL NUMERO DE FACTURA, EL CODIGO DE CLIENTE QUE TENGAN FACTURAS Y EL CODIGO
DE LOS QUE NO TENGAN
SELECT NFACT, CLIENTE.NCLIE FROM FACTURA RIGHT OUTER JOIN CLIENTE ON
NCLIE=NCLIENTE
CONSULTAR REGISTROS DE AGREGACION
ENCONTRAR EL NUMERO DE LAS FACTURAS, EL TOTAL MÁSALTO, EL TOTAL MAS BAJO Y EL
PROMEDIO DE TODOS LOS TOTALES
SELECT COUNT (NFACT), MAX(TOTAL), MIN(TOTAL), AVG (TOTAL) FROM FACTURA
ENCONTRAR EL PROMEDIO EL PROMEDIO DE LAS FACTURAS QUE SUPERAN $100.000
SELECT AVG (TOTAL) FROM FACTURA WHERE TOTAL>100000
CONSULTAR REGISTROS- AGRUPACION
CUAL ES LA INSTRUCCION PARA OBTENER EL MINIMO Y EL MAXIMO TOTAL, LA SUMA DE LOS
VALORES DE LAS FACTURAS Y LA CANTIDAD DE LAS FACTURAS POR CADA CLIENTE , ORDENADO
POR LA CANTIDAD DE FACTURAS DE MAYOR O MENOR
SELECT NCLIENTE, MAX(TOTAL), MIN(TOTAL), SUM(TOTAL), COUNT(NFACT)FROM
FACTURA GROUP BY NCLIENTE ORDER BY 5 DESC
MOSTRAR EL CODIGO DE CLIENTE Y EL VALOR TOTAL DE TODAS SUS FACTURAS TAL QUE ESTE
TOTAL SUPERE LOS $30.000
SELECT NCLIENTE, SUM (TOTAL) FROM FACTURA GROUP BY NCLIENTE HAVING SUM
(TOTAL) >30000
-----------------------------------------------------------------------------------
MY
SQL------------------------------------------------------------------------------
MOSTRAR EL CODIGO DE CLIENTE Y EL VALOR TOTAL DE TODAS SUS FACTURAS TAL QUE ESTE
TOTAL SUPERE LOS $30.000
SELECT NCLIENTE, SUM (TOTAL) FROM FACTURA GROUP BY NCLIENTE HAVING SUM
(TOTAL)>30000
MOSTRAR EL NOMBRE DEL CLIENTE, LA SUMA TOTAL DE SUS FACTURAS DEL MES 8, PERO SOLO
PARA AQUELLOS CLIENTES QUE TENGAN MENOS DE 3 FACTURAS
SELECT NOMBRECL,SUM(TOTAL), COUNT(NFACT) FROM FACTURA, CLIENTE WHERE
FACTURA.NCLIENTE =CLIENTE.NCLIE AND MONTH(FECHA)=04 GROUP BY NOMBRECL HAVING
COUNT(NFACT)<3;
ENCONTRAR LOS DIAS DE ANTIGUEDAD DE TODAS LAS FACTURAS
SELECT NFACT,FECHA,CURRENT_DATE, DATEDIFF(CURRENT_DATE,FECHA) FROM FACTURA
-------------------------------------------------------TALLER
-----------------------------------------------------------------------------------
----------------------
ENTREGAR LAS FACTURAS QUE TENGAN MAS DE 1 AÑO DE HAVER SIDO GENERADAS
SELECT NFACT,FECHA,CURRENT_DATE, DATEDIFF(CURRENT_DATE,FECHA) AS CANTIDAD
FROM FACTURA HAVING CANTIDAD >365;
----------------------------------------------------CONSULTAS ANIDADAS
-----------------------------------------------------------------------------------
-------------
ENCONTRAR LOS NOMBRES DE CLIENTES QUE TIENEN FACTURAS
SELECT NOBRECL FROM CLIENTE WHERE NCLIE IN (SELECT NCLIENTE FROM FACTURA)
ENCONTRAR LOS NOMBRES DE CLIENTES QUE NO TIENEN FACTURAS
SELECT * FROM CLIENTE WHERE NCLIE NOT IN (SELECT NCLIENTE FROM FACTURA)
ENCONTRAR LA DESCRIPCION Y CANTIDAD DEL PRODUCTO QUE TENGA LA CANTIDAD MAS ALTA
VENDIDA
SELECT DESCRIPCION, CANTIDAD FROM PRODUCTO,ITEM WHERE CODIGO=CODIGOP AND
CANTIDAD IN (SELECT MAX(CANTIDAD)FROM ITEM);
ENCONTRAR LA SUMA DE LOS VALORES DE LAS FACTURAS Y LA CANTIDAD DE FACTURAS POR CADA
NOMBRE DE CLIENTE
SELECT NFACT,SUM (TOTAL) CLIENTE.NCLIE FROM FACTURA RIGHT OUTER JOIN CLIENTE
ON NCLIE=NCLIENTE
-------------------------------------------------------------
VISTAS-----------------------------------------------------------------------------
-----------------------
UNA VISTA ES UNA RELACION VIRTUAL QUE SE CREA ATRAVES DE UNA SOLA CONSULTA. LAS
VISTAS PUEDES SER HORIZONTALES, VERTICALES O COMPUESTAS
___________________________________________________________________________________
___________________________________________________________________________________
CREAR UNA VISTA QUE SOLO DE ACCESO A LOS CLIENTES DE MANIZALES
CREATE VIEW VISTAA AS SELECT * FROM CLIENTE WHERE CIUDAD='MANIZALES'
CREAR UNA VISTA QUE ENTREGUE INFORMACION DE LOS ITEMS VENDIDOS PERO SIN EL VALOR EN
$
CREATE VIEW VISTAB (SELECT NFACT,CODIGOP,CANTIDAD) FROM ITEM
OJO-----------------
CREAR UNA VISTA DONDE SE MUESTRE NÚMEROS DE VENTA,FECHA,CÓDIGO DEL PRODUCTO,
DECRIPCION DEL PRODUCTO, CANTIDAD DE SUBTOTAL.
CREATE VIEW VISTAC AS SELECT FACTURA.NFACT,FECHA,CODIGOP,DESCRIPCION,
CANTIDAD, SUBTOTAL FROM FACTURA, PRODUCTO, ITEM WHERE FACTURA.NFACT=ITEM.NFACT AND
PRODUCTO.CODIGO=ITEM.CODIGOP;
LA SUMA DE LOS TOTALES POR NOMBRE DE CLIENTE
CREATE VIEW VISTAD (CL,SUMA) AS SELECT NCLIENTE, SUM(TOTAL) FROM FACTURA
GROUP BY NCLIENTE
_______ACTULIZAR LA DEFINICION DE LAS VISTAS OSEA LA INFORMACION QUE
MUESTRA____________________________________________________________________________
__________
CREATE OR REPLACE VIEW VIEW_NAME AS SELECT COLUMNS FROM TABLE WHERE
CONDITION;
_______BORRAR
VISTA______________________________________________________________________________
___________________________________________________________
DROP VIEW VIEW_NAME;
_______CONSULTAS DEFINICION DE UNA
VISTA______________________________________________________________________________
____________________________________________
SHOW CREATE VIEW CLIENTEMANIZALES
SELECT * FROM INFORMATION_SCHEMA.VIEWS--------------------------> MIRAR TODAD
LAS VISTAS QUE TENEMOS
MOSTRAR LA INFORMACION DEL PRODUCTO QUE MAS VECES HAYA SIDO INCLUIDO EN FACTURAS
CREATE VIEW VISTAE (PRODUCTO, MAXIMO) AS SELECT DESCRIPCION, COUNT(CODIGOP)
AS CANT FROM PRODUCTO,ITEM WHERE CODIGO=CODIGOP AND CANTIDAD IN (SELECT
MAX(CANTIDAD)FROM ITEM);
CREATE VIEW NOCOMPPRAN AS SELECT CLIENTE.NOMBRECL FROM CLIENTE LEFT JOIN FACTURA ON
CLIENTE.NCLIE = FACTURA.NCLIENTE WHERE FACTURA.NCLIENTE IS NUL
--------------------------------------------------USUSARIOS
-----------------------------------------------------------------------------------
------------------------
PARA MYSQL
crear usuario
1. CRESTE USER 'NESTOR ' @ 'LOCALHOST'
IDENTIFIED BY '12345';
CREATE USER 'LORENA' @'LOCALHOST'
IDENTIFIED BY '94082804042';
PRIVILEGIOS: ES UN PERMISO PARA ALGO ESPECIFICO
2. GRANT ALL PRIVILEGES
ON PRUEBA.*
TO LORENA
REVOCAR PERMISOS
3. REVOKE privileges
ON PRUEBA.*
FROM LORENA
ELIMINAR USUSARIO
4. DROP USER 'LORENA' @'LOCALHOST'
-----------------------------------------------------CONSULTAR REGISTROS
-----------------------------------------------------------------------------------
-----------
CREATE TABLE proyecto (idproy integer not null, nombreproy varchar (30), fechain
date, durac interget, primary key (idproy));
CREATE TABLE Empleado (codigoe integer not null, cedulae interget ,nombre varchar
(30), derecc varchar (30), salario float, codigoSuperv interget, idproy integer not
null, primary key (codigoe)FOREIGN KEY (idproy) references proyecto (idproy));
INSERT INTO proyecto VALUES ('1234', 'bases de datos','pedro','2023-05-05','5')
INSERT INTO empleado VALUES ('123', '1012','pedro','mz-2-05','5000','null','1234')
select codigoe,nombre,codigoSuperv