You are on page 1of 5

Lenguaje SQL

El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales 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. Características generales del SQL 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. 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 se utilizarían en un lenguaje de bajo nivel orientado a registros. Historia del lenguaje SQL El nacimiento del lenguaje SQL data de 1970 cuando E. F. Codd publica su libro: "Un modelo de datos relacional para grandes bancos de datos compartidos". Ese libro dictaría las direcrices de las bases de datos relacionales. Apenas dos años después IBM (para quien trabajaba Codd) utiliza las directrices de Codd para crear el Standard English Query Language (Lenguaje Estándar Inglés para Consultas) al que se le llamó SEQUEL. Más adelante se le asignaron las siglas SQL (aunque en inglés se siguen pronunciando SEQUEL, en español se le llama esecuele). Poco después se convertía en un estándar en el mundo de las bases de datos avalado por los organismos ISO (en 1987) y ANSI (en 1986). Aún hoy sigue siendo uno de los estándares más importantes de la industria informática y está en 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, es general y muy amplio. Lenguaje de definición de datos DDL (Data Definition Language) El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar, borrar o definir las tablas en las que se almacenan los datos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE. Lenguaje de manipulación de datos DML (Data Manipulation Language) Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. Entre las operaciones que podemos realizar están SELECT, INSERT, UPDATE, DELETE.

Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra. Operadores Comparación > < >= <= <> Mayor que Menor que Mayor o igual que Menor o igual que Distinto . en el que es importante la protección de los datos. la seguridad de las tablas y el establecimiento de restricciones en el acceso. Presentan el inconveniente de no poder ser indexados.Lenguaje de control de datos DCL (Data Control Language) Contiene elementos útiles para trabajar en un entorno multiusuario. Poseen dos formas: Verdadero y falso (Sí o No) Almacenan fechas facilitando posteriormente su explotación. enteros (sin decimales) y reales (con decimales). Dado que una base de datos trabaja con todo tipo de informaciones. es importante especificarle qué tipo de valor le estamos introduciendo de manera a. Su utilidad resulta más que evidente: Servir de identificador ya que resultan exclusivos de un registro. Son campos alfanuméricos de longitud ilimitada. Cada base de datos introduce tipos de valores de campo que no necesariamente están presentes en otras. Booleanos Fechas Memos Autoincrementables Son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Sin embargo.. así como elementos para coordinar la compartición de datos por parte de usuarios concurrentes. REVOKE Tipos de Valores de Campos Como sabemos una base de datos está compuesta de tablas donde almacenamos registros catalogados en función de distintos campos (características). optimizar los recursos de memoria. por un lado. asegurando que no interfieren unos con otros.. facilitar la búsqueda posteriormente y por otro. Presentan una longitud limitada (255 caracteres) Existen de varios tipos. existe un conjunto de tipos que están representados en la totalidad de estas bases. Estos tipos comunes son los siguientes: Alfanuméricos Numéricos Contienen cifras y letras. Entre sus operaciones están GRANT. principalmente. Un aspecto previo a considerar es la naturaleza de los valores que introducimos en esos campos.

Lógicos And Or Not Matematicos + * / Suma Resta Multiplicación Division Operadores compuestos Operador Acción += -= *= /= Agrega una cantidad al valor original y establece este en el resultado de la operación. / (división). Multiplica por una cantidad y establece el valor original en el resultado de la operación. 5 % 2. ligeramente ampliados: + (suma). Resta una cantidad del valor original y establece este en el resultado de la operación. podemos mostrar cual era la edad de una persona hace un año. Ejemplo select 5/2. . con select edad-1 from personas. Divide por una cantidad y establece el valor original en el resultado de la operación. Por ejemplo.(resta y negación). * (multiplicación). Los operadores matemáticos que podemos emplear son los habituales en cualquier lenguaje de programación. Operaciones matemáticas Desde SQL podemos realizar operaciones a partir de los datos antes de mostrarlos. Otro ejemplo sería DECLARE @sum int SET @sum = 15 SELECT 20 + @sum .

UPDATE. SET @n += ' Perez'. Por ejemplo. Ambos formatos admiten un argumento ELSE opcional. si una variable @x es igual a 'Adventure'. entonces @x += '´Works' toma el valor original de @x. DECLARE @n varchar(40). CASE Evalúa una lista de condiciones y devuelve una de las varias expresiones de resultado posibles.Concatenación de cadenas Con +=. puede utilizar CASE en instrucciones como SELECT. PRINT @n.Product . Usar una instrucción SELECT con una expresión CASE sencilla En este ejemplo se utiliza la expresión CASE para cambiar la presentación de categorías de línea de productos con el fin de hacerla más comprensible. Por ejemplo. Category = CASE ProductLine WHEN 'R' THEN 'Road' WHEN 'M' THEN 'Mountain' WHEN 'T' THEN 'Touring' WHEN 'S' THEN 'Other sale items' ELSE 'Not for sale' END. DELETE y SET. SQL Server solo permite 10 niveles de anidamiento en las expresiones CASE. El operador += no se puede utilizar sin una variable. SET @n = 'Juan'. agrega 'Works' a la cadena y establece @x en ese nuevo valor 'AdventureWorks'.  La expresión CASE buscada evalúa un conjunto de expresiones booleanas para determinar el resultado. La expresión CASE tiene dos formatos:  La expresión CASE sencilla compara una expresión con un conjunto de expresiones sencillas para determinar el resultado. CASE se puede utilizar en cualquier instrucción o cláusula que permite una expresión válida. SELECT ProductNumber. Name FROM Production. concatenamos dos cadenas y establecemos como valor de la cadena el resultado de la operación.

SELECT ProductNumber. Base de datos: MULTIPRO Tabla: productos ID_PROD (campo llave) MARCA MODELO CANT 1001 1002 1003 1004 1005 1006 DELL DELL APPLE APPLE ACER TOSHIBA VOSTRO 220 VOSTRO 230 IMAC MAC BOOK PRO ASPIRE SATELITE 7 35 3 11 5 23 .Product MULTIPRO S.Usar una instrucción SELECT con una expresión CASE de búsqueda En el ejemplo siguiente se presenta el precio de venta como un comentario basado en el intervalo de precios de un producto. Name.A. "Price Range" = CASE WHEN ListPrice = 0 THEN 'Mfg item .not for resale' WHEN ListPrice < 50 THEN 'Under $50' WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250' WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000' ELSE 'Over $1000' END FROM Production.