SQL PDF
SQL PDF
Introducción a Consultas
Base de datos
• Un conjunto de tablas
• Cada tabla tiene un nombre
• Cada tabla está compuesta por registros
• Cada registro tiene campos
• Cada campo tiene un nombre y un tipo
• Un registro tiene una llave primaria de acceso (rápido)
Estructura de una base de datos
Tabla = cursos
Campo = codigo varchar(10)
Campo = curso varchar(20)
Campo = estudiantes int
PRIMARY KEY = codigo
cursos
codigo curso estudiantes
“ISIS-1204” “APO1” 23
“ISIS-1205” “APO2” 25
registros “FISI-1012” “Fisica1” 67
“FISI-1013” “Fisica2” 78
“IIND-2101” “Probabilidad” 56
“IIND-2102” “Estadistica” 47
Estructura de una base de datos
cursos
codigo curso Estudiantes
“FISI-1012” “Fisica1” 98
SQL: Structured Query Language
UPDATE cursos
SET estudiantes = 50
WHERE codigo = “FISI-1012”
cursos
codigo curso Estudiantes
“FISI-1012” “Fisica1” 50
SELECT estudiantes
FROM cursos 50
SELECT *
“FISI-1012” “Fisica1” 50
FROM cursos
FROM cursos
2.Un campo: contiene datos sobre un aspecto del asunto de la tabla, como el
nombre o la dirección de correo electrónico.
§ Una consulta puede servir para pedir resultados de datos de la base de datos, para
llevar a cabo una acción relativa a los datos o para ambas cosas.
§ Sirve para obtener una respuesta a una pregunta sencilla, efectuar cálculos,
combinar datos de distintas tablas o agregar, cambiar o eliminar datos de una base
de datos.
Tablas
Creación
En el cuadro Mostrar tabla, en la pestaña Tablas, haga doble clic en la tabla de la cual
desee obtener la información y luego cierre el cuadro de diálogo.
Supongamos que en la tabla que seleccionó tenemos los campos Nombre y Promedio.
Haga doble clic en Nombre y Promedio para agregar estos campos a la cuadrícula de
diseño de la consulta.
En la ficha Diseño, haga clic en Ejecutar. La consulta se ejecuta y muestra una lista de
los estudiantes con sus respectivos nombres y promedios
Herramientas - Vistas
Access cuenta con dos esquemas diferentes en los que el usuario puede introducir y
manejar la información para cada una de sus tablas.
En esta opción:
§ El usuario puede acceder directamente a los datos de las tablas.
§ El usuario puede modificar los datos de las tablas
§ Agregar o quitar registros
§ Agregar o quitar campos
§ Modificar valores y los tipos de campo
Herramientas - Vistas
§ Vista Diseño
En esta opción:
Tipos de Datos:
§ Texto
§ Numérico
§ Fecha / Hora
§ Moneda
§ Sí/ No
§ Entre otros
Tipos de Datos
Para seleccionar el tipo de dato a utilizar en cada uno de los campos de las tablas, haga
clic sobre la región indicada a continuación:
Tipos de Datos
Como resultado, se extiende una ventana con los posibles tipos de valores que pueden
adquirir los valores del campo
Tipos de Datos
Si el tipo de valor ingresado por el usuario no coincide con el del campo, Access
informará un error.
Aparecerá una ventana en donde la herramienta le brindará soluciones al usuario
Clave Principal
Una clave principal es un campo o conjunto de campos en donde se registran valores
únicos en las tablas. En otras palabras, la clave principal determina cuales datos no
cuentan con duplicidad.
Clave Principal
Para crear una Clave, primero se debe ingresar a Vista Diseño. Ahora, procedemos a
establecer cuál o cuáles campos poseen valores únicos para cada registro.
Clave Principal
Predeterminadamente, Access creará la Clave Principal en el primer campo (Id).
Clave Principal
Si se desea cambiar el campo de la Clave Principal, tan sólo se debe hace hacer clic
derecho a la izquierda del campo deseado
Clave Principal
Así aparecerá la opción de fijar la Clave en la nueva posición.
Clave Principal
Así aparecerá la opción de fijar la Clave en la nueva posición.
Propiedades del Campo
Cada campo de cada tabla posee una serie de diversas características. Estas
características le proporcionan al usuario control adicional sobre la forma como se
comporta y funciona el campo.
Propiedades del campo
En primera instancia, para acceder a las Propiedades del Campo se debe seleccionar la
Vista Diseño.
Así, aparecerá en la parte inferior de la pantalla un panel en donde se especifican las
propiedades del campo
Propiedades del campo
En la pestaña General, algunas de las características más influyentes que el usuario
puede manipular son
Tamaño
Formato
Titulo
Valor
entre otras…
}
Filtro de Datos
Al igual que en las tablas de Excel, Access permite filtrar los datos de los campos
deseados.
Para esto, nos paramos sobre el campo que deseamos filtrar. Posteriormente,
seleccionamos la opción “Filtro” en la pestaña de Inicio
Al crear relaciones entre diversas tablas, cada uno de los datos de las tablas se debe
relacionar con por lo menos un dato de las demás tablas.
Relación Entre Tablas
Creación de Relaciones
Por cada tabla que se seleccione y agregue, en la pestaña Relaciones aparecerá una
ventana que hace referencia a la tabla deseada.
Relación Entre Tablas
Creación de Relaciones
Seleccione la opción “Modificar relaciones” para que aparezca una ventana en donde
se establecerán las conexiones entre las tablas.
Relación Entre Tablas
Creación de Relaciones
Ahora aparecerá una conexión entre las dos ventanas. Dicha conexión representa la
relación entre el elemento de la primera tabla con el de la segunda
Introducción a Consultas
Usando SQL
§ SELECT
§ Extrae todas las columnas de la tabla usando (*)
§ Extrae una(s) columna(s) de la tabla por su(s) nombres(s)
§ FROM
§ Define de dónde se obtienen los datos (a partir de tablas)
§ Uso de joins para mezclar tablas
§ WHERE
§ Filtra por tuplas
§ Operadores Permitidos
§ =,<>,>,<,<=,>=
§ BETWEEN(i)
§ IN(ii)
(i)
SELECT *
FROM Store_Information
WHERE Date BETWEEN ‘Jan-05-1999’ AND ‘Jan-07-1999’
Introducción a Consultas
Usando SQL
§ WHERE
§ Filtra por tuplas
§ Operadores Permitidos
§ =,<>,>,<,<=,>=
§ BETWEEN(i)
§ IN(ii)
(ii)
SELECT *
FROM Store_Information
WHERE store_name IN (‘Los Angeles’,‘San Diego’)
Objetivos
Clase 2:
Revisión de conceptos anteriores
Ordenamiento de datos
Objetivos
§ Revisar los conceptos anteriores: tablas, bases de datos, SQL, principales
sentencias
§ Entender y analizar el uso de distintas funciones de no agrupamiento
§ Entender y analizar las operadores condicionales de la sentencia WHERE
§ Aprender y aplicar el uso de la sentencia ORDER BY
Revisión de Conceptos
Introducción
• Lenguaje de programación
SQL estándar para el acceso y
modificación de bases de datos.
Revisión de
Conceptos
Introducción
§ Operadores lógicos.
§ And
§ Or
§ Like
§ Between
§ In
Operadores en la instrucción WHERE
Descripción:
Existen seis tipos de operadores lógicos que se presentan en la tabla a
continuación:
§ UCase( ) § Last( )
§ LCase( ) § Now( )
§ Mid( ) § Format( )
§ Len( ) § InStr( )
§ Round( ) § InStrRev( )
§ Concatenar § Left( )
§ First( ) § Right( )
Funciones de no
agrupamiento
UCASE( )
Descripción:
Permite convertir los valores de un rango en mayúscula.
Sintaxis:
SELECT UCASE (nombre_columna)
FROM nombre_tabla;
Ejemplo:
Funciones de no
agrupamiento
LCASE( )
Descripción:
Permite convertir los valores de un rango en minúscula.
Sintaxis:
SELECT LCASE (nombre_columna)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
MID( )
Descripción:
Permite extraer determinado número de caracteres de un campo de texto.
Sintaxis:
SELECT MID(nombre_columna, posición_inicial, largo)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
LEN( )
Descripción:
Permite determinar el número de caracteres de un campo de texto.
Sintaxis:
SELECT LEN(nombre_columna)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
ROUND( )
Descripción:
Permite redondear un campo numérico a un número determinado de decimales.
Sintaxis:
SELECT ROUND(nombre_columna, número_de_decimales)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
Concatenar
Descripción:
Permite unir dos o más campos de texto en uno solo.
Sintaxis:
SELECT nombre_columna & nombre_columna2 & … & nombre_columna(n)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
FORMAT( )
Descripción:
Devuelve un dato que contiene una expresión con un formato seleccionado.
Sintaxis:
SELECT FORMAT(nombre_columna, formato)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
FIRST( )
Descripción:
Permite obtener el primer valor de una columna seleccionada sin importar el
orden.
Sintaxis:
SELECT FIRST(nombre_columna)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
LAST( )
Descripción:
Permite obtener el último valor de una columna seleccionada sin importar el
orden.
Sintaxis:
SELECT LAST(nombre_columna)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
NOW( )
Descripción:
Permite obtener la fecha y hora actual del sistema.
Sintaxis:
SELECT NOW( )
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
INSTR( )
Descripción:
Permite encontrar la posición de una cadena de texto buscado de izquierda a
derecha.
Sintaxis:
SELECT INSTR(posición_inicial, nombre_columna, texto_buscado,
tipo_coincidencia)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
INSTRREV( )
Descripción:
Permite encontrar la posición de una cadena de texto buscado de derecha a
izquierda.
Sintaxis:
SELECT INSTRREV(nombre_columna, texto_buscado, posición_inicial,
tipo_coincidencia)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
LEFT( )
Descripción:
Permite extraer determinado número de caracteres del lado izquierdo de un
campo de texto.
Sintaxis:
SELECT LEFT(nombre_columna, largo)
FROM nombre_tabla;
Ejemplo:
Uso de funciones de
no agrupamiento
RIGHT( )
Descripción:
Permite extraer determinado número de caracteres del lado derecho de un
campo de texto.
Sintaxis:
SELECT RIGHT(nombre_columna, largo)
FROM nombre_tabla;
Ejemplo:
Ordenamiento
de datos
ORDER BY
Descripción:
Permite ordenar los datos de una tabla con respecto a una o más columnas.
Sintaxis:
SELECT nombre_columna, …
FROM nombre_tabla
ORDER BY nombre_columna [ASC/DESC], nombre_columna [ASC/DESC];
Ejemplo:
Ordenamiento
de datos
ASC
Descripción:
Permite ordenar los datos de una tabla con respecto a una o más columnas
ascedentemente.
Sintaxis:
SELECT nombre_columna, …
FROM nombre_tabla
ORDER BY nombre_columna ASC;
Ejemplo:
Ordenamiento
de datos
DESC
Descripción:
Permite ordenar los datos de una tabla con respecto a una o más columnas
descendentemente.
Sintaxis:
SELECT nombre_columna, …
FROM nombre_tabla
ORDER BY nombre_columna DESC;
Ejemplo:
Ordenamiento
de datos
TOP #
Descripción:
Permite especificar el número de datos que se muestran de una tabla. Los
datos mostrados salen de la parte de arriba de la tabla, por lo cual debe
estar en el orden deseado.
Sintaxis:
SELECT TOP # nombre_columna, …
FROM nombre_tabla
ORDER BY nombre_columna [ASC/DESC];
Ejemplo:
Clase 3: Funciones de
agrupamento y taller en clase.
Agenda
§ Objetivos
§ Sentencia GROUP BY
§ Funciones de agrupamiento
§ Sentencia HAVING
§ Taller
Objetivos
SELECT
FROM
WHERE
ORDER BY
Orden de las sentencias
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
GROUP BY
Para escribir una sentencia de GROUP BY en SQL, debe tener en cuenta que campos
desea mostrar, por cuales quiere agrupar y finalmente que campos quiere calcular. Por
ejemplo la sentencia para nuestro ejemplo sería:
Nombre Género Ciudad Edad
Laura Femenino Bogotá 23
Esteban Masculino Cali 29
Daniel Masculino Bogotá 38 Edad_
Ciudad
Alejandra Femenino Cartagena 40 Promedio
María Femenino Cartagena 32 Bogotá 37.8
Leonardo Masculino Bogotá 51 Cali 36
Ismael Masculino Bogotá 41 Cartagena 34
Lina Femenino Cali 55 Total general 36.0833
Lorena Femenino Cartagena 43
Alberto Masculino Cali 24
Jimena Femenino Cartagena 21
Daniela Femenino Bogotá 36
En la consulta se tienen dos tipos de campos, los que están dentro de una función de
agrupamiento y los que no. Hay que tener en cuenta que si se utiliza una función de
agrupamiento, todo los campos no agrupado deben aparecer en el GROUP BY en el
mismo orden que en la sentencia SELECT.
GROUP BY
Pueden existir cualquier número de campos agrupados como no agrupados, con tal que se
llamen de acuerdo a como fueron escritos.
Edad_Máxim Cuenta_Nombr
Ciudad Género Edad_Promedio
a e
Bogotá Femenino 29.5 36 2
Bogotá Masculino 43.33333333 51 3
Cali Femenino 55 55 1
Cali Masculino 26.5 29 2
Cartagena Femenino 34 43 4
La sentencia HAVING es igual a una sentencia WHERE, pero es sólo usada para campos
calculados.
Edad_
Ciudad Edad_
Promedio Ciudad
Bogotá 37.8 Promedio
Cali 36 Bogotá 37.8
Cartagena 34 Cali 36
Tener en cuenta que si una condición sobre un campo calculado se utiliza en un WHERE,
ésta no funcionará.
Edad_
Ciudad Edad_
Promedio Ciudad
Bogotá 37.8 Promedio
Cali 36 Bogotá 37.8
Cartagena 34 Cali 36
JDBC
Dos etapas:
1. Crear una conexión a la base de datos
2. Utilizar la conexión para enviar por ahí las
instrucciones en SQL
JDBC: Conexión a la BD
Archivo de configuración
para la conexión a la BD
JDBC: Cómo crear una instrucción SQL
Una instrucción SQL se crea por medio del método
createStatement de la clase Connection:
try
{
Statement s = conexion.createStatement( );
… Retorna un objeto de la clase Statement,
por medio del cual se pueden enviar
s.close( ): instrucciones SQL a la BD
} Para dejar de utilizar el objeto
catch( SQLException e )
{
…
}
JDBC: Cómo crear una instrucción SQL
Una instrucción SQL se crea por medio del método
createStatement de la clase Connection:
Statement s = conexion.createStatement( );
String sql = "SELECT ...";
Statement s = conexion.createStatement( );
String sql = "UPDATE resultados ...";
Statement s = conexion.createStatement( );
String sql = “CREATE ...";
s.execute( sql );
JDBC: Cómo crear una instrucción SQL
Ejemplo executeUpdate
Statement st = conexión.createStatement( );
st.executeUpdate( sql );
JDBC: Cómo crear una instrucción SQL
Ejemplo execute
Statement st = conexión.createStatement( );
Ejemplo executeQuery
Statement st = conexión.createStatement( );
Statement st = conexion.createStatement( );
ResultSet resultado = st.executeQuery( sql ); Retorna el nombre, el
if (resultado.next( ) ) número de partidos
{ ganados y el número de
String nombre = resultado.getString( 1 ); partidos perdidos de UN
int ganados = resultado.getInt( 2 ); SOLO registro (cuyo
nombre es Barbanegra). Se
int perdidos = resultado.getInt( 3 );
usa if (resultado.next( ))
}
para acceder al elemento
resultado.close( ); retornado por la sentencia
st.close( ); sql
JDBC: Cómo manipular la respuesta de una consulta
Crear la conexión
JDBC: Cómo establecer la conexión con la base de datos
Crear la conexión