Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAMPOS AUTOINCREMENTABLES:
Vea que se defini que los incrementos se realicen a partir de 100 y que los
intervalos sean de 2 en 2.
Lo que acabamos de ver podramos decir que son ventajas de los campos
definidos como autoincrementables (identity), sin embargo debemos saber
en que contexto utilizarlos, pues las cosas comienzan verse de una manera
distinta cuando hacemos eliminacin a los registros de una tabla que tiene
columnas con valores autoincrementables. La secuencia de valores de un
campo "identity" se genera tomando como referencia el ltimo valor
ingresado; si se elimina un registro ingresado y luego se inserta otro
registro, SQL Server seguir la secuencia, es precisamente eso lo que puede
llegar a generar graves desrdenes en los registros de almacenados en una
tabla.
Veamos un ejemplo eliminando datos.
En esta imagen se muestra lo que ocurre con los datos autoincrementables, en el proceso
1 hemos ejecutado una consulta para mostrar todos los registros de la tabla; en el proceso
2 se muestra una consulta luego de haber ejecutado la eliminacin de los registros con
correlativo 102 y 106, note como quedan vacos los espacios 102 y 106; en el proceso 3 se
han insertado 3 registros y se hace la consulta, como habr notado, de acuerdo a la
secuencia de correlativos insertados el siguiente en insertarse era el 110, la insercin se
realiz sin problema, pero ese correlativo tom la posicin que anteriormente correspndi
al espacio 102. Inconvenientes como esos son los que se generan con los tipos de
datos identity.
Vea la lnea sombreada genera error al intentar ejecutarla, pues se viola la restriccin, la
cual slo permite la insercin de 'm' o 'f.
NOTA:
el error mostrado tambin se debe dos factores ms:
- al intento de insercin de un valor repetido en una llave primaria y
- el intento de insercin de un valor de dos caracteres al campo genero_autor, ese campo
slo soporta un caracter.
Vea que debe utilizarse las palabras reservadas insert, into y values. Con insert
into indicamos la tabla con los campos a los que se les insertar valores y con la
palabravalues indicamos que valores insertar. Tambin pueden realizarse
inserciones de la siguiente forma:
Operadores Logicos
Tanto para actualizar como eliminar se recomienda siempre utilizar una condicin ya que
de lo contrario el resultado de la operacin afectar a toda la tabla.
Ejemplos de eliminacin de datos:
Con la condicin nos aseguramos de eliminar slo la fila o filas que cumplan la condicin,
al no escribir una condicin eliminaramos todo el contenido de la tabla, quedando est
completamente vaca.
o
o
o
o
o
o
Como podemos observar, se retornan nada mas las primeras 10, pudiendo haber
cambiado ese valor por el que nosotros deseamos.
veamos otro ejemplo
SELECT TOP 5 WITH TIES orderid, productid, quantity
FROM [order details]
ORDER BY quantity DESC
Descripcin
AVG
COUNT
COUNT(*)
MAX
MIN
SUM
STDEV
STDEVP
VAR
VARP
El uso de las funciones de agregado con valores nulos, como ya hemos dicho
anteriormente, la mayoria de las funciones de agregado pasan por alto los valores que son
nulos en el campo. Por lo que COUNT(*) es diseada para contar las filas incluyendo las
que tienen valores nulos.
use northwind
select count(*) from employees
en este caso, se cuentan los empleados con los cuales cuenta la empresa
select count(reportsto) from employees
En este ultimo lo analizamos de la siguiente manera: hay 8 empleados que deben reportar
sus actividades a un superior, por lo que hay 1 que no reporta a nadie.
Ahora veamos la siguiente sentencia
select count( distinct reportsto) from employees
El resultado que obtendriamos ser: 2, lo que significa que en esta empesa hay 2 jefes a
los cuales los empleados les reportan.
Esto se logra por que la sentencia ltima no toma en cuenta los resgistro (en este caso el
campo "reportsto" ) que se repiten
FUNDAMENTOS DE "GROUP BY".
Analicemos las siguientes sentencias
select productid, orderid, quantity from [order details]
Este nos da la informacin del detalle de todas la ordenes que han sido generadas dentro
de la empresa.
Es de tener presente que no son solo 11 registros, si no un total de 2155 (que por
cuestiones de espacio no se pueden apreciar).
Ahora bien
si tenemos la siguiente sentencia, donde debemos ver solamente el total de los productos
que han sido pedidos
select productid, SUM(quantity) from [order details] group by productid
ahora bien se puede colocar una condicion a la la clausula group by, para restringir aun
mas los resultado si es que deseamos hacerlo. Observemos la siguiente sentencia
select productid, SUM(quantity) from [order details] group by productidhaving
SUM(quantity)>=1100
nos daria el listado de todos los productos cuya suma de cantidades en las ordenes son
mayores a 1100 unidades, y esto es lo que veriamos
En fila 1 tenemos el total general de todos los productos (51317) en 2 el el total general
para el producto1 (828) y del 3 en adelante el total del producto 1en la orden 10285 y asi
sucesivamente hasta que encontremos el codigo del producto 2, luego el del 3 con el
mismo nivel de detalle.
Analicemos el siguiente ejemplo
Donde en la primera fila tenemos el total general de todos los producto que han sido
ordenado, luego, tenemos los totales de productos que han sido ordenados en cada orden,
y si seguimos ms abajo, encontraremos un detalle parecido al de la sentencia anterior.