Actividad 6.1

INVESTIGAR DE SQL:


Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).
El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras. Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una potencia y versatilidad notables que contrasta, por otra, con su accesibilidad de aprendizaje.El manual de SQL de desarrolloweb pretende dar a conocer las operaciones básicas que se pueden realizar con SQL y que tienen una aplicación directa con la creación de aplicaciones en red sin profundizar más de lo estrictamente necesario. Buscamos con ello ofrecer al webmaster un manual de referencia práctico y aplicado.

DEFINICIÓN DE DATOS EN SQL.
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 área tiene que ver con cómo se organizan internamente los datos y eso, cada sistema lo hace de una manera u otra.
Es un lenguaje que define la estructura, su especificación puede cambiar de un gestor de base de datos a otro. Define como el sistema organiza internamente los datos. Se encarga de la creación, modificación y eliminación de los objetos de la base de datos (es decir los metadatos).
SINTAXIS:
<definición de esquema >::=
CREATE SCHEMA <cláusula de nombre de esquema>
[ <elemento de esquema> ... ]
<cláusula de nombre de esquema> ::=
<nombre de esquema>
| AUTHORIZATION <id. de autorización de usuario>
|<nombre de esquema> AUTHORIZATION <id. de autorización de usuario>
<elemento de esquema> ::=
<definición de dominio>
| <definición de tabla>
| <definición de vista>
| <definición de aserción>
<definición de dominio> ::=
CREATE DOMAIN <nombre de dominio> [ AS ] <tipo de datos>
[ <cláusula de defecto> ]
[ <restricción de dominio> ]
<cláusula de defecto> ::=
DEFAULT <opción por defecto>
<opción por defecto> ::=
<literal>
|<función de valor tiempo/fecha>
| USER
| SYSTEM
| USER
| NULL
<restricción de dominio> ::=
[ <definición de nombre de restricción> ]
< definición de restricción de verificación>
[ <atributos de restricción> ]
<definición de nombre de restricción> ::=
CONSTRAINT <nombre de restricción>
<definición de restricción de verificación> ::=
CHECK <parent. izq.> <condición de búsqueda> <parent. dcho.>
<atributos de restricción> ::=
<tiempo de verificación de restricción> [ [NOT] DEFERRABLE ]
| [ [NOT] DEFERRABLE ] <tiempo de verificación de restricción>


ESTRUCTURA BÁSICA DE LAS CONSULTAS EN SQL.


Las BD relacionales están formadas por un conjunto de relaciones. Permite el uso de valores nulos para indicar valores desconocidos o que no existen, así como también permite al usuario especificar los atributos que no pueden contener valores nulos.
La estructura básica de una expresión en SQL consta de tres clausulas:
La cláusula select se corresponde con la operación proyección del algebra relacional.
La cláusula  from se corresponde con la operación producto cartesiano del algebra relacional.
La cláusula  where se corresponde con el predicado de selección del algebra relacional.
3.3.1 La clausula select
EL resultado de las consultas SQL es una relación. Considerese la consulta simple basada en un ejemplo de un banco “Obtener el nombre de todas las sucursales de la relación préstamo”.
Select nombre_sucursal
From préstamo
3.3.2 La clausula where
A continuación se muestra el uso de la clausula where en SQL. Considerese la consulta “Obtener todos los prestamos concedidos en la sucursal Navacerrada e importe superior a $1200”. Esta consulta puede escribirse en SQL como:
Select numero_prestamo
From préstamo
Where nombre_sucursal = “Navacerrada” and importe>1200
SQL usa las conectivas lógica and, or y not para la clausula where. SQL también incluye el operador de comparación between para simplificar las clausulas where el cual especifica que un valor sea menor o igual que un valor y mayor o igual otro valor.
 La cláusula from
Finalmente se estudiara el uso de la cláusula from. La cláusula from define por si misma un producto cartesiano de las relaciones que aparecen en la cláusula. Dado que la reunión natural se define en términos de un producto cartesiano, una selección y una proyección, resulta relativamente sencillo escribir una expresión de SQL para la reunion natural.
Operaciones con cadenas de caracteres 
SQL especifica las cadenas de caracteres encerrándolas entre comillas simples, como en "Navacerrada", como ya se ha visto anteriormente.

La operación mas utilizada sobre las cadenas de caracteres es la comparación de patrones para la que se usa el operador like.
  La cláusula where

A continuación se muestra el uso de la cláusula where en SQL. Considérese la consulta "Obtener todos los prestamos concedidos en la sucursal Navacerrada e importe superior a $1200". Esta consulta puede escribirse en SQL como:

select número_préstamo
from préstamo
where nombre_sucursal= "Navacerrada" and importe>1200
  La cláusula select
El resultado de las consultas SQL es, por supuesto, una relación. Considérese la consulta simple basada en un ejemplo de un banco "Obtener el nombre de todas las sucursales de la relación préstamo".

select nombre_sucursal
from préstamo
  La operacion renombramiento
SQL proporciona un mecanismo para renombrar tanto relaciones como atributos. Utiliza la clausula as de la siguiente manera: 

nombre-antiguo as nombre-nuevo
Introducción
Las bases de datos relacionales están formadas por un conjunto de relaciones. Permite el uso de valores nulos para indicar valores desconocidos o que no existen, asi como también permite al usuario especificar los atributos que no pueden contener valores nulos.

La estructura básica de una expresión en SQL consta de tres clausulas: select, from y where.
La clausula select se corresponde con la operación proyección del álgebra relacional.

