SlideShare una empresa de Scribd logo
1 de 15
Programación con SQL Aspecto teórico practico básico
Programación con
SQL
Aspecto teórico práctico básico
Vargas Daniel Eduardo ( daniedvargas@hotmail.com )
Fundación de Computadoras Históricas
http://www.comsto.org
NPW DEV-7129055-002
Fundación de Computadoras Históricas http://www.comsto.org 1
Programación con SQL Aspecto teórico practico básico
1.1 Introducción.............................................................................3
2 .1 Estructura básica.....................................................................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 Comparación de conjuntos.......................................................9
5.1 Pruebas para relaciones vacías.................................................9
6.1 Ordenación de la presentación de tuplas................................10
6.2 Funciones de agregación........................................................10
7.1 Modificación de la base de datos...........................................12
7.1.1 Eliminación..................................................................12
7.1.2 Inserción.......................................................................13
7.1.3 Actualizaciones............................................................13
8.1 Valores nulos..........................................................................14
9.1 Definición de datos ...............................................................14
9.1.1 Creación........................................................................14
9.1.2 Eliminacion...................................................................15
9.1.3 Actualizacion................................................................15
Fundación de Computadoras Históricas http://www.comsto.org 2
Programación con SQL Aspecto teórico practico básico
1.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 .1 Estructura básica
La estructura básica de una expresión para consulta SQL consta de tres
cláusulas:
• SELECT
• FROM
• WHERE
Fundación de Computadoras Históricas http://www.comsto.org 3
Programación con SQL Aspecto teórico practico básico
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
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”
Fundación de Computadoras Históricas http://www.comsto.org 4
Programación con SQL Aspecto teórico practico básico
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.1 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
Fundación de Computadoras Históricas http://www.comsto.org 5
Programación con SQL Aspecto teórico practico básico
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.1 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.
Fundación de Computadoras Históricas http://www.comsto.org 6
Programación con SQL Aspecto teórico practico básico
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.
4.2 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
Fundación de Computadoras Históricas http://www.comsto.org 7
Programación con SQL Aspecto teórico practico básico
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.
4.3 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
Fundación de Computadoras Históricas http://www.comsto.org 8
Programación con SQL Aspecto teórico practico básico
SELECT nombre, apellido
FROM persona
WHERE dni IN
( SELECT dni
FROM jugadores )
ANSWER NOMBRE APELLIDO
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.
4.4 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
5.1 Pruebas para relaciones vacías
La construcción EXISTS devuelve el valor TRUE si la subconsulta del
argumento no esta vacía, y la construcción NOT EXISTS devuelve TRUE si la
consulta es vacía.
Ejemplo 5.1 : encontrar todos los nombre y apellidos de la relación persona si es que
en la relación jugadores existe un jugador con el numero de dni 27128055
SELECT nombre, apellido
FROM persona
WHERE EXISTS
( SELECT dni
FROM jugadores
Fundación de Computadoras Históricas http://www.comsto.org 9
Programación con SQL Aspecto teórico practico básico
WHERE dni = 27128055 )
ANSWER NOMBRE APELLIDO
Como el dni = 27128055 no existe en la relación jugadores, la condición es FALSE y
por lo tanto la respuesta es vacía
6.1 Ordenación de la presentación de tuplas
SQL ofrece al usuario cierto control sobre el orden en el que se va a presentar
las tuplas en una relación. La cláusula ORDER BY hace que las tupla en el resultado dé
una consulta en un orden especifico.
Por omisión SQL lista los elementos en orden ascendente. Para especificar el
tipo de ordenación, podemos especificar DESC para orden descendente o ASC para
orden ascendente.
También es posible ordenar los resultados por mas de una atributo
Ejemplo 6.1 : encontrar todos los nombres y apellido de la relación persona y ordenar
los resultados por apellido y nombre en forma descendente
SELECT apellido, nombre
FROM persona
ORDER BY apellido DESC, nombre DESC
ANSWER APELLIDO NOMBRE
1 SERRAT JUAN
2 SANCHEZ ROBERTO
3 MUSACHEGUI BETANIA
4 MICHELLI SOLEDAD
5 MARQUESI PABLO
6 MARQUESI MARTIN
7 GUISSINI ESTEFANIA
8 BRITTE SANDRA
9 ARDUL MELISA
10 ALEGRATO RUBEN
6.2 Funciones de agregación
SQL ofrece la posibilidad de calcular funciones en grupos de tuplas usando la
cláusula GROUP BY, también incluye funciones para calcular
Fundación de Computadoras Históricas http://www.comsto.org 10
Programación con SQL Aspecto teórico practico básico
• Promedios AVG
• Mínimo MIN
• Máximo MAX
• Total SUM
• Contar COUNT
Para los próximos ejemplos incorporamos una nueva relación llamada PRO que
representara los jugadores profesionales de fútbol, sus atributos serán dni, años_pro,
club, valor_actual. Y los valores son los siguientes:
PRO DNI AÑOS_PRO CLUB VALOR_ACTUAL
1 26125988 5 ALL BOY'S 1000
2 25485699 2 ALL BOY'S 2500
3 27126045 3 LANUS 12000
4 26958644 4 LANUS 6500
5 29120791 1 LANUS 450
Ejemplo 6.2 : determinar el valor total en jugadores así como también la cantidad de
jugadores de cada club en la relación pro
SELECT club, SUM(valor_actual) AS VALOR_TOTAL,
COUNT(club) AS NRO_JUGADORES
FROM pro
GROUP BY CLUB
ANSWER CLUB VALOR_TOTAL NRO_JUGADORES
1 ALL BOY'S 3.500,00 2
2 LANUS 18.950,00 3
Ejemplo 6.3 : Determinar por cada club cual es el valor_actual del jugador mas caro
de la relación pro
SELECT club, MAX(valor_actual) AS JUG_MAS_CARO
FROM pro
GROUP BY CLUB
ANSWER CLUB JUG_MAS_CARO
1 ALL BOY'S 2500
2 LANUS 12000
Fundación de Computadoras Históricas http://www.comsto.org 11
Programación con SQL Aspecto teórico practico básico
Hay ocasiones en la que los duplicados deben eliminarse antes de calcular una
agregación. Cuando queremos eliminar los duplicados del calculo usamos la palabra
clave DISTINCT antepuesto al atributo de agregación que queremos calcular, como por
ejemplo COUNT(DISTINCT club).
Hay ocasiones en las que es útil declara condiciones que se aplican a los grupos
mas que a las tuplas. Para esto usamos la cláusula HAVING de SQL.
Ejemplo 6.4 : Determinar por cada club cual es el valor_actual del jugador mas caro,
pero con la condición de que este sea mayor a 10000 de la relación pro
SELECT club, MAX(valor_actual) AS JUG_MAS_CARO
FROM pro
GROUP BY CLUB
HAVING MAX(valor_actual) > 10000
ANSWER CLUB JUG_MAS_CARO
1 LANUS 12000
Si en la misma consulta aparece una cláusula WHERE y una cláusula HAVING,
primero se aplica el predicado de la cláusula WHERE, las tupla que satisfacen el
predicado WHERE son colocadas en grupos por la cláusula GROUP BY. Después se
aplica la cláusula HAVING a cada grupo.
7.1 Modificación de la base de datos
7.1.1 Eliminación
Una solicitud de eliminación se expresa casi de igual forma que una consulta.
Podemos suprimir solamente tuplas completas, no podemos suprimir valores solo de
atributos.
DELETE FROM r
WHERE P
Donde P presenta un predicado y r representa una relación. Las tuplas t en r para las
cuales P(t) es verdadero, son eliminadas de r.
Si omitimos la cláusula WHERE se eliminan todas las tuplas de la relación r
( un buen sistema debería buscar confirmación del usuario antes de ejecutar una acción
tan devastadora )
Ejemplo 7.1 : Eliminar todas las tuplas de la relación persona en donde apellido sea
igual a “BRITTE”
Fundación de Computadoras Históricas http://www.comsto.org 12
Programación con SQL Aspecto teórico practico básico
DELETE FROM persona
WHERE apellido = "BRITTE"
deleted NOMBRE APELLIDO DNI
1 SANDRA BRITTE 25483669
7.1.2 Inserción
Para insertar datos en una relación, 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 inserción 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 relación persona.
INSERT INTO persona
VALUES ("SANDRA","BRITTE",25483669)
inserted NOMBRE APELLIDO DNI
1 SANDRA BRITTE 25483669
En este ejemplo, los valores se especifican en el orden en que se listan los atributos
correspondientes en el esquema de relación. Para poder ingresar los datos en un orden
diferente podríamos 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 propósito usamos la sentencia
UPDATE r1
SET A1 = V1, A2 = V2,...,An = Vn
WHERE P
Donde r1 es la relación Ai el atributo a modificar Vi el valor que se le asignara a Ai y P
es el predicado.
Fundación de Computadoras Históricas http://www.comsto.org 13
Programación con SQL Aspecto teórico practico básico
Ejemplo 7.3 : En la relación jugadores actualizar la posición de los jugadores que
posean la camiseta numero 5 y asignarles la camiseta numero 7.
UPDATE jugadores
SET nro_camiseta = 7
WHERE nro_camiseta = 5
updated DNI PUESTO NRO_CAMISETA
1 25485699 MEDIO 5
8.1 Valores nulos
Es posible que para las tuplas insertadas se den valores únicamente a algunos
atributos del esquema. El resto de los atributos son asignados a valores nulos
representados por NULL. Para esto colocamos la palabra reservada NULL como valor
del atributo.
Ejemplo 7.4 : Insertar en la relación jugadores un jugador con dni = 26356312, puesto
= defensor, y al cual aun no le han asignado un nro_camiseta.
INSERT INTO jugadores
VALUES(26356312,"DEFENSOR", NULL)
inserted DNI PUESTO NRO_CAMISETA
1 26356312 DEFENSOR
9.1 Definición de datos
9.1.1 Creación
Una relación en SQL se define usando la orden
CREATE TABLE r(A1 D1, A2 D3,...,An Dn)
Donde r es el nombre de la relación, cada Ai es el nombre de un atributo del esquema de
la relación r y Di es el tipo de dato de Ai. Una relación recién creada esta vacía. La
orden INSERT puede usarse para cargar la relación
Ejemplo 9.1 : crear la relación lesionado con los atributos nombre, apellido ambos de
tipo char y tiempo_inhabilit de tipo entero
Fundación de Computadoras Históricas http://www.comsto.org 14
Programación con SQL Aspecto teórico practico básico
CREATE TABLE "lesionado.db" (
NOMBRE CHAR(20),
APELLIDO CHAR(20),
TIEMPO_INHABILT INTEGER
)
lesionado NOMBRE APELLIDO TIEMPO_INHABILT
9.1.2 Eliminación
Para eliminar una relación usamos la orden DROP TABLE r, esta orden elimina
toda la información sobre la relación 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 relación, mientras que la primera si.
Ejemplo 9.2 : eliminar la relación persona
DROP TABLE persona
9.1.3 Actualizacion
La orden ALTER TABLE se usa para añadir atributos a una relación existente.
A todas las tuplas en la relación 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 relación
jugadores
ALTER TABLE jugadores ADD NOMBRE CHAR(20)
ALTER TABLE jugadores ADD APELLIDO CHAR(20)
Fundación de Computadoras Históricas http://www.comsto.org 15

