Tipos de dato que maneja el sql

56
http://es.wikipedia.org/wiki/SQL SQL SQL Desarrollador(es) IBM ISO/IEC 9075-1:2012 Información general Paradigma Multiparadigma Apareció en 1974 Diseñado por Donald D. Chamberlin Raymond F. Boyce Última versión estable SQL:2012 (2012) Tipo de dato Estático, Fuerte Implementacio nes Varias Dialectos SQL-86, SQL-89, SQL- 92, SQL:1999, SQL:2003,SQL:2008, S QL:2012 Influido por Datalog Ha influido a Agena, CQL, LINQ,Windows PowerShell [cita requerida]

Transcript of Tipos de dato que maneja el sql

Page 1: Tipos de dato que maneja el sql

http://es.wikipedia.org/wiki/SQL

SQL

SQL

Desarrollador(es)

IBM

ISO/IEC 9075-1:2012

Información general

Paradigma Multiparadigma

Apareció en 1974

Diseñado por Donald D. Chamberlin

Raymond F. Boyce

Última versión

estable

SQL:2012 (2012)

Tipo de dato Estático, Fuerte

Implementaciones Varias

Dialectos SQL-86, SQL-89, SQL-

92, SQL:1999, SQL:2003,SQL:2008, SQL:2012

Influido por Datalog

Ha influido a Agena, CQL, LINQ,Windows PowerShell[cita requerida]

Sistema operativo multiplataforma

SQL

Desarrollador

Page 2: Tipos de dato que maneja el sql

IBM

ISO/IEC 9075-1:2008

Información general

Extensión de archivo .sql

Tipo de MIME application/x-sql

Lanzamiento inicial 1986

Última versión SQL:2012

2012

Tipo de formato Base de datos

Estándar(es) ISO/IEC 9075

Formato abierto

El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es

un lenguaje declarativo de acceso a bases de datosrelacionales que permite especificar diversos tipos

de operaciones en estas. Una de sus características es el manejo del álgebra y el cálculo

relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de

interés de una base de datos, así como también hacer cambios sobre ella.

http://html.rincondelvago.com/bases-de-datos_10.html

¿Qué es una base de datos?

Lo representa un grupo de datos los cuales se procesan, relacionando su información.

Su utilidad representa una solución a la manipulación o procesamiento de pequeños y grandes volúmenes de información, ofreciendo mayor funcionalidad y rapidez de operación.

Introducción

El término base de datos fue acuñado por primera vez en 1963, en un simposio celebrado en California. De forma sencilla podemos indicar que una base de datos no es más que un conjunto de información relacionada que se encuentra agrupada o estructurada.

Page 3: Tipos de dato que maneja el sql

El archivo por sí mismo, no constituye una base de datos, sino más bien la forma en que está organizada la información es la que da origen a la base de datos. Las bases de datos manuales, pueden ser difíciles de gestionar y modificar. Por ejemplo, en una guía de teléfonos no es posible encontrar el número de un individuo si no sabemos su apellido, aunque conozcamos su domicilio.

Del mismo modo, en un archivo de pacientes en el que la información esté desordenada por el nombre de los mismos, será una tarea bastante engorrosa encontrar todos los pacientes que viven en una zona determinada. Los problemas expuestos anteriormente se pueden resolver creando una base de datos informatizada.

Desde el punto de vista informático, una base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulan ese conjunto de datos.

Desde el punto de vista más formal, podríamos definir una base de datos como un conjunto de datos estructurados, fiables y homogéneos, organizados independientemente en máquina, accesibles a tiempo real, compartibles por usuarios concurrentes que tienen necesidades de información diferente y no predecibles en el tiempo.

La idea general es que estamos tratando con una colección de datos que cumplen las siguientes propiedades:

Están estructurados independientemente de las aplicaciones y del soporte de almacenamiento que los contiene.

Presentan la menor redundancia posible.

Son compartidos por varios usuarios y/o aplicaciones.

Base de datos relacionales

En una computadora existen diferentes formas de almacenar información. Esto da lugar a distintos modelos de organización de la base de datos: jerárquico, red, relacional y orientada a objeto.

Los sistemas relacionales son importantes porque ofrecen muchos tipos de procesos de datos, como: simplicidad y generalidad, facilidad de uso para el usuario final, períodos cortos de aprendizaje y las consultas de información se especifican de forma sencilla.

Las tablas son un medio de representar la información de una forma más compacta y es posible acceder a la información contenida en dos o más tablas. Más adelante explicaremos que son las tablas.

Las bases de datos relacionales están constituidas por una o más tablas que contienen la información ordenada de una forma organizada. Cumplen las siguientes leyes básicas:

Generalmente, contendrán muchas tablas.

Una tabla sólo contiene un número fijo de campos.

El nombre de los campos de una tabla es distinto.

Cada registro de la tabla es único.

El orden de los registros y de los campos no está determinados.

Para cada campo existe un conjunto de valores posible.

Diseño de las bases de datos relacionales

Page 4: Tipos de dato que maneja el sql

El primer paso para crear una base de datos, es planificar el tipo de información que se quiere almacenar en la misma, teniendo en cuenta dos aspectos: la información disponible y la información que necesitamos.

La planificación de la estructura de la base de datos, en particular de las tablas, es vital para la gestión efectiva de la misma.

El diseño de la estructura de una tabla consiste en una descripción de cada uno de los campos que componen el registro y los valores o datos que contendrá cada uno de esos campos.

Los campos son los distintos tipos de datos que componen la tabla, por ejemplo: nombre, apellido, domicilio. La definición de un campo requiere: el nombre del campo, el tipo de campo, el ancho del campo, etc.

