Sei sulla pagina 1di 20

Introduccin a

Transact-SQL
Introduccin

E lenguaje de programacin Transact-SQL


Tipos de instrucciones de Transact-SQL
Elementos de la sintaxis de Transact-SQL
El lenguaje de programacin Transact-SQL

Implementa el estndar ISO del nivel bsico de la


especificacin ANSI SQL-92
Se pueden ejecutar desde cualquier producto que
cumpla los requisitos bsicos
Incluye una funcionalidad ampliada
Tipos de instrucciones de Transact-SQL

Instrucciones del Lenguaje de definicin de datos


Instrucciones del Lenguaje de control de datos
Instrucciones del Lenguaje de tratamiento de datos
Instrucciones del Lenguaje de definicin de datos

Definen los objetos de la base de datos


CREATE nombreObjeto
ALTER nombreObjeto
DROP nombreObjeto
Deben tener los permisos adecuados

USE
USE northwind
northwind
CREATE
CREATE TABLE
TABLE customer
customer
(cust_id
(cust_id int,
int, company
company varchar(40),
varchar(40),
contact
contact varchar(30),
varchar(30), phone
phone char(12)
char(12) ))
GO
GO
Instrucciones del Lenguaje de control de datos

Establecer o cambiar los permisos


GRANT
DENY
REVOKE
Deben tener los permisos adecuados

USE
USE northwind
northwind
GRANT
GRANT SELECT
SELECT ON
ON products
products TO
TO public
public
GO
GO
Instrucciones del Lenguaje de tratamiento de datos

Las instrucciones DML se utilizan para cambiar datos o


recuperar informacin
SELECT

INSERT

UPDATE

DELETE

Deben tener los permisos adecuados


USE
USE northwind
northwind
SELECT
SELECT categoryid,
categoryid, productname,
productname, productid,
productid, unitprice
unitprice
FROM
FROM products
products
GO
GO
Elementos de la sintaxis de Transact-SQL

Directivas de proceso Funciones del sistema


por lotes
Operadores
Comentarios
Expresiones
Identificadores
Elementos del lenguaje
Tipos de datos de control de flujo
Variables Palabras clave
reservadas
Directivas de proceso por lotes

GO
Enva lotes de instrucciones de Transact-SQL a las
herramientas y utilidades
No se trata, realmente, de una instruccin de
Transact-SQL
EXEC
Ejecuta una funcin definida por el usuario, un
procedimiento de sistema, un procedimiento
almacenado definido por el usuario o un procedimiento
almacenado extendido
Controla la ejecucin de una cadena de caracteres
dentro de un lote de Transact-SQL
Comentarios

Comentarios de lnea Ejemplo


Ejemplo 11
SELECT
SELECT productname
productname
,, (unitsinstock
(unitsinstock -- unitsonorder)
unitsonorder) --
-- Calcula
Calcula el
el inventario
inventario
,, supplierID
supplierID
FROM
FROM products
products
GO
GO

Comentarios de bloque Ejemplo


Ejemplo 33
/*
/*
Este
Este cdigo
cdigo devuelve
devuelve todas
todas las
las filas
filas de
de la
la tabla
tabla
products
products yy muestra
muestra el
el precio
precio por
por unidad,
unidad, el
el precio
precio
aumentado
aumentado en
en un
un 10
10 por
por ciento
ciento yy el
el nombre
nombre del
del producto.
producto.
*/
*/
USE
USE northwind
northwind
SELECT
SELECT unitprice,
unitprice, (unitprice
(unitprice ** 1.1),
1.1), productname
productname
FROM
FROM products
products
GO
GO
Identificadores
Identificadores estndar
El primer carcter debe ser un carcter alfabtico
Otros caracteres pueden incluir letras, nmeros o smbolos
Los identificadores que comienzan con un smbolo tienen
usos especiales
Identificadores delimitados
Se utilizan cuando los nombres contienen espacios
incrustados
Se utilizan cuando partes de los nombres incluyen
palabras reservadas
Deben encerrarse entre corchetes ([ ]) o dobles comillas (" ")
Directrices de denominacin para los identificadores

Poner nombres cortos


Utilizar nombres significativos cuando sea posible
Utilizar una convencin de denominacin clara y
sencilla
Utilizar un identificador que distinga el tipo de objeto
Vistas
Procedimientos almacenados
Hacer que los nombres de los objetos y de los usuarios
sean nicos
Tabla sales y funcin sales
Tipos de datos

Nmeros Variaciones de SQL


