0% encontró este documento útil (0 votos)
68 vistas18 páginas

Introducción a Transact-SQL y SQL Server

Transact-SQL (T-SQL) es el lenguaje de consulta y programación para SQL Server. T-SQL es la implementación de Microsoft del lenguaje SQL estándar de la industria. SQL Server proporciona una variedad de tipos de datos agrupados en categorías como numéricos, cadenas, fechas y horas. Los tipos de datos especifican el tipo de información que puede almacenarse en columnas, variables y parámetros.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
68 vistas18 páginas

Introducción a Transact-SQL y SQL Server

Transact-SQL (T-SQL) es el lenguaje de consulta y programación para SQL Server. T-SQL es la implementación de Microsoft del lenguaje SQL estándar de la industria. SQL Server proporciona una variedad de tipos de datos agrupados en categorías como numéricos, cadenas, fechas y horas. Los tipos de datos especifican el tipo de información que puede almacenarse en columnas, variables y parámetros.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Transact-SQL Básico (29 de Junio de 2023)

¿Qué es Transact-SQL?

 Structured Query Language (SQL)

         - Desarrollado por IBM en los años setenta

         - Adoptado como standard por ISO y ANSI

         - Utilizado ampliamente en la industria

 La implementación de Microsoft es Transact-SQL

         - Conocido como T-SQL

         - Lenguaje de consulta para SQL Server y Azure SQL Database

 SQL es declarativo, no procedimental

         - Describe lo que uno desea, no establece pasos

Bases de Datos Relacionales

 Las entidades son representadas como tablas, donde sus atributos son representados
como campos o columnas

 La mayoría están normalizadas, con relaciones definidas entre tablas a través de claves
primarias y foráneas.

Esquemas y Objetos

 Los esquemas agrupan objetos de la base de datos

 Nombre complete de un objeto: [servidor.][basededatos.][esquema.]objeto

 En un contexto de base de datos determinado, la mejor práctica es incluir el nombre


del esquema: esquema.objeto

 
 

Tipos de Instrucciones SQL

La instrucción SELECT

SELECT OrderDate, COUNT(OrderID)


FROM Sales.SalesOrder
WHERE Status = 'Shipped'
GROUP BY OrderDate
HAVING COUNT(OrderID) > 1
ORDER BY OrderDate DESC;
  
Ejemplos de consultas básicas con SELECT
  

   (1) Todas las columnas


        SELECT * FROM Production.Product;
   (2) Columnas específicas
        SELECT Name, ListPrice FROM Production.Product;
   (3) Expresiones y Alias
        SELECT Name AS Producto, ListPrice * 0.9 AS PrecioVenta 
          FROM Production.Product;

Comenzado el viernes, 30 de junio de 2023, 06:59

Estado Finalizado

Finalizado en viernes, 30 de junio de 2023, 07:07

Tiempo empleado 8 minutos 21 segundos

Calificación 5,00 de 5,00 (100%)

Pregunta 1
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
¿Qué es el SQL?
Seleccione una:

a. Es un lenguaje de bases de datos adoptado como standard de la industria 

Es un motor de bases de datos de código abierto

b. Es un lenguaje de base de datos creado por Microsoft en los años 90


c. Es un lenguaje de procedimientos de uso general

Retroalimentación
Respuesta correcta
La respuesta correcta es: Es un lenguaje de bases de datos adoptado como standard de la
industria

Pregunta 2
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
PL/SQL es la implementación de SQL de Microsoft para los productos SQL Server y Azure
SQL Database
Seleccione una:

Verdadero

Falso 

Retroalimentación
La respuesta correcta es 'Falso'

Pregunta 3
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
¿Qué es una clave primaria?
Seleccione una:

a. Es el password con el que se ingresa a una base de datos SQL

b. Es el campo que relaciona a una tabla principal con una tabla secundaria.

c. Es el o los campos que identifican unívocamente a cada registro de una tabla 


d. Es la tabla principal de una base de datos relacional

Retroalimentación
Respuesta correcta
La respuesta correcta es: Es el o los campos que identifican unívocamente a cada registro
de una tabla

Pregunta 4
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
Los esquemas agrupan objetos de la base de datos
Seleccione una:

Verdadero 

Falso

Retroalimentación
La respuesta correcta es 'Verdadero'

Pregunta 5
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
¿A qué grupo de instrucciones pertenece un UPDATE?
Seleccione una:

a. Al grupo DML (Data Manipulation Language) 

b. Al grupo general de SQL Server

c. Al grupo DCL (Data Control Language)


d. Al grupo DDL (Data Definition Language)

Retroalimentación
Respuesta correcta
La respuesta correcta es: Al grupo DML (Data Manipulation Language)

Pregunta 6
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
Luego del FROM se deben especificar las tablas desde donde se tomarán los datos que
deseamos obtener de la base de datos.
Seleccione una:

