You are on page 1of 7

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 esuna 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.
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)
Sentenci
Objetivo
a DDL
Alter
Recompilar un procedimiento almacenado.
procedure
Añadir o redefinir una columna, modificar la
Alter Table
asignación de almacenamiento.
Recoger estadísticas de rendimiento sobre los
Analyze objetos de la BD para utilizarlas en el optimizador
basado en costes.
Create
Crear una tabla.
Table
Create
Crear un índice.
Index
Drop Table Eliminar una tabla.
Drop Index Eliminar un índice.
Conceder privilegios o papeles, roles, a un usuario
Grant
o a otro rol.
Truncate Eliminar todas las filas de una tabla.
Retirar los privilegios de un usuario o rol de la base
Revoke
de datos.
Sentenci
Objetivo
a DML
Insert Añadir filas de datos a una tabla.
Delete Eliminar filas de datos de una tabla.
Update Modificar los datos de una tabla.
Select Recuperar datos de una tabla.
Confirmar como permamentes las modificaciones
Commit
realizadas.
Deshacer todas las modificaciones realizadas
Rollback
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 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>)
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
createpermite 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;

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;

1
http://www.error500.net/garbagecollector/archives/bases_de_datos/in
dex.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/ManualPractico
SQL.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):

You might also like