0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
22 Ansichten6 Seiten
El documento muestra ejemplos de operaciones DML (insert, update, delete) y DDL (create, alter, drop) sobre tablas y vistas en SQL. Se crean, modifican y eliminan tablas y vistas, se insertan, actualizan y eliminan registros, y se usan transacciones begin tran y rollback tran para probar cambios de forma reversible.
El documento muestra ejemplos de operaciones DML (insert, update, delete) y DDL (create, alter, drop) sobre tablas y vistas en SQL. Se crean, modifican y eliminan tablas y vistas, se insertan, actualizan y eliminan registros, y se usan transacciones begin tran y rollback tran para probar cambios de forma reversible.
El documento muestra ejemplos de operaciones DML (insert, update, delete) y DDL (create, alter, drop) sobre tablas y vistas en SQL. Se crean, modifican y eliminan tablas y vistas, se insertan, actualizan y eliminan registros, y se usan transacciones begin tran y rollback tran para probar cambios de forma reversible.
select * from repventas add igv money begin tran select * from repventas alter table repventas update repventas set igv = 0.18 * ventas add igv money rollback tran select * from repventas select * from oficinas update repventas set igv = 0.18 * ventas begin tran rollback tran alter table oficinas drop column region A partir de una tabla, crear otra,pero con unos determinados rollback tran datos select * from clientes create table ANTPEDIDOS sp_tables /* store procedures del sistema: sp_nombre */ (NUM_PEDIDO integer not null, sp_help clientes FECHA_PEDIDO datetime not null, select * from clientes IMPORTE money not null); begin tran select * from antpedidos alter table clientes select * from pedidos where fecha_pedido < '1990-01-01' alter column empresa char(30) insert into antpedidos (num_pedido,fecha_pedido,importe) rollback tran select num_pedido,fecha_pedido,importe /* transact sql: insert, update, delete, select */ from pedidos where fecha_pedido < '1990-01-01' /* insert de una fila */ Eliminar fila sp_help productos begin tran select * from productos delete from repventas where num_empl = 999 begin tran rollback tran insert into PRODUCTOS /* drop table: borra la tabla */ (ID_FAB, ID_PRODUCTO, DESCRIPCION, PRECIO, EXISTENCIAS) select * from oficinas values ('REI','2A44G','Pasador Bisagra',350,14) drop table oficinas rollback tran /* uso del begin tran y rollback tran select * from productos sirve para pruebas, begin tran:inicia, luego se hace sentencia sql begin tran rollback tran: deshace lo que hizo la sentencia sql y se vuelve al insert into PRODUCTOS estado antes del begin */ values ('REI','2A44G','Pasador Bisagra',350,14) select * from clientes rollback tran select * from repventas select * from productos select * from oficinas begin tran begin tran insert into PRODUCTOS drop table clientes,repventas,oficinas (DESCRIPCION,ID_FAB, ID_PRODUCTO, EXISTENCIAS, PRECIO) rollback tran values ('Pasador Bisagra','REI','2A44G',14,350) /* alter table */ rollback tran sp_help repventas select * from repventas set language us_english select * from repventas rollback tran begin tran select * from clientes where rep_clie in (105,109,101) insert into REPVENTAS begin tran (NUM_EMPL, NOMBRE, Edad, TITULO, CONTRATO, VENTAS) delete from clientes where rep_clie in (105,109,101) values (107,'Nancy Angelli',49,'Rep Ventas','1988-11- rollback tran 14',186042) select * from clientes rollback tran begin tran select * from repventas delete from clientes begin tran rollback tran insert into REPVENTAS select * from PEDIDOS where REP = 102 (NUM_EMPL, NOMBRE, Edad, TITULO, CONTRATO) begin tran values (107,'Nancy Angelli',49,'Rep Ventas','1988-11-14') delete from pedidos select * from repventas where rep = (select num_empl from repventas begin tran where nombre = 'Sue Smith') insert into REPVENTAS select * from pedidos where rep = 102 (NUM_EMPL, NOMBRE, Edad,oficina_rep, TITULO, CONTRATO,ventas) rollback tran values (107,'Nancy Angelli',49,null,'Rep Ventas','1988-11- /* update */ 14',186042) select * from repventas rollback tran begin tran /* insert multifila */ update repventas set cuota = 100000 select * from antpedidos where cuota is null drop table antpedidos select * from repventas select * from pedidos rollback tran create table ANTPEDIDOS select * from clientes (NUM_PEDIDO integer not null, begin tran FECHA_PEDIDO datetime not null, update clientes set rep_clie = 109,limite_credito = 600000 IMPORTE money not null); where empresa = 'Acme Mfg.' select * from antpedidos rollback select * from pedidos where fecha_pedido < '1990-01-01' /* ambiguedad en el update */ insert into antpedidos (num_pedido,fecha_pedido,importe) select * from repventas where cuota < 400000 select num_pedido,fecha_pedido,importe begin tran from pedidos where fecha_pedido < '1990-01-01' update repventas set cuota = 400000,ventas=cuota where cuota < /* delete */ 400000 select * from repventas --CAMBIA COLUMNAS-- begin tran rollback delete from repventas where num_empl = 999 /* modificar la tabla repventas agregando rollback tran la columna del igv y calcular con el 18% de las ventas */ select * from oficinas begin tran delete from oficinas where ventas < 700000 or ventas = 0 alter table repventas select * from pedidos where clie = 2106 add igv money begin tran select * from repventas delete from pedidos where clie = 2106 update repventas set igv = 0.18 * ventas rollback /* vista de vista */ select * from clientes select * from vendedorbueno --venta mayor que cuota-- select * from pedidos create view vendedorbueno11 as begin tran select * from vendedorbueno where oficina_rep = 11 update clientes set limite_credito = limite_credito + 5000 select * from vendedorbueno11 where num_clie IN (select distinct clie from PEDIDOS select * from vendedorbueno11 where edad > 40 where IMPORTE > 25000) sp_depends vendedorbueno11 rollback sp_depends vendedorbueno /* vistas */ /* cambio de nombre de columna */ select * from clientes select * from empleados create view clientes102 as create view vista1a(a,b,c)as select * from clientes where rep_clie = 102 select nombre,departamento,codigo from empleados select * from clientes102 select * from vista1a select * from repventas /* cambio de nombre de vista */ /* vista vertical */ sp_rename vistaemplabc, vista1a create view vendedores sp_rename vista1a, vistaemplabc as select num_empl,nombre,edad,oficina_rep /* eliminacion de vista */ from repventas begin tran select * from vendedores drop view vendedorbueno11 /* vista horizontal */ rollback create view vendedorbueno as --IMPORTANTE-- select * from repventas where ventas > cuota /* insercion de filas con vistas */ select * from vendedorbueno select * from empleados select * from vendedorbueno order by ventas desc create view ventas as /* vista vertical-horizontal */ select * from empleados where departamento = 'Ventas' create view datosvendedoresbuenos as select * from ventas select num_empl, nombre, edad, oficina_rep from repventas begin tran where ventas > cuota insert into ventas values ('Mark Lenard','Ventas',3331) select * from datosvendedoresbuenos insert into ventas values ('Fannie Farmer','Logistica',6689) /* visualizacion de vistas */ select * from empleados sp_helptext clientes102 rollback sp_helptext clientes /* error en sp_ */ /* uso del with check option */ sp_help clientes drop view ventas -------------------------------------------------------------- create view ventas as -- select * from empleados where departamento = 'Ventas' /* uso del with encryption */ with check option create view oficinaoeste with encryption sp_helptext ventas as select * from oficinas where region = 'Oeste' select * from ventas select * from oficinaoeste select * from empleados sp_helptext oficinaoeste begin tran /* uso del sp_depends */ insert into ventas values ('Mark Lenard','Ventas',3331) sp_depends vendedorbueno insert into ventas values ('Fannie Farmer','Logistica',6689) rollback select reverse ('Juan Perez') select * from empleados select right ('UNI-FIIS',4) select * from ventas select right ('UNI-FIIS',5) begin tran select 'begin',space(15),'end' delete from ventas where codigo = 1051 select substring ('UNI-FIIS',3,4) select * from ventas /* funciones de conversion */ select * from empleados select str(7567.3412,7,1) rollback select str(7567.3412,6,1) begin tran select str(7567.3412,5,1) select * from ventas select str(7567.3412,4,1) update ventas set departamento = 'Servicio Tecnico' select str(7567.3412,3,1) where nombre = 'Bob Smith' select num_pedido,rep,clie,importe from pedidos delete from ventas where departamento = 'Ventas' sp_help pedidos rollback Select num_pedido,REP,CLIE,importe from pedidos begin tran select num_pedido,rep,clie, delete from ventas where departamento = 'Ventas' importe= convert(varchar,importe,1) from pedidos select * from ventas select * from PEDIDOS select * from empleados /* estilo 1: con , y 2 decimales */ rollback select num_pedido,rep,clie, begin tran importe= convert(char(12),importe,1) from pedidos Se puede quitar el whicheck 8, /* estilo 0: sin , y 2 decimales */ alter view ventas as select num_pedido,rep,clie, select * from empleados where departamento = 'Ventas' importe= convert(char(12),importe,0) from pedidos sp_helptext ventas /* estilo 2: sin , y 4 decimales */ rollback select num_pedido,rep,clie, /* funciones */ importe= convert(char(12),importe,2) from pedidos /* funciones agregadas = funciones sumarias */ /* otra funcion de conversion es el CAST */ /* funciones de cadenas */ select num_pedido,rep,clie, /* se usa select sin from para ejecutar */ importe= cast(importe as CHAR(12)) from pedidos select ascii('Ana'),char(65) /* funciones fechas */ execute ascii('Ana'),char(65) select datename(month,'2001-09-11') select char(38) select datename(year,'2001-09-11') select char (175) select datename(weekday,'2001-09-11') select char (244) select getdate() select char (204) select datepart (month,getdate()) select CHAR(64) select datepart (day,getdate()) select ASCII ('@uni') --quarter sirve saber en que trimestre esta, o estamos-- select lower('FEBRERO 15'),upper('Alpha') select datepart (quarter,getdate()) /* left = izquierdo, right = derecho */ select datepart (quarter,'2008-07-28') select ltrim(' Lapicero Rojo'),rtrim (' medio ') col2 --qq funciona como quarter-- select replicate ('a',5), replicate ('12',2) select datepart (qq,'2008-07-28') select reverse ('1234567') --aumenta dias o mes-- select dateadd (month,1,getdate()) /* Listar los clientes asignados a Sue Smith que no han select dateadd(day,8,getdate()) remitido un pedido /* diferencia de fechas: difference */ superior a $3000 */ select datediff (year,getdate(),'2001-09-11') Select empresa from Clientes select datediff (year,'2001-09-11',getdate()) where rep_clie = (Select num_empl from Repventas select datediff (day,'2001-09-11',getdate()) where nombre = 'Sue Smith') select DATEDIFF (day, '2008-05-15','2012-12-15') and not exists (Select * from Pedidos /* uso del round */ where clie = num_clie select * from pedidos and importe > 3000) select *,nuevoimporte= importe * 0.85 from pedidos --corelacionada o referencia externa-- select *,nuevoimporte= round(importe * 0.85,1) from pedidos /* Listar los nombres y edades de todas las personas en el select *,nuevoimporte= importe * 0.85 from pedidos equipo de ventas select *,nuevoimporte= round(importe * 0.85,0) from pedidos que no dirigen una oficina */ select convert(char(10),getdate(),1) Select num_empl, nombre, edad, director from Repventas select convert(char(10),getdate(),101) where not (num_empl = Any (Select dir from Oficinas)) select convert(char(10),getdate(),104) /* esta subconsulta se puede transformar a una con test exists select DATEPART(dayofyear,getdate()) */ select DATEPART(y,getdate()) Select nombre, edad from Repventas select DATEPART(dy,getdate()) where not exists (Select * from Oficinas /* otras funciones */ where num_empl = dir) select PI() /* Listar los directores mayores de 40 años y que dirigen a un select POWER(2,3) vendedor cuyas select SQRT(144) /* sqrt = square root */ ventas superan a la cuota y que no trabaja en la misma oficina de ventas select COS(Pi()) que el director */ select COS(Pi()/2) select * from REPVENTAS select RAND() select * from REPVENTAS where CUOTA<ventas select RAND() Select nombre from Repventas Dirs select RAND() where edad > 40 EJERCICIOS and Dirs.Num_Empl in (Select director from Repventas Emps /* Subconsultas */ where Emps.cuota < Emps.ventas /* Listar los clientes que han remitidos pedidos de ACI and Emps.oficina_rep <> Dirs.oficina_rep) Widgets (fabricante /* Lista los vendedores cuyo tamaño de pedido medio para ACI, numero de productos que comiencen con 4100) entre enero y junio de 1990 */ productos fabricados select * from clientes por ACI es al menos tan grande como el tamaño de pedido medio select * from PEDIDOS global de Select empresa from Clientes ese vendedor */ where num_clie in (Select distinct clie from Pedidos Select nombre, avg(importe) from Repventas, Pedidos where Fab = 'ACI' where num_empl = rep and Producto like '4100%' and fab = 'ACI' and fecha_pedido between '1990-01-01' group by nombre, num_empl and '1990-06-30') having avg(importe) >= (Select avg(importe) from Pedidos where rep = num_empl) where rep_clie = num_empl) /* Transact SQL */ rollback /* Insert masivo previa creacion de tabla GranPedidos */ /* vistas */ create table GranPedidos /* que contengan selects con group by (vistas agrupadas), (importe money, join (vistas compuestas) y with check option */ empresa varchar(50), select * from alumnos nombre varchar(30), sp_help alumnos rend money, --cambiar una columna, su formato-- fab char(3), begin tran producto varchar(5), alter table alumnos cant integer) alter column ciclo crar(2) Insert into GranPedidos (importe, empresa, nombre, rend, fab, rollback producto, cant) create database --con esto dejamos de ser master, y podemos Select importe, empresa, nombre, (ventas - cuota), fab, agregar quitar y modificar la tabla-- producto, cant from Pedidos, Clientes, Repventas where clie = num_clie and rep = num_empl and importe > 15000 /* suprime a los clientes que no han realizado pedidos desde el 10 de noviembre de 1989 */ begin tran delete from Clientes where not exists (Select * from Pedidos where Clie = num_clie and fecha_pedido < '1989-11-10') rollback /* Reasigna todos los clientes al 105 atendidos por vendedores cuyas ventas son menores al 80% de sus cuotas */ Begin tran Update Clientes set rep_clie = 105 where rep_clie in (Select num_empl from Repventas where ventas < (.8 * cuota)) rollback /* Hacer que todos los vendedores que atiendan a mas de 3 clientes estèn bajo las ordenes de Sam Clark (106) */ Begin tran Update Repventas set director = 106 where 3 < (Select count(*) from Clientes
Java para Principiantes - Instanciación de Una Clase - Referencia A Objeto - Métodos, Declaración de Métodos, Mensajes, Paso de Parámetros, Retorno de Valores, Constructores y Destructores