Verdadero 

Falso

Retroalimentación
La respuesta correcta es 'Verdadero'

Pregunta 7
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
¿Qué nos permite el WHERE en una consulta de T-SQL?
Seleccione una:

a. Con el WHERE podemos establecer que tablas son las que se utilizarán como origen de
los datos.

b. Con el WHERE podemos poner un filtro para que nos devuelva ciertos registros de la

tabla y no todos 
c. Con el WHERE podemos poner un filtro a nivel de un agrupamiento

d. Con el WHERE podemos ordenar los datos de salida

Retroalimentación
Respuesta correcta
La respuesta correcta es: Con el WHERE podemos poner un filtro para que nos devuelva
ciertos registros de la tabla y no todos

Pregunta 8
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
Siempre es mejor utilizar SELECT * FROM en el desarrollo de una aplicación para que la
cantidad de datos que viajan por la red sea menor
Seleccione una:

Verdadero

Falso 

Retroalimentación
La respuesta correcta es 'Falso'

Pregunta 9
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
Una clave foránea es un campo que establece una relación entre dos bases de datos
ubicadas en servidores diferentes
Seleccione una:

Verdadero
Falso 

Retroalimentación
La respuesta correcta es 'Falso'

Pregunta 10
Correcta

Puntúa 0,50 sobre 0,50

Marcar pregunta

Enunciado de la pregunta
Con la cláusula HAVING establezco un filtro a nivel de agrupamiento.
Seleccione una:

Verdadero 

Falso

Retroalimentación
La respuesta correcta es 'Verdadero'

MODULO 2
Tipos de datos (Transact-SQL)
Categorías de tipos de datos
Consulte también

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed

Instance Azure Synapse Analytics Analytics Platform System (PDW)

Almacenamiento en Microsoft Fabric


En SQL Server, cada columna, variable local, expresión y parámetro tiene un
tipo de datos relacionado. Un tipo de datos es un atributo que especifica el tipo
de datos que el objeto puede contener: datos de enteros, datos de caracteres,
datos de moneda, datos de fecha y hora, cadenas binarias, etc.
SQL Server proporciona un conjunto de tipos de datos de sistema que define
todos los tipos de datos que se pueden usar con SQL Server. También puede
definir sus propios tipos de datos en Transact-SQL o Microsoft .NET
Framework. Los tipos de datos de alias están basados en los tipos de datos
proporcionados por el sistema. Para obtener más información acerca de los
tipos de datos de alias, vea CREATE TYPE (Transact-SQL). Los tipos definidos
por el usuario obtienen sus características de los métodos y los operadores de
una clase que se crean mediante uno de los lenguajes de programación
compatibles con .NET Framework.
Cuando dos expresiones que tienen tipos de datos, intercalaciones, precisión,
escala o longitud diferentes son combinadas por un operador, las
características del resultado vienen determinadas por lo siguiente:
El tipo de datos del resultado viene determinado por la aplicación de las reglas
de precedencia de tipos de datos a los tipos de datos de las expresiones de
entrada. Para obtener más información, vea Prioridad de tipo de datos
(Transact-SQL).
La intercalación del resultado viene determinada por las reglas de precedencia
de intercalación cuando el tipo de datos del resultado
es char, varchar, text, nchar, nvarchar o ntext. Para obtener más información,
vea Prioridad de intercalación (Transact-SQL).
La precisión, escala y longitud del resultado dependen de la precisión, escala y
longitud de las expresiones de entrada. Para obtener más información,
vea Precisión, escala y longitud (Transact-SQL).
SQL Server proporciona sinónimos de tipos de datos para la compatibilidad con
ISO. Para más información, vea Sinónimos de tipos de datos (Transact-SQL).
 Nota
Para obtener información más específica sobre los tipos de datos de Azure
Synapse Analytics, consulte Tipos de datos de tabla de Synapse SQL. Para
obtener información más específica sobre los tipos de datos en Microsoft
Fabric, consulte Tipo de datos.
Categorías de tipos de datos
Los tipos de datos de SQL Server se organizan en las siguientes categorías:
Numéricos exactos
Cadenas de caracteres Unicode
Numéricos aproximados
Cadenas binarias
Fecha y hora
Otros tipos de datos
Cadenas de caracteres
En SQL Server según las características de almacenamiento, algunos tipos de
datos están designados como pertenecientes a los siguientes grupos:
Tipos de datos de valores grandes: varchar(max) y nvarchar(max)
Tipos de datos de objetos grandes: text, ntext, image, varbinary(max) y xml
 Nota
