Transact SQL Fundamental

20
Julián Castiblanco P. http://julycastiblanco.blogspot.com/ [email protected] MCT-MCITP-MCTS SQL Server 2008/2005 Líder ITPros-DC SESIÓN 4- deepen queries

description

Explicación sensilla del transact fundamental de SQL Server

Transcript of Transact SQL Fundamental

Page 1: Transact SQL Fundamental

Julián Castiblanco P.http://julycastiblanco.blogspot.com/

[email protected]

MCT-MCITP-MCTS SQL Server 2008/2005

Líder ITPros-DC

SESIÓN 4- deepen queries

Page 2: Transact SQL Fundamental

• Sentencia Where

• Formateo de resultados

• Agrupación de datos y resumen

• Funciones de clasificación

• Sentencia Join

Agenda Tercera Sesión

Page 3: Transact SQL Fundamental

Consultas simples – Filtros Básicos

SELECT Campos a traer

INTO Insertarlos en una nueva tabla

FROM Tabla Origen

WHERE Condición de filtro

GROUP BY Expresión Agrupación

HAVING Filtro de agrupación

ORDER BY Expresión de ordenamiento (ASC|DESC)

Page 4: Transact SQL Fundamental

Sentencia - WHERE

• Se utilizan para limitar las filas que serán devueltas en una consultan.

Comparación: =,<,>,>=,<=,!=

Cadenas: LIKE, CONTAINTS, FREETEXT

Logical: AND, OR, NOT, IN, ALL, ANY, SOME, EXISTS

Page 5: Transact SQL Fundamental

Sentencia - WHERE

SELECT [FirstName]FROM [dbo].[Employees]WHERE [FirstName] LIKE '%a%'

SELECT [FirstName]FROM [dbo].[Employees]WHERE [FirstName] LIKE '_a%'

SELECT DISTINCT ProductName,[Discount]

