You are on page 1of 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje)

En vista del auge que toma cada vez la tecnologa, es preciso saber hacer de todo lo relacionado son software, pero no podemos olvidar que tambin existe la parte de cmo manejar datos e informacin. Para ello existe afortunadamente formas o maneras de como poder guarda informacin necesaria y de vital importancia para nuestras empresas o compaas. Es por tal motivo, es preciso conocer hacer muy de fondo las diferentes plataformas o manejadores de bases de datos para poder optar por la ms adecuada para ser implanta, si es necesario, en nuestras compaas o empresas, como lo son SQL, ORACLE y INFORMIX. Informix es uno de los cuatro grandes de las bases de datos junto DB2 de IBM, SQL Server de Microsoft y Oracle. Aunque en muchos aspectos es mejor que Oracle, no se ha sabido mover en el terreno del marketing. Oracle captur la mayor parte del mercado y Informix no se recuper de las perdidas econmicas. DB2 y SQL Server tenan grandes compaas detrs con otros negocios que les permiti aguantar la poltica agresiva de Oracle. Recientemente IBM adquiri Informix con lo que el mercado de las bases de datos comerciales en UNIX (Linux) qued entre IBM y Oracle. Puedes encontrar una infinidad de informacin sobre Oracle sobre Linux en Internet, pero muy poca sobre Informix. La poca informacin es debido a la poca comunidad Internet que tiene Informix, al menos comparada con la de Oracle. Y es que, hoy en da, las documentaciones oficiales, de tan sencillas que quieren ser, cada vez son ms confusas e incompletas. Sin duda, el mejor soporte tcnico que hay para un producto es su comunidad de usuarios en Internet. Informix por desgracia no ha sabido crearla. Una bsqueda de "oracle linux" en Google devuelve unas 972.000 pginas, mientras que "informix linux" 143.000. SQL (Standar Query Lenguaje) es un lenguaje estandarizado de base de datos, el cual nos permite realizar tablas y obtener datos de ella de manera muy sencilla. Para exponer mas claramente los conceptos se realizaran ejemplo sobre relaciones que se crearan aqu para entender mejor como funciona SQL. Tambin se puede decir, SQL es un lenguaje bastante sencillo, principalmente orientado a bases de datos y, sobre todo, al manejo de consultas. Visual Basic incorpora esta extensin junto a nuestras bases de datos, obteniendo potentes resultados. De hecho, las consultas que se realizan Pgina 1 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje)