Más contenido relacionado

La actualidad más candente

Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez HGuía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez HJosé Ricardo Tillero Giménez
 
Guía de declaraciones de open sql
Guía  de declaraciones de open sqlGuía  de declaraciones de open sql
Guía de declaraciones de open sqlMarcos Nava Ramirez
 
Tm10 modelo relacional
Tm10 modelo relacionalTm10 modelo relacional
Tm10 modelo relacionalJulio Pari
 
Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)
Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)
Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)Karina Lucio
 
Presentacion Sql
Presentacion SqlPresentacion Sql
Presentacion Sqlguest5f0fa0
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Erivan Martinez Ovando
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sqlJuanKMillos
 
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8alinacarrion
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacionalDenisse C
 
Bases de datos
Bases de datosBases de datos
Bases de datosAlexa Bone
 
El modelo de datos relacional (Base de Datos)
El modelo de datos relacional (Base de Datos)El modelo de datos relacional (Base de Datos)
El modelo de datos relacional (Base de Datos)Jose Carlos Guerra
 

La actualidad más candente (20)

Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez HGuía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
 
Guía de declaraciones de open sql
Guía  de declaraciones de open sqlGuía  de declaraciones de open sql
Guía de declaraciones de open sql
 
Tm10 modelo relacional
Tm10 modelo relacionalTm10 modelo relacional
Tm10 modelo relacional
 
Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)
Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)
Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)
 
