Académique Documents
Professionnel Documents
Culture Documents
DATOS
UNIDAD 3
SEMANA 10
Ing. César E. Aguirre Rodríguez
UNIDAD 3: IMPLEMENTACIÓN DE BASES DE DATOS
Temario:
1. Funciones fecha
2. Funciones cadena
3. Funciones matemáticas
4. Consultas multi tabla
5. Sub consultas
FUNCIONES CADENA
FUNCIONES DE TEXTO O CADENA
Función Explicación
ASCII Retorno el valor ASCII del primer caracter
LTRIM Elimina espacios en blanco iniciales
SPACE Devuelve una cadena de espacios
STR Convierte un dato a tipo cadena de caracteres
CONCAT Concatena cadenas de caracteres
STUFF Inserta una cadena en otra
REPLACE Reemplaza una cadena por otra
SUBSTRING Extrae una cantidad de caracteres de una cadena
REPLICATE Repite una cadena de caracteres
FUNCIONES DE TEXTO O CADENA
Función Explicación
LEFT Obtiene caracteres de la izquierda
REVERSE Invierte la escritura de una cadena
UPPER Convierte a mayúsculas
LEN Obtiene la longitud de la cadena
RIGHT Devuelve caracteres de la derecha
LOWER Convierte a minúsculas
Elimina los espacios en blanco del final de una cadena
RTRIM
de caracteres
EJEMPLOS
/* letras en minuscula*/
SELECT LOWER('Del Castillo');
/* Reemplazo de caracteres */
select stuff('Funciones de texto y cadena',14, 5,'Fechas y
Horas');
/* Concatenar */
select Upper('Alberto debe ') + ltrim(Str(800)) + Space(1) +
lower('dólares');
• Fecha en partes
select @@language
• Para ver todos los lenguajes disponibles en SQL y cuáles son sus propiedades
podemos hacer lo siguiente:
exec sp_helplanguage;
SELECT @@LANGUAGE
• dd/mm/yyy
• mm/dd/yyyy
select dateadd(day,3,'1980/11/02');
MODIFICAR EL LENGUAJE CON MANAGMENTENT STUDIO
* Opcional
MODIFICAR EL LENGUAJE CON MANAGMENTENT STUDIO
* Opcional
PARTES DE LA FECHA
• Las partes de la fecha son abreviaturas que permiten especificar que parte de la
fecha u hora se desea trabajar u obtener.
Significado Abreviatura
year yy , yyyy
quarter qq , q
month mm , m
dayofyear dy , y
day dd , d
week wk , ww
weekday dw
hour hh
minute mi, n
second ss , s
EJEMPLOS CON FECHAS
/*Agregamos 3 dias*/
select dateadd(d,3, GetDate());
/* usamos la BD Northwind */
use Northwind
/* Cantidad de Productos*/
select Count(*) As 'Cantidad de Productos' from Products;
EJERCICIOS – BD NORTHWIND
• El estándar ANSI del SQL especifica cinco tipos de JOIN: INNER, LEFT OUTER, RIGHT
OUTER, FULL OUTER y CROSS.
INNER JOIN
A∩B
INNER JOIN
• Su sintaxis es:
• Así, para seleccionar los registros comunes entre la Tabla1 y la Tabla2 que tengan
correspondencia entre ambas tablas por el campo Col1, escribiríamos:
• Por ejemplo, para obtener en la BD Northwind los clientes que tengan algún pedido,
bastaría con escribir:
SELECT O.OrderID,
C.CustomerID,
C.CompanyName,
O.OrderDate
FROM Customers C
INNER JOIN Orders O ON C.CustomerID = O.CustomerID ;
INNER JOIN
COMBINACIONES EXTERNAS (OUTER JOIN)
• Nos permite seleccionar algunas filas de una tabla aunque éstas no tengan
correspondencia con las filas de la otra tabla con la que se combina.
• Existen tres tipos de combinaciones externas, el Left Join, el Right Join y el Full
Join.
A-B
LEFT JOIN
• Obtendremos 832 registros ya que se incluyen todos los clientes y sus pedidos,
incluso aunque no tengan pedido alguno.
RIGHT JOIN
B-A
RIGHT JOIN
En este caso se devuelven 830 registros que son todos los pedidos. Si hubiese
algún pedido con el CustomerID vacío (nulo) se devolvería también en esta
consulta (es decir, órdenes sin clientes), aunque en la base de datos de ejemplo
no se da el caso.
FULL JOIN
BUA
FULL JOIN
• Su sintaxis es:
Nos devuelve nuevamente 832 registros: los clientes y sus pedidos, los clientes sin
pedido (hay 2) y los pedidos sin cliente (que en este caso son 0).
EJERCICIO 1 – BD NORTHWIND
• Listado de las órdenes y los nombres del cliente y del empleado que las generó
Las opciones son cláusulas adicionales que nos permiten reducir la cantidad de
registros en el listado, mostrar registros únicos, obligar al optimizar a usar un índice,
combinar dos instrucciones, entre otras opciones.
Opción Explicación
Limita las filas del conjunto de resultados. Se puede usar con un valor n o
Top
especificar un porcentaje.
Permite mostrar registros que hayan sido limitados usando la opción Top
With Ties
pero que tienen un valor igual al último registro que aparece.
• Listar los productos ordenados por precio, mostrar los 10 mas caros.
• Listado de los productos de las categorías 3 y 5 unida con los productos de las
categorías 2,6 y 8
• CASE se puede usar en cualquier declaración o cláusula que permita una expresión
válida.
• Una sub consulta es una consulta anidada en un SELECT, INSERT, UPDATE o DELETE
e inclusive en otra sub consulta.
• Las sub consultas se pueden utilizar en cualquier parte en la que se permita una
expresión.
• Los resultados obtenidos con sub consultas se pueden también obtener con el uso
de Joins.
SUB CONSULTAS
• Los campos de una sub consulta que se especifica con un operador de comparación, sólo
puede incluir un nombre de expresión o columna.
• Si la cláusula WHERE de una consulta externa incluye un nombre de columna, debe ser
compatible con una combinación con la columna indicada en la lista de selección de la sub
consulta.
• La palabra clave DISTINCT no se puede usar con sub consultas que incluyan GROUP BY.
• Los tipos de datos ntext, text y image no están permitidos en sub consultas.
• Las sub consultas que se especifican con un operador de comparación sin modificar (no
seguido de la palabra clave ANY o ALL) no pueden incluir las cláusulas GROUP BY y HAVING.
• La lista de selección de una sub consulta especificada con EXISTS, por convención, tiene un
asterisco (*) en lugar de un solo nombre de columna. Las reglas de una sub consulta
especificada con EXISTS son idénticas a las de una lista de selección estándar, porque este
tipo de sub consulta crea una prueba de existencia y devuelve TRUE o FALSE en lugar de
datos.
ESTRUCTURA UNION
COMO USAR UNION
• Todas las instrucciones Select deben tener la misma cantidad de campos y todos
los campos deben ser datos compatibles.
• Los nombres de los campos del conjunto de resultados son iguales a los
especificados en la primera consulta.
• Los resultados que se repiten son eliminados al hacer una combinación de select
usando Union.
COMO USAR UNION
• Tenga en cuenta la intercalación del servidor y de la base de datos para que SQL
Server decida cuando dos datos de tipo caracter son iguales o diferentes.
• No es posible hacer UNION con bases de datos que tienen diferente intercalación.
• Listar los proveedores de que tienen mas de 3 productos registrados o los que
tienen un producto. Ordenador por cantidad de productos descendentemente.
EJERCICIO 3
UNION
• Las funciones cadenas mayormente usadas son. LTRIM, RTRIM, STR, CONCAT, SUBSTRING,
UPPER, LOWER y LEN
• La sentencia JOIN (unir, combinar) de SQL permite combinar registros de una o más tablas en
una base de datos relacional.
• El estándar ANSI del SQL especifica cinco tipos de JOIN: INNER, LEFT OUTER, RIGHT OUTER,
FULL OUTER y CROSS.
• El operador UNION permite combinar resultados de varias consultas con SELECT en un único
resultado
• Una sub consulta es una consulta anidada en un SELECT, INSERT, UPDATE o DELETE e
inclusive en otra sub consulta
¿Preguntas o
Comentarios?