en Access, estn desarrolladas o basadas en este lenguaje, por lo que su implementacin en Visual Basic no es complicada. El objetivo principal de SQL es la realizacin de consultas y clculos con los datos de una o varias tablas. 1.1 Breve Historia de SQL La historia de SQL (que se pronuncia deletreando en ingls las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definicin, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigacin de IBM, de un lenguaje para la especificacin de las caractersticas de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implement en un prototipo llamado SEQUELXRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisin del lenguaje (SEQUEL/2), que a partir de ese momento cambi de nombre por motivos legales, convirtindose en SQL. El prototipo (System R), basado en este lenguaje, se adopt y utiliz internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al xito de este sistema, que no estaba todava comercializado, tambin otras compaas empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenz a entregar sus productos relacionales y en 1983 empez a vender DB2. En el curso de los aos ochenta, numerosas compaas (por ejemplo Oracle y Sybase, slo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estndar industrial de hecho por lo que respecta a las bases de datos relacionales. En 1986, el ANSI adopt SQL (sustancialmente adopt el dialecto SQL de IBM) como estndar para los lenguajes relacionales y en 1987 se transfom en estndar ISO. Esta versin del estndar va con el nombre de SQL/86. En los aos siguientes, ste ha sufrido diversas revisiones que han conducido primero a la versin SQL/89 y, posteriormente, a la actual SQL/92. El hecho de tener un estndar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en l. Desde el punto de vista prctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos slo el corazn del lenguaje SQL (el as llamado Entry level o al mximo el Intermediate level), extendindolo de manera individual segn la propia visin que cada cual tenga del mundo de las bases de datos. Actualmente, est en marcha un proceso de revisin del lenguaje por parte de los comits ANSI e ISO, que debera terminar en la definicin de lo que en este momento se conoce como SQL3. Las caractersticas principales de esta nueva Pgina 2 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje) encarnacin de SQL deberan ser su transformacin en un lenguaje standalone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introduccin de nuevos tipos de datos ms complejos que permitan, por ejemplo, el tratamiento de datos multimediales.

1.2 Significado de SQL


SQL es una herramienta para organizar, gestionar y recuperar datos almacenados en una base de datos informtica. El nombre "SQL" es una abreviatura de Structured Query Languaje (Lenguaje de consultas estructurado). Como su propio nombre indica, SQL es un lenguaje informtico que se puede utilizar para interaccionar con una base de datos y ms concretamente con un tipo especifico llamado base de datos relacional. SQL es a la vez un lenguaje fcil de aprender y una herramienta completa para gestionar datos. Las peticiones sobre los datos se expresan mediante sentencias, que deben escribirse de acuerdo con unas reglas sintcticas y semnticas de este lenguaje. Su aprendizaje no solo sirve para esta aplicacin sino , tambin, para todas las existentes en el mercado que soporten este lenguaje ya que es un lenguaje estndar por haberse visto consolidado por el Instituto Americano de Normas (ANSI) y por la Organizacin de Estndares Internacional (ISO). Una base de datos en un sistema relacional est compuesta por un conjunto de tablas, que corresponden a las relaciones del modelo relacional. En la terminologa usada en SQL no se alude a las relaciones, del mismo modo que no se usa el trmino atributo, pero s la palabra columna, y no se habla de tupla, sino de lnea. A continuacin se usarn indistintamente ambas terminologas, por lo que tabla estar en lugar de relacin, columna en el de atributo y lnea en el de tupla, y viceversa. Prcticamente, la creacin de la base de datos consiste en la creacin de las tablas que la componen. En realidad, antes de poder proceder a la creacin de las tablas, normalmente hay que crear la base de datos, lo que a menudo significa definir un espacio de nombres separado para cada conjunto de tablas. De esta manera, para una DBMS se pueden gestionar diferentes bases de datos independientes al mismo tiempo sin que se den conflictos con los nombres que se usan en cada una de ellas. El sistema previsto por el estndar para crear los espacios separados de nombres consiste en usar las instrucciones SQL "CREATE SCHEMA". A menudo, dicho sistema no se usa (o por lo menos no con los fines y el significado previstos por el estndar), pero cada DBMS prev un procedimiento propietario para crear una base de datos. Normalmente, se ampla el lenguaje SQL introduciendo una instruccin no prevista en el estndar: "CREATE DATABASE".

1.3 Creando una base de datos en SQL CREATE DATABASE nombre_base de datos

Pgina 3 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje) Con PostgreSQL est a disposicin una orden invocable por shell Unix (o por shell del sistema usado), que ejecuta la misma operacin:

createdb nombre_base de datos Para crear nuestra base de datos bibliogrfica, usaremos pues la orden: createdb biblio Una vez creada la base de datos, se pueden crear las tablas que la componen. La instruccin SQL propuesta para este fin es: CREATE TABLE nombre_tabla ( nombre_columna tipo_columna [ clusula_defecto ] [ vnculos_de_columna ] [ , nombre_columna tipo_columna [ clusula_defecto ] [ vnculos_de_columna ] ... ] [ , [ vnculo_de tabla] ... ] ) nombre _ columna: es el nombre de la columna que compone la tabla. Sera mejor no exagerar con la longitud de los identificadores de columna, puesto que SQL Entry Level prev nombres con no ms de 18 caracteres. Consltese, de todos modos, la documentacin de la base de datos especfica. Los nombres tienen que comenzar con un carcter alfabtico. tipo _ columna: es la indicacin del tipo de dato que la columna podr contener. Los principales tipos previstos por el estndar SQL son:

CHARACTER(n) Una cadena de longitud fija con exactamente n caracteres. CHARACTER se puede abreviar con CHAR CHARACTER VARYING(n) Una cadena de longitud variable con un mximo de n caracteres. CHARACTER VARYING se puede abreviar con VARCHAR o CHAR VARYING. INTEGER Un nmero estero con signo. Se puede abreviar con INT. La precisin, es decir el tamao del nmero entero que se puede memorizar en una columna de este tipo, depende de la implementacin de la DBMS en cuestin. SMALLINT Un nmero entero con signo y una precisin que no sea superior a INTEGER. FLOAT(p) Un nmero con coma mvil y una precisin p. El valor mximo de p depende de la implementacin de la DBMS. Se puede usar FLOAT sin Pgina 4 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje) indicar la precisin, empleando, por tanto, la precisin por defecto, tambin sta dependiente de la implementacin. REAL y DOUBLE PRECISION son sinnimo para un FLOAT con precisin concreta. Tambin en este caso, las precisiones dependen de la implementacin, siempre que la precisin del primero no sea superior a la del segundo.

