Antes de seguir desarrollando las consultas SQL debemos hacer un alto en el camino y hablar de los tipos de datos, asunto que trataremos a continuación, y de los operadores, que veremos en la próxima lección. Es importante entender bien estos conceptos.
Tipos de datos
Los tipos de datos son un concepto propio de la informática, presente en cualquier lenguaje de programación, donde cada entorno de programación tiene su modo particular de definirlos. Los hay muy diversos, clasificados por grupos, definidos por el usuario, etc. En este caso vamos a considerar solamente estos cuatro tipos:
- Cadenas (cadenas de texto o alfanuméricas)
- Números enteros (sin decimales)
- Números decimales (parte entera + parte decimal)
- Fechas
Como ya se ha dicho, cada entorno tiene su modo particular de definir los tipos de dato, aunque todos ellos se rigen en mayor o menor medida por un estándar. Veamos como se define cada uno ellos en SQL Server:
1.- Cadena: VARCHAR(Tamaño)
Las cadenas de texto son de tipo VARCHAR, y su tamaño máximo para un campo concreto se especifica indicando su longitud entre paréntesis. Por ejemplo: al diseñar la tabla Empleados, se debe valorar que longitud máxima se establece para el campo Nombre, de manera que pueda albergar cualquier nombre de persona que se pueda dar.
En el caso de la tabla Empleados, se decidió que como mucho un nombre no sobrepasara las 30 letras o caracteres, de modo que el tipo de dato para este campo se definirá como: VARCHAR(30); es decir, en el campo Nombre de la tabla Empleados se puede guardar cualquier cadena alfanumérica de hasta 30 caracteres. Notar que al hablar de tamaño máximo, estamos hablando de la ubicación para muchos posibles datos, no del dato en sí.
En el caso de la tabla Empleados, se decidió que como mucho un nombre no sobrepasara las 30 letras o caracteres, de modo que el tipo de dato para este campo se definirá como: VARCHAR(30); es decir, en el campo Nombre de la tabla Empleados se puede guardar cualquier cadena alfanumérica de hasta 30 caracteres. Notar que al hablar de tamaño máximo, estamos hablando de la ubicación para muchos posibles datos, no del dato en sí.
Cuando indicamos constantes en una consulta SQL, las cadenas de texto a diferencia de los números (ahora estamos hablando del dato en sí y no del tipo) siempre irán entre comillas simples para indicar al SGBD que se trata de una dato de tipo cadena y no de un dato de tipo número. Esto es muy importante y es necesario que quede bien entendido.
Por ejemplo, supongamos que queremos saber el salario que tiene Elena Rubio Cuestas. Un modo de hacerlo es realizar una consulta SQL que filtre por los apellidos, para tal propósito estableceremos una constante alfanumérica en la cláusula WHERE, exigiendo que sea igual al campo Apellidos (esta debe ir entre comillas).
SELECT Salario
FROM Empleados
WHERE Apellidos = 'Rubio Cuestas'
Notar que ahora no hablamos de tamaño máximo, pero podemos hablar del tamaño concreto del dato. En el caso de la constante 'Rubio Cuestas', su tamaño es 13.
De hecho existen mas tipos de dato para cadenas, cada uno con diferentes prestaciones, pero con el tipo VARCHAR nos sobra por ahora, así que asumiremos que es el único que existe.
2.- Número entero: INT
A diferencia del tipo VARCHAR, donde establecemos el tamaño máximo, para los números enteros existen varios tipos de dato de tamaño fijo, elegiremos uno u otro en función del tamaño máximo que necesitamos establecer. Cuando tratamos números es más correcto hablar de rango que de tamaño, es decir, bajo que rango de valores( máximo y mínimo) podemos operar con ese tipo. Como hicimos con el tipo cadena, nos quedaremos con uno para simplificar: el tipo INT.
El valor máximo y mínimo que puede alcanzar un número de este tipo es suficientemente alto y bajo como para no preocuparse por ello en el contexto de este curso. Recuerda que a diferencia de las cadenas, un entero no debe ir entre comillas en las consultas SQL cuando aparezca como constante.
Ejemplo de número entero: 3467
3.- Número decimal: FLOAT (coma flotante)
Para los números decimales también existen varios tipos de datos con diferentes rango de valores posibles. La parte entera la separamos por un punto de la parte decimal. Asumiremos que sólo existe el tipo FLOAT, con un rango de valores posibles suficientemente amplio. Al igual que los números enteros, los decimales no deben ir entre comillas en las consultas SQL.
Ejemplo de número decimal: 3467.00
4.- Fecha: DATE
El tipo DATE tiene el tamaño apropiado para registrar un dato de: año + mes + día. Existe también el tipo DATETIME, por ejemplo, que además del día registra la hora, y algunos más que no vamos a considerar por ahora.
Un dato de tipo DATE y/o DATETIME se expresa en forma de cadena con un formato determinado, de modo que quien procesa ese dato sabe cual es el año, el día o el mes en función de la posición que ocupa en la cadena alfanumérica.
Por ejemplo, tenemos el siguiente dato: 4 de noviembre de 2006. Para expresar este dato debemos hacerlo de la siguiente forma: 'aaaammdd' donde aaaa indica cuatro dígitos para el año, mm dos dígitos para el mes y dd dos dígitos para el día. De modo que el 4 de noviembre de 2006 lo expresaríamos así: '20061104' (también es válida la expresión '2006-11-04').
Al expresarse en forma de cadena, debe ir siempre entre comillas simples cuando aparece como constante en una consulta SQL. Existen otros modos de trabajar con datos de tipo DATE, pero por el momento supondremos que es el único modo que tenemos.
Ejemplo
Para finalizar la lección, echemos un vistazo a los tipos de datos bajo la columna llamada Type, de cada uno de los campos de la de la tabla Empleados:
Resumen
Cualquier dato es de un tipo concreto y tiene un tamaño determinado, en consecuencia cuando diseñamos una tabla, diseñaremos sus campos para ubicar un tipo de dato concreto y estableceremos un tamaño máximo para cada campo.
El tamaño máximo o rango de valores puede ir implícito en el propio tipo de dato, como es el caso del tipo INT, o bien debe especificarse en tiempo de diseño como ocurre con el tipo VARCHAR.
Los datos de tipo VARCHAR o cadenas de texto van siempre entre comillas simples, a diferencia de los números (INT y FLOAT).
Las fechas o datos de tipo DATE, se expresan en forma de cadena con un formato determinado, concretamente: 'aaaammdd' donde aaaa es el año, mm es el mes y dd es el día. Al ser cadenas deben ir siempre entre comillas simples.
Ejercicio propuesto
Defina de que tipo de dato crearía los campos, para almacenar los siguientes datos:
a) 'Hola mundo'
b) 9.36
c) 4564
d) 'Esto es un ejercicio de tipos de datos'
e) 8 de enero de 1998
Cualquier dato es de un tipo concreto y tiene un tamaño determinado, en consecuencia cuando diseñamos una tabla, diseñaremos sus campos para ubicar un tipo de dato concreto y estableceremos un tamaño máximo para cada campo.
El tamaño máximo o rango de valores puede ir implícito en el propio tipo de dato, como es el caso del tipo INT, o bien debe especificarse en tiempo de diseño como ocurre con el tipo VARCHAR.
Los datos de tipo VARCHAR o cadenas de texto van siempre entre comillas simples, a diferencia de los números (INT y FLOAT).
Las fechas o datos de tipo DATE, se expresan en forma de cadena con un formato determinado, concretamente: 'aaaammdd' donde aaaa es el año, mm es el mes y dd es el día. Al ser cadenas deben ir siempre entre comillas simples.
Ejercicio propuesto
Defina de que tipo de dato crearía los campos, para almacenar los siguientes datos:
a) 'Hola mundo'
b) 9.36
c) 4564
d) 'Esto es un ejercicio de tipos de datos'
e) 8 de enero de 1998
No hay comentarios:
Publicar un comentario