SQL

10
SQL SQL es una herramienta para organizar, gestionar y recuperar datos almacenados en una base de datos. Es la abreviatura de Strutured Query Languaje (lenguaje estructurado de consulta) y funciona con un tipo de base de datos especifico. Las bases de datos relacionales. SQL además es una herramienta de consulta y recuperación (2)(SQL) STRUCTURED QUERY LANGUAGE O LENGUAJE DE CONSULTAS ESTRUCTURADO: Es el lenguaje que permite la comunicación con el Sistema Gestor de Bases de Datos (Oracle en nuestro caso). El SQL es un lenguaje unificado Lo utilizan todo tipo de usuarios, desde el administrador de la base de datos, DBA, hasta el usuario final. El SQL es un lenguaje no procedimental. El usuario especifica Qué quiere, no Cómo ni Dónde conseguirlo. El SQL es relacionalmente completo. Permite la realización de cualquier consulta de datos. SQL= DDL + DML Las sentencias del SQL se clasifican como parte del DDL o del DML. Lenguaje de Definición de Datos, DDL sentencias del SQL que permiten definir los objetos de la Base de Datos (create, revoke, grant, alter, etc.). Cuando se definen dichos objetos se almacenan en el diccionario de datos. Lenguaje de Manipulación de Datos, DML

Transcript of SQL

Page 1: SQL

SQL

SQL es una herramienta para organizar, gestionar y recuperar datos almacenados en una base de datos. Es la abreviatura de Strutured Query Languaje (lenguaje estructurado de consulta) y funciona con un tipo de base de datos especifico. Las bases de datos relacionales. SQL además es una herramienta de consulta y recuperación

(2)(SQL) STRUCTURED QUERY LANGUAGE O LENGUAJE DE CONSULTAS ESTRUCTURADO:

Es el lenguaje que permite la comunicación con el Sistema Gestor de Bases de Datos (Oracle en nuestro caso).

El SQL es un lenguaje unificado Lo utilizan todo tipo de usuarios, desde el administrador de la base de datos, DBA, hasta el usuario final.

El SQL es un lenguaje no procedimental.

El usuario especifica Qué quiere, no Cómo ni Dónde conseguirlo.

El SQL es relacionalmente completo.

Permite la realización de cualquier consulta de datos.

SQL= DDL + DML

Las sentencias del SQL se clasifican como parte del DDL o del DML.

Lenguaje de Definición de Datos, DDL sentencias del SQL que permiten definir los objetos de la Base de Datos (create, revoke, grant, alter, etc.). Cuando se definen dichos objetos se almacenan en el diccionario de datos.

Lenguaje de Manipulación de Datos, DML sentencias del SQL que se utilizan para manejar los datos de la base de datos (select, insert, update, delete, etc).

commit/rollback cada vez que se realiza alguna operación en la base de datos se realiza no sobre la tabla en sí, sino sobre una copia local de la misma. Así, si queremos que los resultados de la modificación se trasladen a la base de datos y perduren en el tiempo hay que confirmar dicha operación con el comando commit. También se puede impedir que los últimos cambios lleguen a efectuarse con rollback, aunque existen algunas sentencias SQL que se 'autoconfirman' y no se pueden volver atrás.

Page 2: SQL

Diccionario de la Base de Datos Guarda la definición de todos los objetos almacenados en la base de datos; sus características, restricciones, privilegios, relaciones entre ellos, etc.

(2)TIPOS DE SENTENCIAS

Las sentencias SQL pertenecen a dos categorías principales: Lenguaje de Definición de Datos, DDL y Lenguaje de Manipulación de Datos, DML. Estos dos lenguajes no son lenguajes en sí mismos, sino que es una forma de clasificar las sentencias de lenguaje SQL en función de su cometido. La diferencia principal reside en que el DDL crea objetos en la base de datos y sus efectos se pueden ver en el diccionario de la base de datos; mientras que el DML es el que permite consultar, insertar, modificar y eliminar la información almacenada en los objetos de la base de datos.