DECIMAL(p,q) Un nmero con coma fija de por lo menos p cifras y signo, con q cifras despus de la coma. DEC es la abreviatura de DECIMAL. DECIMAL(p) es una abreviatura de DECIMAL(p,0). El valor mximo de p depende de la implementacin. INTERVAL Un periodo de tiempo (aos, meses, das, horas, minutos, segundos y fracciones de segundo). DATE, TIME y TIMESTAMP Un instante temporal preciso. DATE permite indicar el ao, el mes y el da. Con TIME se pueden especificar la hora, los minutos y los segundos. TIMESTAMP es la combinacin de los dos anteriores. Los segundos son un nmero con coma, lo que permite especificar tambin fracciones de segundo.

clusula _ defecto: indica el valor de defecto que tomar la columna si no se le asigna uno explcitamente en el momento en que se crea la lnea. La sintaxis que hay que usar es la siguiente: DEFAULT { valor | NULL } donde valor es un valor vlido para el tipo con el que la columna se ha definido. vnculos_de_columna: son vnculos de integridad que se aplican a cada atributo concreto. Son:

NOT NULL, que indica que la columna no puede tomar el valor NULL. PRIMARY KEY, que indica que la columna es la llave primaria de la tabla. una definicin de referencia con la que se indica que la columna es una llave externa hacia la tabla y los campos indicados en la definicin. La sintaxis es la siguiente: REFERENCES nombre _ tabla [ ( columna1 [ , columna2 ... ] ) ] [ ON DELETE { CASCADE | SET DEFAULT | SET NULL } ] [ ON UPDATE { CASCADE | SET DEFAULT | SET NULL } ] Las clusulas ON DELETE y ON UPDATE indican qu accin hay que ejecutar en el caso en que una tupla en la tabla referenciada sea eliminada o actualizada. De hecho, en dichos casos en la columna

Pgina 5 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje) referenciante (que es la que se est definiendo) podra haber valores inconsistentes. Las acciones pueden ser:
o

o o

CASCADE: eliminar la tupla que contiene la columna referenciante (en el caso de ON DELETE) o tambin actualizar la columna referenciante (en el caso de ON UPDATE). SET DEFAULT: asignar a la columna referenziante su valor de defecto. SET NULL: asignar a la columna referenciante el valor NULL.

un control de valor, con el que se permite o no asignar un valor a la columna en funcin del resultado de una expresin. La sintaxis que se usa es: CHECK (expresin_condicional) donde expresin_condicional es una expresin que ofrece verdadero o falso. Por ejemplo, si estamos definiendo la columna COLUMNA1, con el siguiente control: CHECK ( COLUMNA1 < 1000 ) en dicha columna se podrn incluir slo valores inferiores a 1000.

vnculo_de_tabla: son vnculos de integridad que se pueden referir a ms columnas de la tabla. Son:

la definicin de la llave primaria: PRIMARY KEY ( columna1 [ , columna2 ... ] ) Vase que en este caso, a diferencia de la definicin de la llave primaria como vnculo de columna, sta se puede formar con mas de un atributo.

las definiciones de las llaves externas: FOREIGN KEY ( columna1 [ , columna2 ... ] ) definiciones_de_referencia La definicin_de_referencia tiene la misma sintaxis y significado que la que puede aparecer como vnculo de columna.

un control de valor, con la misma sintaxis y significado que el que se puede usar como vnculo de columna.

Para aclarar mejor el uso de la instruccin CREATE TABLE, veamos algunas rdenes que implementan la base de datos bibliogrfica ejemplificada. CREATE TABLE Publication ( ID INTEGER PRIMARY KEY, Pgina 6 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje) type CHAR(18) NOT NULL );