Presentacion Sql
Presentacion SqlPresentacion Sql
Presentacion Sql
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sql
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
 
normalizacion
normalizacionnormalizacion
normalizacion
 
SQL
SQLSQL
SQL
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacional
 
14 structure query language
14 structure query language14 structure query language
14 structure query language
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
LENGUAJE TRANSACT SQL
LENGUAJE TRANSACT SQLLENGUAJE TRANSACT SQL
LENGUAJE TRANSACT SQL
 
Clase 0.3 normalizacion. sql server aplicado
Clase 0.3   normalizacion. sql server aplicadoClase 0.3   normalizacion. sql server aplicado
Clase 0.3 normalizacion. sql server aplicado
 
Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
El modelo de datos relacional (Base de Datos)
El modelo de datos relacional (Base de Datos)El modelo de datos relacional (Base de Datos)
El modelo de datos relacional (Base de Datos)
 
Base de datos
Base de datosBase de datos
Base de datos
 

Destacado

SMX West 2014: Breathing Life Into A Tired Campaign
SMX West 2014: Breathing Life Into A Tired CampaignSMX West 2014: Breathing Life Into A Tired Campaign
SMX West 2014: Breathing Life Into A Tired CampaignChristi Olson
 
Fixing Quality Score Unbounce Conversion Road Trip
Fixing Quality Score Unbounce Conversion Road TripFixing Quality Score Unbounce Conversion Road Trip
Fixing Quality Score Unbounce Conversion Road TripChristi Olson
 
