You are on page 1of 22

SQL-Bsico

Fuente Database System Concepts,Silberschatz, Korth, Sudarshan

Forma bsica consulta


Forma de una consulta tpica SQL select A1, A2, ..., An from r1, r2, ..., rm where P
Ai denota un atributo Ri denota una relacin P es un predicado

A1 , A2 ,K, An ( P (r1 r2 K rm ))

Estrutura bsica de Consulta


Consulta equivalente a la expresin algebrica
SELECT

A1,A2 ,K,An ( P (r1 r2 K rm ))


WHERE
FROM

Resultado de una consulta SQL es una relacin

Estrutura bsica de Consulta


SELECT [ DISTINCT | ALL]{*| column_expression [AS new_name]] []} FROM table_name [alias] [.] [WHERE condition] [GROUP BY column_list] [HAVING condition] [ORDER BY column_list]
{ }:elementos requeridos, | opciones entre alternativas, [ ] elemento opcional, maysculas:palabra reservadas, minsculas:palabras definidas por el usuario

Clusula SELECT
Especifica las columnas o atributos que se desean como resultado de la consulta
Operador de Proyeccin del Algebra relacional

Encontrar la cdula y el nombre de los profesores en la relacin Profesores select cod_p, nombre from profesor Expresin algebrica cod-p, nombre (profesor)

Clusula SELECT
Observacin En SQL se puede usar indistintamente letras maysculas o minsculas para un nombre. SQL no tiene en cuenta esta diferencia
COD_P Cod_p cod_p

Clusula SELECT
SQL permite duplicados en relaciones y en los resultados de las consultas Para eliminar duplicados, insertar la palabra clave distinct despues de SELECT Encontrar los nombres de todos los profesores en relacin profesor y remover duplicados select distinct nombre from profesor

Clusula SELECT
La palabra clave all especifica no eliminacin de duplicados select all nombre from profesor

Clusula SELECT
Un asterisco * en la clusula select significa Todos los atributos select * from profesor La clusula select puede contener expresiones aritmticas (operaciones +, , , /) y operaciones sobre constantes o atributos de tuplas

Clusula SELECT
ASIGNATURAS Id_Asignatura 750033M 750087M 750083M 750076 Nombre BD TALLER BD MDI FBD Tipo Pregrado Pregrado Pregrado Postgrado creditos 4 2 4 5

select id_asignatura, nombre, creditos 16 from asignaturas devuelve una relacin igual a ASIGNATURAS excepto que el valor del atributo creditos est multiplicado por 16

Clusula WHERE
La clusula where condiciones o filtros para las filas que se deben satisfacer Equivale al predicado de la seleccin del lgebra relacional Resultados de expresiones aritmticas se pueden comparar Se pueden tambin combinar con conectivos lgicos and, or, not

Clusula WHERE
Encontrar todas las asignaturas de pregrado con ms de dos crditos select id_asignatura, nombre from asignaturas where tipo =pregrado and creditos > 2

Clusula WHERE
SQL ofrece un operador de comparacin between Encontrar las asignaturas con creditos entre 3 y 5 ( 3 y 5) select id_asignatura, nombre from asignaturas where creditos between 3 and 5

Clusula FROM
La clusula from especifica las tablas o relaciones a usar en la consulta
Equivale a la operacin producto Cartesiano del lgebra relacional Calcule producto Cartesiano profesor X categoria select from profesor, categoria

Ejemplos Ejemplo
CATEGORIAS
PROFESOR

FACULTADES

Clusula FROM
Encontrar cdigo y nombre de todos los profesores de la facultad de Ingeniera
select cod_p, profesor.nombre from profesor, facultades where profesor.fac=facultades.cod_fac and nombre = 'Ingenieria'

Renombramiento
SQL permite renombrar relaciones y atributos usando la clusula as nombre-anterior as nombre-nuevo Encontrar el nombre y facultad de todos los profesores(renombrar la columna nombre como nombre_profesor )
select profesor.nombre as nombre_profesor, facultades.nombre from profesor, facultades where profesor.fac = facultades.cod_fac

Variables de tupla
Las variables de tupla se definen en la clusula from usando la clusula as

Operaciones con strings


SQL incluye un operador para compara cadenas de caracteres. El operador like usa patrones que se describen mediante dos caracteres especiales:
porcentaje (%): % iguala cualquier substring Guin bajo (_): iguala cualquier caracter

Operaciones con strings


Encontrar los nombres de todos los profesores cuyo nombre incluya el apellido Perez.
select nombre from profesor where nombre like '% Perez%'

SQL ofrece operaciones sobre cadenas


concatenacin (||) convertir maysculas en minsculas (y viceversa) encontrar longitud de cadenas, extraer subcadena

Ordenando visualizacin de tuplas


Listar en orden alfabtico los nombres de todos los profesores de la facultad de Ciencias select distinct profesor.nombre from profesor, facultades where profesor.fac = facultades.cod_fac and facultades.nombre = 'Ingenieria' order by profesor.nombre

Ordenando visualizacin de tuplas


Se puede especificar desc para orden descendente o asc para orden ascendente para cada atributo Por omisin se asume asc
Ejemplo: order by profesor.nombre desc

You might also like