La instruccin anterior crea la tabla Publication, formada por las dos columna ID de tipo INTEGER, y type de tipo CHAR(18). ID es la llave primaria de la relacin. En el atributo type hay un vnculo de no nulidad. CREATE TABLE Book ( ID INTEGER PRIMARY KEY REFERENCES Publication(ID), title VARCHAR(160) NOT NULL, publisher INTEGER NOT NULL REFERENCES Publisher(ID), volume VARCHAR(16), series VARCHAR(160), edition VARCHAR(16), pub_month CHAR(3), pub_year INTEGER NOT NULL, note VARCHAR(255) ); Crea la relacin Book, formada por nueve atributos. La llave primaria es el atributo ID, que es tambin una llave externa hacia la relacin Publication. Sobre los atributos title, publisher y pub_year hay vnculos de no nulidad. Adems, el atributo publisher es una llave externa hacia la tabla Publisher. CREATE TABLE Author ( publicationID INTEGER REFERENCES Publication(ID), personID INTEGER REFERENCES Person(ID), PRIMARY KEY (publicationID, personID) ); Crea la relacin Author, compuesta por dos atributos: publicationID y personID. La llave primaria en este caso est formada por la combinacin de los dos atributos, como est indicado por el vnculo de tabla PRIMARY KEY. PublicationID es una llave externa hacia la relacin Publication, mientras que personID lo es hacia la relacin Person. El archivo create_biblio.sql contiene todas las rdenes necesarias para crear la estructura de la base de datos bibliogrfica ejemplificada.

1.4 Expresiones SQL

Pgina 7 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje) Las expresiones se utilizan en las clusulas WHERE, HAVING y ORDER BY de las sentencias SELECT.

Las expresiones nos permiten utilizar operaciones matemticas como tambin cadenas de caracteres y operadores de manipulacin de fechas para construir consultas complejas. Los elementos que compones las expresiones son:

Nombres de campos Operadores numricos Operadores de fechas Operadores lgicos Constantes Operadores de caracteres Operadores de relacin Funciones

Nombres de campos Las expresiones ms comunes son los nombres de campos. Se pueden combinar con otros elementos de las expresiones Constantes Las constantes son valores que no cambian. Por ejemplo, en la expresin FECHA_NACIMIENTO + 30, el valor 30 es una constante y FECHA NACIMIENTO es un nombre de campo. Las constantes de caracteres se deben encerrar con una comilla simple () o una doble (). Para que una comilla simple o doble aparezca en una constante se pone doble.(Por ejemplo, si la constante deseada es ODonnel deber figurar como ODonnel. Las constantes de fechas debern estar encerradas entre comillas simples ( ), por ejemplo, 01/30/89 representa la fecha 30 de Enero de 1989. El formato de las fechas es MM/DD/YY o MM/DD/YYYY (MM = mes, DD = da y YY = Ao). Operadores Numricos Para realizar operaciones numricas se puede utilizar los operadores: operador significado + Suma - Resta Pgina 8 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje)

* Multiplicacin / Divisin ** o ^ Exponenciacin Operadores de caracteres Las expresiones de caracteres pueden incluir los siguientes operadores: operador significado || Concatenacin manteniendo espacios en blanco Si por ejemplo, NOMBRE contiene Antonio y APELLIDOS Rodrguez ejemplo Valor resultado NOMBRE || APELLIDOS Karina Tllez Operadores de relacin Los operadores de relacin que pueden separar dos expresiones pueden ser cualquiera de los siguientes: Operador Significado = Igual a <> Distinto de > Mayor que >= Mayor o igual que < Menor que <= Menor o igual que Like Coincidencia con un patrn Not Like No coincidencia con un patrn Is Null Igual a nulo (vaco) Is Not Null No es nulo (no est vaco) Pgina 9 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje) Between Rango de valores entre una cota inferior y otra superior

