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

Cómo se crean los servidores vinculados SQL


¿Qué es un servidor vinculado SQL?

Un servidor vinculado SQL (Linked Server SQL) es una característica en Microsoft SQL Server que permite establecer una conexión y acceder a otros servidores de bases de datos desde un servidor SQL. En otras palabras, un servidor vinculado SQL permite a un servidor SQL Server interactuar con otro servidor SQL o con diferentes tipos de servidores de bases de datos, como Oracle, MySQL u otros sistemas de gestión de bases de datos.

Cuando se configura un servidor vinculado SQL, se establece una conexión entre los servidores, lo que permite realizar consultas, ejecutar procedimientos almacenados y acceder a datos en el servidor remoto como si estuvieran en el mismo servidor local. Esto facilita la integración y la gestión de datos distribuidos, ya que se puede acceder y manipular datos de diferentes fuentes sin tener que moverlos o replicarlos en un solo servidor.

Al configurar un servidor vinculado SQL, se definen los detalles de conexión, como el nombre del servidor remoto, el tipo de servidor de bases de datos, las credenciales de autenticación y otras opciones de configuración. Una vez establecido el vínculo, se pueden ejecutar consultas distribuidas, realizar llamadas a procedimientos almacenados remotos y transferir datos entre los servidores de forma transparente.

Es importante destacar que la configuración y el uso de servidores vinculados SQL requieren permisos y configuraciones adecuadas, tanto en el servidor local como en el servidor remoto. También se debe tener en cuenta el rendimiento y la seguridad al utilizar servidores vinculados SQL, ya que las consultas y las operaciones que involucran acceso remoto pueden tener un impacto en el rendimiento general del sistema.


Ventajas de los servidores vinculados

Un servidor vinculado SQL (Linked Server SQL) permite establecer una conexión entre dos servidores SQL Server, lo que brinda varias ventajas y beneficios. Aquí tienes algunas ventajas de utilizar un servidor vinculado SQL:

  1. Acceso a datos remotos: Un servidor vinculado SQL te permite acceder y consultar datos de manera transparente en servidores remotos. Puedes ejecutar consultas en un servidor y obtener resultados que incluyan datos de ambos servidores, lo que facilita la integración y la gestión centralizada de información distribuida.
  2. Consultas distribuidas: Con un servidor vinculado SQL, puedes realizar consultas distribuidas que involucren múltiples servidores. Esto te permite ejecutar consultas complejas que abarquen datos de diferentes fuentes sin tener que mover o replicar los datos en un solo servidor.
  3. Actualizaciones y mantenimiento simplificados: Si tienes bases de datos distribuidas en diferentes servidores, un servidor vinculado SQL simplifica las tareas de actualización y mantenimiento. En lugar de tener que aplicar cambios y actualizaciones en cada servidor de forma individual, puedes administrar y realizar cambios en el servidor principal vinculado y tenerlos reflejados en los servidores remotos.
  4. Centralización de la seguridad: Con un servidor vinculado SQL, puedes centralizar la seguridad y los permisos de acceso a datos. Puedes configurar los permisos en el servidor principal y controlar el acceso a los datos en los servidores remotos, lo que facilita la administración de la seguridad en entornos distribuidos.
  5. Integración de datos: Un servidor vinculado SQL permite integrar datos de diferentes fuentes en una sola consulta. Puedes combinar datos de servidores SQL Server, bases de datos de Oracle, archivos de Excel, entre otros, en una sola consulta, lo que simplifica la integración y el análisis de datos.
  6. Escalabilidad y rendimiento: Un servidor vinculado SQL puede mejorar el rendimiento y la escalabilidad al permitirte distribuir la carga de trabajo entre servidores. Puedes utilizar servidores especializados para tareas específicas y aprovechar la capacidad de procesamiento distribuido para mejorar el rendimiento general del sistema.

¿Cómo se crean los servidores vinculados?

Los servidores vinculados los podemos crear de dos maneras diferentes:

  1. Mediante código con la instrucción sp_addlinkedserver
  2. A través del entorno de trabajo del SQL Server Management Studio

EJEMPLO 1: CREAR SERVIDOR VINCULADO POR CÓDIGO

Para crear un servidor vinculado por código emplearemos la siguiente instrucción sp_addlinkedserver cuyos argumentos se muestran y explican a continuación:

sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]

@server: Nombre del servidor vinculado que se va a crear.

