Está en la página 1de 8

Curso: Administracin de Base de Datos I

Sesin 04

TRANSACT-SQL
El objetivo es conocer la estructura de las rdenes de SQL Server.

Tipos de Datos
Tipo de Datos Longitud Numricos Exactos Integers Bigint 8 bytes Descripcin

Int smallint tinyint bit bit Decimal y numeric

4 bytes 2 bytes 1 byte 1 byte

Datos enteros (nmeros enteros) comprendidos entre -2^63 (-9223372036854775808) y 2^63 -1 (9223372036854775807). Datos enteros (nmeros enteros) comprendidos entre -2^31 (-2.147.483.648) y 2^31 - 1 (2.147.483.647). Datos enteros comprendidos entre 215 (-32.768) y 215 - 1 (32.767). Datos enteros comprendidos 0 y 255. Datos enteros con valor 1 0.

Datos de precisin y escala numrica fijas comprendidos entre -1038 +1 y 1038 1. p (precisin) Especifica el nmero mximo total de dgitos decimales que se pueden almacenar, a la izquierda y a la derecha del separador decimal. La precisin debe ser un valor comprendido entre 1 y la precisin mxima. La mayor precisin que se puede especificar es 38. decimal[(p[, s])] numeric[(p[, s])] s (escala) Especifica el nmero mximo de dgitos decimales que se pueden almacenar a la derecha del separador decimal. La escala debe ser un valor comprendido entre 0 y p. La escala predeterminada es 0; por tanto, 0 <= s <= p. Los tamaos mximos de almacenamiento varan segn la precisin. Precisin 1-9 10-19 20-28 29-38 money y smallmoney money Valores de moneda comprendidos entre -263 (922.337.203.685.477,5808) y 263 - 1 1 Ing. Jaime Briones V. jaimebv@gmail.com 5 9 13 17 Bytes de almacenamiento

Curso: Administracin de Base de Datos I

Sesin 04

(+922.337.203.685.477,5807), con una precisin de una diezmilsima de la unidad monetaria. Valores de moneda comprendidos entre smallmoney 214.748,3648 y +214.748,3647, con una precisin de una diezmilsima de la unidad monetaria. Numricos con aproximacin Nmeros con precisin de coma flotante comprendidos entre -1,79E + 308 y 1,79E + 308. n es el nmero de bits que se utilizan para almacenar la mantisa del nmero float en notacin cientfica y por tanto dicta su precisin y el tamao de almacenamiento. n tiene que ser un valor entre 1 y 53. El sinnimo de double precision es float(53). Float [(n)] n is 1-24 25-53 real 4 bytes Precisin 7 cifras 15 cifras Tamao de almacenamiento 4 bytes 8 bytes

Nmeros con precisin de coma flotante comprendidos entre -3,40E + 38 y 3,40E + 38. En SQL Server, el sinnimo de real es float(24). Datos de caracteres de longitud fija con una longitud mxima de 8.000 caracteres. Datos de longitud variable con un mximo de 8.000 caracteres. Datos de longitud variable con una longitud mxima de 231 - 1 (2.147.483.647) caracteres.

Cadenas de caracteres char[(n)] n bytes

varchar[(n)] n bytes text Cadenas binarias

Datos binarios de longitud fija con una longitud mxima de 8.000 bytes. Datos binarios de longitud variable con una longitud varbinary [(n)] n+4 bytes mxima de 8.000 bytes. Datos binarios de longitud variable con una longitud mxima de 231 - 1 (2.147.483.647) bytes. En este Image campo se pueden almacenar imgenes de mapa de bits. Otros tipos de datos Cursor Una referencia a un cursor. Un tipo de datos que almacena valores de varios sql_variant tipos de datos aceptados en SQL Server, excepto text, ntext, timestamp y sql_variant. Un tipo de datos especial que se utiliza para table almacenar un conjunto de resultados para un proceso posterior. Un nmero nico para toda la base de datos que se timestamp 8 bytes actualiza cada vez que se actualiza una fila. binary [(n)] n+4 bytes

Ing. Jaime Briones V. jaimebv@gmail.com

Curso: Administracin de Base de Datos I

