Вы находитесь на странице: 1из 3

Aunque el lenguaje SQL se considere un lenguaje de consultas, contiene muchas otras capacidades

adems de la consulta en bases de datos. Incluye caractersticas para denir la estructura de los
datos, para la modicacin de los datos en la base de datos y para la especicacin de
restricciones de seguridad.
Tambin hay ser consciente de que algunos sistemas de bases de datos ni siquiera soportan todas
las caractersticas de SQL-92 y de que muchas bases de datos proporcionan caractersticas no
estndar que no se tratan aqu. El lenguaje SQL tiene varios componentes:
Lenguaje de denicin de datos (LDD). El LDD de SQL proporciona rdenes para la denicin de
esquemas de relacin, borrado de relaciones, creacin de ndices y modificacin de esquemas de
relacin.
Lenguaje interactivo de manipulacin de datos (LMD). El LMD de SQL incluye un lenguaje de
consultas, basado tanto en el lgebra relacional como en el clculo relacional de tuplas. Incluye
tambin rdenes para insertar, borrar y modicar tuplas de la base de datos.
Definicin de vistas. El LDD de SQL incluye rdenes para la denicin de vistas.
Control de transacciones. SQL incluye rdenes para la especicacin del comienzo y nal de
transacciones.
SQL incorporado y SQL dinmico. SQL dinmico e incorporado dene cmo se pueden
incorporar las instrucciones SQL en lenguajes de programacin de propsito general, tales como C,
C++, Java, PL/I, Cobol, Pascal y Fortran.
Integridad. El LDD de SQ Lincluye rdenes para la especicacin de las restricciones de
integridad que deben satisfacer los datos almacenados en la base de datos. Las actualizaciones
que violen las restricciones de integridad se rechazan.
Autorizacin. El LDD de SQL incluye rdenes para especicar derechos de acceso para las
relaciones y vistas.
La estructura bsica de una expresin SQL consiste en tres clusulas:
select, from y where.
La clusula select corresponde a la operacin proyeccin del lgebra relacional. Se usa para listar
los atributos deseados del resultado de una consulta.
La clusula from corresponde a la operacin pro- ducto cartesiano del lgebra relacional. Lista
las relaciones que deben ser analizadas en la evaluacin de la expresin.
La clusula where corresponde al predicado seleccin del lgebra relacional. Es un predicado
que engloba a los atributos de las relaciones que aparecen en la clusula from.

La clusula select
El resultado de una consulta SQL es, por supuesto, una relacin. Considrese una consulta simple,
usando el ejemplo bancario, Obtener los nmeros de todas las sucursales en la relacin
prstamo:
select nombre-sucursal from prstamo
El resultado es una relacin consistente en el nico atributo nombre-sucursal. Los lenguajes
formales de consulta estn basados en la nocin matemtica de que una relacin es un con- junto.
As, nunca aparecen tuplas duplicadas en las relaciones. En la prctica, la eliminacin de
duplicados con- sume tiempo. Sin embargo, SQL (como la mayora de los lenguajes de consulta
comerciales) permite dupli- cados en las relaciones, as como en el resultado de las expresiones
SQL. As, la consulta anterior listar cada nombre-sucursal una vez por cada tupla en la que apa-
rece en la relacin prstamo.
La clusula where
A continuacin se ilustra con un ejemplo el uso de la clusula where en SQL. Considrese la
consulta Obtener todos los nmeros de prstamo para prstamos hechos en la sucursal con
nombre Navacerrada, en los que el importe sea superior a 1.200 . Esta consulta puede escribirse
en SQL como
select nmero-prstamo from prstamo where nombre-sucursal = Navacerradaand importe >
1200
SQL usa las conectivas lgicas and, or y not (en lugar de los smbolos matemticos , y ) en la
clu- sula where. Los operandos de las conectivas lgicas pueden ser expresiones que contengan
los operadores de comparacin <, <=, >, >=, = y <>. SQL permite usar los operadores de
comparacin para comparar cadenas y expresiones aritmticas, as como tipos especiales, tales
como el tipo fecha.
La clusula from
Finalmente, se estudia el uso de la clusula from. La clusula from dene por s misma un
producto cartesiano de las relaciones que aparecen en la clusula. Escribir una expresin SQL para
la reunin natural es una tarea relativamente fcil, puesto que la reunin natural se dene en
trminos de un producto cartesiano, una seleccin y una proyeccin. La expresin del lgebra
relacional se escribe como sigue:
nombre-cliente, nmero-prstamo,importe(prestatario prstamo)
para la consulta Para todos los clientes que tienen un prstamo en el banco, obtener los
nombres, nmeros de prstamo e importes. Esta consulta puede escribirse en SQL como
select nombre-cliente, prestatario.nmero-prstamo, importe from prestatario, prstamo where
prestatario.nmero-prstamo = prstamo.nmero-prstamo
Ntese que SQLusa la notacin nombre-relacin.nom- bre-atributo, como lo hace el lgebra
relacional, para evitar ambigedad en los casos en que un atributo apa- rece en el esquema de
ms de una relacin. Tambin se podra haber escrito prestatario.nombre-cliente en lugar de
nombre-cliente, en la clusula select. Sin embargo, como el atributo nombre-cliente aparece slo
en una de las relaciones de la clusula from, no existe ambige- dad al escribir nombre-cliente.

Вам также может понравиться