In Pertenencia a un conjunto de valores o ser miembro de una subconsulta Exist Cierto si una subconsulta devuelve como mnimo un registro Any Compara un valor con cada valor devuelto por una subconsulta retornando cierto si uno cualquiera de ellos cumple la condicin. Any debe ir precedido de =, <>, <, >, >= o >=. = Any es equivalente a In. All Compara un valor con cada valor devuelto por una subconsulta retornando cierto si todos ellos cumplen la condicin. All debe ir precedido de =, <>, <, >, >= o >=. Ejemplos que utilizan operadores de relacin: evaluacion = F Apellidos LIKE Rodri% Grupo IS NULL Anno BETWEEN 1985 AND 1995 WHERE M.ESTUDIOS = ANY (SELECT ESTUDIO FROM ESTUDIOS WHERE NIVEL = 1) WHERE NOTA > ALL (SELECT NOTA FROM CALIFICA WHERE VALOR1 > 4) COMPARACION DE CADENAS DE CARACTERES: [NOT] LIKE Like permite utilizar los siguientes caracteres especiales en las cadenas de comparacin: % comodn para seleccionar cualquier cadena de 0 o ms caracteres _ comodn para seleccionar cualquier carcter Las maysculas y minsculas son significativas. Ejemplo: LIKE 'MART%' cualquier cadena que empiece con MART...

Pgina 10 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje) Operadores Lgicos

Dos o ms condiciones pueden ser combinadas para formar expresiones ms complejas con distintos criterios. Cuando existen dos o ms condiciones debern estar unidas por AND o OR. Por ejemplo, CLAVE = 15 AND TIPO = Compra deben de cumplirse las dos condiciones para que sea cierta la condicin total. TIPO = Compra OR PROY_CLAVE IS NOT NULL Basta con que una de las dos sea cierta para que lo sea la condicin total. El operador lgico NOT es til para poner al contrario una condicin. Por ejemplo: NOT (CLAVE = 15 AND TIPO = Compra) Prioridad de los operadores En expresiones con mas de una condicin el orden en el que se evalan es muy importante. La siguiente tabla muestra el orden en el que son evaluados los operadores. Los operadores que figuran en la primera lnea se evala primero, luego los de la segunda y as sucesivamente. Los operadores que figuren en la misma lnea se evalan de izquierda a derecha segn aparezcan en la expresin. prioridad operador 1 - unario, + unario 2 ** o ^ 3 *, / 4 +, 5 =, <>, <, >, >=, >=, Like, Not Like, Is Null, Is Not Null, Between, In, Exists, Any, All 6 NOT 7 AND Pgina 11 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje)

8OR Funciones Las funciones permiten realizar con los datos operaciones adicionales a las ya vistas, pudiendo participar como operadores en las expresiones. Una funcin representa un valor nico que se obtiene aplicando unas determinadas operaciones a otros valores dados, que se llaman argumentos. Se especifica como una palabra predefinida seguida de los argumentos entre parntesis y separados por comas. El lenguaje SQL dispone de un conjunto de funciones que pueden usarse en las consultas y que aparecen aqu agrupadas por el tipo de valores que devuelven. Funciones que devuelven una cadena de caracteres: Funcin Descripcin CHR Convierte un Cdigo ASCII en una cadena de carcter RTRIM o TRIM Quita los blancos que existan por la derecha en unacadena LTRIM Quita los blancos por la izquierda que tenga una cadena UPPER Convierte cada letra de una cadena a mayscula LOWER Convierte a minscula cada letra de una cadena SUBSTR Devuelve una subcadena de una cadena. Los parmetros son la cadena, la posicin del primer carcter a extraer y el nmero de caracteres a extraer.

Pgina 12 de 13

PROGRAMACION VISUAL BASIC

SQL
(Standar Query Lenguaje)

En esta investigacin de SQL nos damos una idea mas clara y presiza de lo que son estos programas. Ya que nos facilitarnos las tareas que debemos de desempear los humanos, por eso hemos venido inventado diversas herramientas a lo largo de nuestra historia, que nos permiten tener una mejor calidad de vida. Los ordenadores son uno ms de los inventos del hombre, aunque debemos decir que las tecnologas para su fabricacin y explotacin han tenido un desarrollo sorprendente a partir de la segunda mitad del siglo XX. Esta herramienta por s sola no es capaz de efectuar ninguna tarea, es tan slo un conjunto de cables y circuitos que necesitan recibir instruccin por parte de los humanos para desempear alguna tarea. As pues, tratando de dar una solucin al problema planteado, surgieron los lenguajes de programacin, que son como un lenguaje cualquiera, pero simplificado y con ciertas normas, para poder trasmitir nuestros deseos al ordenador.

BIBLIOGRAFA www.monografas.com www.ibm.com

Pgina 13 de 13

You might also like