-->
Mostrando entradas con la etiqueta sql. Mostrar todas las entradas
Mostrando entradas con la etiqueta sql. Mostrar todas las entradas

Como formatear una fecha en un SELECT de SQL

Cómo mostrar un datetime en un SELECT de SQL

En el artículo de hoy vamos a ver la manera de formatear un campo datetime en una consulta SQL para que únicamente muestre la fecha y no la hora.

¿Cómo se muestran un campo datetime en un SELECT?

Si hacemos un SELECT de un campo datetime el resultado obtenido será como se muestra en el ejemplo:
SELECT fecha FROM Tickets
El resultado sería el siguiente:
2012-12-19 18:33:20.637
2012-12-20 18:33:20.637
2012-12-21 18:33:20.637





¿Cómo formateamos el campo datetime para mostrarlo correctamenteen un SELECT?

Utilizaremos la expresión CONVERT tal y como se muestra en el ejemplo:

SELECT CONVERT(nvarchar(30), Fecha, 103) as Fecha
FROM Tickets

El resultado sería el siguiente:
19/12/2012
20/12/2012
21/12/2012

Diferencia entre left, inner y right join


Estas son las diferencias entre Left, Right e Inner Join

  • LEFT JOIN: Retorna todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha. Si no hay coincidencias, se muestra NULL en las columnas de la tabla derecha.
  • INNER JOIN: Retorna los registros que tienen coincidencias en ambas tablas. No muestra registros sin coincidencia.
  • RIGHT JOIN: Retorna todos los registros de la tabla derecha y los registros coincidentes de la tabla izquierda. Si no hay coincidencias, se muestra NULL en las columnas de la tabla izquierda.

Espero que esta tabla comparativa te ayude a entender las diferencias entre LEFT JOIN, INNER JOIN y RIGHT JOIN en SQL. Recuerda que la elección del tipo de join dependerá de tus necesidades y de la relación que exista entre las tablas involucradas en la consulta.


Tutorial SQL: Diferencia entre left, inner y right join con un ejemplo

En este artículo trataré de explicar de manera sencilla y con ejemplos muy visuales las diferencias que existen en SQL entre left join, inner join y right join.

Ejemplo de inner, left y right join: Para este ejemplo contaremos con dos tablas:

Tabla A
Tabla B
ABC
111
222
333
444
BDE
467
389
51011


Ejemplo INNER JOIN: Vamos a realizar un inner join de las tablas y visualizar el resultado.

SELECT Tabla * FROM Tabla A INNER JOIN Tabla B ON Tabla A.B = Tabla B.B
Tabla resultante:
ABCBDE
333389
444467

Como podemos observar, el inner join se realiza a través del campo B y muestra las filas de las tabla A y B cuyo campo B tiene el mismo valor. Como si fuera una intersección de conjuntos.

Ejemplo LEFT JOIN: Vamos a realizar un left join de las tablas y visualizar el resultado.

SELECT Tabla * FROM Tabla A LEFT JOIN Tabla B ON Tabla A.B = Tabla B.B
Tabla resultante:
ABCBDE
111NULLNULLNULL
222NULLNULLNULL
333389
444467

Como podemos observar, el left join devuelve todas las filas de la tabla de la izquierda (Tabla A) con sus correspondientes filas de la tabla de la derecha (Tabla B); En caso de no tener filas coincidentes en la tabla de la derecha, éstas se rellenan a NULL.

Resumiendo, el left join devuelve el mismo resultado que un inner join más las filas de la tabla de la izquierda que no tienen correspondencia en la tabla de la derecha, sustituyendo estos valores por NULL.

Ejemplo RIGHT JOIN: Vamos a realizar un right join de las tablas y visualizar el resultado.

SELECT Tabla * FROM Tabla A RIGHT JOIN Tabla B ON Tabla A.B = Tabla B.B
Tabla resultante:
ABCBDE
444467
333389
NULLNULLNULL51011

Como podemos observar, el right join devuelve todas las filas de la tabla de la derecha (Tabla B) con sus correspondientes filas de la tabla de la izquierda (Tabla A); En caso de no tener filas coincidentes en la tabla de la izquierda, éstas se rellenan a NULL.

Resumiendo, el right join devuelve el mismo resultado que un inner join más las filas de la tabla de la derecha que no tienen correspondencia en la tabla de la izquierda, sustituyendo estos valores por NULL.


Si te ha gustado el artículo sobre cómo corregir error "Apache shutdown unexpectedly" al iniciar Xampp te pido un favor: Haz clic sobre uno de los anuncios, con esto me ayudarás a mantener el Blog y pueda escribir más artículos.

ARTÍCULOS QUE TE PUEDEN INTERESAR

Cómo guardar la configuración de una red wifi en Windows 7
Cómo abrir puertos windows 7
Atajos de teclado de Windows
Windows 7 no muestra la fecha

Como hacer un inner join SQL

Tutorial SQL: Consultas con inner join

En ocasiones necesitamos realizar una consulta SQL que obtenga los datos de varias tablas, gracias al modelo relacional tenemos la posibilidad de enlazar varias tablas a través de las claves ajenas, campos que utilizaremos en el inner join.

Emplearemos en este tutorial SQL sobre las consultas con inner join un ejemplo práctico que nos permita entender de manera rápida el funcionamiento del inner join.

Ejemplo: Obtener los clientes de los tickets realizados hoy.