Sesin 04

Operadores
Un operador es un smbolo que especifica una accin que es realizada por una o ms expresiones. Microsoft SQL Server 2000 utiliza estas categoras de operadores: Operadores aritmticos Operadores de comparacin Operadores lgicos Operador de asignacin Operadores bit a bit Operador de concatenacin de cadenas Operadores unarios

Operadores Aritmticos
Los operadores aritmticos realizan operaciones matemticas con dos expresiones de cualquiera de los tipos de datos de la categora del tipo de datos numrico.

Operador + (suma) - (resta) * (multiplicacin) / (divisin) % (mdulo)


Ejemplo:

Significado Suma. Resta. Multiplicacin. Divisin. Devuelve el resto entero de una divisin. Por ejemplo, 12 % 5 = 2 porque el resto de 12 dividido entre 5 es 2.

A. Usar el operador de suma para calcular las unidades totales disponibles para ser pedidas por los clientes En este ejemplo se suma el nmero actual de productos en el almacn y el nmero de unidades que se han pedido actualmente para todos los productos de la tabla Products. USE Northwind GO SELECT ProductName, UnitsInStock + UnitsOnOrder FROM Products ORDER BY ProductName ASC GO En este ejemplo se recupera el nmero de identificacin del ttulo y el precio de libros de cocina modernos, y se utiliza el operador aritmtico * para multiplicar el precio por 1,15. USE pubs SELECT title_id, price * 1.15 AS NuevoPrecio FROM titles WHERE type = 'mod_cook' ORDER BY title_id ASC 3 Ing. Jaime Briones V. jaimebv@gmail.com

Curso: Administracin de Base de Datos I

Sesin 04

Operadores de comparacin
Los operadores de comparacin comprueban si dos expresiones son iguales o no. Se pueden utilizar en todas las expresiones excepto en las de los tipos de datos text, ntext o image. El resultado del operador de comparacin es de tipo de datos Boolean, que tiene tres valores: TRUE, FALSE y UNKNOWN. Las expresiones que devuelven tipos de datos Boolean se conocen como expresiones booleanas. Operador = (igual al) > (mayor que) < (menor que) >= (mayor que o igual que) <= (menor que o igual que) <> (no es igual a) != (no es igual a) !< (no es menor que) !> (no es mayor que) Ejemplo: USE Northwind GO SELECT * FROM Products WHERE ProductID = 10 GO USE Northwind GO SELECT * FROM Products WHERE UnitsinStock >= 100 GO USE Northwind GO SELECT OrderID, EmployeeID FROM Orders WHERE EmployeeID != 8 GO USE Northwind GO SELECT OrderID, EmployeeID, OrderDate FROM Orders WHERE OrderDate <= '1997-01-31' GO Igual a Mayor que Menor que Mayor que o igual a Menor que o igual a No es igual a No es igual a (no es del estndar SQL-92) No es menor que (no es del estndar SQL-92) No es mayor que (no es del estndar SQL-92) Significado

Ing. Jaime Briones V. jaimebv@gmail.com

Curso: Administracin de Base de Datos I

Sesin 04

Operadores Lgicos
Los operadores lgicos comprueban la veracidad de alguna condicin. stos, como los operadores de comparacin, devuelven el tipo de datos Boolean con valor TRUE o FALSE. Operador ALL AND BETWEEN ANY EXISTS IN LIKE NOT OR SOME Ejemplos ALL es una construccin poco usual, como las consultas ALL pueden ser usadas con diferentes y simples mtodos, veamos un ejemplo de consulta: USE Northwind GO SELECT ALL EmployeeID FROM Employees GO BETWEEN Especifica el intervalo que se va a probar. Observaciones Para especificar un intervalo exclusivo, use los operadores mayor que (>) o menor que (<). Si alguna entrada del predicado BETWEEN o NOT BETWEEN es NULL, el resultado es UNKNOWN. A. Utilizar BETWEEN Este ejemplo devuelve los identificadores de ttulo de los libros cuyas ventas unitarias del ao hasta la fecha van de 4.095 a 12.000. USE pubs GO SELECT title_id, ytd_sales FROM titles WHERE ytd_sales BETWEEN 4095 AND 12000 GO El siguiente es el conjunto de resultados: title_id ytd_sales -------- ----------BU1032 4095 5 Ing. Jaime Briones V. jaimebv@gmail.com Significado TRUE si el conjunto completo de comparaciones es TRUE. TRUE si ambas expresiones booleanas son TRUE. TRUE si el operando est dentro de un intervalo. TRUE si una cualquier miembro del conjunto de comparaciones es TRUE. TRUE si una subconsulta contiene a cualquiera de las filas. TRUE si el operando es igual a uno de la lista de expresiones. TRUE si el operando coincide con un patrn. Invierte el valor de cualquier otro operador booleano. TRUE si cualquiera de las dos expresiones booleanas es TRUE. TRUE si alguna de las comparaciones de un conjunto es TRUE.