eCommerce 2014 Holiday Planning for Slackers
eCommerce 2014 Holiday Planning for SlackerseCommerce 2014 Holiday Planning for Slackers
eCommerce 2014 Holiday Planning for SlackersChristi Olson
 
Plan de renovación de equipo de cómputo 2014
Plan de renovación de equipo de cómputo 2014Plan de renovación de equipo de cómputo 2014
Plan de renovación de equipo de cómputo 2014Cesar Hp
 
Digital Dealer 18: An Intro to Paid Search & Managing an Agency Relationship
Digital Dealer 18: An Intro to Paid Search & Managing an Agency RelationshipDigital Dealer 18: An Intro to Paid Search & Managing an Agency Relationship
Digital Dealer 18: An Intro to Paid Search & Managing an Agency RelationshipChristi Olson
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentdenhui1992
 
CRUD dengan asp classic
CRUD dengan asp classicCRUD dengan asp classic
CRUD dengan asp classicAchmad Sidik
 
TADA CDDC8 Developing a Digital Marketing Strategy
TADA CDDC8 Developing a Digital Marketing StrategyTADA CDDC8 Developing a Digital Marketing Strategy
TADA CDDC8 Developing a Digital Marketing StrategyChristi Olson
 
International PPC, The Final Frontier; DFWSEM State Of Search 2015
International PPC, The Final Frontier; DFWSEM State Of Search 2015International PPC, The Final Frontier; DFWSEM State Of Search 2015
International PPC, The Final Frontier; DFWSEM State Of Search 2015Christi Olson
 
MS Excel Training Solutions
MS Excel Training SolutionsMS Excel Training Solutions
MS Excel Training Solutionsaarkex
 
Maininting Work-Life-balance
Maininting Work-Life-balanceMaininting Work-Life-balance
Maininting Work-Life-balanceChristi Olson
 
Scaling Enterprise SEM Campaigns - SMX Muenchen 2016
Scaling Enterprise SEM Campaigns - SMX Muenchen 2016Scaling Enterprise SEM Campaigns - SMX Muenchen 2016
Scaling Enterprise SEM Campaigns - SMX Muenchen 2016Christi Olson
 
Advanced Excel &Basic Excel Training
Advanced Excel &Basic Excel TrainingAdvanced Excel &Basic Excel Training
Advanced Excel &Basic Excel Trainingaarkex
 
Behind the Scenes With Bing Ads - SEWConnect Miami 2016
Behind the Scenes With Bing Ads - SEWConnect Miami 2016Behind the Scenes With Bing Ads - SEWConnect Miami 2016
Behind the Scenes With Bing Ads - SEWConnect Miami 2016Christi Olson
 

Destacado (17)

Práce
PrácePráce
Práce
 
Práce
PrácePráce
Práce
 
SMX West 2014: Breathing Life Into A Tired Campaign
SMX West 2014: Breathing Life Into A Tired CampaignSMX West 2014: Breathing Life Into A Tired Campaign
SMX West 2014: Breathing Life Into A Tired Campaign
 
Fixing Quality Score Unbounce Conversion Road Trip
Fixing Quality Score Unbounce Conversion Road TripFixing Quality Score Unbounce Conversion Road Trip
Fixing Quality Score Unbounce Conversion Road Trip
 
eCommerce 2014 Holiday Planning for Slackers
eCommerce 2014 Holiday Planning for SlackerseCommerce 2014 Holiday Planning for Slackers
eCommerce 2014 Holiday Planning for Slackers
 
Plan de renovación de equipo de cómputo 2014
Plan de renovación de equipo de cómputo 2014Plan de renovación de equipo de cómputo 2014
Plan de renovación de equipo de cómputo 2014
 
Digital Dealer 18: An Intro to Paid Search & Managing an Agency Relationship
Digital Dealer 18: An Intro to Paid Search & Managing an Agency RelationshipDigital Dealer 18: An Intro to Paid Search & Managing an Agency Relationship
Digital Dealer 18: An Intro to Paid Search & Managing an Agency Relationship
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
CRUD dengan asp classic
CRUD dengan asp classicCRUD dengan asp classic
CRUD dengan asp classic
 
Чи є життя не в IT?
Чи є життя не в IT?Чи є життя не в IT?
Чи є життя не в IT?
 