Los registros constituyen la información que va contenida en los campos de la tabla, por ejemplo: el nombre del paciente, el apellido del paciente y la dirección de este. Generalmente los diferente tipos de campos que su pueden almacenar son los siguientes: Texto (caracteres), Numérico (números), Fecha / Hora, Lógico (informaciones lógicas si/no, verdadero/falso, etc., imágenes.

En resumen, el principal aspecto a tener en cuenta durante el diseño de una tabla es determinar claramente los campos necesarios, definirlos en forma adecuada con un nombre especificando su tipo y su longitud.

Microsoft Access

Posiblemente, la aplicación más compleja de la suite Office, sea Access, una base de datos visual. Como todas las modernas bases de datos que trabajan en el entorno Windows, puede manejarse ejecutando unos cuantos clic de mouse sobre la pantalla. Access contiene herramientas de diseño y programación reservadas a los usuarios con mayor experiencia, aunque incluye bases de datos listas para ser usadas; están preparadas para tareas muy comunes, que cualquiera puede realizar en un momento determinado -ordenar libros, archivar documentación, etc.-.

Objetos de la base de datos

Tablas:

Unidad donde crearemos el conjunto de datos de nuestra base de datos. Estos datos estarán ordenados en columnas verticales. Aquí definiremos los campos y sus características. Más adelante veremos qué es un campo.

Consultas:

Aquí definiremos las preguntas que formularemos a la base de datos con el fin de extraer y presentar la información resultante de diferentes formas (pantalla, impresora...)

Formulario:

Elemento en forma de ficha que permite la gestión de los datos de una forma más cómoda y visiblemente más atractiva.

Informe:

Permite preparar los registros de la base de datos de forma personalizada para imprimirlos.

Macro:

Conjunto de instrucciones que se pueden almacenar para automatizar tareas repetitivas.

Módulo:

Page 5: Tipos de dato que maneja el sql

Programa o conjunto de instrucciones en lenguaje Visual Basic

Conceptos básicos de una base de datos

Campo:

Unidad básica de una base de datos. Un campo puede ser, por ejemplo, el nombre de una persona. Los nombres de los campos, no pueden empezar con espacios en blanco y caracteres especiales. No pueden llevar puntos, ni signos de exclamación o corchetes. Si pueden tener espacios en blanco en el medio. La descripción de un campo, permite aclarar información referida a los nombres del campo. El tipo de campo, permite especificar el tipo de información que cargaramos en dicho campo, esta puede ser:

Texto: para introducir cadenas de caracteres hasta un máximo de 255

Memo: para introducir un texto extenso. Hasta 65.535 caracteres

Numérico: para introducir números

Fecha/ Hora: para introducir datos en formato fecha u hora

Moneda: para introducir datos en formato número y con el signo monetario

Auto numérico: en este tipo de campo, Access numera automáticamente el contenido

Sí/No: campo lógico. Este tipo de campo es sólo si queremos un contenido del tipo Sí/No, Verdadero/Falso, etc.

Objeto OLE: para introducir una foto, gráfico, hoja de cálculo, sonido, etc.

Hipervínculo: podemos definir un enlace a una página Web

Asistente para búsquedas: crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro de lista o un cuadro combinado.

Registro:

Es el conjunto de información referida a una misma persona u objeto. Un registro vendría a ser algo así como una ficha.

Campo clave:

Campo que permite identificar y localizar un registro de manera ágil y organizada.

Propiedades generales de los campos

PROPIEDADDESCRIPCIÓNTIPO DE CAMPOTamaño del campoPermite establecer la longitud máxima de un campo de texto numérico.Texto, numérico, contadorFormatoPermite determinar la apariencia de presentación de los datos, utilizando los formatos predefinidos o nuestros propios formatosTodos, excepto OLE y MemoLugares decimalesPermite especificar el número de cifras decimales para mostrar los números.Numérico y monedaMáscara de entradaPermite controlar y filtrar los caracteres o valores que los usuarios introducen en un control de cuadro de texto, evitando errores y facilitando su escritura.Texto, numérico, fecha/hora, monedaTítuloPermite definir una etiqueta de campo predeterminada para un formularios o informeTodosValor predeterminadoIntroduce en el campo un valor cuando se agregan nuevos registros (long. Máx. 255 caracteres)Todos, excepto OLE y contadorRegla de validaciónPermite escribir la condición que deben satisfacer los datos introducidos para ser aceptadosTodos, excepto OLE y contadorTexto de validaciónDefine el texto del mensaje que se visualiza cuando los datos no cumplen las condiciones enumeradas en la regla de validaciónTodos excepto OLE y contadorRequeridoPermite especificar si es necesario que exista un valor en un campo.Todos excepto contadorPermitir longitud ceroPermite especificar si una cadena de longitud cero ("") es una entrada válida para el campoTexto,

Page 6: Tipos de dato que maneja el sql

memoIndexadoDefine un campo como índice o campo clave.Texto, numérico, contador, fecha/hora.

Las propiedades de un campo, se establecen seleccionando el campo y haciendo clic en la propiedad deseada del cuadro PROPIEDADES DEL CAMPO situado en la parte inferior de la ventana DISEÑO DE TABLA.

Access tiene una configuración predeterminada para las propiedades de cada uno de los tipos de campo. Sin duda la más importante es el tamaño del campo, ya que este nos permitirá hacer una estimación del espacio ocupado por nuestra base de datos en el disco fijo

FOX PRO

Es un lenguaje estructurado en un entorno de desarrollo donde ciertas tareas son asignadas a grupos de instrucciones llamadas programas. Además, Fox ofrece un acceso de información, bastante sencillo y fácil, incluso a las personas sin experiencia en programación.

Cuando se quiera realizar un programa debe tomarse en consideración lo que a continuación sigue:

Primero: Realizar un análisis de la información a manejar, previo a la elaboración del programa.

Segundo: Establecer la lógica de los pasos a utilizar en el programa.

Tercero: Hacer la conversión de la lógica de pasos a instrucciones del lenguaje.

Modo Operacional: Brinda un acceso en forma directa a la información de la base de datos.

Modo de Programación: Ofrece una administración de la información contenida en las bases de datos, a través de grupos de instrucciones.

Modo Operacional

Fox maneja los siguientes tipos de datos:

CHARACTER (Carácter): Presenta los valores alfanuméricos, siendo su capacidad máxima en números enteros de 19 dígitos, y para numero reales de 15 dígitos y 2 decimales.

LOGIC (Lógico): Este tipo de valores representa un ahorro de memoria, ya que almacena solamente un carácter, el cual puede ser falso o verdadero.

DATE (Fecha): Este tipo de valor almacena fechas, teniendo una longitud de 8 caracteres.

MEMO : Este tipo de valores permite el acceso a un editor donde se puede almacenar cualquier tipo de información.

¿Qué es un Campo?

Lo conforma una agrupación de datos o valores.

¿Qué es un Registro?

Lo conforma un conjunto de campos.

Instrucciones de Operación:

USE: Abre una base de datos.

CREATE: Crea una base de datos.

CREATE REPORT: Crea un informe.

LIST: Lista la información de una base de datos.

LIST STRUCTURE: Lista la estructura de una base de datos.

Page 7: Tipos de dato que maneja el sql

MODIFY STRUCTURE: Modifica la estructura de una base de datos.

MODIFY REPORT: Modifica una información.

DELETE: Borra registros de una base de datos.

DELETE FILE: Borra un archivo.

GO: Ubica el puntero en un registro en especial.

GO TOP: Ubica el puntero en el 1er. Registro de la base de datos.

GO BOTTOM: Ubica el puntero en el último registro de la base de datos.

EDIT: Cambia los registros de una base de datos en una ventana de edición.

FIND: Encuentra un registro en una base de datos.

BROWSE: Crea una ventana de visualización de los datos de una base de datos en forma

horizontal.

APPEND: Añade registros a una base de datos.

CLOSE: Cierra una base de datos.

INDEX: Crea un archivo índice.

PACK: Elimina físicamente registros con la marca de borrado de archivo de base de datos.

SEEK: Busca en una base de datos indexada.

CLEAR: Borra la pantalla.

QUIT: Genera la salida de Fox.

ZAP: Elimina los registros marcados de una base de datos.

¿Qué son los operadores?

Fox utiliza los siguientes operadores:

Aritméticos:

( ) = Paréntesis

**, ^ = Exponenciacion

* = Multiplicación

/ = División

+ = Suma

- = Resta

Relacionales:

= = Igual

< = Menor que

> = Mayor que

<> = Distinto

>= = Mayor o igual

<= = Menor o igual

Lógicos:

Page 8: Tipos de dato que maneja el sql

.NOT. = Negativo lógico que cambia el valor de verdad de una expresión indicada.

.AND. = El valor de verdad de una expresión será verdadero, siempre y cuando las 2

expresiones unidas por este conectador sean verdaderas.

.OR. = El valor de verdad de una expresión será verdadero, si por lo menos alguna de las

expresiones unidas por este conectador sea verdadera.

Modo de Programación

¿Qué es una variable?

Es un aspecto de memoria la cual almacena algún determinado valor.

¿Qué es una instrucción?

Es una palabra reservada por fox, la cual no puede ser utilizada como nombre de variable.

¿Qué es un procedimiento?

Es un grupo de instrucciones a ejecutar dentro de un programa.

¿Qué es una función?

Son instrucciones especiales que utiliza fox, las cuales devuelven valores matemáticos, de caracteres y lógicos; además existen dos tipos de función: Incorporadas y Definidas por el usuario.

Instrucciones de Programación:

?: Evalúa expresiones y visualiza el resultado en la pantalla.

ACCEPT: Acepta desde la pantalla una cadena de caracteres.

APPEND BLANK: Añade un registro en blanco a la base de datos.

MODIFY COMMAND: Entra al editor de fox.

DO: Activa los programas de fox.

DO WHILE: Realiza la ejecución de un bucle mientras sea verdadera la condición especificada.

REINDEX: Actualiza los archivos índices existentes.

RECALL: Recupera registros borrados lógicamente.

RUN/!: Ejecuta un programa externo.

WAIT: Espera una entrada desde el teclado.

CALL: Llama una sub.-rutina cargada en memoria.

CANCEL: Cancela un programa en ejecución.

COUNT: Cuenta los registros de una base de datos.

@...SAY/GET: Realiza la entrada y salida en la fila y columna especificada.

@...BOX: Dibuja un marco.

@...CLEAR: Borra un área especificada de la pantalla o ventana.

@...PROMPT: Crea un menú de barra.

ACTIVATE MENU: Visualiza y activa un menú de barra.

ACTIVATE POPUP: Visualiza y activa menú.

Page 9: Tipos de dato que maneja el sql

ACTIVATE SCREEN: Dirige la salida a la pantalla.

ACTIVATE WINDOW: Visualiza y activa una ventana.

APPEND MEMO: Llena un campo memo desde un archivo.

DEACTIVE MENU: Desactiva un menú y lo borra de la pantalla.

DEACTIVE POPUP: Desactiva una ventana y la borra de la pantalla.

DEACTIVE WINDOW: Desactiva ventanas y las borra de la pantalla.

DEFINE BAR: Define una opción del menú.

DEFINE BOX: Dibuja un recuadro alrededor del texto.

DEFINE MENU: Crea un menú de barra.

DEFINE PAD: Define un pad sobre el menú de barra.

DEFINE POPUP: Crea un menú.

DEFINE WINDOW: Crea una ventana.

DO CASE: Ejecuta instrucciones en un bucle, un especificado numero de veces.

EJECT: Hace avanzar la impresora al comienzo de la siguiente pagina.

FOR...ENDFOR: Ejecuta instrucciones en un bucle, un especificado numero de veces.

HIDE MENU: Oculta un menú de barra.

HIDE POPUP: Oculta un menú.

HIDE WINDOW: Quita una ventana de la pantalla

IMPUT: Introduce un dato a una variable de memoria.

ON ESCAPE: Interrumpe un programa al pulsar la tecla ESC.

ON READERROR: Ejecuta una rutina por un error de entrada.

READ: Lee datos de @... SAY/GET.

SET BELL ON/OFF: Conmuta la campana e inicializa atributos.

SET BLINK: Especifica los atributos de pantalla y colores.

SET CLOCK: Sitúa el reloj en la pantalla y especifica su posición.

SET COLOR: Se definen los colores del sistema de interfaz (sistema menú de barra).

SET COLOR TO: Especifica los colores de los menús y ventanas definidos por el usuario.

SET CONFIRM: Especifica si una tecla de finalización debe ser pulsada cuando se sale de un

campo o de una elección de menú de barra.

SET CONSOLE ON/OFF: Direcciona la salida a una venta o a la pantalla.

SET CURSOR ON/OFF: Visualiza o esconde el cursor.

SET DATE: Especifica el formato de la fecha.

SET DELETED: Especifica si los registros marcados para borrar serán usados.

SET ESCAPE ON/OFF: Habilita o inhabilita la tecla escape.

SET INTENSITY ON/OFF: Sobre iluminar la entrada de campos durante la edición.

SET MESSAGE: Define un mensaje y su localización en la pantalla o en una ventana.

Page 10: Tipos de dato que maneja el sql

SET MOUSE ON/OFF: Habilita un ratón y controla su sensibilidad.

SET PATH: Especifica el camino de directorio para búsqueda de archivos.

SET PRINTER ON/OFF: Habilita o inhabilita la salida a la impresora y especifica un puerto de salida.

SET SCOREBOARD ON/OFF: Especifica donde es visualizado el estado de las teclas: NUM

LOCK, CAPS LOCK e INSERT.

SET SHADOWS ON/OFF: Sitúa o elimina las sombras detrás de las ventanas.

SET TALK ON/OFF: Habilita o inhabilita información sobre el avance de las ordenes.

SORT: Ordena una base de datos.

SUM: Calcula la suma de campos numéricos.

SUSPEND: Suspende la ejecución de un programa.

TEXT... ENDTEXT: Da la salida a línea de textos.

TOTAL: Computa o calcula totales de campos numéricos.

FUNCTION: Define el comienzo de una sub.-rutina.

PROCEDURE: Define el comienzo de una sub.-rutina.

PARAMETERS: Define variables de memoria como parámetros de procedimientos.

Funciones

Las funciones de fox se dividen en dos categorías: Incorporadas y definidas por el usuario.

En ambos casos las funciones devuelven un valor. La función puede estar incluida en una expresión del mismo tipo, como si fuera una variable.

En el caso de una función definida por el usuario, el regreso de la función debe ser a través de una instrucción RETURN donde la expresión es una expresión valida para el lenguaje fox.

Con las funciones definidas por el usuario, la función, igual que un procedimiento, puede tomar parámetros. Si esto ocurre, la primera instrucción a ejecutar después de la instrucción FUNCTION o PROCEDURE, debe ser una instrucción PARAMENTERS.

Instrucciones de Función:

ALLTRIM (): Elimina los primeros y últimos blancos de una expresión o carácter.

BAR (): Devuelve el numero del último indicador de barra seleccionado de un menú.

BOF (): Devuelve un valor verdadero, si el puntero de registro esta posesionado en el comienzo de una base de datos.

CAPSLOCK (): Devuelve el estado actual de CAPSLOCK.

CDOW (): Devuelve el día de la semana que corresponde a un dato tipo fecha.

CHR (): Devuelve el carácter correspondiente a la tabla ASCII.

CMONTH (): Devuelve el nombre del mes que corresponde a un dato tipo fecha.

COL (): Devuelve la posición de la columna actual del cursor.

CTOD (): Convierte una expresión de caracteres a una expresión de fecha.

CURDIR (): Devuelve el directorio actual del DOS.

DATE (): Devuelve la fecha actual del sistema.

Page 11: Tipos de dato que maneja el sql

DAY (): Devuelve el día del mes correspondiente a un dato tipo fecha.

DBF (): Devuelve el nombre de archivo de la base de datos.

DELETED (): Devuelve un valor verdadero, si el registro actual esta marcado para borrado.

DISKSPACE (): Devuelve el espacio disponible actual en la unidad de disco por omisión.

DMY (): Convierte una expresión de fecha a un formato de día, mes, año.

DOW (): Devuelve el día numérico de la semana correspondiente a un dato de fecha.

DTOC (): Devuelve una expresión de tipo fecha a una expresión carácter.

EOF (): Devuelve un valor verdadero si el puntero de registro esta posesionado al final del archivo de la base de datos.

FIELD (): Devuelve el nombre de un campo de una base de datos.

INKEY (): Devuelve un valor entero que corresponde al valor ASCII de la ultima tecla pulsada, o a un solo clic de ratón.

INT (): Devuelve la parte entera de una expresión numérica.

ISALPHA (): Devuelve un valor verdadero si una expresión carácter comienza con un carácter alfabético.

ISCOLOR (): Devuelve un valor verdadero si esta corriendo con un monitor a color.

ISLOWER (): Devuelve un valor verdadero sí el primer carácter de una expresión de tipo carácter esta en minúscula.

ISUPPER (): Devuelve un valor verdadero sí el primer carácter de una expresión de tipo carácter esta en mayúscula.

LEN (): Devuelve la longitud de una expresión de tipo carácter.

LTRIM (): Quita los primeros blancos de una expresión de tipo carácter.

OS (): Devuelve el nombre y numero de versión del sistema operativo bajo el que se esta corriendo Fox.

RECND (): Devuelve el numero de registro actual de una base de datos.

STR (): Convierte una expresión numérica a una expresión carácter.

VAL (): Devuelve el valor numérico de una expresión de tipo carácter compuesta por dígitos.

TIME (): Devuelve la hora actual del sistema.

SYS (): Da información del sistema.

TRIM (): Recorta los blancos finales de una expresión de tipo carácter.

VERSION (): Devuelve la versión actual de Fox que esta siendo ejecutada.

WCOLS (): Devuelve el numero de columnas disponibles en una ventana.

TIPOS DE DATO QUE MANEJA EL sql

Page 12: Tipos de dato que maneja el sql

Mostramos unas tablas con todos los tipos de datos que hay en SQL.Por Claudio

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos

reconocidos por dichos tipos de datos. Los tipos de datos primarios son:

Tipo de

DatosLongitud Descripción

BINARY 1 bytePara consultas sobre tabla adjunta de productos de bases de datos

que definen un tipo de datos Binario.

BIT 1 byte Valores Si/No ó True/False

BYTE 1 byte Un valor entero entre 0 y 255.

COUNTER 4 bytes Un número incrementado automáticamente (de tipo Long)

CURRENCY 8 bytesUn entero escalable entre 922.337.203.685.477,5808 y

922.337.203.685.477,5807.

DATETIME 8 bytes Un valor de fecha u hora entre los años 100 y 9999.

SINGLE 4 bytes

Un valor en punto flotante de precisión simple con un rango de -

3.402823*1038 a -1.401298*10-45 para valores negativos,

1.401298*10- 45 a 3.402823*1038 para valores positivos, y 0.

DOUBLE 8 bytes

Un valor en punto flotante de doble precisión con un rango de -

1.79769313486232*10308 a -4.94065645841247*10-324 para valores

negativos, 4.94065645841247*10-324 a 1.79769313486232*10308

para valores positivos, y 0.

SHORT 2 bytes Un entero corto entre -32,768 y 32,767.

LONG 4 bytes Un entero largo entre -2,147,483,648 y 2,147,483,647.

LONGTEXT1 byte por

carácterDe cero a un máximo de 1.2 gigabytes.

LONGBINARYSegún se

necesiteDe cero 1 gigabyte. Utilizado para objetos OLE.

TEXT1 byte por

carácterDe cero a 255 caracteres.

La siguiente tabla recoge los sinónimos de los tipos de datos definidos: 

Page 13: Tipos de dato que maneja el sql

Tipo de Dato Sinónimos

BINARY VARBINARY

BIT

BOOLEAN 

LOGICAL 

LOGICAL1 

YESNO

BYTE INTEGER1

COUNTER AUTOINCREMENT

CURRENCY MONEY

DATETIME

DATE 

TIME 

TIMESTAMP

SINGLE

FLOAT4 

IEEESINGLE 

REAL

DOUBLE

FLOAT

FLOAT8 

IEEEDOUBLE 

NUMBER 

NUMERIC

SHORTINTEGER2 

SMALLINT

LONG

INT 

INTEGER 

INTEGER4

LONGBINARYGENERAL 

OLEOBJECT

LONGTEXT

LONGCHAR

MEMO 

NOTE

TEXT

ALPHANUMERIC 

CHAR - CHARACTER 

STRING - VARCHAR

VARIANT (No Admitido) VALUE

http://msdn.microsoft.com/es-es/library/ms187752.aspx

En SQL Server, cada columna, variable local, expresión y parámetro tiene un tipo de datos relacionado. Un tipo de datos es un atributo que especifica el tipo de datos que el objeto puede contener: datos de enteros, datos de caracteres, datos de moneda, datos de fecha y hora, cadenas binarias, etc.

SQL Server proporciona un conjunto de tipos de datos del sistema que define todos los tipos de datos que pueden utilizarse con SQL Server. También puede

Page 14: Tipos de dato que maneja el sql

definir sus propios tipos de datos en Transact-SQL o Microsoft .NET Framework. Los tipos de datos de alias están basados en los tipos de datos proporcionados por el sistema. Para obtener más información acerca de los tipos de datos de alias, vea CREATE TYPE (Transact-SQL). Los tipos definidos por el usuario obtienen sus características de los métodos y los operadores de una clase que se crean mediante uno de los lenguajes de programación compatibles con .NET Framework.

Cuando dos expresiones que tienen tipos de datos, intercalaciones, precisión, escala o longitud diferentes son combinadas por un operador, las características del resultado vienen determinadas por lo siguiente:

El tipo de datos del resultado viene determinado por la aplicación de las reglas de precedencia de tipos de datos a los tipos de datos de las expresiones de entrada. Para obtener más información, vea Prioridad de tipo de datos (Transact-SQL).

La intercalación del resultado viene determinada por las reglas de precedencia de intercalación cuando el tipo de datos del resultado es char, varchar, text, nchar, nvarchar o ntext. Para obtener más información, vea Prioridad de intercalación (Transact-SQL).

La precisión, escala y longitud del resultado dependen de la precisión, escala y longitud de las expresiones de entrada. Para obtener más información, vea Precisión, escala y longitud (Transact-SQL).

SQL Server proporciona sinónimos de tipos de datos para la compatibilidad con ISO. Para obtener más información, vea Sinónimos de tipos de datos (Transact-SQL).

  Categorías de tipos de datos

Los tipos de datos de SQL Server se organizan en las siguientes categorías:

Numéricos exactos Cadenas de caracteres UnicodeNuméricos aproximados Cadenas binariasFecha y hora Otros tipos de datosCadenas de caracteres

En SQL Server, según las características de almacenamiento, algunos tipos de datos están designados como pertenecientes a los siguientes grupos:

Tipos de datos de valores grandes: varchar(max), nvarchar(max) y varbinary(max)

Page 15: Tipos de dato que maneja el sql

Tipos de datos de objetos grandes: text, ntext, image, varchar(max), nvarchar(max), varbinary(max) y xml

 Nota

sp_help devuelve -1 como longitud de los tipos de datos de valores grandes y xml.

Numéricos exactos

bigint numericbit smallintdecimal smallmoneyint tinyintmoney

Numéricos aproximados

float real

Fecha y hora

date datetimeoffsetdatetime2 smalldatetimedatetime time

Cadenas de caracteres

char varchartext

Cadenas de caracteres Unicode

nchar nvarcharntext

Cadenas binarias

binary varbinaryimage

Otros tipos de datos

cursor timestamphierarchyid uniqueidentifiersql_variant xml

tabla

http://laboratorio.is.escuelaing.edu.co/labinfo/doc/Manual_Basico_de_MySQL.pdf

2. TIPOS DE DATOS

Page 16: Tipos de dato que maneja el sql

Los tipos de datos en MySQL se pueden clasificar en tres grupos:

• Tipos Numéricos

• Tipos de Fecha

• Tipos de Cadena

2.1 Tipos Numéricos

En los tipos numéricos podemos encontrar:

• TinyInt: número entero que puede tener o no signo. Si lleva signo el

rango de valores es de -128 a 127 y sin signo 0 a 255. El tamaño de

almacenamiento es de 1 byte.

• Bit ó Bool: número entero: 0 ó 1.

• SmallInt: número entero que puede tener o no signo. Si tiene signo el

rango es de -32768 a 32767 y sin signo 0 a 65535. El tamaño de

almacenamiento es de 2 bytes.

• MediumInt: número entero que puede tener o no signo. Si tiene signo

el rango es de -8.388.608 a 8.388.607 y sin signo 0 a16777215. El

tamaño de almacenamiento es de 3 bytes.

• Integer, Int: número entero que puede tener o no signo. Si tiene signo

el rango es de -2147483648 a 2147483647 y sin signo el 0 a

429.4967.295. El tamaño de almacenamiento es de 4 bytes.

• BigInt: número entero que puede tener o no signo. Si tiene signo el

rango es de -9.223.372.036.854.775.808 a

9.223.372.036.854.775.807 y sin signo 0 a

18.446.744.073.709.551.615. El tamaño de almacenamiento es de 8

bytes.

• Float: número pequeño en coma flotante de precisión simple. Los

rangos están entre -3.402823466E+38 a -1.175494351E-38, 0 y desde

Page 17: Tipos de dato que maneja el sql

1.175494351E-38 a 3.402823466E+38. El tamaño de almacenamiento

es de 4 bytes.

• Real, Double: número en coma flotante de precisión doble. Los

rangos entan entre -1.7976931348623157E+308 a -

2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308. El tamaño de almacenamiento es de 8

bytes.

• Decimal, Dec, Numeric: Número en coma flotante desempaquetado y

es almacenado como una cadena.

2.2 Tipos De Fecha

MySQL no prueba de una manera precisa si la fecha ingresada es o no

válida, únicamente realiza las comparaciones lógicas como lo son que el mes

este entre 0 y 12 y que el día entre 0 y 31.

• Date: tipo fecha, almacena una fecha. El rango esta entre el 1 de enero

del 1001 al 31 de diciembre de 9999. El formato de almacenamiento

queda de la forma: año-mes-día. El tamaño de almacenamiento es de 3

bytes

• DateTime: Es una combinación de fecha y hora, donde los valores están

entre el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31

de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El

formato de almacenamiento queda de la forma: año-mes-día

horas:minutos:segundo. El tamaño de almacenamiento es de 8 bytes

• TimeStamp: Es una combinación de fecha y hora y los valores están

desde el 1 de enero de 1970 al año 2037. El tamaño de almacenamiento

es de 4 bytes

• Time: almacena una hora. El rango puede estar entre -838 horas, 59

Page 18: Tipos de dato que maneja el sql

minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de

almacenamiento es de la forma: 'HH:MM:SS'. El tamaño de

almacenamiento es de 3 bytes.

• Year: almacena un año. El rango es desde el año 1901 al año 2155. El

tamaño de almacenamiento es de 1 bytes.

2.3 Tipos De Cadena

• Char(n): almacena una cadena de longitud fija y puede contener entre 0

y 255 caracteres. El tamaño de almacenamiento es de n bytes.

• VarChar(n): almacena una cadena de longitud variable y puede contener

entre 0 y 255 caracteres. El tamaño de almacenamiento es de n+1 bytes. • TinyText y TinyBlob: Columna con una longitud máxima de 255

caracteres, donde su tamaño de almacenamiento es de longitud + 1

bytes.

• Blob y Text: texto con un máximo de 65535 caracteres. Su tamaño de

almacenamiento es de longitud + 2 bytes

• MediumBlob y MediumText: texto con un máximo de 16.777.215

caracteres. Su tamaño de almacenamiento es de longitud + 3 bytes

• LongBlob y LongText: texto con un máximo de caracteres

4.294.967.295. Su tamaño de almacenamiento es de longitud + 4 bytes

• Enum: campo que puede tener un único valor de una lista que se

especifica y admite hasta 65535 valores distintos.

• Set: un campo que puede contener cero, uno ó varios valores de una

lista, la cual puede tener un máximo de 64 valores. 3. MANEJO DE BASES DE DATOS EN MySQL

Comandos para el manejo de Bases de Datos en MySQL:

• CREATE [nombre]: Crea una base de datos con el nombre dado

mysql> create database miprueba;

Page 19: Tipos de dato que maneja el sql

• SELECT: Es un comando utilizado para traer información desde una tabla

SELECT seleccionar_Esto

FROM desde_tabla

WHERE condiciones;

• SHOW: Lista las bases de datos que hay en el servidor MySQL o las

tablas de la base de datos

mysql> show databases;

mysql> show tables;

• DESCRIBE permite obtener información sobre una tabla, para saber qué

campos tiene y de qué tipo,

mysql> describe prueba;

• USE db_nombre: indica a MySQL que use la base de datos db_nombre

como la base de datos por defecto.

mysql> use miprueba;

• DROP DATABASE: elimina todas las tablas de la base de datos,

juntamente con la base de datos.

• QUIT permite salir de la línea de comandos de MySQL.

mysql> quit • MYSQLACCESS: verifica los permisos de acceso para una combinación

de máquina. base de datos y usuario.

• MYSQLADMIN: Es el cliente que realiza tareas administrativas, a su vez

es un comando con el cual consultar la versión, información de procesos,

e información de estado del servidor.

• PERROR: Comando que muestra el significado de los errores de sistema

de MySQL.

mysql> perror [opciones] código_de_error ...

• CREATE TABLE: Sentencia para especificar la estructura de una tabla

Page 20: Tipos de dato que maneja el sql

donde se especifica los tipos de variable para cada ítem de la tabla.

mysql> CREATE TABLE pet (name VARCHAR(20), owner

VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death

DATE);

• SHOW TABLES: Comando que permite ver cuales tablas hay en la base

de datos.

• UPDATE: Comando que modifica solo el registro en cuestión y no

requiere que se vuelva a llenar la tabla.

mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';

3.1 Manejo De Usuarios En MySQL

En MySQL existen cinco niveles distintos de privilegios:

• Globales: se aplican al conjunto de todas las bases de datos en un

servidor. Este es el nivel más alto de privilegio.

• De base de datos: se refieren a bases de datos individuales y a su

contenido. • De tabla: se aplican a tablas individuales y sus respectivas columnas.

• De columna: se aplican a una columna en una tabla concreta.

• De rutina: se aplican a los procedimientos almacenados.

Estos son algunos comandos en cuanto al manejo de Usuarios:

• CREATE USER: crea nuevas cuentas MySQL

• DROP USER: elimina una o más cuentas MySQL

• CURRENT_USER: Devuelve el nombre de usuario y el del host para

el que está autentificada la conexión actual

http://www.ie.uia.mx/acad/atortole/bd/sql/tipos.html

Tipos de Datos

Page 21: Tipos de dato que maneja el sql

SQL maneja básicamente seis tipos de datos:

Numéricos exactos (exact numerics) Numéricos aproximados (approximate numerics) Cadenas de caracteres (character strings) Cadenas de bits (bit strings) Fechas y tiempos (datetimes) Intervalos (intervals)

Numéricos exactos (exact numerics)

Existen cuatro tipos de datos en esta categoría:

INTEGER: No tiene parte fraccional y su precisión (el número máximo de dígitos que puede tener) depende de la implementación.

SMALLINT: También es para enteros. Su precisión también depende de la implementación pero no puede ser mayor (aunque puede ser igual) que la precisión de un INTEGER.

NUMERIC: Puede tener parte fraccional. Se puede especifricar la precisión y la escala (scale - el número de dígitos en la parte fraccional). Si no se especifica la precisión o la precisión ni la escala, entonces se tienen los valores por omisión de la implementación.

DECIMAL: Es similar al NUMERIC, pero con mayor precisión. Puede almacenar valores con mayor precisión que la especificada en caso de ser necesario.

Numéricos aproximados (approximate numerics)

Existen tres tipos de datos:

REAL: Números de punto flotante (mantisa y exponente) de precisión simple, la cual depende de la implementación.

DOUBLE PRECISION: Números de punto flotante de doble precisión, la cual también depende de la implementación. En algunos casos es el doble en mantisa y en exponente, en otros casos es algo cercano al doble y en otros casos es sólo el doble en la mantisa. El estándar sólo establece que la precisión de un DOUBLE PRECISION sea mayor a la de un REAL.

FLOAT: Número de punto flotante que permite especificar la precisión deseada. Dependiendo de la implementación y de la precisión especificada se utiliza aritmética de precisión simple o de doble precisión.

Cadenas de caracteres (character strings)

Existen dos tipos principales:

CHARACTER o CHAR: Para cadenas de caracteres de tamaño fijo. Se debe especificar el número máximo de caracteres. El tamaño restante, en caso de no ocupar la longitud máxima, se rellena con espacios. en caso de no especificar un número de caracteres, entonces se toma el valor por omisión, que es de un caracter.

CHARACTER VARYING o VARCHAR: Para cadenas de caracteres de tamaño variable. Este tipo es útil cuando se quieren cadenas de longitud variable pero sin que se rellene de espacios el tamaño restante, guardando solamente los caracteres deseados. También permite especificar un número máximo de caracteres.

Page 22: Tipos de dato que maneja el sql

Existen además dos variantes de estos tipos de datos: NATIONAL CHARACTER y NATIONAL CHARACTER VARYING, para utilizar el conjunto de caracteres nacional de la implementación en lugar que el conjunto de caracteres de la implementación.

Cadenas de bits (bit strings)

Aceptan cualquier cadena arbitraria de bis. Existen dos tipos:

BIT: Se especifica el tamaño de la cadena en bits, o un bit por omisión BIT VARYING: Puede acomodar cadenas de bits de diferentes tamaños,

especificando una longitud máxima.

Fechas y tiempos (datetimes)

Se definen cinco tipos que tratan con fechas y tiempos:

DATE: Guarda año, mes y día en una fecha de la formaAAAA-MM-DD. TIME: Guarda horas, minutos y segundos de determinado tiempo de la

forma HH:MM:SS. Los segundos pueden llevar parte fraccionaria de por lo menos 6 dígitos pero depende de la implementación. Se puede especificar el número de posiciones siendo 8 el valor por omisión (el punto decimal de los segundos ocupa la novena posición).

TIMESTAMP: Incluye fecha y tiempo. Tiene la misma característica que DATE y TIME, excepto que el valor por omisión para la parte fraccional de los segundos para un TIMESTAMP es de 6 dígitos. Es de la forma: AAAA-MM-DD HH:MM:SS.

TIME WITH TIME ZONE: Igual que TIME pero agrega información de offset con respecto al UT (Universal Time, o también conocido como GMT). Este offset puede ser positivo o negativo. Puede llevar parte fraccionaria. Es de la forma HH:MM:SS+/-HH:MM.

TIMESTAMP WITH TIME ZONE: Igual que TIMESTAMP pero con información de offset con respecto al UT. Puede llevar parte fraccionaria. Es de la forma AAAA-MM-DD HH:MM:SS+/-HH:MM.

Intervalos (intervals)

Es muy similar a los tipos de datos de fechas. Un intervalo es la diferencia entre dos valores de fechas o tiempos. Se tiene dos tipos de intervalos:

año - mes: El número de años y meses entre dos fechas. día - tiempo: el número de días, horas, minutos y segundos entre

dos fechas de un mismo mes

Valores Nulos

Un campo que no posee un valor tiene un valor nulo, que no es lo mismo que un valor de cero para un numérico o un espacio para una cadena. Un valor nulo es un valor indefinido.

http://www.maestrosdelweb.com/editorial/tutsql1/

Page 23: Tipos de dato que maneja el sql

1. INTRODUCCIÓN

El

lenguaje de consulta estructurado (SQL)

es un lenguaje de base de datos normalizado, utilizado por el motor de

base

de datos de Microsoft Jet. SQL

se utiliza para crear objetos QueryDef, como el argumento de origen del

método

OpenRecordSet y como la propiedad RecordSource del control de datos.

También

se puede utilizar con el método Execute para crear y manipular

directamente

las bases de datos Jet y crear consultas SQL

de paso a través para manipular bases de datos remotas cliente –

servidor.

1.1. COMPONENTES DEL SQLEl

lenguaje SQL está compuesto por comandos, cláusulas, operadores

y funciones de agregado. Estos elementos se combinan en las

instrucciones para

crear, actualizar y manipular las bases de datos.

1.2COMANDOSExisten

dos tipos de comandos SQL:

Los

DLL que permiten crear y definir nuevas bases de datos, campos e índices.

Los DML que permiten generar consultas para ordenar, filtrar y extraer

datos

de la base de datos.

Page 24: Tipos de dato que maneja el sql

COMANDOS DLL

Comando Descripción

CREATEUtilizado para crear nuevas tablas, campose índices

DROP Empleado para eliminar tablas e índices

ALTERUtilizado para modificar las tablas agregandocampos o cambiando la definición de los campos.

COMANDOS DML

Comando Descripción

SELECT

Utilizadopara consultar registros de la base de datos que satisfagan un criteriodeterminado

INSERT

Utilizadopara cargar lotes de datos en la base de datos en una únicaoperación.

UPDATEUtilizadopara modificar los valores de los campos y registros especificados

DELETEUtilizadopara eliminar registros de una tabla de una base de datos

1.3 CLÁUSULASLas cláusulas son condiciones de modificación utilizadas para

definir los datos que desea seleccionar o manipular.

Comando Descripción

Page 25: Tipos de dato que maneja el sql

FROMUtilizadapara especificar la tabla de la cual se van a seleccionar los registros

WHERE

Utilizadapara especificar las condiciones que deben reunir los registros quese van a seleccionar

GROUPBY

Utilizadapara separar los registros seleccionados en grupos específicos

HAVINGUtilizadapara expresar la condición que debe satisfacer cada grupo

ORDERBY

Utilizadapara ordenar los registros seleccionados de acuerdo con un orden específico

1.4 OPERADORES LÓGICOS

Operador Uso

AND

Esel “y” lógico. Evalúa dos condiciones y devuelve unvalor de verdad sólo si ambas son ciertas.

OR

Esel “o” lógico. Evalúa dos condiciones y devuelve unvalor de verdad si alguna de las dos es cierta.

NOTNegaciónlógica. Devuelve el valor contrario de la expresión.

1.5OPERADORES DE COMPARACIÓN

Operador Uso

Page 26: Tipos de dato que maneja el sql

<Menorque

>Mayorque

<>Distintode

<=Menoró Igual que

>=Mayoró Igual que

BETWEENUtilizadopara especificar un intervalo de valores.

LIKEUtilizadoen la comparación de un modelo

InUtilizadopara especificar registros de una base de datos

1.6 FUNCIONES DE AGREGADOLas

funciones de agregado se usan dentro de una cláusula SELECT

en grupos de registros para devolver un único valor que se aplica a un

grupo de registros.

Comando Descripción

AVGUtilizadapara calcular el promedio de los valores de un campo determinado

COUNT Utilizada

Page 27: Tipos de dato que maneja el sql

para devolver el número de registros de la selección

SUMUtilizadapara devolver la suma de todos los valores de un campo determinado

MAXUtilizadapara devolver el valor más alto de un campo especificado

MINUtilizadapara devolver el valor más bajo de un campo especificado

2. CONSULTAS DE SELECCIÓN

Las consultas de selección se utilizan para

indicar al motor de datos que devuelva información de las bases de

datos, esta información es devuelta en forma de conjunto de registros

que se pueden almacenar en un objeto recordset. Este conjunto de

registros

es modificable.

2.1 CONSULTAS BÁSICASLa sintaxis básica de una consulta

de selección es la siguiente:

SELECT Campos FROM Tabla;

En donde campos es la lista de campos

que se deseen recuperar y tabla es el origen de los mismos, por

ejemplo:

SELECT Nombre, Telefono FROM Clientes;

Page 28: Tipos de dato que maneja el sql

Esta consulta devuelve un recordset con

el campo nombre y teléfono de la tabla clientes.

2.2 ORDENAR LOS REGISTROSAdicionalmente se puede especificar el

orden en que se desean recuperar los registros de las tablas mediante la

claúsula

ORDER BY Lista de Campos. En donde Lista de campos representa los

campos a ordenar.

Ejemplo:

SELECT CodigoPostal, Nombre, Telefono

FROM Clientes ORDER BY Nombre;

Esta consulta devuelve los campos CodigoPostal,

Nombre, Telefono de la tabla Clientes ordenados por el campo Nombre.

Se pueden ordenar los registros por mas

de un campo, como por ejemplo:

SELECT CodigoPostal, Nombre, Telefono

FROM Clientes ORDER BY

CodigoPostal, Nombre;

Incluso se puede especificar el orden

de los registros: ascendente mediante la claúsula (ASC -se toma este

valor por defecto) ó descendente (DESC)

Page 29: Tipos de dato que maneja el sql

SELECT CodigoPostal, Nombre, Telefono

FROM Clientes ORDER BY

CodigoPostal DESC , Nombre ASC;

2.3 CONSULTAS CON PREDICADOEl predicado se incluye entre la claúsula

y el primer nombre del campo a recuperar, los posibles predicados son:

Predicado Descripción

ALLDevuelve todoslos campos de la tabla

TOPDevuelve un determinado númerode registros de la tabla

DISTINCTOmite los registros cuyoscampos seleccionados coincidan totalmente

DISTINCROW

Omite los registros duplicadosbasandose en la totalidad del registro y no sólo en los camposseleccionados.

ALL:

Si no se incluye ninguno

de los predicados se asume ALL.

El Motor de base de datos selecciona todos los registros que cumplen las

condiciones

de la instrucción SQL. No se conveniente abusar de este predicado ya

que obligamos al motor de la base de datos a analizar la estructura de la

tabla

Page 30: Tipos de dato que maneja el sql

para averiguar los campos que contiene, es mucho más rápido indicar

el listado de campos deseados.

SELECT ALL FROM Empleados;

SELECT * FROM Empleados;

TOP:

Devuelve un cierto número de registros que entran entre al principio

o al final de un rango especificado por una cláusula ORDER

BY. Supongamos que queremos recuperar los nombres de los 25

primeros estudiantes del curso 1994:

SELECT TOP 25 Nombre, Apellido FROM

Estudiantes

ORDER BY Nota DESC;

Si no se incluye la cláusula ORDER

BY, la consulta devolverá un conjunto arbitrario de 25

registros de la tabla Estudiantes .El predicado TOP no elige entre

valores iguales. En el ejemplo anterior, si la nota media número

25 y la 26 son iguales, la consulta devolverá 26 registros. Se puede

utilizar la palabra reservada PERCENT para devolver un cierto

porcentaje de registros que caen al principio o al final

de un rango especificado por la cláusula ORDER

BY. Supongamos que en lugar de los 25 primeros estudiantes deseamos

el 10 por ciento del curso:

Page 31: Tipos de dato que maneja el sql

SELECT TOP 10 PERCENT Nombre, Apellido

FROM Estudiantes

ORDER BY Nota DESC;

El valor que va a continuación

de TOP debe ser un Integer sin signo.TOP no afecta a la posible

actualización

de la consulta.

DISTINCT:

Omite

los registros que contienen datos duplicados en los campos

seleccionados. Para

que los valores de cada campo listado en la instrucción SELECT se

incluyan en la consulta deben ser únicos.

Por ejemplo, varios empleados listados

en la tabla Empleados pueden tener el mismo apellido. Si dos registros

contienen

López en el campo Apellido, la siguiente instrucción SQL devuelve

un único registro:

SELECT DISTINCT Apellido FROM Empleados;

Con otras palabras el predicado DISTINCT devuelve aquellos registros

cuyos campos indicados en la cláusula SELECT

posean un contenido diferente. El resultado de una consulta que

utiliza DISTINCT

no es actualizable y no refleja los cambios subsiguientes realizados por

Page 32: Tipos de dato que maneja el sql

otros

usuarios.

DISTINCTROW:

Devuelve los registros diferentes

de una tabla; a diferencia del predicado anterior que sólo se fijaba

en el contenido de los campos seleccionados, éste lo hace en el

contenido

del registro completo independientemente de los campo indicados en la

cláusulaSELECT.

SELECT DISTINCTROW Apellido FROM Empleados;

Si la tabla empleados contiene dos registros:

Antonio López y Marta López el ejemplo del

predicado DISTINCT devuleve un único registro con el valor López en el

campo Apellido

ya que busca no duplicados en dicho campo. Este último ejemplo

devuelve

dos registros con el valor López en el apellido ya que se buscan no

duplicados

en el registro completo.

2.4 ALIASEn determinadas circunstancias es necesario

asignar un nombre a alguna columna determinada de un conjunto

devuelto, otras

veces por simple capricho o por otras circunstancias. Para resolver todas

ellas

tenemos la palabra reservada AS que se encarga de asignar el nombre

que deseamos

a la columna deseada. Tomado como referencia el ejemplo anterior

podemos hacer

que la columna devuelta por la consulta, en lugar de llamarse apellido

(igual

Page 33: Tipos de dato que maneja el sql

que el campo devuelto) se llame Empleado. En este caso procederíamos

de la siguiente forma:

SELECT DISTINCTROW Apellido AS Empleado

FROM Empleados;

2.5 RECUPERAR INFORMACIÓN DE UNABASE DE DATOS EXTERNAPara concluir este capítulo se

debe hacer referencia a la recuperación de registros de bases de datos

externa. Es ocasiones es necesario la recuperación de información

que se encuentra contenida en una tabla que no se encuentra en la base

de datos

que ejecutará la consulta o que en ese momento no se encuentra

abierta,

esta situación la podemos salvar con la palabra reservada IN de la

siguiente

forma:

SELECT DISTINCTROW Apellido AS Empleado

FROM Empleados

IN 'c:\databases\gestion.mdb';

En donde c:\databases\gestion.mdb es la

base de datos que contiene la tabla Empleados.

Siguiente capítulo: Criterios

de Selección

Page 34: Tipos de dato que maneja el sql

AGRUPAMIENTO DE REGISTROSAprenderemos a combinar los registros con valores idénticos, en la lista de campos especificados, en un único registro.

4. AGRUPAMIENTO DE REGISTROS

4.1 GROUP BYCombina los registros con valores idénticos,en la lista de campos especificados, en un único registro. Para cadaregistro se crea un valor sumario si se incluye una función SQL agregada,como por ejemplo Sum o Count, en la instrucción SELECT.Su sintaxis es:

SELECT campos FROM tabla WHERE criterio

GROUP BY campos del grupo

GROUP BY es opcional. Los valores de resumen se omiten si no existe una función SQL agregada en la instrucción SELECT. Los valores Nullen los campos GROUP BY se agrupany no se omiten. No obstante, los valores Null no se evalúan en ninguna de las funciones SQLagregadas.Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVINGpara filtrar los registros una vez agrupados.A menos que contenga un dato Memo u ObjetoOLE , un campo de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la cláusula FROM, incluso si el campo noesta incluido en la instrucción SELECT,siempre y cuando la instrucción SELECT incluya al menos una función SQLagregada.

Page 35: Tipos de dato que maneja el sql

Todos los campos de la lista de camposde SELECT deben o bien incluirseen la cláusula GROUP BY o como argumentos de una función SQLagregada.

SELECT Id_Familia, Sum(Stock) FROM

Productos GROUP BY Id_Familia;

Una vez que GROUPBY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUPBY que satisfaga las condiciones de la cláusula HAVING.HAVINGes similar a WHERE, determinaqué registros se seleccionan. Una vez que los registros se han agrupadoutilizando GROUP BY, HAVINGdetermina cuales de ellos se van a mostrar.

SELECT Id_Familia Sum(Stock) FROM Productos

GROUP BY Id_Familia

HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*;

4.2 AVGCalculala media aritmética de un conjunto de valores contenidos en un campoespecificado de una consulta. Su sintaxis es la siguiente

Avg(expr)En donde expr representa el campo que contiene los datos numéricos para los que sedesea calcular la media o una expresión que realiza un cálculoutilizando los datos de dicho campo. La media calculada por Avg es la media aritmética (la suma de los valores dividido por el númerode valores). La función Avg no incluye ningún campo Null en el cálculo.

Page 36: Tipos de dato que maneja el sql

SELECT Avg(Gastos) AS Promedio FROM

Pedidos WHERE Gastos > 100;

4.3 COUNTCalculael número de registros devueltos por una consulta. Su sintaxis es lasiguiente

Count(expr)En donde exprcontiene el nombre del campo que desea contar. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función(la cual puede ser intrínseca o definida por el usuario pero no otrasde las funciones agregadas de SQL).Puede contar cualquier tipo de datos incluso texto.Aunque exprpuede realizar un cálculo sobre un campo, Count simplemente cuenta el número de registros sin tener en cuenta quévalores se almacenan en los registros. La función Countno cuenta los registros que tienen campos null a menos que expr sea el carácter comodín asterisco (*).Si utiliza un asterisco, Count calcula el número total de registros, incluyendo aquellos que contienencampos null. Count(*) es considerablementemás rápida que Count(Campo).No se debe poner el asterisco entre dobles comillas (‘*’).

SELECT Count(*) AS Total FROM Pedidos;

Si expridentifica a múltiples campos, la función Count cuenta un registro sólo si al menos uno de los campos no es Null.Si todos los campos especificados son Null,no se cuenta el registro. Hay que separar los nombres de los campos con ampersand (&).

Page 37: Tipos de dato que maneja el sql

SELECT Count(FechaEnvío & Transporte) AS Total FROM Pedidos;

4.4 MAX, MINDevuelvenel mínimo o el máximo de un conjunto de valores contenidos enun campo especifico de una consulta. Su sintaxis es:

Min(expr)Max(expr)En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una función(la cual puede ser intrínseca o definida por el usuario pero no otrasde las funciones agregadas de SQL).

SELECT Min(Gastos) AS ElMin FROM Pedidos

WHERE Pais = 'España';

SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'España';

4.5 STDEV, STDEVPDevuelveestimaciones de la desviación estándar para la población(el total de los registros de la tabla) o una muestra de la poblaciónrepresentada (muestra aleatoria) . Su sintaxis es:

StDev(expr)StDevP(expr)En dondeexpr representa el nombre del campo que contiene los datos quedesean evaluarse o una expresión que realiza un cálculo utilizandolos datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función(la cual puede ser intrínseca o definida por el usuario pero no otrasde las funciones agregadas de SQL)

Page 38: Tipos de dato que maneja el sql

StDevP evalúa una población, y StDev evalúauna muestra de la población. Si la consulta contiene menos de dos registros(o ningún registro para StDevP),estas funciones devuelven un valor Null (elcual indica que la desviación estándar no puede calcularse).

SELECT StDev(Gastos) AS Desviacion

FROM Pedidos WHERE Pais = 'España';

SELECT StDevP(Gastos) AS Desviacion FROM Pedidos WHERE Pais=

'España';

4.6 SUMDevuelvela suma del conjunto de valores contenido en un campo especifico de una consulta.Su sintaxis es:

SumP(expr)En donde expr representa el nombre del campo que contiene los datos que desean sumarse o unaexpresión que realiza un cálculo utilizando los datos de dichoscampos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función(la cual puede ser intrínseca o definida por el usuario pero no otrasde las funciones agregadas de SQL).

SELECT Sum(PrecioUnidad * Cantidad)

AS Total FROM DetallePedido;

4.7 VAR, VARPDevuelve una estimación de lavarianza de una población (sobre el total de los registros) o una muestra

Page 39: Tipos de dato que maneja el sql

de la población (muestra aleatoria de registros) sobre los valores deun campo. Su sintaxis es:

Var(expr)VarP(expr)VarP evalúa una población, y Var evalúa una muestra de la población. Expr el nombre del campo quecontiene los datos que desean evaluarse o una expresión que realiza uncálculo utilizando los datos de dichos campos. Los operandos de exprpueden incluir el nombre de un campo de una tabla, una constante o una función(la cual puede ser intrínseca o definida por el usuario pero no otrasde las funciones agregadas de SQL)Si la consulta contiene menos de dos registros,Var y VarPdevuelven Null (esto indica quela varianza no puede calcularse). Puede utilizar Vary VarP en una expresiónde consulta o en una Instrucción SQL.

SELECT Var(Gastos) AS Varianza FROM

Pedidos WHERE Pais = 'España';

SELECT VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais =

'España';

CONSULTAS DE ACTUALIZACIÓNLas consultas de acción son aquellas que no devuelven ningún registro, son las encargadas de acciones como añadir y borrar y modificar registros.

5. CONSULTAS DE ACTUALIZACIÓNLas consultas de actualización son aquellas que no devuelven ningún registro,

Page 40: Tipos de dato que maneja el sql

son las encargadas de acciones como añadir y borrar y modificar registros.

5.1 DELETECrea una consulta de eliminaciónque elimina los registros de una o más de las tablas listadas en la cláusula FROMque satisfagan la cláusula WHERE. Esta consulta eliminalos registros completos, no es posible eliminar el contenido de algúncampo en concreto. Su sintaxis es:

DELETE Tabla.* FROM Tabla WHERE criterio

DELETE es especialmente útil cuando se desea eliminar varios registros. En unainstrucción DELETE conmúltiples tablas, debe incluir el nombre de tabla (Tabla.*). Si especificamás de una tabla desde la que eliminar registros, todas deben ser tablasde muchos a uno. Si desea eliminar todos los registros de una tabla, eliminarla propia tabla es más eficiente que ejecutar una consulta de borrado.Se puede utilizar DELETEpara eliminar registros de una única tabla o desde varioslados de una relación uno a muchos. Las operaciones de eliminaciónen cascada en una consulta únicamente eliminan desde varios lados deuna relación. Por ejemplo, en la relación entre las tablas Clientesy Pedidos, la tabla Pedidos es la parte de muchos por lo que las operacionesen cascada solo afectaran a la tabla Pedidos. Una consulta de borrado eliminalos registros completos, no únicamente los datos en campos específicos.Si desea eliminar valores en un campo especificado, crear una consulta de actualizaciónque cambie los valores a Null.Una vez que se han eliminado los registrosutilizando una consulta de borrado, no puede deshacer la operación. Sidesea saber qué registros se eliminarán, primero examine los resultadosde una consulta de selección que utilice el mismo criterio y despuésejecute la consulta de borrado. Mantenga copias de seguridad de sus datos entodo momento. Si elimina los registros equivocados podrá recuperarlosdesde las copias de seguridad.

Page 41: Tipos de dato que maneja el sql

DELETE * FROM Empleados WHERE Cargo

= 'Vendedor';

5.2 INSERT INTOAgrega un registro en una tabla. Se laconoce como una consulta de datos añadidos. Esta consulta puede ser dedos tipos: Insertar un único registro ó Insertar en una tablalos registros contenidos en otra tabla.

5.2.1PARA INSERTAR UN ÚNICO REGISTRO:En este caso la sintaxis es la siguiente:

INSERT INTO Tabla (campo1, campo2, ..,

campoN)

VALUES (valor1, valor2, ..., valorN)

Esta consulta graba en el campo1 el valor1,en el campo2 y valor2 y así sucesivamente. Hay que prestar especial atencióna acotar entre comillas simples (‘) los valores literales (cadenas de caracteres)y las fechas indicarlas en formato mm-dd-aa y entre caracteres de almohadillas(#).

5.2.2PARA INSERTAR REGISTROS DE OTRA TABLA:En este caso la sintaxis es:

Page 42: Tipos de dato que maneja el sql

INSERT INTO Tabla [IN base_externa]

(campo1, campo2, ..., campoN)

SELECT TablaOrigen.campo1, TablaOrigen.campo2, ...,

TablaOrigen.campoN

FROM TablaOrigen

En este caso se seleccionarán loscampos 1,2, …, n de la tabla origen y se grabarán en los campos 1,2,..,n de la Tabla. La condición SELECT puede incluir la cláusula WHEREpara filtrar los registros a copiar. Si Tabla y TablaOrigen poseen la mismaestructura podemos simplificar la sintaxis a:

INSERT INTO Tabla SELECT TablaOrigen.*

FROM TablaOrigen

De esta forma los campos de TablaOrigen se grabarán en Tabla, pararealizar esta operación es necesario que todos los campos de TablaOrigen estén contenidos con igual nombre en Tabla.Con otras palabras que Tabla poseatodos los campos de TablaOrigen(igual nombre e igual tipo).En este tipo de consulta hay que tenerespecial atención con los campos contadores o autonuméricos puestoque al insertar un valor en un campo de este tipo se escribe el valor que contengasu campo homólogo en la tabla origen, no incrementándose comole corresponde.

Se puede utilizar la instrucción INSERT INTO para agregar un registro único a una tabla, utilizando la sintaxis de la consulta de adiciónde registro único tal y como se mostró anteriormente. En estecaso, su código específica el nombre y el valor de cada campodel registro. Debe especificar cada uno de los campos del registro al que

Page 43: Tipos de dato que maneja el sql

sele va a asignar un valor así como el valor para dicho campo. Cuando nose especifica dicho campo, se inserta el valor predeterminado o Null.Los registros se agregan al final de la tabla.También se puede utilizar INSERTINTO para agregar un conjunto de registros pertenecientes aotra tabla o consulta utilizando la cláusula SELECT… FROM como se mostró anteriormente en la sintaxisde la consulta de adición de múltiples registros. En este casola cláusula SELECT especificalos campos que se van a agregar en la tabla destino especificada.Latabla destino u origen puede especificar una tabla o una consulta.

Si la tabla destino contiene una claveprincipal, hay que asegurarse que es única, y con valores no-Null ; si no es así, no se agregarán los registros. Si se agregan registrosa una tabla con un campo Contador, no se debe incluir el campo Contador en laconsulta. Se puede emplear la cláusula INpara agregar registros a una tabla en otra base de datos.Se pueden averiguar los registros quese agregarán en la consulta ejecutando primero una consulta de selecciónque utilice el mismo criterio de selección y ver el resultado. Una consultade adición copia los registros de una o más tablas en otra. Lastablas que contienen los registros que se van a agregar no se verán afectadaspor la consulta de adición. En lugar de agregar registros existentesen otra tabla, se puede especificar los valores de cada campo en un nuevo registroutilizando la cláusula VALUES.Si se omite la lista de campos, la cláusulaVALUES debe incluir un valor para cada campo de la tabla, deotra forma fallará INSERT.

INSERT INTO Clientes SELECT Clientes_Viejos.*

FROM Clientes_Nuevos;

INSERT INTO Empleados (Nombre, Apellido, Cargo)

Page 44: Tipos de dato que maneja el sql

VALUES ('Luis', 'Sánchez', 'Becario');

INSERT INTO Empleados SELECT Vendedores.* FROM Vendedores

WHERE Fecha_Contratacion < Now() - 30;

5.3 UPDATECrea una consulta de actualizaciónque cambia los valores de los campos de una tabla especificada basándoseen un criterio específico. Su sintaxis es:

UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2,

... CampoN=ValorN

WHERE Criterio;

UPDATE es especialmente útil cuando se desea cambiar un gran número deregistros o cuando éstos se encuentran en múltiples tablas. Puedecambiar varios campos a la vez. El ejemplo siguiente incrementa los valoresCantidad pedidos en un 10 porciento y los valores Transporteen un 3 por ciento para aquellos que se hayan enviado al ReinoUnido.:

UPDATE Pedidos SET Pedido = Pedidos

* 1.1, Transporte = Transporte * 1.03

Page 45: Tipos de dato que maneja el sql

WHERE PaisEnvío = 'ES';

UPDATE no genera ningún resultado. Para saber qué registros se van acambiar, hay que examinar primero el resultado de una consulta de selecciónque utilice el mismo criterio y después ejecutar la consulta de actualización.

UPDATE Empleados SET Grado = 5 WHERE

Grado = 2;

UPDATE Productos SET Precio = Precio * 1.1 WHERE Proveedor = 8 AND

Familia

= 3;

Si en una consulta de actualizaciónsuprimimos la cláusula WHERE todoslos registros de la tabla señalada serán actualizados.

UPDATE Empleados SET Salario = Salario

* 1.1

TIPOS DE DATOS

Page 46: Tipos de dato que maneja el sql

Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos reconocidos por dichos tipos de datos.

6. TIPOS DE DATOSLos tipos de datos SQL se clasifican en 13 tipos de datosprimarios y de varios sinónimos válidos reconocidos por dichostipos de datos.

Tipos de datos primarios:

Tipode Datos Longitud Descripción

BINARY 1 bytePara consultas sobre tabla adjunta de productosde bases de datos que definen un tipo de datos Binario.

BIT 1 byte Valores Si/No ó True/False

BYTE 1 byte Un valor entero entre 0 y 255.

COUNTER 4 bytesUn número incrementado automáticamente(de tipo Long)

CURRENCY 8 bytesUn entero escalable entre 922.337.203.685.477,5808y 922.337.203.685.477,5807.

DATETIME 8 bytesUn valor de fecha u hora entre los años100 y 9999.

SINGLE 4 bytes

Un valor en punto flotante de precisiónsimple con un rango de -3.402823*1038 a -1.401298*10-45

para valores negativos, 1.401298*10-45 a 3.402823*1038

para valores positivos, y 0.

DOUBLE 8 bytes Un valor en punto flotante de doble precisióncon un rango de -1.79769313486232*10308 a -4.94065645841247*10-324

para valores negativos, 4.94065645841247*10-324a 1.79769313486232*10308

Page 47: Tipos de dato que maneja el sql

para valores positivos, y 0.

SHORT 2 bytes Un entero corto entre -32,768 y 32,767.

LONG 4 bytes Un entero largo entre -2,147,483,648 y 2,147,483,647.

LONGTEXT1 byte por carácter De cero a un máximo de 1.2 gigabytes.

LONGBYNARY Según se necesite

De cero 1 gigabyte. Utilizado para objetosOLE.

TEXT1 byte por caracter De cero a 255 caracteres.