@srvproduct: Nombre del producto del origen de datos OLE DB para agregarlo como servidor vinculado. Por defecto tiene valor NULL. En SQL Server no se utiliza este argumento.

@provider: Es el identificador de programación único del proveedor OLE DB que corresponde al origen de datos a partir del cual creamos nuestro servidor vinculado.

@datasrc: Es el nombre del origen de datos a partir del cual creamos nuestro servidor vinculado.

@location: Es la ubicación de la base de datos según la interpretación del proveedor OLE DB a partir del cual creamos nuestro servidor vinculado.

@provstr: Es la cadena de conexión específica del proveedor OLE DB.

@catalog: Es el catálogo que debe utilizarse al establecer una conexión con el proveedor OLE DB.

EJEMPLO: Crear un servidor vinculado a partir del servidor SQL llamado Nombre_Servidor_Origen

EXEC sp_addlinkedserver 'Nombre_Servidor_Vinculado', 'SQL Sever', 'SQLNCLI', 'Nombre_Servidor_Origen', NULL, NULL, NULL


EJEMPLO 2: CREAR SERVIDOR VINCULADO CON SQL MANAGEMENT STUDIO

En este ejemplo vamos a crear el servidor vinculado REMOTO1 cuyo origen de datos será un servidor SQL Server, definiremos que se conecte con la cuenta sa y permitiremos la ejecución de transacciones remotas.
  1. Abrimos el SQL Management Studio y sobre la opción Servidores vinculados pulsamos el botón derecho del ratón para seleccionar Nuevo servidor vinculado tal y como se muestra en la siguiente imagen.
    Cómo crear un servidor vinculado en SQL Server Management Studio
    Cómo crear un servidor vinculado en SQL Server Management Studio
  2. En la pestaña General introduciremos el nombre del nuevo servidor vinculado y seleccionaremos la opción SQL.
    Cómo crear un servidor vinculado en SQL Server Management Studio
    Cómo crear un servidor vinculado de un servidor SQL
  3. En la pestaña Seguridad marcaremos la opción se seleccionarán usando este contexto de seguridad y escribiremos las credenciales de la cuenta sa del SQL Server.
    Cómo crear un servidor vinculado en SQL Server Management Studio
    Añadiendo las directrices de seguridad del servidor vinculado
  4. En la pestaña Opciones del servidor marcaremos como TRUE las opciones RPC y Salida RPC
    Cómo crear un servidor vinculado en SQL Server Management Studio
    Permitir ejecución de transacciones en el servidor vinculado

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

Ejecutar consulta dinámica en Transact SQL

Cómo ejecutar consulta dinámica en Transact SQL

Ejecutar consulta dinámica en Transact SQl
Ejecutar consulta dinámica en Transact SQL
En ocasiones nos vemos obligados a utilizar consultas dinámicas cuando trabajamos con Transact SQl, en el artículo de hoy veremos la cómo realizar consultas dinámicas con un ejemplo práctico muy sencillo.


¿QUÉ ES UNA CONSULTA DINÁMICA?

Una consulta dinámica es cualquier cadena de texto que contiene una consulta y puede ejecutarse como tal. Las consultas dinámicas son muy útiles para componer en tiempo real una determinada consulta eligiendo los campos y tablas con los que vamos a trabajar.

¿CÓMO SE EJECUTAN LAS CONSULTAS DINÁMICAS EN TRANSACT SQL?

Transact SQL permite ejecutar consultas dinámicas de dos maneras diferentes:
  1. EXECUTE: Ejecuta una cadena de comandos o una cadena de caracteres dentro de un lote de Transact-SQL o uno de los siguientes módulos: procedimiento almacenado del sistema, procedimiento almacenado definido por el usuario, procedimiento almacenado CLR, función escalar definida por el usuario o procedimiento almacenado extendido.

  2. sp_executesql: Ejecuta una instrucción o lote Transact-SQL que puede volver a utilizarse muchas veces o uno que se ha generado de forma dinámica. La instrucción o el lote Transact-SQL puede contener parámetros incrustados.

    Para ejecutar consultas dinámicas se recomienda utilizar siempre este método.

EJEMPLO DE EJECUCIÓN DE UNA CONSULTA DINÁMICA EN TRANSACT SQL

Consulta: Mostrar las tarjetas cuyo código empieze por 'PRC' y si IdArticulo tenga algún valor.
DECLARE @Sql nvarchar(1000)