TADA CDDC8 Developing a Digital Marketing Strategy
TADA CDDC8 Developing a Digital Marketing StrategyTADA CDDC8 Developing a Digital Marketing Strategy
TADA CDDC8 Developing a Digital Marketing Strategy
 
International PPC, The Final Frontier; DFWSEM State Of Search 2015
International PPC, The Final Frontier; DFWSEM State Of Search 2015International PPC, The Final Frontier; DFWSEM State Of Search 2015
International PPC, The Final Frontier; DFWSEM State Of Search 2015
 
MS Excel Training Solutions
MS Excel Training SolutionsMS Excel Training Solutions
MS Excel Training Solutions
 
Maininting Work-Life-balance
Maininting Work-Life-balanceMaininting Work-Life-balance
Maininting Work-Life-balance
 
Scaling Enterprise SEM Campaigns - SMX Muenchen 2016
Scaling Enterprise SEM Campaigns - SMX Muenchen 2016Scaling Enterprise SEM Campaigns - SMX Muenchen 2016
Scaling Enterprise SEM Campaigns - SMX Muenchen 2016
 
Advanced Excel &Basic Excel Training
Advanced Excel &Basic Excel TrainingAdvanced Excel &Basic Excel Training
Advanced Excel &Basic Excel Training
 
Behind the Scenes With Bing Ads - SEWConnect Miami 2016
Behind the Scenes With Bing Ads - SEWConnect Miami 2016Behind the Scenes With Bing Ads - SEWConnect Miami 2016
Behind the Scenes With Bing Ads - SEWConnect Miami 2016
 

Similar a Programación SQL aspectos básicos teóricos y prácticos

Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlyehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlyehisam
 
SQL(DQL).pdf
SQL(DQL).pdfSQL(DQL).pdf
SQL(DQL).pdfangesamad
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddlusamn
 
Unidad 2-lenguaje-sql
Unidad 2-lenguaje-sqlUnidad 2-lenguaje-sql
Unidad 2-lenguaje-sqlclaudia_m
 
Lenguaje de consulta de datos
Lenguaje de consulta de datosLenguaje de consulta de datos
Lenguaje de consulta de datosFrancis Xavier
 
Lenguaje estructurado sql
Lenguaje estructurado sqlLenguaje estructurado sql
Lenguaje estructurado sqlDiego Sánchez
 
Colegio de estudios cientificos y tecnologicos del estado
Colegio de estudios cientificos y tecnologicos del estadoColegio de estudios cientificos y tecnologicos del estado
Colegio de estudios cientificos y tecnologicos del estadoGadiel Ocampo
 
Structured Query Language (Guía rápida)
Structured Query Language (Guía rápida)Structured Query Language (Guía rápida)
Structured Query Language (Guía rápida)Juan Pablo Cid Velasco
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query languageInés Rosero
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query languageDoris Aguagallo
 
6 150113092523-conversion-gate01
6 150113092523-conversion-gate016 150113092523-conversion-gate01
6 150113092523-conversion-gate01Dyego de Alvaro
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query languageWilliam Lozano
 

Similar a Programación SQL aspectos básicos teóricos y prácticos (20)

Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
SQL(DQL).pdf
SQL(DQL).pdfSQL(DQL).pdf
SQL(DQL).pdf
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Unidad 2-lenguaje-sql
Unidad 2-lenguaje-sqlUnidad 2-lenguaje-sql
Unidad 2-lenguaje-sql
 
Lenguaje de consulta de datos
Lenguaje de consulta de datosLenguaje de consulta de datos
Lenguaje de consulta de datos
 
Base datos f03
Base datos f03Base datos f03
Base datos f03
 
Examen yolanda
Examen yolandaExamen yolanda
Examen yolanda
 
Manual
ManualManual
Manual
 
Lenguaje estructurado sql
Lenguaje estructurado sqlLenguaje estructurado sql
Lenguaje estructurado sql
 
Lenguaje transact
Lenguaje transactLenguaje transact
Lenguaje transact
 
Sql
SqlSql
Sql
 
Colegio de estudios cientificos y tecnologicos del estado
Colegio de estudios cientificos y tecnologicos del estadoColegio de estudios cientificos y tecnologicos del estado
Colegio de estudios cientificos y tecnologicos del estado
 
Structured Query Language (Guía rápida)
Structured Query Language (Guía rápida)Structured Query Language (Guía rápida)
Structured Query Language (Guía rápida)
 
Diapositivas transact sql
Diapositivas transact sqlDiapositivas transact sql
Diapositivas transact sql
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
6 150113092523-conversion-gate01
6 150113092523-conversion-gate016 150113092523-conversion-gate01
6 150113092523-conversion-gate01
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 

Último

PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILPREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILeluniversocom
 
Niveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiaNiveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiatongailustraconcienc
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfEDUARDO MAMANI MAMANI
 