La clausula from se corresponde con la operación producto cartesiano del álgebra relacional.

La clausula where de corresponde con el predicado selección del algebra relacional.
SQL usa las conectivas lógicas and, or y not para la cláusula where. SQL también incluye el operador de comparación between para simplificar las clausulas where el cual especifica que un valor sea menor o igual que un valor y mayor o igual otro valor 
Ejemplo: 

Obtener el número de préstamo de aquellos préstamos con impor entre $90,000 y $100,000.

select número_préstamo
from préstamo
where importe between 90000 and 100000
Ejemplo:

Para todos los clientes que tienen un préstamo del banco, obtener el nombre, el numero de préstamo y su importe". Esta consulta puede escribirse en SQL como:

select nombre_cliente, prestatario.numero_préstamo, importe
from prestatario.préstamo
where prestatario.numero_prestamo = prestamo.numero_prestamo
Obsérvese que SQL usa la notación nombre-relación.nombre-atributo, como lo hace el Álgebra Relacional para evitar ambigüedades en casos en los que un atributo aparece en mas de un esquema de relación.
  Variables tupla
La clausula as resulta especialmente util en la definición del concepto de variable tupla. Las variables tupla en SQL se deben asociar con una relación concreta. Las variables tupla se definen en la clausula from mediante la clausula as.
Para ilustrarlo, se reescribirá la consulta "Para todos los clientes que tienen concedido un préstamo por el banco, obtener el nombre, el numero de préstamo y su importe como:

select nombre_cliente, T.numero_préstamo, S.importe
from prestatario as T, préstamo as S
where T.numero_préstamo = S.numero_préstamo

Observe se que la variable tupla se define en la clausula from colocándola después del nombre de la relación a la cual esta asocia y detras de la palabra clave as.
Para la descripción de los patrones se utilizan dos caracteres especiales:

Tanto por ciento(%). El carácter % coincide con cualquier subcadena de caracteres.

Subrayado(_). El carácter _ coincide con cualquier carácter.
Ejemplos:

'Nava%' coincide con cualquier cadena de caracteres que empiece con "Nava".´
'%cer%' coincide con cualquier cadena que contenga "cer" como sub cadena, por ejemplo 'Navacerrada', 'Caceres' y 'Becerril'.
'_ _ _' coincide con cualquier cadena que tenga exactamente tres caracteres.
'_ _ _%' coincide con cualquier cadena que tenga al menos tres caracteres.
Considérese la consulta "Determinar el nombre de todos los clientes cuya dirección contenga la subcadena de caracteres "Mayor". Esta consulta se puede escribir como:

selct nombre_cliente
from cliente
where calle_cliente like '%Mayor%'

OPERACIONES SOBRE CONJUNTOS EN SQL.


SQL proporciona varias operaciones de conjuntos muy eficaces. Por ejemplo, incluye operadores de conjuntos del estilo de los de SQL como UNION, INTERSECT, EXCEPT y EXISTS. Entity SQL también es compatible con operadores para la eliminación de duplicados (SET), la prueba de pertenencia a un grupo (IN) y las combinaciones (JOIN). En los temas siguientes se describen los operadores de conjuntos de SQL.

·   UNION, disponible en todas las versiones de SQL Server.
·  EXCEPT, nuevo en SQL Server 2005.
·   INTERSECT, nuevo en SQL Server 2005.

Para utilizar operaciones de conjuntos debemos cumplir una serie de normas.
·Las consultas a unir deben tener el mismo número campos, y además los campos deben ser del mismo tipo.
·Sólo puede haber una única clausula ORDER BY al final de la sentencia SELECT.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh69W6K5sgdc0wW2IgX2yOcycMeYdFQMZ2Fr0lSy5bDxinV0424yPC7OXKE0U9EgSJCGRcsIES1uiep_7WRLN1wyr6Fecy_cg_3g-g4_Rj-s7kLqn8Vzr9IEJvdnZ_XBx-rQTL2jFX6fDC2/s320/Presentation1.jpg

   UNIÓN
Devuelve la suma de dos o más conjuntos de resultados. El conjunto obtenido como resultado de UNION tiene la misma estructura que los conjuntos originales.
El siguiente ejemplo muestra el uso de UNION



SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM EMPLEADOS
UNION
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM CLIENTES
Cuando realizamos una consulta con UNION internamente se realiza una operacion DISTINCTsobre el conjunto de resultados final. Si queremos obtener todos los valores debemos utiliza UNION ALL.


  EXCEPT
Devuelve la diferencia (resta) de dos o más conjuntos de resultados. El conjunto obtenido como resultado de EXCEPT tiene la misma estructura que los conjuntos originales.
 El siguiente ejemplo muestra el uso de EXCEPT


SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM EMPLEADOS
UNION ALL
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM CLIENTES

El uso de EXCEPT, como norma general, es mucho más rápido que utilizar condiciones NOT IN oEXISTS en la clausula WHERE.


 INTERSECT
Devuelve la intersección entre dos o más conjuntos de resultados en uno. El conjunto obtenido como resultado de INTERSECT tiene la misma estructura que los conjuntos originales.
El siguiente ejemplo muestra el uso de INTERSECT

SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM EMPLEADOS
EXCEPTSELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM CLIENTES
< class="texto">


SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM EMPLEADOS
INTERSECTSELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM CLIENTES

Comentarios

Entradas populares de este blog

Ejercicios

Evaluación Intermedia Unidad V

Arquitectura del Sistema Gestor de Base de Datos (SGBD)