Cuando se ejecutan las sentencias DDL de SQL, el SGBD confirma la transacción actual antes y después de cada una de las sentencias DDL. En cambio, las sentencias DML no llevan implícito el commit y se pueden deshacer. Existe pues un problema al mezclar sentencias DML con DDL, ya que estas últimas pueden confirmar las primeras de manera involuntaria e implicita, lo que en ocasiones puede ser un problema.

A continuación se presenta una tabla con las sentencias SQL más comunes, clasificadas según el lenguaje al que pertenecen.

(2)

Sentencia DDL

Objetivo

Alter procedure

Recompilar un procedimiento almacenado.

Alter Table Añadir o redefinir una columna, modificar la asignación de almacenamiento.

Analyze Recoger estadísticas de rendimiento sobre los objetos de la BD para utilizarlas en el optimizador basado en costes.

Create Table Crear una tabla. Create Index Crear un índice. Drop Table Eliminar una tabla. Drop Index Eliminar un índice. Grant Conceder privilegios o papeles, roles, a un usuario o a otro rol. Truncate Eliminar todas las filas de una tabla. Revoke Retirar los privilegios de un usuario o rol de la base de datos. Sentencia DML

Objetivo

Insert Añadir filas de datos a una tabla.

Page 3: SQL

Delete Eliminar filas de datos de una tabla. Update Modificar los datos de una tabla. Select Recuperar datos de una tabla. Commit Confirmar como permamentes las modificaciones realizadas.

Rollback Deshacer todas las modificaciones realizadas desde la última confirmación.

(1) SQL Y LOS COMANDOS DML

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 DELETE son comandos DML

Otras ódenes como COMMIT, START TRANSACTION o ROLLBACK están en el límite de lo que podemos considerar órdenes DML de SQL puesto que no inciden en la manipulación o consulta de datos pero sí en el proceso en que esto se realiza.

Por cierto que lo de "START TRANSACTION" no es estándar y depende de la implementación de SQL (en Sybase si no recuerdo mal, una transacción se modela poniendo el AUTOCOMMIT a false y tras hacer el COMMIT o ROLLBACK, a true).

(1)LENGUAJE DE DEFINICIÓN DE DATOS (DDL)

Una vez finalizado el diseño de una base de datos y escogido un SGBD para su implementación, el primer paso consiste en especificar el esquema conceptual y el esquema interno de la base de datos, y la correspondencia entre ambos. En muchos SGBD no se mantiene una separación estricta de niveles, por lo que el administrador de la base de datos y los diseñadores utilizan el mismo lenguaje para definir ambos esquemas, es el lenguaje de definición de datos (DDL). El SGBD posee un compilador de DDL cuya función consiste en procesar las sentencias del lenguaje para identificar las descripciones de los distintos elementos de los esquemas y almacenar la descripción del esquema en el catálogo o diccionario de datos. Se dice que el diccionario contiene metadatos: describe los objetos de la base de datos.

Cuando en un SGBD hay una clara separación entre los niveles conceptual e interno, el DDL sólo sirve para especificar el esquema conceptual. Para especificar el esquema interno se utiliza un lenguaje de definición de almacenamiento (LDA). Las correspondencias entre ambos esquemas se pueden especificar en cualquiera de los dos lenguajes. Para tener una verdadera arquitectura de tres niveles sería necesario

Page 4: SQL

disponer de un tercer lenguaje, el lenguaje de definición de vistas (LDV), que se utilizaría para especificar las vistas de los usuarios y su correspondencia con el esquema conceptual.

(4)SENTENCIAS SQL DML

(4)SENTENCIA de selección – SELECT

La selección sobre una tabla consiste en elegir un subconjunto de filas que cumplan (o no) algunas condiciones determinadas. La sintaxis de una sentencia de este tipo es la siguiente:

