SQL (STRUCTURED QUERY LANGUAJE)
1. DEFINICIONES:
•
•
•
•
•
•
El SQL (Structured Structured Query Language Language)) es un está estánd ndar ar acep acepta tado do en productos de bases de datos, además SQL es un ejemplo de lenguaje orientado a transformaciones es decir un lenguaje diseñado para usar rela relaci cion ones es con con el fin de tran transf sfor orma marr los los dato datos, s, SQL SQL tien tiene e algu alguno nos s componentes que son: Un lenguaje de definición de Datos, un lenguaje de manipulación de datos.[1] SQL (Structured Query Language) es un potente lenguaje informático que cumple las funciones de DDL y DML en los SGBD relacionales. Su orig origen en está está en el leng lengua uaje je SEQU SEQUEL EL (Struc (Structur tured ed Englis English h QUEry QUEry Language) desarr desarroll ollado ado en IBM en los años 1974-7 1974-75. 5. Oracle Oracle fue el primer fabricante de sistemas de bases de datos en comercializar una implementación de SQL en 1979. IBM lanzó el producto SQL/DS en 1981 y dos años más tarde el conocido DB2.[2] El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos datos normal normaliza izado, do, utiliz utilizado ado por los difere diferente ntes s motor motores es de bases bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalización hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servirá para resolver todos los problemas, aunque si se puede asegurar que cualqu cualquier ier sente sentenci ncia a escrita escrita en ANSI ANSI será será interp interpret retabl able e por por cualq cualquie uier r motor de datos.[3 Es un estándar en el lenguaje de acceso a bases de datos. Origin Originalm alment ente, e, era un lengua lenguaje je de acceso acceso al sistem sistema a de gestió gestión n de bases de datos denominado DB2 en plataformas 390 de IBM. En la actualidad está adoptado por ISO. [4] Se trata de un lenguaje fuertemente basado en el inglés, que puede ser util utiliz izad ado o en modo modo conv conver ersa saci cion onal al medi median ante te un inté intérp rpre rete te o bien bien form forman ando do part parte e de un prog progra rama ma desa desarr rrol olla lado do en un leng lengua uaje je de prog progra rama maci ción ón anfi anfitri trión ón como como C, Cobo Cobol, l, etc. etc. (SQL (SQL embe embebi bido do). ). La característica relacional más importante de SQL es que permite acceder a los datos sin necesidad de especificar cómo se ha de realizar dicho acceso permitiendo así la "navegación automática" por los datos.[5] (Structu Structured red Query Query Langua Language) ge) Lengua Lenguaje je utiliz utilizado ado para para base base de datos datos desarrollado entre 1974 y 1975 en IBM Research. Por esos años se llamaba SEQUEL (Structured English QUEry Language) y servía como inte interfa rfaz z para para un sist sistem ema a expe experi rime ment ntal al de base base de dato datos s llama llamado do SYSTEM R. SQL fue introducido por Oracle por primera vez en una base de datos comercial en el año 1979. Se convirtió en un estándar ANSI e ISO dando lugar al SQL-86 o SQL1, que se fue actualizando a SQL-92 o
SLQ2, luego a SQL3 y actualmente (2004) a SQL4. El lenguaje se utiliza para definir, consultar y actualizar la base de datos, y es el más popular de su estilo. La estr estruc uctu tura ra bási básica ca para para cons consul ulta tas s en SQL SQL es select-from-where. select-from-where. Conceptualmente, SQL es un lenguaje de definición de datos (LDD), un lenguaje de definiciones de vistas (LDV) y un lenguaje de manipulación de datos (LMD), que posee también capacidad para especificar
EXISTEN DOS TIPOS DE COMANDOS SQL: •
DLL: que permiten crear y definir nuevas bases de datos, campos e índices.
COMANDO DDL COMANDO CREATE DROP ALTER
•
DESCRIPCION Utilizado para crear nuevas tablas, campos e índices Empleado para eliminar tablas e índices Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos
DML: que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.
COMANDO DML COMANDO SELECT
INSERT
UPDATE
DELETE
[7] 2. DML:
DESCRIPCION Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado Utilizado para cargar lotes de datos en la base de datos en una única operación. Utilizado para modificar los valores de los campos y registros especificados Utilizado para eliminar registros de una tabla de una base de datos
DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio, es decir, añadir, consultar, borrar o actualizar. En SQL los comandos SELECT, INSERT, UPDATE y DELE DELETE TE son son coma comand ndos os DML. DML. Otras Otras órde órdene ness como como COMM COMMIT IT,, STAR START T TRANSACTION o ROLLBACK están en el límite de lo que podemos considerar órdenes DML de SQL puesto que no inciden en la manpilación o consulta de datos pero sí en el proceso en que esto se realiza.[8] p realiza.[8] p
2.1.SELECT: La instrucción SELECT es la instrucción mas importante y se utiliza para las consultas, la clausula SELECT indica las columnas y los datos calculados que deben aparecer en la tabla de resultados http://jamestorres.wordpress.com/2007/10/05/sql-definicion-ymanipulacion-de-datos/ SINTAXIS:
SELECT "nombre_columna" FROM "nombre_tabla"
Para ilustrar el ejemplo anterior, suponga que tenemos la siguiente tabla: Tabla Store_Information store_name
Sales
Date
Los Los Ange Angeles les 1500 1500 € 05-J 05-Jan an-1 -199 999 9 San Diego
250 € 07-Jan-1999
Los Los Ange Angele less 300 300 € 08-J 08-Jan an-1 -199 999 9 Boston
700 € 08-Jan-1999
Podemos utilizar esta tabla como ejemplo a lo largo de la guía de referencia (esta tabla aparecerá en todas las secciones). Para seleccionar todos los negocios en esta tabla, ingresamos, SELECT store_name FROM Store_Information Resultado:
store_name San Diego Los Angeles Boston
2.2.UPDATE: Sustituye valores de columnas en una tabla.
SINTAXIS:
•
UPDATE tabla SET columna=expresión [, … ] [FROM lista] [WHERE condición]
•
[9]
UPDATE “nombre tabla” SET “columna 1” = [nuevo valor] WHERE {condición}
Tenemos la siguiente tabla: Tabla
Store Information
Store_ name Bogotá Tunja Cali Medellín
sales 1500 750 300 700
date 03-jun-1999 04 –jun- 1999 05-jun-1999 05-jun-1999
Después de realizar la tabla notamos que las ventas en Tunja son de 1050 y no de 750; como necesitamos modificar nuestra entrada realizamos lo siguiente:
UPDATE Store Information SET Sales= 1050 WHERE store name= “Tunja” AND date= “04-JUN-1999”
NUESTRA TABLA NUEVA SERIA: Tabla
Store Information
Store_ name Bogotá Tunja Cali Medellín
sales 1500 1050 300 700
date 03-jun-1999 04 –jun- 1999 05-jun-1999 05-jun-1999
También podemos aplicar UPDATE para múltiples filas, su estructura es la siguiente:
UPDATE “nombre tabla” SET colonne 1= [valor1], colonne 2=[valor2] WHERE {condición} [10]
2.3.INSERT: Es una instrucción que nos permite ingresar datos en las filas filas de las tablas tablas.. En SQL SQL encont encontram ramos os dos forma formas s para para insert insertar ar datos en una tabla: Una es insertar una fila por vez, y otra es insertar filas múltiples por vez.
•
Para insertar datos a través de una fila por vez la función es la siguiente:
INSERT INTO “nombre tabla” (“columna1”,”columna2 (“columna1”,”columna2”,…) ”,…) VALUES (“valor1”,”valor2”,…)
Si tenemos la siguiente tabla:
Tabla
Store Information
Column name Store name sales date
Data type Char(50) float datetime
Queremos insertar una fila adicional en esta tabla que sean: Tunja, 05 febrero de 1999, con habitantes de 25000.Nuestra escritura seria:
INSERT INTO Store Information (store name, sales, date) VALUES (‘TUNJA’, 25000,’05 febrero de 1999’).
•
Para insertar filas múltiples en una tabla la función es la siguiente; para esto debemos utilizar la instrucción SELECT que nos permite especificar los datos que deseamos insertar en la tabla.
INSER INTO “tabla1” (“columna1”,”columna (“ columna1”,”columna2”,…) 2”,…) SELECT “columna3”,”columna4”,… “columna3”,”columna4”,… FROM “tabla2 [10]
3. DDL: El DDL (Data Definition Language) lenguaje de definición de datos es la parte del SQL que más varía de un sistema a otro ya que esa area tiene que ver con cómo se organizan internamente los datos y eso, cada sistema lo hace de una manera u otra. Así como el DML de Microsoft Jet incluye todas las sentencias DML que nos podemos encontrar en otros SQLs (o casi todas), el DDL de Microsoft Jet en cambio contiene menos instrucciones que otros sistemas[11] sistemas[11] El DDL DDL es la part parte e del del leng lengua uaje je SQL SQL que que se enca encarg rga a de la crea creaci ción ón,,
modificación y eliminación de los objetos de la base de datos (es decir de los metadatos). Por supuesto es el encargado de la creación de tablas. [12] CREATE: Las vistas tienen un conjunto de definiciones, definiciones, que se construye 3.1.CREATE: en la parte superior de la(s) tabla(s) u otra(s) vista(s), y no almacena datos físicamente. •
CREATE CREATE nos permite crear vistas su sintaxis es la siguiente:
CREATE VIEW “NOMBRE VISTA” AS “Instrucción SQL”
Ejemplo: Tenemos Tenemos la siguiente tabla.
Tabla customer First name char(50), Last name char(50), Address char(50), City char(50), Country char(25), Birth Date(date)
-Deseamos crear una lista que se llame B customer que contenga las siguientes columnas: First name, Last Name, y Country de esta tabla, Si sintaxis es la siguiente:
CREATE CREATE VIEW B customer AS SELECT SELECT First Name, Last Name, Country FROM Customer
•
Esta opción también nos permite crear vistas para unir dos tablas: Tabla Store Information
Store_Name Tunja Bogota Tunja Cali
Sales 1500 750 750 450
Date 05-jun-1999 05-jun-1999 06-jun-1999 07-jun-1999
Tabla Geography
•
Regi Region on name name east east west west
Stor Storee Name Name Boston New York Los Angeles San Diego
Si Deseamos una vista con ventas organizada según la región la instrucción es la siguiente:
CREATE VIEW V REGION SALES AS SELECT AL. AL. region name na me REGION, SUM(A2. Sales) SALES FROM Geograpy AL, Store Information A2 WHERE AL. store name= A2.store name GROUP BY AL.región name •
V REGION SALES: Si deseamos conocer el resultado de esta vista ingresamos: SELECT*FROM V REGION SALES RESULTADO: REGION SALES East 700 West 2050
3.2.DROP
Toda sentencia de creación CREATE tiene su equivalente para eliminar el objeto creado. Todas estas sentencias tienen la misma
sintaxis: DROP tipo_objeto objeto_a_borrar. Por ejemplo: DROP TABLE FACTURA; DROP SEQUENCE COD_CLIENTE; DROP SYNONYM BILL; DROP VIEW TOT TO TAL_FACTURA_CLIENTE; AL_FACTURA_CLIENTE; DROP TABLESPACE tab_indices; Ciertas sentencias DROP (como DROP TABLE o DROP TABLESPACE) tienen cláusulas adicionales para ciertas situaciones especiales. Para Para más información buscar la ayuda de la sentencia necesitada en el Oracle8 SQL Reference.
3.3.ALTER
Al igual que existe una sentencia DROP para cada objeto creado, también existe una sentencia ALTER para cada objeto de base de datos. Con estos tres grupos de sentencias se hace la gestión completa de los objeto: creación, modificación y borrado. La sintaxis básica de las sentencias ALTER es: ALTER tipo_objeto nombre_objeto Cláusulas específicas de cada tipo de ALTER; Las cláusulas propias de cada sentencia ALTER son muchas y variadas, por lo que aquí no se citarán más que ciertos ejemplos. Ejemplos: ALTER TABLE FACTURA ADD( NUEVA_COLUMNA VARCHAR2(10) NOT NULL );
ALTER VIEW BILL COMPILE; ALTER TABLESPACE tab_indices ADD( DATAFILE ‘C:\ORANT\DATABASE\otro_datafile.ora’ SIZE 5M; ALTER TABLESPACE tab_indices RENAME DATAFILE ‘C:\ORANT\DAT ‘C:\ORANT\DATABASE\nombre.ora’ ABASE\nomb re.ora’ TO ‘C:\ORANT\DATABASE\otro_nombre.ora’ ALTER AL TER TABLESPACE TABLESPACE tab_indices tab_indice s COALESCE; COALE SCE; ALTER AL TER SEQUENCE NOCYCLE;
INFOGRAFIA
1. http://jamestorres.wordpress.com/2007/10/05/sql-definicion-y-manipulacionde-datos/ 2. http://www.cs.us.es/cursos/bd-2001/temas/sql_I.html 3. http://personal.lobocom.es/claudio/sql001.htm 4. http://www.mastermagazine.info/termino/6771.php 5. http://www http://www.cs.us.es/cursos/bd-2001/te .cs.us.es/cursos/bd-2001/temas/sql_I.html mas/sql_I.html 6. http://www.alegsa.com.ar/Dic/sql.php 7. http://personal http://personal.lobocom.es/claud .lobocom.es/claudio/sql001.htm io/sql001.htm
8.http://www.error500.net/garbagecollector/archives/categorias/bases_de_datos/sql_y_l os_comandos_dml.php
9. http://www.miliuco.net/docs/oracle_select.htm http://sql.1keydata.com/es/sinta data.com/es/sintaxis-sql.php xis-sql.php 10. http://sql.1key
11. http://www.aulaclic.es/sql/t_8_1.htm
12. http://www.scribd.com/doc/2892924/Unidad-3-Lenguaje-SQL-I-DDL-y-DML