SET @Sql = 'SELECT * FROM Tarjetas WHERE LEFT(CodTarjeta,3) = 'PRC' AND NOT IdArticulo IS NULL'

EXEC sp_executesql @Sql


Si te ha gustado el artículo sobre cómo ejecutar una consulta dinámica en Transact SQL puedes colaborar con este Blog visitando a nuestros patrocinadores, 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

Cannot resolve the collation conflict between “Modern_Spanish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation.

Cómo resolver el problema "cannot resolve the collation conflict between “Modern_Spanish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation."

En el artículo de hoy vamos a ver cómo resolver el error Cannot resolve the collation conflict between “Modern_Spanish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation que aparece cuando se intenta comparar campos de texto que tienen intercalaciones diferentes.

Cómo arreglar Cannot resolve the collation conflict

Existen diferentes soluciones al problema aunque la más sencilla y rápida es obligar a utilizar la misma intercalación cuando realizamos la consulta, me explico con un ejemplo.


Base de datos 1: Panel_Control con la intercalación SQL_Latin1_General_CP1_CI_AS
Base de datos 2: Ventas con la intercalación Modern_Spanish_CI_AS
Consulta a ejecutar: "Seleccionar los artículos de Panel de Control que no estén en Ventas".

SELECT *
FROM Panel_Control.dbo.Articulos
WHERE CodArticulo NOT IN (SELECT CodArticulo FROM Ventas.dbo.Articulos)

Problema: Los campos CodArticulo son VARCHAR(20) y al tener las bases de datos diferentes intercalaciones da un error.


SOLUCIÓN: Forzar a utilizar la misma intercalación al ejecutarse la consulta.

SELECT *
FROM Panel_Control.dbo.Articulos
WHERE CodArticulo COLLATE Modern_Spanish_CI_AS NOT IN (SELECT CodArticulo FROM Ventas.dbo.Articulos)

Explicación: Al incluir la sentencia COLLATE Modern_Spanish_CI_AS le indicamos al Servidor SQL que queremos forzar que el campo CodArticulo de Panel_Control tenga la intercalación Modern_Spanish_CI_AS y pueda así compararse con el campo CodArticulo de Ventas.

Si te ha gustado el artículo sobre Cannot resolve the collation conflict between “Modern_Spanish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation. puedes colaborar con este Blog visitando a nuestros patrocinadores, 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

Cómo hacer un split en Transact SQL

Crear función Split en Transact SQL

Como muchos ya sabréis, Transact SQL no tiene una función nativa que realice el split de una cadena de texto, por este motivo el usuario es el que tiene que ingeniárselas y crearse una función que realice el tan deseado split.

¿Qué es un Split?

Un Split nos permite dividir una cadena de texto en varias subcadenas, por defecto split divide la cadena de texto original cada vez que encuentra un espacio en blanco. Nosotros especificaremos en nuestro ejemplo qué delimitador utilizaremos para la creación de las subcadenas.

Ejemplo de Split en Transact SQL

En el ejemplo vamos a dividir la cadena de texto @String cuyo contenido es 'SQL,TUTORIALES', especificaremos que el delimitador sea la coma y el resultado debe ser la creación de dos subcadenas 'SQL' y 'TUTORIALES'.

DECLARE @NextString NVARCHAR(40)
DECLARE @Pos INT
DECLARE @NextPos INT
DECLARE @String NVARCHAR(40)
DECLARE @Delimiter NVARCHAR(40)

SET @String ='SQL,TUTORIALES'
SET @Delimiter = ','
SET @String = @String + @Delimiter
SET @Pos = charindex(@Delimiter,@String)

WHILE (@pos <> 0)
BEGIN
SET @NextString = substring(@String,1,@Pos - 1)
SELECT @NextString -- Show Results
SET @String = substring(@String,@pos+1,len(@String))
SET @pos = charindex(@Delimiter,@String)
END

El código de arriba dará como resultado:
- SQL
- TUTORIALES

Como hacer un SELECT TOP

Como hacer un SELECT TOP

SELECT TOP Statement

La sentencia TOP se utiliza en SQL para especificar el número de registros que queremos que devuelva una SELECT.

La sentencia TOP es muy útil cuando trabajamos con tablas de gran tamaño que contienen miles de registros ya que devolver un gran número de registros puede influir de manera negativa en el rendimiento.

