lunes, 15 de diciembre de 2008
jueves, 27 de noviembre de 2008
SQL Safe
ELaboraron:
Arredondo Lagunes Cesar Omar
Obispo Avila Jorge Alberto
Prieto Vergara Dalila
Resenzi Usacanga Alfredo
SQL Safe
El archivo se puede descargar desde el siguiente Link:
http://mx.briefcase.yahoo.com/bc/dosequipo/lst?.dir=/Investigaciones
Elaboraron:
Arredonde Lagunes Cesar Omar
Obispo Avila Jorge Alberto
Prieto Vergara Dalila
Resendiz Uscanga Alfredo
Seguridad en SQL Server 2008 (SQL Server Security)
http://mx.briefcase.yahoo.com/bc/dosequipo/lst?&.dir=/Investigaciones&.src=bc&.view=l
Elaboraron: TODOS
La Seguridad en SQL Server 2008
Mecanismos de Seguridad Integrados a SQL Server 2008
Elaboraron: TODOS
Seguridad e Integridad en las Bases de Datos
El documento se puede descargar desde el siguiente Link:
http://mx.briefcase.yahoo.com/bc/dosequipo/lst?.dir=/Lecturas
Seguridad e Integridad de las Bases de Datos:
Presentacion del Dr.Gustavo Ricardo Vasconi Catedratico de la Universidad De Carabobo.
Elaboraron Todos
domingo, 2 de noviembre de 2008
Caso de Ejemplo
http://mx.briefcase.yahoo.com/bc/dosequipo/lst?.dir=/Investigaciones&.src=bc&.view=
Elaboraron: Todos
Lectura 10: Integridad y Seguridad de las BD
Integridad y Seguridad en las BD
el archivo se puede descargar desde el siguiente enlace:
http://mx.briefcase.yahoo.com/bc/dosequipo/lst?.dir=/Lecturas&.src=bc&.view=
Elaboraron: Todos
lunes, 20 de octubre de 2008
miércoles, 8 de octubre de 2008
SQL Interactivo
Introducción
Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 E. F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado por el SGBD experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.
El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el SQL-86 o SQL1. Al año siguiente este estándar es también adoptado por la ISO.
Sin embargo este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado SQL-92 o SQL2.
En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio.
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones sobre los mismos.
Es un lenguaje declarativo de alto nivel o de no procedimiento, que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación y la orientación a objetos. De esta forma una sola sentencia puede equivaler a uno o más programas que utilizas en un lenguaje de bajo nivel orientado a registro.
SQL Interactivo
Conceptos base del lenguaje
Características
El lenguaje SQL esta formado por tres tipos de caracteres: letras, dígitos y caracteres especiales. Las letras que corresponden con el alfabeto latino tanto en mayúsculas como minúsculas A, B. C, D, E, F. G. H. I, J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y, como también a b, c, d e, f g, h, i, j, k, etc.. Los dígitos son: 1,2, 3, 4, 5, 6, 7, 8, 9. Los caracteres especiales de SQL son: espacio en blanco y los comprendidos en el cuadro siguiente:
Módulos de utilización
Dependiendo de la forma de ejecutar el lenguaje SQL, existen diferentes modos de utilización: ejecución directa o SQL interactivo, SQL incrustado o embebido, módulos SQL-cliente, SQL dinámico, procedimientos invocados externamente, rutinas invocadas por SQL y sus funciones.
Ejecución directa o SQL interactivo
Las ordenes SQL se escriben en una línea de comandos, o se crean mediante un diseño, visual que las traduce a una sentencia SQL son inmediatamente ejecutadas por el sistema. En el caso de SQL Server, este modo viene implementado con la aplicación iSQL.
Modo Incrustado
Las ordenes SQL se escriben como parte del código de otro lenguaje anfitrión, ya sea ADA, C, C++, Fortran, Pascal o PL/I, delimitando las sentencias SQL mediante separadores especiales, de modo que cada unidad de compilación este formada por un código anfitrión y SQL. Una unidad de compilación es un segmento de código ejecutable, formado por uno o más subprogramas. Ada como lenguaje anfitrión contiene los pre compiladores SQL propios de la base de datos en la que se almacenan los datos.
Módulos SQL-cliente o procedimientos almacenados
Un modulo SQL-cliente es un objeto, de modo que las ordenes SQL se compilan aparte del código anfitrión y se enlazan (linkan) todos los programas objeto tanto SQL y anfitrión, creándose un ejecutable. Los módulos SQL-cliente se asocian a una unidad de compilación en tiempo de ejecución de modo que un único modulo puede estar asociado a varias unidades de compilación. El mecanismo de asociación entre módulos y los lenguajes a los que puede asociarse un módulo y la transferencia del control de unos a otros son definidos por el fabricante.
Dinámico
En muchos casos las instrucciones SQL a ejecutar incluyen en un modulo de SQL-cliente o en una unida de compilación usando SQL incrustado. En otros casos no se conoce cuando se escriben y ejecutan las órdenes SQL durante la ejecución de un programa. Los tipos de órdenes empleados en SQL dinámico comprenden instrucciones de los siguientes tipos:
Ü Prepare: Preparan el código SQL generado para su ejecución.
Ü Deallocate: Quitan la marca de preparación de las ordenes SQL preparadas.
Ü Describe. Contiene una descripción de los parámetros de entrada/salida dinámica.
Ü Select. Devuelve un conjunto de columnas coma resultado de una consulta dinámica.
Ü Execute: Asocia los parámetros de entrada a una orden prepare de modo que pueda ejecutarse.
Ü Declare cursor. Declara un cursor o tabla en memoria.
Allocate cursor, fetch, delete, update, openclose, son ordenes que pueden ejecutarse sobre cursores.
Las ordenes pueden ser preparadas para su ejecución y mas tarde ejecutadas una o mas veces, pudiéndose eliminar, mediante deallocate o reléase, la orden preparada cuando no se necesite ejecutar mas.
El segundo modo consiste en ejecutar las órdenes directamente, sin prepararlas.
Procedimientos invocado externamente
Los procedimientos invocados externamente son rutinas, funciones o procedimientos de SQL, que contienen órdenes de tipo CALL y una clausula de nombre de lenguaje que define un lenguaje distinto de SQL.
Palabras predefinidas
Son las palabras propias del lenguaje SQL: DELETE., FROM, WHERE, LIKE, CREATE y otros, que se desarrollan a lo largo de los siguientes capítulos.
Nombres de objetos, tablas, columnas.
Son los identificadores asignados por los programadores o usuarios a tablas, campos, variables, procedimientos, etc. La mayor parte de los nombres de objetos se definen mediante una orden CREATE. Ejemplo de nombres de objetos son: nom_cli, imp_iva, etc.
Rutinas invocadas por SQL y funciones construidas
Las rutinas invocadas por SQL pueden ser dependientes de un tipo de datos definido por el usuario (UDT), si se crea durante la ejecución. En determinadas circunstancias los prediseñados, las especificaciones de tipo SET u otros elementos SQL pueden ser dependientes de rutinas invocadas por SQL.
Para definir una rutina invocada por SQL se necesitan, entre otros elementos, el nombre de la rutina y el nombre del lenguaje en que se implementa, siendo relativamente variable su implementación de unas bases de datos comerciales a otras.
Las ordenes SQL no poseen un formato especifico. Siempre empiezan por una palabra predefinida. Para separar ordenes se emplea el punto y coma ~;). Las órdenes SQL están formadas por los siguientes elementos: palabras predefinidas, nombres de objetos creados, constantes, delimitadores, operadores y datos.
Delimitadores
Son un subconjunto de caracteres que separan elementos de una sentencia SQL: espacio, coma, punto y coma, dos puntos, igual, paréntesis, apostrofes, comillas, etc. Su empleo depende de cada sentencia y de los objetos que contiene.
Operadores
Sirven para obtener nuevos datos a partir de uno ya existente. Se pueden localizar operaciones con números aritméticas, cadenas de caracteres, fechas, campos booleanos, binarios, etc.
La procedencia de los tipos de datos permite conocer el tipo de datos obtenido cuando se efectúan operaciones entre distintos tipos. Su orden, de mayor a menor, para SQL Server es: datetime, smalltime, float, real, decimal, money, smallmoney, int, smallint, tinyint, bit, ntext~ text, image, timestamp, nvarchar, varehar, ehar~ varbinary, binary, uniqueidentificator.
Los operadores de comparación devuelven un resultado booleano como resultado. Se han definido los siguientes operadores ANSI de comparación: igual (-), distinto (~>), mayor que (>), menor que (<), mayor 0 igual que (>=, menor o igual que (=).
Datos y Nulos
Un dato es una unidad de información con sentido en si misma que se almacena en un campo, una constante o una variable. Dependiendo del contenido de la información almacenada, los daros pertenecen a diferentes tipos: cadenas de caracteres, fechas o números entre otros.
Un valor nulo (NULL) es un valor no asignable en especial a un determinado tipo de datos, cuyo significado es: no se ah definido un valor previo para este dato; el valor de este dato es desconocido. Los valores nulos se diferencian de ceros y espacios en blanco, ya que en estos últimos casos se ah asignado información a un campo o dato correspondiente por lo que ese campo no ha sido utilizado.
Expresiones y Predicados
Una expresión es una combinación de operadores y operandos. Los operandos son contenedores de información, datos, constantes y variables y se ligan unos con otros mediante operadores.
Los predicados, expresiones contenidas en órdenes de SQL, permiten expresar condiciones en diferentes órdenes, obteniéndose un valor booleano. El resultado de la evaluación varía de las condiciones para cada registro.
Los predicados se clasifican en los siguientes tipos de comparación:
BETWEEN, IN, LIKE, NULL y los cuantificados que son EXIST, UNIQUE, MATCH, OVERLAPS, SIMILAR, DISTINCT y TYPE.
Comparación
Especifican una comparación entre dos valores. Los predicados de comparación están formados por 3 o 4 elementos: una expresión, una operación de comparación y el valor con el que se compara así mismo una expresión que al evaluarse devuelva un valor booleano.
BETWEEN
Especifican si un valor esta comprendido en un rango. Los predicados BETWEEN esta formados por una expresión a comparar, opcionalmente las clausulas NOT, la palabra BETWEEN, las clausulas opcionales son ASYMMETRIC o SYMMETRIC que son exlcluyentes entre si y ANDA es la de comparación.
IN
Especifican si un valor esta comprendido en una lista de valores declarada, es decir, especifican una comparación cualificada. Los predicados IN están formados por una expresión a comparar, opcionalmente la clausula NOT, la palabra IN, y para especificar la lista en la que se va a comparar el valor se puede emplear una sub consulta.
LIKE
Especifican si un campo cumple un determinado patrón o secuencia de caracteres con los que se comparara.
NULL
Especifica una prueba para un valor nulo, los predicados de NULL están formados por una versión a comparar y una de las siguientes expresiones IS NULL o IS NOT NULL
Cuantificados
Es un tipo especial de comparación en el que en lugar de obtenerse un valor único como resultado de la comparación, se obtiene un conjunto de valores pertenecientes a un campo.
ALL
Cuando el resultado de la sub consulta es una tabla vacía, el valor del predicado es verdadero.
SOME/ANY
Cuando el resultado de la sub consulta es una tabla vacía, el valor de predicado es falso.
EXISTS
Especifican una prueba para un conjunto de valores. Los predicados EXISTS están formados por expresiones de EXISTS y una sub consulta de tabla. El resultado de un predicado de EXISTS si la sub consulta de la tabla no esta vacía.
UNIQUE
Especifican una prueba para comprobar la ausencia de filas duplicadas. El resultado de un predicado UNIQUE es verdadero si no hay dos filas en la tabla tales que el valor de cada fila sea nulo.
MATCH
Especifican una prueba para filas coincidentes. Los predicados MATCH están formados por la expresión de comparación.
Opcionalmente, entre MATCH y la sub consulta puede escribirse UNIQUE o bien uno de los siguientes: SIMPLE, PARTIAL o FULL.
OVERLAPS
Especifica si se producen solapes entre dos periodos de tiempo. Estos predicados están formados por una expresión a comparar, la apalabra OVERLAPS y una segunda expresión de comparación, siendo ambas expresiones de tipo de fecha y hora.
DISTINCT
Especifica si dos valores de fila son distintos. Los predicados DISTINCT están formados por una expresión a comparar, el texto IS DISTICNCT FROM y una segunda expresión de comparación. El resultado de una segunda expresión de comparación es verdadero o falso.
TYPE
Especifica una prueba de tipo de datos. Sirve para saber si una expresión de fila esta o no contenida en una lista de tipos de datos definida por el usuario. Si el resultado de evaluar la expresión de fila es nulo, el resultado de TYPE es desconocido. Si el tipo de datos de de la fila forma parte de los elementos del tipo de datos es definido por el usuario, el resultado del predicado TYPE es verdadero si no en cualquier otro caso es falso.
Predicados Opuestos And, Or, Not.
Para obtener el valor de un predicado compuestos de estos tipos, se evalúa cada parte del predicado compuesto y se siguen las reglas de la lógica proposicional, vistas en el apartado de operaciones con tipos de datos booleanos, obteniéndose un resultado verdadero, falso o desconocido.
Funciones de Valor Numérico; son funciones que devuelven un valor numérico.
Ü POSITION
Ü CHAR_LENGHT
Ü CHARACTER_LENGTH
Ü OCTET_LENGHT
Ü BIT_LENGHT
Ü EXTRACT
Ü CARDINALTY
Ü EXP (exponent)
Ü ABS (expreison numerica)
Ü MOD (dividend, divisor)
Ü LN
Ü POWER (expression numerica base)
Ü SQRT
Ü FLOOR
La mayoría de los fabricantes, además de las funciones anteriores con ese nombre, añaden funciones trigonométricas como SIN, COS, TAN, etc.
Son de tres tipos: carácter, BLOB y bit.
Tipo carácter
Ü SUBSTRING
Ü UPPER
Ü LOWER
Ü TRANSLATE (conversión)
Ü TRIM
Ü OVERLAY
Tipo BLOB
Ü SUBSTRING (posición inicio)
Ü TRIM
Ü OVERLAY
Tipo Bit
Ü SUBSTRING
Funciones Fecha/hora e intervalo
Son funciones que devuelven un valor de tipo fecha/hora o intervalo respectivamente. Los paréntesis y la precisión temporal que afecta a cada función.
Ü CURRENT_DATE (devuelve fecha actual)
Ü LOCALTIME (devuelve hora local)
Ü CURRENT_TIMESTAMP (devuelve instante actual)
Ü LOCALTIMESTAMP (devuelve el instante local-actual)
Ü ABS (devuelve el valor absoluto del intervalo)
Conversión de Tipo de datos
Ü CAST (tipo de dato al que se convertirá la expresión)
Funciones de Análisis de datos.
Las funciones de análisis de datos devuelven un resultado derivado de realizar una operación sobre cierto número de filas. Estas funciones se emplean únicamente como parte de una consulta.
Son de dos tipos; funciones tabulares de datos agrupados y las funciones tabulares de ventana, las primeras agrupan datos de una tabla y calculan valores; y las segundas trabajan sobre tablas en ventanas y realizan operaciones sobre un grupo de filas.
Funciones de Agrupación de Datos.
Las funciones de agrupación de datos pueden calificarse con DISTINCT o ALL. En el caso de empelar DISTINCT, no se emplean filas redundantes para revolver el resultado de la función empleada. Las sintaxis de las funciones de agregado es: nombre de la función y una expresión que devuelve un valor de fila. Son las siguientes:
Ü COUNT (cuenta el número de filas que cumplen la expresión)
Ü SUM (suma el valor de las filas con que cumple la expresión)
Ü MAX (devuelve el mayor de las filas que cumplen la expresión)
Ü MIN (devuelve el menor de las filas que cumplen la expresión)
Ü EVERY (Devuelve el valor verdadero)
Ü ANY o SOME (devuelve el valor verdadero, si se cumple la expresión para alguna fila)
Ü VAR_POP (calcula el valor de la varianza de la población que cumple esa expresión)
Ü VAR_SAMP (calcula el valor de la varianza de la muestra que cumple la expresión)
Ü STDDEV_POP (calcula el valor de la desviación estándar de la población que cumple la expresión)
Funciones del Sistema
Son funciones implementadas por los fabricantes para facilitar las tareas a los administradores y programadores de las bases de datos, son muy variables de unos fabricantes a otros en cuanto a funcionalidad y sintaxis.
Son todos aquellos que se pueden crear en una base de datos empleando la orden CREATE de SQL, los que son definidos por los usuarios y aquellos que permiten la administración del sistema.
Palabras Reservadas
Las palabras claves en SQL son de dos tipos: reservadas y no reservadas. La lista de palabras reservadas en la versión ANSI (1999/2000) es mayor que la definida en la versión ANSI X3. Las palabras reservadas se listan para evitar su utilización para los usuarios, ya que pueden ser empleadas en nuevas versiones de SQL. En caso de tenerse que utilizar en el desarrollo de aplicaciones algunas de las palabras reservadas, es interesante incluir en esas palabras un digito o un guion subrayado y evitar que las palabras comiencen en CURRENT_, SESSION_, SYSTEM_ o TIMEZONE_ y aquellas que terminen en _LENGTH.
· ABSOLUTE, ACTION, ADD, ADMIN, AFTER, entre otros.
· BEFORE, BEGIN, BETWEEN, BINARY, BIT entre otros.
· CALL, CASCADE, CASCADED, CASE, CAST, entre otros.
· DATA, DATE, DAY, DEALLOCATE, DEC, entre otros.
· EACH, ELSE, END, END-EXEC, EQUALS, entre otros.
· FALSE, FETCH, FIRST, FLOAT, FOR, entre otros.
· GENERAL, GET, GLOBAL, GO, GOTO, entre otros.
· HAVING, HOST, HOUR.
· IDENTITY, IGNORE, IMMEDIATE, IN, INDICATOR, entre otros.
· JOIN.
· KEY.
· LANGUAGE, LARGE, LAST, LATERIAL, LEADING, entre otros.
· MAP, MATCH, MINUTE, MODIFIES, MODIFY, entre otros.
· NAMES, NATIONAL, NATURAL, NCHAR, NCLOB, entre otros.
· OBJECT, OF, OFF, OLD, ON, entre otros.
· PAD, PARAMETER, PARAMETERS, PARTIAL, PATH, entre otros.
· READ, READS, REAL, RECURSIVE, REF, entre otros.
· SAVEPOINT, SCHEMA, SCROLL, SCOPE, SEARCH, entre otros.
· TABLE, TEMPORARY, TERMINATE, THAN, THEN, entre otros.
· UNDER, UNION, UNIQUE, UNKNOWN, UNNEST, entre otros.
· VALUE, VALUES, VARCHAR, VARIABLE, VARYING, entre otros.
· WHEN, WHENEVER, WHERE, WITH, WITHOUT, entre otros.
· YEAR.
· ZONE.
Se define tipo de datos como un conjunto de valores. Los parámetros SQL, columnas, campos, atributos y variables son elementos de una base de datos cuyos valores pertenecen a un tipo de datos. El lenguaje SQL está formado por tres clases de tipos de datos: Predefinidos, Construidos o Compuestos y Definidos por el Usuario. Los tipos de datos Predefinidos son: carácter, binarios, bit, numéricos, booleanos y fecha/hora. Los tipos de datos Compuestos se definen empleando los constructores de tipos de datos: ARRAY o colección, REF o ROW. Los tipos Definidos por el Usuario se definen a partir de: uno de los anteriores Estándar una especificación del fabricante implementación o son definidos en una aplicación.
Los tipos de datos predefinidos de tipo carácter contienen cadenas de caracteres alfanuméricos, los de tipo numérico contienen números, los booleanos contienen valores sí, no o nulo, los tipos de datos fecha/hora contienen información temporal y los intervalos expresan un período de tiempo.
Los tipos de datos construidos se crean a partir de los tipos de datos definidos por esa categoría: array, referencia o fila. Los tipos de datos definidos por el usuario se crean a partir de tipos de datos existentes, o de aquellos tipos de datos en los que se basan los tipos de datos existentes.
Son cadenas alfanuméricas de caracteres que contienen información de tipo texto. Son de tres tipos:
· Cadenas de Caracteres de Longitud fija:
- CHARACTER. Permiten emplear caracteres ANSI
- NATIONAL CHARACTER. Utilizan caracteres UNICODE, implementados por lo fabricantes o definidos por una aplicación a partir de cualquiera de los conjuntos de caracteres anteriores.
· Cadenas de Caracteres de Longitud Variable:
- CHARACTER VARYING. Emplean caracteres ANSI, y pueden contener cadenas vacias.
- NATIONAL CHARACTER VARYING. Utilizan caracteres UNICODE, implementados o definidos por la aplicación y pueden contener cadenas vacías.
· Cadenas de Caracteres de Gran Longitud:
- CHARACTER LARGE OBJECT. Emplean caracteres ANSI.
- NATIONAL CHARACTER LARGE OBJECT. Utilizan caracteres UNICODE, implementados o definidos por una aplicación.
NOMBRES DE CONJUNTOS DE CARACTERES
Los conjuntos de caracteres empleados más frecuentemente son:
· SQL_CHARACTER. Contiene 52 caracteres en mayúsculas y minúsculas en caracterestes latinos, los 10 digitos y 26 caracteres especiales SQL: %, :, ;, &, ´, (, ), *, +, -, ., ;, ,,
· IRV posee los mismos caracteres que SQL_CHARACTER, excepto:{ [, ], {, }, y ^
· GRAPHIC_IRV o ASCII_GRAPHIC contiene los caracteres SQL y los siguientes: !, #, $, @, \, ‘, y ~.
· LATIN contiene todos los caracteres habitualmente usados en: Alemania, Dinamarca, España, Finlandia, Francia, Holanda, Inglaterra, Irlanda, Islandia, Italia, Noruega, Portugal y Suecia.
· ASCII_FULL o ISO8BIT es el nombre dado al juego de caracteres que contiene todos los caracteres ASCII.
· UTF16, UTF8, UCS2 son juegos de caracteres Unicode.
· SQL_TEXT contiene el juego de caracteres SQL_CHARACTER y aquellos implementados por el fabricante.
OPERADORES QUE ACTÚAN SOBRE CADENAS DE CARACTERES Y DEVUELVEN CADENAS DE CARACTERES
CONCATENACIÓN. Es una operación que devuelve, en el orden dado, la cadena de caracteres resultante de la unión de n cadenas de caracteres.
SUBSTRING. Es una función de cadena de caracteres que devuelve una cadena obtenida de una cadena original, a partir de un número de inicio de posición y una longitud numérica de la cadena extraer.
SUBSTRING. Es una función empleada para expresiones, en la que se obtiene una cadena a partir de una cadena de caracteres origen, una cadena patrón y un carácter de salida. La cadena patrón debe contener dos ocurrencias del carácter de salida seguidas por dobles comillas, de modo que se subdivide de la cadena patrón en tres subpatrones: R1, R2 y R3, cada uno de los cuales debe ser una expresión. La cadena de caracteres origen se compara con los tres subpatrones descomponiéndose en tres subcadenas consecutivas S1, S2 y S3.
OVERLAY. Es una función en que se sustituye parte de una cadena de caracteres por otra subcadenas, a partir de una posición dada. Se necesitan cuatro argumentos: la cadena original, la cadena a insertar, una posición numérica inicial y una longitud de la cadena a insertar.
UPPER. Es una función que convierte las cadenas de caracteres minúsculas o tipo titulo en mayúsculas. Un carácter Unicode está en mayúsculas, minúsculas o titulo dependiendo de si el nombre del carácter incluye lower, upper o title.
LOWER. Es una función que convierte las cadenas de caracteres mayúsculas o tipo tiutlo en minúsculas.
CONVERSIÓN DE JUEGOS DE CARACTERES. Es una función implementada por los fabricantes que permite codificar una cadena de caracteres de dos bytes (Unicode) como otra de un byte (Latin1) y viceversa.
TRIM. Es una función que recorta una cadena de caracteres dada. Posee tres argumentos:
1. La cadena a la que eliminar caracteres
2. Indica si los caracteres procedentes y/o posteriores se eliminan
3. Contiene la cadena de caracteres a eliminar.
TRADUCCION DE CARACTERES. Es una función que cambia cada carácter de una cadena dada empleando una correspondencia muchos a uno o uno a uno entre dos juegos de caracteres. La correspondencia es una función externa.
OTROS OPERADORES QUE ACTÚAN SOBRE CADENAS DE CARACTERES
LENGTH. Es una función que devuelve la longitud de una cadena de caracteres dada como un valor numérico exacto en caracteres, octetos o bits, de acuerdo con el tipo de selección de valor de salida seleccionado.
POSITION. Es una función que determina la primera posición como valor exacto, si la hay, en la que una cadena de caracteres S1 está contenida en otra S2.
Predicado LIKE (o su inversa, NOT LIKE). Se ejecuta sobre tres cadenas de caracteres y devuelve un valor booleano. LIKE determina si una cadena de caracteres se ajusta o no a una cadena de patrón dada.
SIMILAR (o su inversa, NOT SIMILAR). Es una función que se ejecuta sobre tres cadenas de caracteres y devuelve un valor booleano. SIMILAR determina si una cadena de caracteres se ajusta o no a una cadena patrón dada.
Sobre cadenas de caracteres tipo LOB se pueden realizar las operaciones: NULL, LIKE, SIMILAR, POSITION y comparaciones con operadores igual y no igual. Los tipos de datos LOBS no pueden ser utilizados para ordenar o agrupar registros, tampoco pueden emplearse en consultas con la cláusula DISTINCT o en las que se realicen operaciones de UNION, INTERSECT, Y EXCEPT, ni aparecer como criterios de comparación para formar tablas.
CADENAS BINARIAS
Las cadenas binarias son un conjunto de octetos que no poseen un juego de caracteres asociado. Las cadenas binarias son del tipo de datos BLOB. Entre cadenas binarias se pueden realizar comparaciones y concatenaciones. También se pueden emplear las funciones: SUBSTRING, OVERLAY, TRIM, LENGTH, POSITION, LIKE.
CADENA DE BITS
Las cadenas de bits son un conjunto secuencial de bits que poseen los valores 0 o 1. Este tipo de datos pueden ser de longitud constante BIT o variable BIT VARYING. Entre cadenas de bits se pueden realizar comparaciones y concatenaciones. También se pueden emplear las funciones SUBSTRING, OVERLAY, LENGTH, POSITION
NÚMEROS
Un número es cualquier valor numérico exacto o aproximado. Para definir un dato como de tipo numérico se necesita: el nombre del tipo de datos NUMERIC, DECIMAL, INTEGER, SMALLINT, FLOAT, REAL o DOUBLE PRECISION, la precisión del tipo de datos numérico, su escala en caso de tipos de datos numéricos exactos y un indicador de uso de valores decimales o banarios en la precisión y escala. Se pueden realizar comparaciones entre tipos de datos numéricos, y siempre tienen signo.
La precisión de un tipo de datos numérico es un valor entero positivo que indica el número de cifras significativas en el sistema binario o decimal. La escala permite conocer el valor numérico exacto de un tipo de datos. Siempre es un entero no negativo.
Un valor numérico aproximado consta de mantisa y exponente. La mantisa es un valor numérico con signo y el exponente es un entero con signo que especifica el tamaño de la mantisa. La precisión de un valor numérico aproximado es un valor entero positivo que especifica el número de dígitos binarios significativos en la mantisa.
Cuando se almacena un valor numérico exacto o aproximado en un tipo de datos numérico exacto, el valor se convierte teniendo la precisión y escala del tipo de datos destino, truncándose o redondeándose de acuerdo con la implementación realizada para este tipo de datos del fabricante. Se pueden realizar las operaciones aritméticas habituales: Suma (+), Resta(-), Multiplicación (*), División (/) y modulo o resto de una División (%), con las restricciones y limites que defina el fabricante para cada tipo de dato numérico. Las funciones POSITION y LENGTH tiene las mismas características que son cadenas de caracteres.
El tipo de datos booleano (lógico) está formado por dos valores: Verdadero “true” y Falso “false”. El valor true es mayor que false. Si no se han definido restricciones de tipo NO NULO, hay un tercer valor: desconocido “unknown” que se asigna a valores nulos. Los operadores NOT (~), y AND (&) y OR () devuelven resultados booleanos.
El operador NOT actúan sobre valores lógicos obtiene los siguientes resultados:
| |
Verdadero | Falso |
Falso | Verdadero |
Desconocido | Desconocido |
TIPOS DE DATOS FECHA/HORA E INTERVALOS
Los tipos de datos fecha/hora son los siguientes: DATE, TIME, WITHOUT TIME ZONE, TIMESTAMP WITHOUT TIME ZONE, TIME WITH TIME ZONE, y TIMESTAMP WITH TIME ZONE.
Los tipos de datos duracion o interval se denominan INTERVAL y pueden ser de tipo año-mes o dia-fecha y poseen siempre signo.
Datos de tipo fecha/hora
Hay tres tipos de clases de dato de fecha y hora;
-DATE: formado por YEAR, MONTH y DAY
-HORA: formado HOUR, MINUTE y SECOND.
-INSTANTE: formado por YEAR, MONTH, DAY, HOUR, MINUTE y SECOND.
La tierra esta dividida en husos horarios, de modo que los relojes marcan la hora local que les corresponde, que es el Tiempo Coordinado Universal (UTC) mas su desplazamiento de zona horaria, que es in intervalo comprendido entre 12.59min y + 13 h 00 min.
Operaciones con fecha/hora e intervalos
Este tipo de datos fecha/hora e intervalo pueden realizarse las operaciones aritméticas suma, resta, multiplicación y división del modo que se muestra en la tabla anterior.
El operador OVERLAPS permite determinar si dos periodos se suponen en el tiempo. Para especificar un periodo se necesita un par de datos fecha/hora o un dato fecha/hora mas otro de tipo intervalo.
EXTRACT es una expresión que opera sobre tipos de datos fecha/hora o intervalos y devuelven un valor numérico exacto que representa el valor de un componente fecha/hora o del intervalo.
5.6.9 tipos definidos de usuarios
Los tipos de datos definidos por el usuario son un objeto del esquema de la base de datos que se identifican por un nombre de tipo, que ha sido definido por el usuario. Los tipos definidos por el usuario para su definición un tipo de dato predefinido se denomina de forma diferente, ya que se crean asignados un nombre a un subtipo de un tipo de dato existente, con algunos atributos predefinidos.
Cuando para definir un tipo de dato se emplea una lista de atributo, se crea un tipo de estructura. Al crear un tipo de dato definido por el usuario, además de definir sus atributos, se crean unas funciones implícitas que son partes de la interfaz del tipo de dato. Para descubrir un UDDT se necesita, entre otros argumentos: nombre que será empleado para referirse al tipo, un parámetro que indica que es tipo estructura o no, un parámetro que indica si esta ordenado o no, la forma de ordenación del tipo de dato (QUALS, FULL o NONE),, la categoría de ordenación (RELATIVE, MAP o STATE), un nombre que identifica la rutina de ordenación dependiendo de su categoría y el nombre del tipo de campo de origen o del UDDT previamente definido del que es un subtipo y si el tipo datos es instanciable o no.
Como los tipos de datos que es posible crear dependen de la implementación del fabricante, hay disparidad a la hora de su denominación y creación. Oracle denomina tipos de datos externos a los tipos de datos que no están definido por el fabricante. Microsoft, en sus herramientas SQL Server 7 y 2000 permite crear UDDT sencillo mediante el empleo de procedimientos almacenados o UDDT sencillo o complejo empleando la instrucción Type de Visual Basic.
Para gestión interna de los UDDT se define implícitamente dos funciones SQL para cada atributo: una función que devuelve el tipo de datos y otra que devuelve el tipo de estructura. Además, cuando el tipo de dato es estructura y son instanciables, poseen una función denominada constructores de métodos SQL asociados al tipo de datos.
Tipos columna
Un tipo de datos columnas es una secuencia pareja de nombre de campo y tipo de datos, a las que se denomina campo.
Tipos referencia
Un tipo de datos REF (referencia) es estructurado y se representa mediante una secuencia de octetos cuya longitud viene definida por el fabricante. Se pueden comparar referencias si tienen un supertipo en común.
Tipos colección
Una colección es un valor compuesto de cero o más elementos, en los que cada elemento puede ser de un tipo diferente. Las matriz es una colección ordenada en la que cada elemento esta asociado a una posición. Se puede realizar comparaciones entre matrices del mismo tipo y concatenaciones entre distintas matrices.
Tipos de datos: ANSI, SQL, Server, Oracle 8 e Informix
Con algunos matices relativos a precisión y correspondencia entre los tipos de datos de las principales bases de datos y el estándar SQL, se muestra en la tabla adjunta la relación que existe entre ellos.
Correspondencia entre tipos de datos SQL y otros lenguajes.
Correspondencia entre tipos de datos
Las tablas siguientes muestran la correspondencia entre los tipos de datos SQL y los datos de lenguajes ADA, C, COBOL; FORTRAN; PASCAL y PL/1. En estas tablas P significan precisión, S escala, L longitud, T tiempo con una precisión de una fracción de segundo, Q es calificador de intervalo y N es el tamaño definido por el fabricante para tipos estructurado.
Elaboraron: Todos