Agregar a Favoritos

Recomendar

Imprimir

Bajar este trabajo



 

Programación con SQL
Aspecto teórico práctico básico

Indice
1. Introducción
2. Estructura básica
3. Predicados y conectores
4. Tuplas duplicadas
5. Pruebas para relaciones vacías
6. Ordenación de la presentación de tuplas
7. Modificación de la base de datos
8. Valores nulos
9. Definición de datos

1. Introducción

SQL (Standar Query Lenguaje) es un lenguaje estandarizado de base de datos, el cual nos permite realizar tablas y obtener datos de ella de manera muy sencilla. Para exponer mas claramente los conceptos se realizaran ejemplo sobre relaciones que se crearan aquí para entender mejor como funciona SQL.
Cuando aquí nos refiramos a relación estamos hablando mas concretamente a la tabla de datos en si, y sus atributos serán los campos de la tabla. Como ejemplo la siguiente relación ( tabla ) la llamaremos persona y sus atributos ( campos ) son nombre, apellido Y DNI

PERSONA

NOMBRE

APELLIDO

DNI

1

MARTIN

MARQUESI

26125988

2

PABLO

MARQUESI

25485699

3

ROBERTO

SANCHEZ

20566401

4

ESTEFANIA

GUISSINI

27128064

5

RUBEN

ALEGRATO

24238975

6

SANDRA

BRITTE

25483669

7

MELISA

ARDUL

27456224

8

SOLEDAD

MICHELLI

29889656

9

BETANIA

MUSACHEGUI

27128765

10

JUAN

SERRAT

28978845

 

SQL es un lenguaje que consta de varias partes

  • Lenguaje de definición de datos ( DDL): Proporciona ordenes para definir esquemas de relación, eliminar relaciones, crear índices y modificar esquemas de relación.
  • Lenguaje de manipulación de datos interactivos (DML): incluye un leguaje de consultas que permite rescatar datos de las relaciones. También incluye ordenes para insertar, suprimir y modificar tuplas.
  • Lenguaje de manipulación de datos inmerso (DML): La forma inmersa de SQL esta diseñada para usar dentro de los lenguajes de programación de lenguaje general.
  • Definición de vistas (DDL): incluye ordenes para definir vistas.

2. Estructura básica

La estructura básica de una expresión para consulta SQL consta de tres cláusulas:

  • SELECT
  • FROM
  • WHERE

La cláusula SELECT se usa para listar los atributos que se desean en el resultado de una consulta.
La cláusula FROM lista las relaciones que se van a examinar en la evaluación de la expresión
La cláusula WHERE costa de un predicado que implica atributos de las relaciones que aparecen en la cláusula FROM.
Una consulta básica en SQL tiene la forma:
SELECT A1,A2,...,An
FROM r1,r2,...,rn
WHERE P
Donde Ai = atributo ( Campo de la tabla )
ri = relación ( Tabla )
P = predicado ( condición )

Ejemplo 2.1 : Seleccionar todos los nombres de las personas que tengan el apellido MARQUESI de la tabla persona
SELECT nombre
FROM persona
WHERE apellido = " MARQUESI"

ANSWER

NOMBRE

1

MARTIN

2

PABLO

El resultado de una consulta es por supuesto otra relación. Si se omite la cláusula WHERE, el predicado P es verdadero. La lista A1, A2,..., An puede sustituirse por un asterisco (*) para seleccionar todos los atributos de todas las relaciones que aparecen en la cláusula FROM, aunque no es conveniente elegir esta ultima opción salvo que sea necesario pues desperdiciamos mucho tiempo en obtenerlo

Alias
Es posible renombrar los atributos y las relaciones, a veces por conveniencia y otras veces por ser necesario, para esto usamos la clausula AS como en el siguiente ejemplo.

Ejemplo 2.2
SELECT P.nombre AS [PRIMER NOMBRE]
FROM persona P
WHERE apellido = "MARQUESI"

ANSWER

PRIMER NOMBRE

1

MARTIN

2

PABLO

 

En este ejemplo cabe destacar un par de cosas. Cuando nos referimos a un atributo como es el caso de nombre, podemos referirnos a este usando la relación ( o el alias en este ejemplo ) a la que pertenece el atributo seguido de un punto seguido del atributo <P.nombre>, a veces esta notación será necesaria para eliminar ambigüedades. Los corchetes los usamos cuando usamos espacios en blancos o el caratér (–) en el nombre de atributo o alias.
Usar alias en los atributos nos permite cambiar el nombre de los atributos de la respuesta a la consulta.
Cuando asociamos un alias con una relación decimos que creamos una variable de tupla. Estas variables de tuplas se definen en la cláusula FROM después del nombre de la relación.
En las consultas que contienen subconsultas, se aplica una regla de ámbito a las variables de tupla. En una subconsulta esta permitido usar solo variables de tupla definidas en la misma subconsulta o en cualquier consulta que tenga la subconsulta.

3. Predicados y conectores

Los conectores lógicos en SQL son:

  • AND
  • OR
  • NOT

La lógica de estos conectores es igual que en cualquier lenguaje de programación y sirven para unir predicados.
Las operaciones aritméticas en SQL son:

  • + ( Suma )
  • - ( Resta )
  • * ( Multiplicación )
  • / ( División )

También incluye el operador de comparación BETWEEN, que se utiliza para valores comprendidos
Ejemplo 3.1 : Encontrar todos los nombres y dni de las personas cuyos dni sea mayor que 26 millones y menor a 28 millones
SELECT nombre, dni
FROM persona
WHERE dni BETWEEN 26000000 and 28000000