Croquis de riesgo de trabajo gasolinera.pdf
Croquis de riesgo de trabajo gasolinera.pdfCroquis de riesgo de trabajo gasolinera.pdf
Croquis de riesgo de trabajo gasolinera.pdfhernestosoto82
 
El sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxEl sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxYoladsCabarcasTous
 
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptxESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptxKatherineFabianLoza1
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptxccordovato
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfGEINER22
 
Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405rodrimarxim
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docxmarthaarroyo16
 
Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería yocelynsanchezerasmo
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
DIPLOMA DE CERTIFICADO EQQW_removed.pptx
DIPLOMA DE CERTIFICADO EQQW_removed.pptxDIPLOMA DE CERTIFICADO EQQW_removed.pptx
DIPLOMA DE CERTIFICADO EQQW_removed.pptxKaterin yanac tello
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfIrapuatoCmovamos
 
Presentación informe 'Fondos Next Generation European Union destinados a actu...
Presentación informe 'Fondos Next Generation European Union destinados a actu...Presentación informe 'Fondos Next Generation European Union destinados a actu...
Presentación informe 'Fondos Next Generation European Union destinados a actu...Ivie
 
Módulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotesMódulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotessald071205mmcnrna9
 
que son los planes de ordenamiento predial POP.pptx
que son los planes de ordenamiento predial  POP.pptxque son los planes de ordenamiento predial  POP.pptx
que son los planes de ordenamiento predial POP.pptxSergiothaine2
 

Último (20)

PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILPREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
 
Niveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiaNiveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologia
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
 
Croquis de riesgo de trabajo gasolinera.pdf
Croquis de riesgo de trabajo gasolinera.pdfCroquis de riesgo de trabajo gasolinera.pdf
Croquis de riesgo de trabajo gasolinera.pdf
 
El sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxEl sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptx
 
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptxESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdf
 
Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
 
Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
DIPLOMA DE CERTIFICADO EQQW_removed.pptx
DIPLOMA DE CERTIFICADO EQQW_removed.pptxDIPLOMA DE CERTIFICADO EQQW_removed.pptx
DIPLOMA DE CERTIFICADO EQQW_removed.pptx
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
 
Presentación informe 'Fondos Next Generation European Union destinados a actu...
Presentación informe 'Fondos Next Generation European Union destinados a actu...Presentación informe 'Fondos Next Generation European Union destinados a actu...
Presentación informe 'Fondos Next Generation European Union destinados a actu...
 
Módulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotesMódulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotes
 
que son los planes de ordenamiento predial POP.pptx
que son los planes de ordenamiento predial  POP.pptxque son los planes de ordenamiento predial  POP.pptx
que son los planes de ordenamiento predial POP.pptx
 