Fechas Texto e imagen
Caracteres Tablas
Binario Cursores
Identificadores nicos Tipos de datos definidos
(GUID) por el usuario
Variables

Variable definida por el usuario en una instruccin


DECLARE @
Valores asignados con una instruccin SET o SELECT @
Las variables tienen el mbito Local o Global

USE
USE northwind
northwind
DECLARE
DECLARE @EmpID
@EmpID varchar(11)
varchar(11)
,@vlName
,@vlName char(20)
char(20)
SET
SET @vlname
@vlname == 'Dodsworth'
'Dodsworth'
SELECT
SELECT @EmpID
@EmpID == employeeid
employeeid
FROM
FROM employees
employees
WHERE
WHERE LastName
LastName == @vlname
@vlname
SELECT
SELECT @EmpID
@EmpID AS
AS EmployeeID
EmployeeID
GO
GO
Funciones del sistema

Funciones de agregado
USE
USE northwind
northwind
SELECT
SELECT AVG
AVG (unitprice)
(unitprice) AS
AS AvgPrice
AvgPrice FROM
FROM products
products
GO
GO

Funciones escalares
USE
USE northwind
northwind
SELECT
SELECT DB_NAME()
DB_NAME() AS
AS 'database
'database
GO
GO

Funciones de conjunto de filas


SELECT
SELECT **
FROM
FROM OPENQUERY
OPENQUERY
(OracleSvr,
(OracleSvr, 'SELECT
'SELECT name,
name, id
id FROM
FROM owner.titles')
owner.titles')
Ejemplos de funcin del sistema

Ejemplo 1
SELECT
SELECT 'ANSI:',
'ANSI:', CONVERT(varchar(30),
CONVERT(varchar(30), GETDATE(),
GETDATE(), 102)
102) AS
AS
Style
Style
UNION
UNION
SELECT
SELECT 'Japanese:',
'Japanese:', CONVERT(varchar(30),
CONVERT(varchar(30), GETDATE(),
GETDATE(), 111)
111)
UNION
UNION
SELECT
SELECT 'European:',
'European:', CONVERT(varchar(30),
CONVERT(varchar(30), GETDATE(),
GETDATE(), 113)
113)
GO
GO

Resultado

Style
Style
ANSI:
ANSI: 1998.03.19
1998.03.19
Japanese:
Japanese: 1998/03/19
1998/03/19
European:
European: 19
19Mar
Mar1998
199816:34:40:616
16:34:40:616
Operadores

Tipos de operadores
Aritmtico
Comparacin
Concatenacin de cadenas
Lgico
Niveles de precedencia de los operadores
Expresiones

Combinacin de smbolos y operadores


Evaluacin de valores escalares simples
El tipo de datos del resultado depende de los
elementos que forman la expresin

SELECT
SELECT OrderID,
OrderID, ProductID
ProductID
,(UnitPrice
,(UnitPrice ** Quantity)
Quantity) as
as ExtendedAmount
ExtendedAmount
FROM
FROM [Order
[Order Details]
Details]
WHERE
WHERE (UnitPrice
(UnitPrice ** Quantity)
Quantity) >> 10000
10000
GO
GO
Elementos del lenguaje de control de flujo
Ejemplo
Ejemplo 22
DECLARE
DECLARE @n@n tinyint
tinyint
SET
SET @n
@n == 55
IF
IF (@n
(@n BETWEEN
BETWEEN 44 and
and 6)
Nivel de instruccin 6)
BEGIN
BEGIN
WHILE
WHILE (@n
(@n >> 0)
Bloques BEGIN END BEGIN
0)
BEGIN
SELECT
SELECT @n @n AS
AS 'Number'
'Number'
Bloques IF ELSE ,CASE
,CASE
WHEN
WHEN (@n
(@n %% 2)
2) == 11
Construcciones WHILE THEN
THEN ODD'
ODD'
ELSE
ELSE EVEN'
EVEN'
Nivel de fila END
END AS
AS 'Type'
'Type'
SET
SET @n
@n == @n
@n -- 11
CASE expresin END
END
END
END
ELSE
ELSE
PRINT
PRINT NO
NO ANALYSIS
ANALYSIS
GO
GO
Palabras clave reservadas

Nombres de identificadores que tienen un significado


especial
Palabras clave de Transact-SQL
Palabras clave ANSI SQL-92
Palabras clave reservadas de ODBC
No utilice palabras clave reservadas para nombres de
identificadores

Potrebbero piacerti anche