ANSWER

NOMBRE

DNI

1

MARTIN

26125988

2

ESTEFANIA

27128064

3

MELISA

27456224

4

BETANIA

27128765

 

Análogamente podemos usar el operador de comparación NOT BETWEEN.
SQL también incluye un operador de selección para comparaciones de cadena de caracteres. Los modelos se describen usando los caracteres especiales:

  • El carácter ( % ) es igual a cualquier subcadena
  • El operador ( _ ) es igual a cualquier carácter

Estos modelos se expresan usando el operador de comparación LIKE. Un error muy frecuente es tratar de utilizar los modelos mediante el operador de igualdad ( = ) lo cual es un error de sintaxis.
Ejemplo 3.2 : encontrar los nombres que comiencen con la letra p o el nombre tenga exactamente 6 caracteres de la relación persona
SELECT nombre
FROM persona
WHERE (nombre LIKE "P%") OR (nombre LIKE "_ _ _ _ _ _")

ANSWER

NOMBRE

1

MARTIN

2

PABLO

3

MELISA

4

SANDRA

Análogamente podemos buscar desigualdades usando el operador de comparación NOT LIKE.

4. Tuplas duplicadas

Los lenguajes de consulta formales se basan en la noción matemática de relación como un conjunto. Por ello nunca aparecen tuplas duplicadas en las relaciones. En la practica la eliminación de duplicados lleva bastante tiempo. Por lo tanto SQL permite duplicados en las relaciones. Así pues en las consultas se listaran todas las tuplas inclusive las repetidas.
En aquellos casos en los que queremos forzar la eliminación de duplicados insertamos la palabra clave DISTINCT después de la cláusula SELECT
Ejemplo 4.1: Listar todos los apellidos no repetidos de la relación persona
SELECT DISTINCT apellido
FROM persona

ASWER

APELLIDO

1

MARQUESI

2

SANCHEZ

3

GUISSINI

4

ALEGRATO

5

BRITTE

6

ARDUL

7

MICHELLI

8

MUSACHEGUI

9

SERRAT

Si observamos la tabla original de la relación persona veremos que el apellido marquesi aparecía dos veces, pero debido al uso de DISTINCT en la consulta la relación respuesta solo lista un solo marquesi.

Operaciones de conjunto.
SQL incluye las operaciones de conjuntos UNION, INTERSECT, MINUS, que operan sobre relaciones y corresponden a las operaciones del álgebra unión, intersección y resta de conjuntos respectivamente. Para realizar esta operación de conjuntos debemos tener sumo cuidado que las relaciones tengan las mismas estructuras.
Incorporemos ahora una nueva relación, llamada jugadores que representa las personas que juegan al fútbol, sus atributos serán DNI, puesto y nro_camiseta. Supongamos que esta nueva tabla esta conformada de la siguiente manera

JUGADORES

DNI

PUESTO

NRO_CAMISETA

1

26125988

DELANTERO

9

2

25485699

MEDIO

5

3

28978845

ARQUERO

1

4

29789854

DEFENSOR

3

 

Ejemplo 4.2 : Obtener todos los nombres de la relación persona cuyos apellidos sean Marquesi o Serrat
SELECT nombre
FROM PERSONA
WHERE apellido = "MARQUESI"
UNION
SELECT nombre
FROM PERSONA
WHERE apellido = "SERRAT"

ANSWER

PRIMER NOMBRE

1

MARTIN

2

PABLO

3

JUAN

Ejemplo 4.3 : Obtener todos los DNI de los que juegan al fútbol y, además, están en la lista de la relación persona
SELECT dni
FROM persona
INTERSECT
SELECT dni
FROM jugadores

ANSWER

DNI

1

26125988

2

25485699

3

28978845

Por omisión, la operación de union elimina las tuplas duplicadas. Para retener duplicados se debe escribir UNION ALL en lugar de UNION.

Pertenencia a un conjunto
El conector IN prueba si se es miembro de un conjunto, donde el conjunto es una colección de valores producidos en lo general por una cláusula SELECT. Análogamente el conector NOT IN prueba la no pertenencia al conjunto
Ejemplo 4.4 : Encontrar los nombres de las personas que juegan al fútbol y, además, se encuentran en la relación persona
SELECT nombre, apellido
FROM persona
WHERE dni IN
(SELECT dni
FROM jugadores)

ANSWER

NOMBRE

APELLIDO

s

1

MARTIN

MARQUESI

2

PABLO

MARQUESI

3

JUAN

SERRAT

Es posible probar la pertenencia de una relación arbitraria SQL usa la notación de elementos <v1,v2,...,vn> para representar una tupla de elementos de n que contiene los valores v1,v2,...,vn.

Comparación de conjuntos
En conjuntos la frase << mayor que algún >> se representa en SQL por ( >SOME ), también podría entenderse esto como << mayor que el menor de >>, su sintaxis es igual que la del conector IN. SQL también permite las comparaciones ( >SOME ),( =SOME ) ( >=SOME ), ( <=SOME ) y ( <>SOME ).
También existe la construcción ( >ALL ), que corresponde a la frase << mayor que todos >>. Al igual que el operador SOME, puede escribirse ( >ALL ),( =ALL ) ( >=ALL ), ( <=ALL ) y ( <>ALL ).
En ocasiones podríamos querer comparar conjuntos para determinar si un conjunto contiene los miembros de algún otro
conjunto. Tales comparaciones se hacen usando las construcciones CONTAINS y NOT CONTAINS



Volver Arriba



Política de Privacidad y Contenido - Haga Publicidad en Monografias.com - Contáctenos