FROM [dbo].[Order Details] aINNER JOIN dbo.Products bON a.[ProductID]=b.[ProductID]WHERE ProductName in ('Alice Mutton','Boston Crab

Meat')OR [Discount]>0.25ORDER BY [Discount] DESC

Page 6: Transact SQL Fundamental

Formateo de Resultados

• Ordenamiento de datos: Determina por cual columna va a ordenarse la información devuelta. Puede ser ascendente o descendentemente.

SELECT [CustomerID] ,[CompanyName] ,[ContactName]FROM [Northwind].[dbo].[Customers]ORDER BY [CompanyName] DESC

SELECT [CustomerID],[CompanyName],[ContactName]FROM [Northwind].[dbo].[Customers]ORDER BY [CompanyName]

Page 7: Transact SQL Fundamental

Formateo de Resultados

• DISCTINCT: Esta función permite eliminar los registro duplicados en una consulta.

SELECT DISTINCT ProductName,[Discount]

FROM [dbo].[Order Details] aINNER JOIN dbo.Products bON a.[ProductID]=b.[ProductID]ORDER BY ProductName

SELECT ProductName,[Discount]

FROM [dbo].[Order Details] aINNER JOIN dbo.Products bON a.[ProductID]=b.[ProductID]ORDER BY ProductName

Page 8: Transact SQL Fundamental

Formateo de Resultados

• Adicionalmente se pueden concatenar cadenas de carácter a través del operador + e ingresar cadenas constantes , ingresando el texto entre comillas sencillas.

• Personalizar nombres de columnas de salida.

SELECT TOP 10 [EmployeeID],[TitleOfCourtesy]+ ' '+[FirstName]+ ' '+[LastName]+ '.' AS EmployeeFullName

FROM [dbo].[Employees]

3 columnas en 1Más caracteres fijos.

Page 9: Transact SQL Fundamental

Formateo de Resultados

http://msdn.microsoft.com/en-us/library/ms174318.aspx

Funciones de caracteres que

pueden ser utilizadas son: ACSII, NCHAR, CHAR, PATINDEX,

SPACE, STR, DIFFERENCE,

REPLACE, STUFF, LEFT, REPLICATE, SUBSTRING, LEN,

REVERSE, UNICODE, LOWER, RIGHT, UPPER, LTRIM,

RTRIM

Funciones de Tiempo:

SYSDATETIME, GETDATE,

GETUTCDATE, DATENAME,

DATEPART, DAY, MONTH, YEAR,

DATEDIFF, DATEADD, ISDATE

Funciones de Seguridad:

CURRENT_USER, SESSION_USER,

SUSER_ID, IS_MEMBER, PERMISIONS,

SCHEMA_NAME, USER_NAME

Funciones Matemáticas: ABS,

ACOS, ASIN, DEGREES, EXP, FLOOR, LOG,

LOG10, PI, POWER, RADIANS, RAND,

ROUND, SIGN, SIN, SQRT, SQUARE,

TAN.

Page 10: Transact SQL Fundamental

Agrupación de resultados

http://msdn.microsoft.com/en-us/library/ms173454.aspx

SELECT b.orderid,SUM((a.UnitPrice*Quantity)*(1-Discount)) as CostBillFROM [dbo].[Order Details] aINNER JOIN dbo.Orders bON a.orderid=b.orderidGROUP BY b.orderid

SELECT b.orderid,SUM((a.UnitPrice*Quantity)*(1-Discount)) as CostBillFROM [dbo].[Order Details] aINNER JOIN dbo.Orders bON a.orderid=b.orderidGROUP BY b.orderidHAVING SUM((a.UnitPrice*Quantity)*(1-Discount))>10000

Page 11: Transact SQL Fundamental

Funciones de Clasificación

http://msdn.microsoft.com/en-us/library/ms173454.aspx

SELECT TOP 10 [ProductID],[ProductName],[UnitPrice],RANK() OVER ( ORDER BY

[UnitPrice]) PriceRankingFROM [dbo].[Products]

SELECT CategoryName,[ProductName],[UnitPrice],ROW_NUMBER() OVER (PARTITION BY CategoryNameORDER BY [UnitPrice]) PriceRanking

FROM [dbo].[Products] AS A INNER JOIN dbo.Categories AS BON A.CategoryID=B.CategoryIDWHERE [UnitPrice]>20 AND [UnitPrice]<=40

Page 12: Transact SQL Fundamental

Subconsultas

• Consultas anidadas dentro de un SELECT, INSERT, UPDATE o DELETE• Puede ser utilizada en cualquier expresión que lo necesite.

Page 13: Transact SQL Fundamental

Sentencia – EXISTS

• Devuelve los registros solo si existen en un resultset anterior..

Page 14: Transact SQL Fundamental

Tablas Temporales

• Permiten almacenar información en tablas de sesión de usuario.• Estas se almacenan en la base de datos TEMPDB• Pueden ser locales o Globales

Page 15: Transact SQL Fundamental

Inserción de datos

Page 16: Transact SQL Fundamental

Actualización de datos

Page 17: Transact SQL Fundamental

Actualización de datos

Page 18: Transact SQL Fundamental

Eliminación de datos

Page 19: Transact SQL Fundamental

Eliminación de datos

TRUNCATE TABLE se diferencia del comando DELETE por:

1. Utiliza menos espacio en el log transaccional2. Realiza menos bloqueos en la base de datos3. Ninguna página queda en la tabla

Page 20: Transact SQL Fundamental

Bibliografía

• http://msdn.microsoft.com/en-us/library/aa933206(v=sql.80).aspx

• http://msdn.microsoft.com/en-us/library/ms189835.aspx

• http://msdn.microsoft.com/en-us/library/aa260662(v=sql.80).aspx

• http://msdn.microsoft.com/en-us/library/ms189575.aspx

• http://msdn.microsoft.com/en-us/library/ms189872.aspx

• http://msdn.microsoft.com/en-us/library/ms189305(v=sql.90).aspx

• Course 2778A, Writing Queries Using Microsoft® SQL Server® 2008 Transact-SQL