Curso: Administracin de Base de Datos I

Sesin 04

BU7832 PC1035 PC8888 TC7777

4095 8780 4095 4095

(5 row(s) affected) B. Utilizar > y < en lugar de BETWEEN Este ejemplo, que utiliza los operadores mayor que (>) y menor que (<), devuelve resultados diferentes debido a que estos operadores no son inclusivos. USE pubs GO SELECT title_id, ytd_sales FROM titles WHERE ytd_sales > 4095 AND ytd_sales < 12000 GO El siguiente es el conjunto de resultados: title_id ytd_sales -------- ----------PC1035 8780 (1 row(s) affected) C. Utilizar NOT BETWEEN Este ejemplo busca todas las filas que no estn incluidas en un intervalo especificado (de 4.095 a 12.000). USE pubs GO SELECT title_id, ytd_sales FROM titles WHERE ytd_sales NOT BETWEEN 4095 AND 12000 GO El siguiente es el conjunto de resultados: title_id -------BU1111 BU2075 MC2222 MC3021 PS1372 PS2091 PS2106 PS3333 PS7777 TC3218 TC4203 ytd_sales ----------3876 18722 2032 22246 375 2045 111 4072 3336 375 15096

(11 row(s) affected)

Ing. Jaime Briones V. jaimebv@gmail.com

Curso: Administracin de Base de Datos I EXISTS Especifica una subconsulta para probar la existencia de filas. A. Comparar consultas mediante EXISTS e IN

Sesin 04

El ejemplo siguiente muestra consultas para buscar ttulos de libros publicados por algn editor ubicado en una ciudad que comience con la letra B. USE pubs GO SELECT title FROM titles WHERE EXISTS (SELECT * FROM publishers WHERE pub_id = titles.pub_id AND city LIKE 'B%') GO -- Or, using IN: USE pubs GO SELECT title FROM titles WHERE pub_id IN (SELECT pub_id FROM publishers WHERE city LIKE 'B%') GO ste es el conjunto de resultados de las consultas: title ----------------------------------------------------------------------The Busy Executive's Database Guide Cooking with Computers: Surreptitious Balance Sheets You Can Combat Computer Stress! Straight Talk About Computers But Is It User Friendly? Secrets of Silicon Valley Net Etiquette Is Anger the Enemy? Life Without Fear Prolonged Data Deprivation: Four Case Studies Emotional Security: A New Algorithm (11 row(s) affected) IN Determina si un valor dado coincide con algn valor de una subconsulta o lista. En este ejemplo se selecciona una lista con los nombres y estados de todos los autores que viven en California, Indiana o Maryland.

Ing. Jaime Briones V. jaimebv@gmail.com

Curso: Administracin de Base de Datos I

Sesin 04

USE pubs SELECT au_lname, state FROM authors WHERE state IN ('CA', 'IN', 'MD') ste es el conjunto de resultados de las consultas: au_lname state -----------White CA Green CA Carson CA O'Leary CA Straight CA Bennet CA Dull CA Gringlesby CA Locksley CA Yokomoto CA DeFrance IN Stringer CA MacFeather CA Karsen CA Panteley MD Hunter CA McBadden CA (17 row(s) affected)

Ing. Jaime Briones V. jaimebv@gmail.com

También podría gustarte