Programación SQL aspectos básicos teóricos y prácticos

  • 1. Programación con SQL Aspecto teórico practico básico Programación con SQL Aspecto teórico práctico básico Vargas Daniel Eduardo ( daniedvargas@hotmail.com ) Fundación de Computadoras Históricas http://www.comsto.org NPW DEV-7129055-002 Fundación de Computadoras Históricas http://www.comsto.org 1
  • 2. Programación con SQL Aspecto teórico practico básico 1.1 Introducción.............................................................................3 2 .1 Estructura básica.....................................................................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 Comparación de conjuntos.......................................................9 5.1 Pruebas para relaciones vacías.................................................9 6.1 Ordenación de la presentación de tuplas................................10 6.2 Funciones de agregación........................................................10 7.1 Modificación de la base de datos...........................................12 7.1.1 Eliminación..................................................................12 7.1.2 Inserción.......................................................................13 7.1.3 Actualizaciones............................................................13 8.1 Valores nulos..........................................................................14 9.1 Definición de datos ...............................................................14 9.1.1 Creación........................................................................14 9.1.2 Eliminacion...................................................................15 9.1.3 Actualizacion................................................................15 Fundación de Computadoras Históricas http://www.comsto.org 2
  • 3. Programación con SQL Aspecto teórico practico básico 1.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 .1 Estructura básica La estructura básica de una expresión para consulta SQL consta de tres cláusulas: • SELECT • FROM • WHERE Fundación de Computadoras Históricas http://www.comsto.org 3
  • 4. Programación con SQL Aspecto teórico practico básico 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 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” Fundación de Computadoras Históricas http://www.comsto.org 4
  • 5. Programación con SQL Aspecto teórico practico básico 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.1 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 Fundación de Computadoras Históricas http://www.comsto.org 5
  • 6. Programación con SQL Aspecto teórico practico básico 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.1 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. Fundación de Computadoras Históricas http://www.comsto.org 6
  • 7. Programación con SQL Aspecto teórico practico básico 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. 4.2 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 Fundación de Computadoras Históricas http://www.comsto.org 7
  • 8. Programación con SQL Aspecto teórico practico básico 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. 4.3 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 Fundación de Computadoras Históricas http://www.comsto.org 8
  • 9. Programación con SQL Aspecto teórico practico básico SELECT nombre, apellido FROM persona WHERE dni IN ( SELECT dni FROM jugadores ) ANSWER NOMBRE APELLIDO 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. 4.4 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 5.1 Pruebas para relaciones vacías La construcción EXISTS devuelve el valor TRUE si la subconsulta del argumento no esta vacía, y la construcción NOT EXISTS devuelve TRUE si la consulta es vacía. Ejemplo 5.1 : encontrar todos los nombre y apellidos de la relación persona si es que en la relación jugadores existe un jugador con el numero de dni 27128055 SELECT nombre, apellido FROM persona WHERE EXISTS ( SELECT dni FROM jugadores Fundación de Computadoras Históricas http://www.comsto.org 9
  • 10. Programación con SQL Aspecto teórico practico básico WHERE dni = 27128055 ) ANSWER NOMBRE APELLIDO Como el dni = 27128055 no existe en la relación jugadores, la condición es FALSE y por lo tanto la respuesta es vacía 6.1 Ordenación de la presentación de tuplas SQL ofrece al usuario cierto control sobre el orden en el que se va a presentar las tuplas en una relación. La cláusula ORDER BY hace que las tupla en el resultado dé una consulta en un orden especifico. Por omisión SQL lista los elementos en orden ascendente. Para especificar el tipo de ordenación, podemos especificar DESC para orden descendente o ASC para orden ascendente. También es posible ordenar los resultados por mas de una atributo Ejemplo 6.1 : encontrar todos los nombres y apellido de la relación persona y ordenar los resultados por apellido y nombre en forma descendente SELECT apellido, nombre FROM persona ORDER BY apellido DESC, nombre DESC ANSWER APELLIDO NOMBRE 1 SERRAT JUAN 2 SANCHEZ ROBERTO 3 MUSACHEGUI BETANIA 4 MICHELLI SOLEDAD 5 MARQUESI PABLO 6 MARQUESI MARTIN 7 GUISSINI ESTEFANIA 8 BRITTE SANDRA 9 ARDUL MELISA 10 ALEGRATO RUBEN 6.2 Funciones de agregación SQL ofrece la posibilidad de calcular funciones en grupos de tuplas usando la cláusula GROUP BY, también incluye funciones para calcular Fundación de Computadoras Históricas http://www.comsto.org 10
  • 11. Programación con SQL Aspecto teórico practico básico • Promedios AVG • Mínimo MIN • Máximo MAX • Total SUM • Contar COUNT Para los próximos ejemplos incorporamos una nueva relación llamada PRO que representara los jugadores profesionales de fútbol, sus atributos serán dni, años_pro, club, valor_actual. Y los valores son los siguientes: PRO DNI AÑOS_PRO CLUB VALOR_ACTUAL 1 26125988 5 ALL BOY'S 1000 2 25485699 2 ALL BOY'S 2500 3 27126045 3 LANUS 12000 4 26958644 4 LANUS 6500 5 29120791 1 LANUS 450 Ejemplo 6.2 : determinar el valor total en jugadores así como también la cantidad de jugadores de cada club en la relación pro SELECT club, SUM(valor_actual) AS VALOR_TOTAL, COUNT(club) AS NRO_JUGADORES FROM pro GROUP BY CLUB ANSWER CLUB VALOR_TOTAL NRO_JUGADORES 1 ALL BOY'S 3.500,00 2 2 LANUS 18.950,00 3 Ejemplo 6.3 : Determinar por cada club cual es el valor_actual del jugador mas caro de la relación pro SELECT club, MAX(valor_actual) AS JUG_MAS_CARO FROM pro GROUP BY CLUB ANSWER CLUB JUG_MAS_CARO 1 ALL BOY'S 2500 2 LANUS 12000 Fundación de Computadoras Históricas http://www.comsto.org 11
  • 12. Programación con SQL Aspecto teórico practico básico Hay ocasiones en la que los duplicados deben eliminarse antes de calcular una agregación. Cuando queremos eliminar los duplicados del calculo usamos la palabra clave DISTINCT antepuesto al atributo de agregación que queremos calcular, como por ejemplo COUNT(DISTINCT club). Hay ocasiones en las que es útil declara condiciones que se aplican a los grupos mas que a las tuplas. Para esto usamos la cláusula HAVING de SQL. Ejemplo 6.4 : Determinar por cada club cual es el valor_actual del jugador mas caro, pero con la condición de que este sea mayor a 10000 de la relación pro SELECT club, MAX(valor_actual) AS JUG_MAS_CARO FROM pro GROUP BY CLUB HAVING MAX(valor_actual) > 10000 ANSWER CLUB JUG_MAS_CARO 1 LANUS 12000 Si en la misma consulta aparece una cláusula WHERE y una cláusula HAVING, primero se aplica el predicado de la cláusula WHERE, las tupla que satisfacen el predicado WHERE son colocadas en grupos por la cláusula GROUP BY. Después se aplica la cláusula HAVING a cada grupo. 7.1 Modificación de la base de datos 7.1.1 Eliminación Una solicitud de eliminación se expresa casi de igual forma que una consulta. Podemos suprimir solamente tuplas completas, no podemos suprimir valores solo de atributos. DELETE FROM r WHERE P Donde P presenta un predicado y r representa una relación. Las tuplas t en r para las cuales P(t) es verdadero, son eliminadas de r. Si omitimos la cláusula WHERE se eliminan todas las tuplas de la relación r ( un buen sistema debería buscar confirmación del usuario antes de ejecutar una acción tan devastadora ) Ejemplo 7.1 : Eliminar todas las tuplas de la relación persona en donde apellido sea igual a “BRITTE” Fundación de Computadoras Históricas http://www.comsto.org 12
  • 13. Programación con SQL Aspecto teórico practico básico DELETE FROM persona WHERE apellido = "BRITTE" deleted NOMBRE APELLIDO DNI 1 SANDRA BRITTE 25483669 7.1.2 Inserción Para insertar datos en una relación, 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 inserción 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 relación persona. INSERT INTO persona VALUES ("SANDRA","BRITTE",25483669) inserted NOMBRE APELLIDO DNI 1 SANDRA BRITTE 25483669 En este ejemplo, los valores se especifican en el orden en que se listan los atributos correspondientes en el esquema de relación. Para poder ingresar los datos en un orden diferente podríamos 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 propósito usamos la sentencia UPDATE r1 SET A1 = V1, A2 = V2,...,An = Vn WHERE P Donde r1 es la relación Ai el atributo a modificar Vi el valor que se le asignara a Ai y P es el predicado. Fundación de Computadoras Históricas http://www.comsto.org 13
  • 14. Programación con SQL Aspecto teórico practico básico Ejemplo 7.3 : En la relación jugadores actualizar la posición de los jugadores que posean la camiseta numero 5 y asignarles la camiseta numero 7. UPDATE jugadores SET nro_camiseta = 7 WHERE nro_camiseta = 5 updated DNI PUESTO NRO_CAMISETA 1 25485699 MEDIO 5 8.1 Valores nulos Es posible que para las tuplas insertadas se den valores únicamente a algunos atributos del esquema. El resto de los atributos son asignados a valores nulos representados por NULL. Para esto colocamos la palabra reservada NULL como valor del atributo. Ejemplo 7.4 : Insertar en la relación jugadores un jugador con dni = 26356312, puesto = defensor, y al cual aun no le han asignado un nro_camiseta. INSERT INTO jugadores VALUES(26356312,"DEFENSOR", NULL) inserted DNI PUESTO NRO_CAMISETA 1 26356312 DEFENSOR 9.1 Definición de datos 9.1.1 Creación Una relación en SQL se define usando la orden CREATE TABLE r(A1 D1, A2 D3,...,An Dn) Donde r es el nombre de la relación, cada Ai es el nombre de un atributo del esquema de la relación r y Di es el tipo de dato de Ai. Una relación recién creada esta vacía. La orden INSERT puede usarse para cargar la relación Ejemplo 9.1 : crear la relación lesionado con los atributos nombre, apellido ambos de tipo char y tiempo_inhabilit de tipo entero Fundación de Computadoras Históricas http://www.comsto.org 14
  • 15. Programación con SQL Aspecto teórico practico básico CREATE TABLE "lesionado.db" ( NOMBRE CHAR(20), APELLIDO CHAR(20), TIEMPO_INHABILT INTEGER ) lesionado NOMBRE APELLIDO TIEMPO_INHABILT 9.1.2 Eliminación Para eliminar una relación usamos la orden DROP TABLE r, esta orden elimina toda la información sobre la relación 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 relación, mientras que la primera si. Ejemplo 9.2 : eliminar la relación persona DROP TABLE persona 9.1.3 Actualizacion La orden ALTER TABLE se usa para añadir atributos a una relación existente. A todas las tuplas en la relación 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 relación jugadores ALTER TABLE jugadores ADD NOMBRE CHAR(20) ALTER TABLE jugadores ADD APELLIDO CHAR(20) Fundación de Computadoras Históricas http://www.comsto.org 15