sp_help devuelve -1 como longitud de los tipos de datos xml y de valores
grandes.
Numéricos exactos Cadenas de caracteres
bigint char
numeric varchar
bit text
smallint Cadenas de caracteres Unicode
decimal nchar
smallmoney nvarchar
int ntext
tinyint Cadenas binarias
money binary
Numéricos aproximados varbinary
float image
real Otros tipos de datos
Fecha y hora cursor
date rowversion
datetimeoffset hierarchyid
datetime2 uniqueidentifier
smalldatetime sql_variant
datetime xml
time Tipos de geometría espacial
Tipos de geografía espacial
table
La expresión CASE en SQL Server
Problema:
CASE es una de las más potentes y más complejas expresiones
incorporadas en Transact-SQL. Debido a su nombre, esta expresión es
regularmente confundida con la sentencia CASE disponible en otros
lenguajes. En SQL Server, el propósito de la expresión CASE es
devolver siempre una expresión. No tiene la intención de efectuar un
control de flujo, es por eso que no la llamamos instrucción CASE. A
continuación, comparto algunos de los puntos que vemos
en NUESTROS CURSOS de cómo utilizar mejor una expresión CASE.

Solución:
Hay dos opciones diferentes para la expresión CASE: la expresión CASE
«simple», y la expresión CASE de “búsqueda”. La “simple” comienza con
una expresión y la compara con cada una de los posibles valores (estos
pueden ser expresiones, pero son típicamente constantes o variables):

CASE [input_expression]
  WHEN [eval_expression] THEN [output_expression]
 …
  ELSE [output_expression]
END

La opción de «busqueda» no se inicia con una expresión de entrada,


sino que se sumerge directamente en las comparaciones (estas son
expresiones completas que pueden ser evaluadas, y no están
restringidos a la igualdad):

CASE
  WHEN [full_eval_expression] THEN [output_expression]
 …
  ELSE [output_expression]
END 

Ejemplos:

DECLARE @variable int = 5;


SELECT [simple] = CASE @variable
  WHEN 1 THEN ‘One’
  WHEN 5 THEN ‘Five’
  ELSE ‘Some other number’
END;

SELECT [searched] = CASE


  WHEN @variable = 1 THEN ‘One’
  WHEN @variable = 5 THEN ‘Five’
  ELSE ‘Some other number’
END;

Desde mi punto de vista, encuentro que la variante de “búsqueda” se


utiliza más a menudo, ya que es mucho más flexible. Por ejemplo, si
quiero comprobar los valores de dos variables, o utilizar cualquier tipo
de comparación que no sea la igualdad, puedo hacer esto:

SELECT  CASE   WHEN @a > 5 OR @b <= 10 THEN c + @a – @b


ELSE c – @b + @a END FROM dbo.table;

Cortocircuitos
Ya sea que use la opción “simple” o de “búsqueda”, puedo tener varias
cláusulas WHEN, de las cuales sólo una expresión se puede evaluar
como verdadera. En la mayoría de los casos, se puede confiar en la
secuencialidad y devolver la primera evaluación que se evalúa como
verdadera.

También es bueno colocar una cláusula ELSE para asegurarnos que


nunca falle nuestra consulta.

DECLARE @i int = 0;

SELECT CASE
  WHEN @a =  0 THEN  0
  WHEN @a >= 0 THEN +1
  WHEN @a <  0 THEN -1
  ELSE 1/0
END; 
Donde se puede utilizar CASE
CASE se puede utilizar en cualquier lugar donde una columna, variable,
expresión, o constante se pueda utilizar. Todas esas opciones son
válidas, como vemos en el siguiente ejemplo:

DECLARE @i int = 1;
SELECT name,
  FirstLetter = MAX(CASE
      WHEN name LIKE N’S%’ THEN ‘Starts with S’
      ELSE ‘Does not start with S’
    END)
  FROM sys.databases
WHERE CASE @i
    WHEN 1 THEN name
    ELSE recovery_model_desc END
  = CASE @i
    WHEN 2 THEN recovery_model_desc
    WHEN 5 THEN name
    ELSE ‘Some constant’
  END
GROUP BY CASE @i WHEN 2 THEN name ELSE REVERSE(name) END
ORDER BY CASE WHEN database_id < 5 THEN database_id END;

Consideraciones para la anidación


Las expresiones CASE se pueden anidar:

DECLARE @tier int = 2;SELECT


 CASE WHEN @tier > 1 THEN
   CASE WHEN @tier > 2 THEN
     CASE WHEN @tier > 3 THEN
       CASE WHEN @tier > 4 THEN
         CASE WHEN @tier > 5 THEN
           ‘Awesome’
         ELSE ‘Great’ END
       ELSE ‘Good’ END
     ELSE ‘Acceptable’ END
   ELSE ‘Poor’ END
 ELSE ‘Invalid’ END;

Pero hay que tener cuidado, dado que se  puede convertir en algo
complejo rápidamente, especialmente cuando se mezclan tipos de
datos, y hay un límite estricto sobre el número de expresiones CASE
anidados: 10. Así que la siguiente consulta no es válida:

