Você está na página 1de 6

Agregar una columna begin tran

/* alter table */ alter table repventas


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

Você também pode gostar