SELECT */ <columna1, columna2,....>FROM <nombre-tabla>[WHERE <condición>?[GROUP BY <columna1, columna2....> ?[HAVING <condición-selección-grupos> ?[ORDER BY <columna1 [DESC?, columna2 [DESC?...> ?

* / <columna1, columna2,....>Si se escribe *, selecciona todas las columnas. Si se desea seleccionar sólo algunas columnas de la tabla, se debe poner los nombres de cada una de ellas, separadas por una coma.

<nombre-tabla>Nombre de la(s) tabla(s) de la(s) cual(es) se van a seleccionar los valores.

(4)SENTENCIA UPDATE

Actualiza valores de una o más columnas para un subconjunto de filas de una tabla.

UPDATE <nombre-tabla>SET <columna1> = valor1 [, <columna2> = valor2 ...?[WHERE <condición>?

Actualiza los campos correspondientes junto con los valores que se le asignen, en el subconjunto de filas que cumplan la condición de selección. Si no se pone condición de selección, la actualización se da en todas las filas de la tabla.Si se desea actualizar a nulos, se asignará el valor NULL.

(4)SENTENCIA INSERT

Añade filas a una tabla. Posee varios formatos posibles:

• INSERT INTO <nombre-tabla> VALUES (<serie de valores>)

Page 5: SQL

El orden en el que se asignen los valores en la cláusula VALUES tiene que coincidir con el orden en que se definieron las columnas en la creación del objeto tabla, dado que los valores se asignan por posicionamiento relativo.

• INSERT INTO <nombre-tabla> (<columna1>, <columna2>.....) VALUES (<valor1>, <valor2>....)

En este caso los valores se asignarán a cada una de las columnas mencionadas por posicionamiento relativo, siendo necesario que por lo menos se asignen valores a todas aquellas columnas que no admiten valores nulos en la tabla.

(5)Sentencias SQL DDL

(5)Sentencia create :

Dentro del lenguaje de definición (ddl) del sql, la sentencia create permite la definición o creación de muchos objetos de la base de datos tales como. Tablas (esquemas), índices,vistas, dominios, ligaduras de integridad y procedimientos.

Sintexis

Creattetable nombre_tabla

(

Campo1 tipo dato [null/not null] | check (exxpresionlogica)| [DEFAULT expresiónconstante ],

Campo-N,

PRIMARY KEY(campo_llave),

FOREIGN KEY ( campo_llave)REFERENCES tabla2(campo_llave-tabla2)

)

(5)Sentencias 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;

Page 6: SQL

DROP SEQUENCE COD_CLIENTE;

DROP SYNONYM BILL;

DROP VIEW TOTAL_FACTURA_CLIENTE;

DROP TABLESPACE tab_indices;

Ciertas sentencias DROP (como DROP TABLE o DROP TABLESPACE) tienen cláusulas adicionales para ciertas situaciones especiales. Para más información buscar la ayuda de la sentencia necesitada en el Oracle8 SQL Reference.

(5)Sentencias 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\DATABASE\nombre.ora’ TO ‘C:\ORANT\DATABASE\otro_nombre.ora’

ALTER TABLESPACE tab_indices COALESCE;

ALTER SEQUENCE NOCYCLE;

Page 7: SQL

1 http://www.error500.net/garbagecollector/archives/bases_de_datos/index.html

2 http://www.infor.uva.es/~jvegas/cursos/bd/sqlplus/sqlplus.html

3 http://www.mitecnologico.com/Main/LenguajeDeDefinicionDeDatosDdl

4 http://www.miliuco.net/docs/oracle_select.htm

5 http://www.lawebdelprogramador.com/cursos/archivos/ManualPracticoSQL.pdf

6 http://www.wikilearning.com/curso_gratis/iniciacion_a_oracle-lenguaje_estructurado_de_consultas_sql_4/3861-10

Glosario:

Definición de SGBD:(Sistema de gestión de base de datos) o en inglés Database management system (DBMS), es una agrupación de programas que sirven para definir, construir y manipular una base de datos.

http://www.alegsa.com.ar/Dic/sgbd.php

Lenguaje de definición de almacenamiento (LDA):