Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SQL Tutor
SQL Tutor
Programacin con
SQL
Aspecto terico prctico bsico
http://www.comsto.org
1.1 Introduccin.............................................................................3
2 .1 Estructura bsica.....................................................................3
2.2 Alias.........................................................................................4
3.1 Predicados y conectores...........................................................5
4.1 Tuplas duplicadas.....................................................................6
4.2 Operaciones de conjuntos .......................................................7
4.3 Pertenencia a un conjunto........................................................8
4.4 Comparacin de conjuntos.......................................................9
5.1 Pruebas para relaciones vacas.................................................9
6.1 Ordenacin de la presentacin de tuplas................................10
6.2 Funciones de agregacin........................................................10
7.1 Modificacin de la base de datos...........................................12
7.1.1 Eliminacin..................................................................12
7.1.2 Insercin.......................................................................13
7.1.3 Actualizaciones............................................................13
8.1 Valores nulos..........................................................................14
9.1 Definicin de datos ...............................................................14
9.1.1 Creacin........................................................................14
9.1.2 Eliminacion...................................................................15
9.1.3 Actualizacion.................................................................15
http://www.comsto.org
1.1 Introduccin
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 relacin estamos hablando mas concretamente a la
tabla de datos en si, y sus atributos sern los campos de la tabla. Como ejemplo la
siguiente relacin ( tabla ) la llamaremos persona y sus atributos ( campos ) son nombre,
apellido Y DNI
PERSONA
1
2
3
4
5
6
7
8
9
10
NOMBRE
MARTIN
PABLO
ROBERTO
ESTEFANIA
RUBEN
SANDRA
MELISA
SOLEDAD
BETANIA
JUAN
APELLIDO
MARQUESI
MARQUESI
SANCHEZ
GUISSINI
ALEGRATO
BRITTE
ARDUL
MICHELLI
MUSACHEGUI
SERRAT
DNI
26125988
25485699
20566401
27128064
24238975
25483669
27456224
29889656
27128765
28978845
2 .1 Estructura bsica
La estructura bsica de una expresin para consulta SQL consta de tres
clusulas:
SELECT
FROM
WHERE
http://www.comsto.org
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
1
2
NOMBRE
MARTIN
PABLO
2.2 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
Fundacin de Computadoras Histricas
http://www.comsto.org
ANSWER
1
2
PRIMER NOMBRE
MARTIN
PABLO
AND
OR
NOT
La lgica de estos conectores es igual que en cualquier lenguaje de programacin y
sirven para unir predicados.
Las operaciones aritmticas en SQL son:
+ ( Suma )
- ( Resta )
* ( Multiplicacin )
/ ( Divisin )
Tambin incluye el operador de comparacin 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
Fundacin de Computadoras Histricas
http://www.comsto.org
NOMBRE
MARTIN
ESTEFANIA
MELISA
BETANIA
DNI
26125988
27128064
27456224
27128765
NOMBRE
MARTIN
PABLO
MELISA
SANDRA
http://www.comsto.org
APELLIDO
MARQUESI
SANCHEZ
GUISSINI
ALEGRATO
BRITTE
ARDUL
MICHELLI
MUSACHEGUI
SERRAT
DNI
26125988
25485699
28978845
29789854
PUESTO
DELANTERO
MEDIO
ARQUERO
DEFENSOR
NRO_CAMISETA
9
5
1
3
http://www.comsto.org
PRIMER NOMBRE
MARTIN
PABLO
JUAN
Ejemplo 4.3 : Obtener todos los DNI de los que juegan al ftbol y, adems, estn en la
lista de la relacin persona
SELECT dni
FROM persona
INTERSECT
SELECT dni
FROM jugadores
ANSWER
1
2
3
DNI
26125988
25485699
28978845
Por omisin, la operacin de union elimina las tuplas duplicadas. Para retener
duplicados se debe escribir UNION ALL en lugar de UNION.
http://www.comsto.org
NOMBRE
MARTIN
PABLO
JUAN
APELLIDO
MARQUESI
MARQUESI
SERRAT
http://www.comsto.org
NOMBRE
APELLIDO
APELLIDO
SERRAT
SANCHEZ
MUSACHEGUI
MICHELLI
MARQUESI
MARQUESI
GUISSINI
BRITTE
ARDUL
ALEGRATO
NOMBRE
JUAN
ROBERTO
BETANIA
SOLEDAD
PABLO
MARTIN
ESTEFANIA
SANDRA
MELISA
RUBEN
http://www.comsto.org
10
Promedios AVG
Mnimo MIN
Mximo MAX
Total SUM
Contar COUNT
Para los prximos ejemplos incorporamos una nueva relacin llamada PRO que
representara los jugadores profesionales de ftbol, sus atributos sern dni, aos_pro,
club, valor_actual. Y los valores son los siguientes:
PRO
1
2
3
4
5
DNI
26125988
25485699
27126045
26958644
29120791
AOS_PRO
5
2
3
4
1
CLUB
ALL BOY'S
ALL BOY'S
LANUS
LANUS
LANUS
VALOR_ACTUAL
1000
2500
12000
6500
450
VALOR_TOTAL
3.500,00
18.950,00
NRO_JUGADORES
2
3
Ejemplo 6.3 : Determinar por cada club cual es el valor_actual del jugador mas caro
de la relacin pro
SELECT club, MAX(valor_actual) AS JUG_MAS_CARO
FROM pro
GROUP BY CLUB
ANSWER CLUB
1
ALL BOY'S
2
LANUS
JUG_MAS_CARO
2500
12000
http://www.comsto.org
11
JUG_MAS_CARO
12000
http://www.comsto.org
12
NOMBRE
SANDRA
APELLIDO
BRITTE
DNI
25483669
7.1.2 Insercin
Para insertar datos en una relacin, especificamos una tupla que se va a insertar
o escribimos una consulta cuyo resultado es un conjunto de tuplas que se van a insertar.
La insercin de tuplas la realizamos mediante las sentencias
INSERT INTO r1
VALUES (v1,v2,...,v)
Ejemplo 7.2 : Insertar una tupla con los mismos valores de la tupla eliminada en el
ejemplo anterior en la relacin persona.
INSERT INTO persona
VALUES
("SANDRA","BRITTE",25483669)
inserted
1
NOMBRE
SANDRA
APELLIDO
BRITTE
DNI
25483669
En este ejemplo, los valores se especifican en el orden en que se listan los atributos
correspondientes en el esquema de relacin. Para poder ingresar los datos en un orden
diferente podramos haber escrito
INSERT INTO persona(DNI, NOMBRE, APELLIDO)
VALUES
(25483669,"SANDRA","BRITTE")
7.1.3 Actualizaciones
En ciertas ocasiones podemos desear cambiar los valores de una tupla sin
cambiar todos los valores en dicha tupla. Para este propsito usamos la sentencia
UPDATE r1
SET A1 = V1, A2 = V2,...,An = Vn
WHERE P
Donde r1 es la relacin Ai el atributo a modificar Vi el valor que se le asignara a Ai y P
es el predicado.
http://www.comsto.org
13
DNI
25485699
PUESTO
MEDIO
NRO_CAMISETA
5
DNI
26356312
PUESTO
DEFENSOR
NRO_CAMISETA
http://www.comsto.org
14
NOMBRE
APELLIDO
TIEMPO_INHABILT
9.1.2 Eliminacin
Para eliminar una relacin usamos la orden DROP TABLE r, esta orden elimina
toda la informacin sobre la relacin sacada de la base de datos, esta orden es mas
fuerte que DELET FROM r ya que esta ultima elimina todas las tuplas pero no destruye
la relacin, mientras que la primera si.
Ejemplo 9.2 : eliminar la relacin persona
DROP TABLE persona
9.1.3 Actualizacion
La orden ALTER TABLE se usa para aadir atributos a una relacin existente.
A todas las tuplas en la relacin se les asigna NULL como valor de atributo. La sintaxis
de ALTER TABLE es la siguiente:
ALTER TABLE r1 ADD A1 D1
Ejemplo 9.3 : agregar los atributos de tipo char nombre y apellido a la relacin
jugadores
ALTER TABLE jugadores ADD NOMBRE CHAR(20)
ALTER TABLE jugadores ADD APELLIDO CHAR(20)
http://www.comsto.org
15