Tenemos las siguientes tablas donde los campos en negrita son las claves principales y los campos en cursiva son claves ajenas a otras tablas:
  1. Tabla clientes {Idcliente, nombre}
  2. Tabla ticket_cabecera {IdTicket, Fecha, IdCliente}
Para obtener los clientes y los artículos de los tickets realizados hoy tendremos que utilizar la cláusula INNER JOIN en nuestra consulta.
SELECT tc.*, c.nombre
FROM ticket_cabecera tc
INNER JOIN clientes c ON tc.idCliente=c.idCliente
WHERE t.Fecha=GETDATE();
Explicación: Tenemos que devolver los tickets junto con el nombre del cliente que realizó la compra. Como los datos que necesitamos están en tablas diferentes utilizaremos la claúsula inner join para enlazar dichas tablas.

Como sabemos que la tabla ticket_cabecera hace referencia a los clientes a través del campo idCliente y sabiendo que se trata de una base de datos relacional (La clave ajena de ticket_cabecera hace referencia a la clave principal de la tabla clientes) podemos enlazar las tablas con un inner join.

En sucesivos post de este blog iremos añadiendo ejemplos más complejos para que veáis cómo emplear el inner join en vuestras consultas SQL.

Si te ha gustado el artículo sobre cómo corregir error "Apache shutdown unexpectedly" al iniciar Xampp te pido un favor: Haz clic sobre uno de los anuncios, con esto me ayudarás a mantener el Blog y pueda escribir más artículos.

ARTÍCULOS QUE TE PUEDEN INTERESAR

Cómo guardar la configuración de una red wifi en Windows 7
Cómo abrir puertos windows 7
Atajos de teclado de Windows
Windows 7 no muestra la fecha

Case (Transact SQL)

Tutorial SQL: Sentencia CASE en Transact SQL

La sentencia Case de Transact SQL evalúa una serie de condiciones y devuelve uno de los resultados posibles definidos por el usuario.

La sentencia Case de Transact SQL la podemos utilizar en cualquier instrucción o cláusula, es decir:
  1. Instrucciones SQL donde se permite el uso del Case: SELECT, UPDATE, DELETE y SET
  2. Cláusulas SQL donde se permite el uso del Case: IN, WHERE, ORDER BY, HAVING

Sintaxis de la sentencia Case en Transact SQL

Simple CASE expression: 
CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END 
Searched CASE expression:
CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END

Argumentos de la sentencia Case en Transact SQL

input_expression: Es la expresión evaluada.

when_expression: Es la expresión que se compara con input_expression

result_expression: Expresión que devolvemos si when_expression es igual a TRUE.

else_result_expression: Expresión que devolvemos si ninguna comparación realizada devuelve TRUE

Boolean_expression: Expresión booleana que se evalúa cuando utilizamos el formato de búsqueda del Case.

Ejemplo de la sentencia Case en Transact SQL

SELECT   Nombre, cod_barras, "Opinión precio" = 
      CASE 
         WHEN precio >=  500 THEN 'Carísimo'
         WHEN precio >= 250 THEN 'Muy Caro'
         WHEN precio >= 100 THEN 'Caro'
         WHEN precio >= 50 THEN 'Para pensárselo'
         ELSE 'Asequible'
      END
FROM articulos
ORDER BY Nombre
En el ejemplo anterior obtenemos todos los artículos y una descripción llamada 'opinión precio' que depende del precio de cada artículo. 

Como podéis observar utilizamos la sentencia Case de Transact SQL para determinar los intervalos de precios de los artículos y asignarles un valor tipo string que mostraremos en el resultado de la consulta.


Si te ha gustado el artículo sobre cómo corregir error "Apache shutdown unexpectedly" al iniciar Xampp te pido un favor: Haz clic sobre uno de los anuncios, con esto me ayudarás a mantener el Blog y pueda escribir más artículos.

ARTÍCULOS QUE TE PUEDEN INTERESAR

Cómo guardar la configuración de una red wifi en Windows 7
Cómo abrir puertos windows 7
Atajos de teclado de Windows
Windows 7 no muestra la fecha

Transact SQL

¿Qué es Transact SQL?

El lenguaje Transact SQL es un extensión de Microsoft del lenguaje SQL cuyas siglas corresponden a Structured Query Language (Lenguaje de consultas estructurado).

Transact SQL es el lenguaje de programación y consulta que se utiliza en los entornos de trabajo SQL Server de Microsoft.

Transact SQL está ligado a las bases de datos relacionales cuyo modelo de datos se basa en la lógica de predicados y en la teoría de conjuntos. La idea básica del modelo relacional es el uso de las relaciones o tuplas, aunque lo fácil es imaginarse las relaciones como tablas compuestas a su vez por registros.

El modelo relacional considera la base de datos como un conjunto de relaciones. Para definir una base de datos se emplean los esquemas que no son otra cosa que la definición de la estructura de cada relación que compone la base de datos. El esquema se compone por tanto del nombre de la relación y nombre de los atributos de la relación.

Definida la estructura (esquema) de una base de datos nos falta definir o identificar el conjunto finito de datos que ésta alberga, a este conjunto finito de datos lo llamaremos instancia.

Por lo tanto y a modo de resumen concluimos en que una base de datos relacional es un conjunto de tablas que se vinculan entre sí a través de un campo en común (llamado clave ajena).

Artículos que te pueden interesar

Alter table: Cómo modificar tablas en SQL
Diferencia entre left, inner y right JOIN
Cómo hacer un INNER JOIN
Cómo hacer un CASE SELECT