Your SlideShare is downloading. ×
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Tipos de dato que maneja el sql
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tipos de dato que maneja el sql

871

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
871
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 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 SQL:2012 (2012) estable Tipo de dato Estático, Fuerte Implementaciones Varias Dialectos SQL-86, SQL-89, SQL92, SQL:1999, SQL:2003,SQL:2008, SQL:2012 Influido por Datalog Ha influido a Agena, CQL, LINQ,WindowsPowerShell[cita requerida] Sistema operativo multiplataforma
  • 2. SQL Desarrollador 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 structuredquerylanguage) 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.
  • 3. 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. 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.
  • 4. Para cada campo existe un conjunto de valores posible. Diseño de las bases de datos relacionales 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:
  • 5. Conjunto de instrucciones que se pueden almacenar para automatizar tareas repetitivas. Módulo: 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 MemoLugaresdecimalesPermite 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 informeTodosValorpredeterminadoIntroduce 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
  • 6. 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, 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.
  • 7. LIST STRUCTURE: Lista la estructura de una base de datos. 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
  • 8. Lógicos: .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.
  • 9. ACTIVATE POPUP: Visualiza y activa menú. 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.
  • 10. SET MESSAGE: Define un mensaje y su localización en la pantalla o en una ventana. 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.
  • 11. DATE (): Devuelve la fecha actual del sistema. 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
  • 12. 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 Datos Longitud Descripción Para consultas sobre tabla adjunta de productos de bases de datos BINARY 1 byte 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 bytes Un 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 que definen un tipo de datos Binario. 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. Un valor en punto flotante de doble precisión con un rango de 1.79769313486232*10308 a -4.94065645841247*10-324 para DOUBLE 8 bytes 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. LONGTEXT 1 byte por carácter De cero a un máximo de 1.2 gigabytes. LONGBINARY Según se necesite De cero 1 gigabyte. Utilizado para objetos OLE. TEXT 1 byte por carácter De cero a 255 caracteres. valores negativos, 4.94065645841247*10-324 a 1.79769313486232*10308 para valores positivos, y 0. La siguiente tabla recoge los sinónimos de los tipos de datos definidos:
  • 13. Tipo de Dato Sinónimos BINARY VARBINARY BOOLEAN BIT LOGICAL LOGICAL1 YESNO BYTE INTEGER1 COUNTER AUTOINCREMENT CURRENCY MONEY DATETIME DATE TIME TIMESTAMP FLOAT4 SINGLE IEEESINGLE REAL FLOAT FLOAT8 DOUBLE IEEEDOUBLE NUMBER NUMERIC SHORT INTEGER2 SMALLINT INT LONG LONGBINARY LONGTEXT INTEGER INTEGER4 GENERAL OLEOBJECT LONGCHAR MEMO NOTE ALPHANUMERIC TEXT 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.
  • 14. 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 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 (TransactSQL). 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 Unicode Numéricos aproximados Cadenas binarias Fecha y hora Otros tipos de datos Cadenas 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:
  • 15. Tipos de datos de valores grandes: varchar(max), nvarchar(max) y varbinary(max) 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 numeric bit smallint decimal smallmoney int tinyint money Numéricos aproximados float real Fecha y hora date datetimeoffset datetime2 smalldatetime datetime time Cadenas de caracteres char varchar text Cadenas de caracteres Unicode nchar nvarchar ntext Cadenas binarias binary varbinary image Otros tipos de datos cursor timestamp hierarchyid uniqueidentifier sql_variant xml tabla
  • 16. http://laboratorio.is.escuelaing.edu.co/labinfo/doc/Manual_Basico_de_MySQL.pdf 2. TIPOS DE DATOS 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
  • 17. 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 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 rangosentan 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
  • 18. 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 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
  • 19. Comandos para el manejo de Bases de Datos en MySQL: • CREATE *nombre+: Crea una base de datos con el nombre dado mysql>createdatabasemiprueba; • 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
  • 20. deMySQL. mysql>perror [opciones] código_de_error ... • CREATE TABLE: Sentencia para especificar la estructura de una tabla 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
  • 21. http://www.ie.uia.mx/acad/atortole/bd/sql/tipos.html Tipos de Datos SQL maneja básicamente seis tipos de datos: Numéricos exactos (exactnumerics) Numéricos aproximados (approximatenumerics) Cadenas de caracteres (characterstrings) Cadenas de bits (bit strings) Fechas y tiempos (datetimes) Intervalos (intervals) Numéricos exactos (exactnumerics) 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 (approximatenumerics) 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 (characterstrings) Existen dos tipos principales:
  • 22. 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. 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 AAAAMM-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
  • 23. 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/ 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 SQL El 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.2 COMANDOS Existen dos tipos de comandos SQL: Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.
  • 24. Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. COMANDOS DLL Comando Descripción CREATE Utilizado para crear nuevas tablas, campos e índices DROP Empleado para eliminar tablas e índices ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. COMANDOS DML Comando Descripción SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación. UPDATE Utilizado para modificar los valores de los campos y registros especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos 1.3 CLÁUSULAS Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.
  • 25. Comando Descripción FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar GROUP BY Utilizada para separar los registros seleccionados en grupos específicos HAVING Utilizada para expresar la condición que debe satisfacer cada grupo ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico 1.4 OPERADORES LÓGICOS Operador Uso AND Es el “y” lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. OR Es el “o” lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. NOT Negación lógica. Devuelve el valor contrario de la expresión.
  • 26. 1.5 OPERADORES DE COMPARACIÓN Operador Uso < Menor que > Mayor que <> Distinto de <= Menor ó Igual que >= Mayor ó Igual que BETWEEN Utilizado para especificar un intervalo de valores. LIKE Utilizado en la comparación de un modelo In Utilizado para especificar registros de una base de datos 1.6 FUNCIONES DE AGREGADO Las 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
  • 27. AVG Utilizada para calcular el promedio de los valores de un campo determinado COUNT Utilizada para devolver el número de registros de la selección SUM Utilizada para devolver la suma de todos los valores de un campo determinado MAX Utilizada para devolver el valor más alto de un campo especificado MIN Utilizada para 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ÁSICAS La 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:
  • 28. SELECT Nombre, Telefono FROM Clientes; Esta consulta devuelve un recordset con el campo nombre y teléfono de la tabla clientes. 2.2 ORDENAR LOS REGISTROS Adicionalmente 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;
  • 29. Incluso se puede especificar el orden de los registros: ascendente mediante la claúsula (ASC -se toma este valor por defecto) ó descendente (DESC) SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY CodigoPostalDESC , Nombre ASC; 2.3 CONSULTAS CON PREDICADO El predicado se incluye entre la claúsula y el primer nombre del campo a recuperar, los posibles predicados son: Predicado Descripción ALL Devuelve todos los campos de la tabla TOP Devuelve un determinado número de registros de la tabla DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente DISTINCROW Omite los registros duplicados basandose en la totalidad del registro y no sólo en los campos seleccionados. 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
  • 30. que obligamos al motor de la base de datos a analizar la estructura de la tabla 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:
  • 31. 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
  • 32. 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 ALIAS En 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
  • 33. 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 UNA BASE DE DATOS EXTERNA Para 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:databasesgestion.mdb'; En donde c:databasesgestion.mdb es la base de datos que contiene la tabla Empleados. Siguiente capítulo: Criterios de Selección
  • 34. AGRUPAMIENTO DE REGISTROS Aprenderemos 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 BY Combina los registros con valores idénticos, en la lista de campos especificados, en un único registro. Para cada registro 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 Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalúan en ninguna de las funciones SQL agregadas. Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar los registros una vez agrupados. A menos que contenga un dato Memo u Objeto OLE , 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 no esta incluido en la instrucción SELECT, siempre y cuando la instrucción SELECT incluya al menos una función SQL agregada.
  • 35. Todos los campos de la lista de campos de SELECT deben o bien incluirse en la cláusula GROUP BY o como argumentos de una función SQL agregada. SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia; Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING. HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar. SELECT Id_FamiliaSum(Stock) FROM Productos GROUP BY Id_Familia HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*; 4.2 AVG Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado 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 se desea calcular la media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La media calculada por Avg es la media aritmética (la suma de los valores dividido por el número de valores). La función Avg no incluye ningún campo Null en el cálculo.
  • 36. SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100; 4.3 COUNT Calcula el número de registros devueltos por una consulta. Su sintaxis es la siguiente Count(expr) En donde expr contiene 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 otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto. Aunque expr puede 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 Count no 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 contienen campos null. Count(*) es considerablemente más rápida que Count(Campo). No se debe poner el asterisco entre dobles comillas (‘*’). SELECT Count(*) AS Total FROM Pedidos; Si expr identifica 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 (&).
  • 37. SELECT Count(FechaEnvío&Transporte) AS Total FROM Pedidos; 4.4 MAX, MIN Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un 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 otras de 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, STDEVP Devuelve estimaciones de la desviación estándar para la población (el total de los registros de la tabla) o una muestra de la población representada (muestra aleatoria) . Su sintaxis es: StDev(expr) StDevP(expr) En donde expr representa el nombre del campo que contiene los datos que desean evaluarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función
  • 38. (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL) StDevP evalúa una población, y StDev evalúa una 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 (el cual 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 SUM Devuelve la 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 una expresión que realiza un cálculo utilizando los 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 otras de las funciones agregadas de SQL). SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido;
  • 39. 4.7 VAR, VARP Devuelve una estimación de la varianza de una población (sobre el total de los registros) o una muestra de la población (muestra aleatoria de registros) sobre los valores de un 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 que contiene los datos que desean evaluarse o una expresión que realiza un cálculo utilizando los 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 otras de las funciones agregadas de SQL) Si la consulta contiene menos de dos registros, Var y VarP devuelven Null (esto indica que la varianza no puede calcularse). Puede utilizar Var y VarP en una expresión de 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ÓN Las 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.
  • 40. 5. CONSULTAS DE ACTUALIZACIÓN Las consultas de actualización son aquellas que no devuelven ningún registro, son las encargadas de acciones como añadir y borrar y modificar registros. 5.1 DELETE Crea una consulta de eliminación que elimina los registros de una o más de las tablas listadas en la cláusula FROMque satisfagan la cláusula WHERE. Esta consulta elimina los registros completos, no es posible eliminar el contenido de algún campo en concreto. Su sintaxis es: DELETE Tabla.* FROM Tabla WHERE criterio DELETE es especialmente útil cuando se desea eliminar varios registros. En una instrucción DELETE con múltiples tablas, debe incluir el nombre de tabla (Tabla.*). Si especifica más de una tabla desde la que eliminar registros, todas deben ser tablas de muchos a uno. Si desea eliminar todos los registros de una tabla, eliminar la propia tabla es más eficiente que ejecutar una consulta de borrado. Se puede utilizar DELETE para eliminar registros de una única tabla o desde varios lados de una relación uno a muchos. Las operaciones de eliminación en cascada en una consulta únicamente eliminan desde varios lados de una relación. Por ejemplo, en la relación entre las tablas Clientes y Pedidos, la tabla Pedidos es la parte de muchos por lo que las operaciones en cascada solo afectaran a la tabla Pedidos. Una consulta de borrado elimina los registros completos, no únicamente los datos en campos específicos. Si desea eliminar valores en un campo especificado, crear una consulta de actualización que cambie los valores a Null. Una vez que se han eliminado los registros utilizando una consulta de borrado, no puede deshacer la operación. Si desea saber qué registros se eliminarán, primero examine los resultados
  • 41. de una consulta de selección que utilice el mismo criterio y después ejecute la consulta de borrado. Mantenga copias de seguridad de sus datos en todo momento. Si elimina los registros equivocados podrá recuperarlos desde las copias de seguridad. DELETE * FROM Empleados WHERE Cargo = 'Vendedor'; 5.2 INSERT INTO Agrega un registro en una tabla. Se la conoce como una consulta de datos añadidos. Esta consulta puede ser de dos tipos: Insertar un único registro ó Insertar en una tabla los registros contenidos en otra tabla. 5.2.1 PARA 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ón a acotar entre comillas simples (‘) los valores literales (cadenas de caracteres) y las fechas indicarlas en formato mm-dd-aa y entre caracteres de almohadillas (#).
  • 42. 5.2.2 PARA INSERTAR REGISTROS DE OTRA TABLA: En este caso la sintaxis es: INSERT INTO Tabla [IN base_externa] (campo1, campo2, ..., campoN) SELECT TablaOrigen.campo1, TablaOrigen.campo2, ..., TablaOrigen.campoN FROM TablaOrigen En este caso se seleccionarán los campos 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 WHERE para filtrar los registros a copiar. Si Tabla y TablaOrigen poseen la misma estructura podemos simplificar la sintaxis a: INSERT INTO Tabla SELECT TablaOrigen.* FROM TablaOrigen De esta forma los campos de TablaOrigen se grabarán en Tabla, para realizar esta operación es necesario que todos los campos de TablaOrigen estén contenidos con igual nombre en Tabla. Con otras palabras que Tabla posea todos los campos de TablaOrigen (igual nombre e igual tipo). En este tipo de consulta hay que tener especial atención con los campos contadores o autonuméricos puesto que al insertar un valor en un campo de este tipo se escribe el valor que contenga su campo homólogo en la tabla origen, no incrementándose como le corresponde.
  • 43. Se puede utilizar la instrucción INSERT INTO para agregar un registro único a una tabla, utilizando la sintaxis de la consulta de adición de registro único tal y como se mostró anteriormente. En este caso, su código específica el nombre y el valor de cada campo del registro. Debe especificar cada uno de los campos del registro al que se le va a asignar un valor así como el valor para dicho campo. Cuando no se especifica dicho campo, se inserta el valor predeterminado o Null. Los registros se agregan al final de la tabla. También se puede utilizar INSERT INTO para agregar un conjunto de registros pertenecientes a otra tabla o consulta utilizando la cláusula SELECT … FROM como se mostró anteriormente en la sintaxis de la consulta de adición de múltiples registros. En este caso la cláusula SELECT especifica los campos que se van a agregar en la tabla destino especificada. La tabla destino u origen puede especificar una tabla o una consulta. Si la tabla destino contiene una clave principal, hay que asegurarse que es única, y con valores no-Null ; si no es así, no se agregarán los registros. Si se agregan registros a una tabla con un campo Contador, no se debe incluir el campo Contador en la consulta. Se puede emplear la cláusula IN para agregar registros a una tabla en otra base de datos. Se pueden averiguar los registros que se agregarán en la consulta ejecutando primero una consulta de selección que utilice el mismo criterio de selección y ver el resultado. Una consulta de adición copia los registros de una o más tablas en otra. Las tablas que contienen los registros que se van a agregar no se verán afectadas por la consulta de adición. En lugar de agregar registros existentes en otra tabla, se puede especificar los valores de cada campo en un nuevo registro utilizando la cláusula VALUES. Si se omite la lista de campos, la cláusula VALUES debe incluir un valor para cada campo de la tabla, de otra forma fallará INSERT. INSERT INTO Clientes SELECT Clientes_Viejos.*
  • 44. FROM Clientes_Nuevos; INSERT INTO Empleados (Nombre, Apellido, Cargo) VALUES ('Luis', 'Sánchez', 'Becario'); INSERT INTO Empleados SELECT Vendedores.* FROM Vendedores WHERE Fecha_Contratacion<Now() - 30; 5.3 UPDATE Crea una consulta de actualización que cambia los valores de los campos de una tabla especificada basándose en 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 de registros o cuando éstos se encuentran en múltiples tablas. Puede cambiar varios campos a la vez. El ejemplo siguiente incrementa los valoresCantidad pedidos en un 10 por ciento y los valores Transporte en un 3 por ciento para aquellos que se hayan enviado al Reino Unido.: UPDATE Pedidos SET Pedido = Pedidos
  • 45. * 1.1, Transporte = Transporte * 1.03 WHERE PaisEnvío = 'ES'; UPDATE no genera ningún resultado. Para saber qué registros se van a cambiar, hay que examinar primero el resultado de una consulta de selección que 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ón suprimimos la cláusula WHERE todos los registros de la tabla señalada serán actualizados. UPDATE Empleados SET Salario = Salario * 1.1
  • 46. TIPOS DE DATOS 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 DATOS 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. Tipos de datos primarios: Tipo de Datos Longitud Descripción BINARY 1 byte Para 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. 4 bytes Un número incrementado automáticamente (de tipo Long) 8 bytes Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. 8 bytes Un valor de fecha u hora entre los años 100 y 9999. COUNTER CURRENCY DATETIME
  • 47. 4 bytes Un valor en punto flotante de precisión simple con un rango de -3.402823*10 a -1.401298*10 para valores negativos, 1.401298*10 a 3.402823*10 para valores positivos, y 0. DOUBLE 8 bytes Un valor en punto flotante de doble precisión con un rango de -1.79769313486232*10 a -4.94065645841247*10 para valores negativos, 4.94065645841247*10 a 1.79769313486232*10 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. LONGTEXT 1 byte por carácter De cero a un máximo de 1.2 gigabytes. 38 -45 SINGLE 38 308 -324 308 LONGBYNARY Según se necesite TEXT 1 byte por caracter De cero 1 gigabyte. Utilizado para objetos OLE. De cero a 255 caracteres. -45 -324

×