SELECT TOP: Sintaxis

SELECT TOP número|porcentaje nombre_columna
FROM nombre_tabla

SELECT TOP: Ejemplo

Para la elaboración del ejemplo sobre el correcto uso de la sentencia SELECT TOP contaremos con la tabla "Empleados".
IdEmpleado Nombre Apellidos
1 Mario Alcazar
2 José Pérez
3 Julián Sánchez
4 Dani Rodriguez

Ahora vamos a seleccionar los 3 primeros registros de la tabla:
SELECT TOP 3 * FROM Empleados
El resultado es el siguiente:
IdEmpleado Nombre Apellidos
1 Mario Alcazar
2 José Pérez
3 Julián Sánchez

SELECT TOP PERCENT: Ejemplo

Para la elaboración del ejemplo sobre el correcto uso de la sentencia SELECT TOP PERCENT contaremos con la misma tabla "Empleados".

Ahora vamos a seleccionar el 50% de los registros de la tabla:
SELECT TOP 50 PERCENT * FROM Empleados
El resultado es el siguiente:
IdEmpleado Nombre Apellidos
1 Mario Alcazar
2 José Pérez

Artículos que te pueden interesar

Alter table: Cómo modificar tablas en SQL
Cómo hacer un Case SQL
Como hacer un inner join SQL
Diferencia entre left, inner y right join
Como formatear una fecha en un SELECT de SQL

Alter table: Cómo modificar tablas en SQL

SQL: ALTER TABLE Statement

La sentencia SQL ALTER TABLE permite al usuario renombrar una tabla existente pero también añadir, modificar o incluso borrar columnas de una tabla existente en nuestro esquema.

El enfoque que quiero darle a este artículo es totalmente práctico para que el lector pueda identificar rápidamente el ejemplo de uso de la sentencia SQL ALTER TABLE que necesita y pueda aplicarlo a sus necesidades por lo que no vamos a profundizar en la sintaxis.

A continuación os muestro algunos de los casos de uso más comunes de la sentencia SQL ALTER TABLE:
  1. Añadir columna a una tabla: Añadir campo "FechaAlta" a la tabla Clientes
  2. ALTER TABLE Clientes ADD FechaAlta DateTime

  3. Cambiar nombre de una columna: Cambiar el campo "FechaAlta" por "Fecha_Alta".
  4. EXEC sp_rename 'Clientes.Fechaalta', 'Fecha_Alta', 'COLUMN';
  5. Añadir columna a una tabla y hacerla clave primaria: Añadir el campo "IdCliente" y hacerlo clave primaria.
  6. ALTER TABLE Clientes ADD IdCliente int
    ALTER TABLE Clientes ALTER COLUMN IdCliente int PRIMARY KEY

  7. Crear regla de validación: No permitir valores negativos en el campo "Deuda".
  8. ALTER TABLE Clientes;
    ALTER COLUMN Deuda SET CHECK quantity >= 0;
    ERROR "El campo Deuda no puede ser negativo"

  9. Crear clave ajena: El campo "IdCliente" de la tabla "Contactos" hace referencia al campo "Id" de la tabla "Clientes".
  10. ALTER TABLE Contactos
    ADD CONSTRAINT FK_Contactos_Clientes FOREIGN KEY (IdCliente)
    REFERENCES Clientes (Id)

  11. Borrar regla de validación: Borramos la validación de valores negativos del campo "Deuda" de la tabla clientes.
  12. ALTER TABLE Clientes ALTER COLUMN Deuda DROP CHECK
  13. Borrar clave ajena: Borramos la clave ajena de la tabla "Contactos" a la tabla "Clientes".
  14. ALTER TABLE Deuda DROP CONSTRAINT FK_Contactos_Clientes
Espero que los ejemplos os sean útiles, si tenéis alguna duda podéis poneros en contacto conmigo escribiendo un comentario en el artículo, prometo contestar.


Si te ha gustado el artículo sobre Alter table: Cómo modificar tablas en SQL puedes colaborar con este Blog visitando a nuestros patrocinadores, con esto me ayudarás a mantener el Blog y pueda escribir más artículos.

ARTÍCULOS QUE TE PUEDEN INTERESAR

  1. Tutoriales de Blogger
  2. Tutoriales de Windows
  3. Artículos de opinión
  4. Tutoriales de SEO
  5. Tutoriales de Prestashop

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