DECLARE @i int = 1;SELECT


  CASE @i WHEN 1  THEN CASE @i WHEN 2  THEN
  CASE @i WHEN 3  THEN CASE @i WHEN 4  THEN
  CASE @i WHEN 5  THEN CASE @i WHEN 6  THEN
  CASE @i WHEN 7  THEN CASE @i WHEN 8  THEN
  CASE @i WHEN 9  THEN CASE @i WHEN 10 THEN
  CASE @i WHEN 11 THEN ‘Whoopsies’
END END END END END END END END END END END;

No daría el siguiente mensaje de error:

Msg 125, Level 15, State 3, Line 9


Case expressions may only be nested to level 10.

Resumen
La expresión CASE es poderosa, pero tiene algunos matices que a
menudo sorprenden a los nuevos usuarios. Si está utilizando
expresiones CASE, usted debe familiarizarse con su funcionamiento y,
más importante aún, identificar cuando se podrían producir resultados
inesperados.

Comenzado el viernes, 30 de junio de 2023, 08:24

Estado Finalizado

Finalizado en viernes, 30 de junio de 2023, 08:29

Tiempo empleado 5 minutos 29 segundos

Calificación 5,00 de 5,00 (100%)

Pregunta 1
Correcta

Puntúa 0,71 sobre 0,71


Marcar pregunta

Enunciado de la pregunta
La diferencia entre un tipo de dato "int" y "tinyint" es:
Seleccione una:

a. El tipo de dato tinyint permite la división por cero mientras que el int no lo permite

b. La diferencia es que el tinyint sólo admite número enteros del 0 al 255 y por lo tanto

ocupa menos espacio 

c. Son sinónimos, se refieren al mismo tipo de dato

d. El tipo de dato int sólo admite números y el tinyint también admite letras

Retroalimentación
Respuesta correcta
La respuesta correcta es: La diferencia es que el tinyint sólo admite número enteros del 0
al 255 y por lo tanto ocupa menos espacio

Pregunta 2
Correcta

Puntúa 0,71 sobre 0,71

Marcar pregunta

Enunciado de la pregunta
El tipo de dato correcto para el valor PI (3,1416...) es el nvarchar, porque es del tipo
variable en su extensión.
Seleccione una:

Verdadero

Falso 

Retroalimentación
La respuesta correcta es 'Falso'

Pregunta 3
Correcta
Puntúa 0,71 sobre 0,71

Marcar pregunta

Enunciado de la pregunta
Si quiero guardar imágenes en formato binario debo utilizar un tipo de dato numeric
Seleccione una:

Verdadero

Falso 

Retroalimentación
La respuesta correcta es 'Falso'

Pregunta 4
Correcta

Puntúa 0,71 sobre 0,71

Marcar pregunta

Enunciado de la pregunta
Para sumar un tipo de dato int con uno del tipo decimal debo obligatoriamente utilizar la
función CONVERT
Seleccione una:

Verdadero

Falso 

Retroalimentación
La respuesta correcta es 'Falso'

Pregunta 5
Correcta

Puntúa 0,72 sobre 0,72


Marcar pregunta

Enunciado de la pregunta
La diferencia entre la función CAST y la TRY_CAST es:
Seleccione una:

a. Con CAST solo puedo convertir tipos de datos binarios, y con TRY_CAST puedo


utilizarlo con todos los tipos de datos.

b. Con CAST puedo tener como resultado un mensaje de error si el tipo de dato no es

compatible, y con TRY_CAST obtengo el valor NULL en caso de error 

c. Con CAST puedo tener como resultado solo números, y con TRY_CAST obtengo
también texto.

Retroalimentación
Respuesta correcta
La respuesta correcta es: Con CAST puedo tener como resultado un mensaje de error si el
tipo de dato no es compatible, y con TRY_CAST obtengo el valor NULL en caso de error

Pregunta 6
Correcta

Puntúa 0,72 sobre 0,72

Marcar pregunta

Enunciado de la pregunta
El valor NULL es igual a cero
Seleccione una:

Verdadero

Falso 

Retroalimentación
La respuesta correcta es 'Falso'

Pregunta 7
Correcta

Puntúa 0,72 sobre 0,72


Marcar pregunta

Enunciado de la pregunta
La función ISNULL me permite:
Seleccione una:

a. obtener como resultado un valor vacío en caso de que el valor del campo sea cero o
NULL

b. obtener como resultado un determinado valor que elija en caso de que el valor del

campo sea NULL 

c. obtener como resultado un valor NULL en caso de que el valor del campo sea cero

Retroalimentación
Respuesta correcta
La respuesta correcta es: obtener como resultado un determinado valor que elija en caso
de que el valor del campo sea NULL

También podría gustarte