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
por lotes
Comentarios
Identificadores

Tipos de datos

Variables

Funciones del sistema

Operadores

Expresiones

Elementos del lenguaje


de control de flujo

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
(GUID)

Tipos de datos definidos


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
Style
Style
UNION
UNION
SELECT
SELECT
UNION
UNION
SELECT
SELECT
GO
GO

'ANSI:',
'ANSI:', CONVERT(varchar(30),
CONVERT(varchar(30), GETDATE(),
GETDATE(), 102)
102) AS
AS
'Japanese:',
'Japanese:', CONVERT(varchar(30),
CONVERT(varchar(30), GETDATE(),
GETDATE(), 111)
111)
'European:',
'European:', CONVERT(varchar(30),
CONVERT(varchar(30), GETDATE(),
GETDATE(), 113)
113)

Resultado
Style
Style
ANSI:
ANSI:
Japanese:
Japanese:

1998.03.19
1998.03.19
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

Nivel de instruccin

Bloques BEGIN END

Bloques IF ELSE

Construcciones WHILE

Nivel de fila

CASE expresin

DECLARE
DECLARE @n
@n tinyint
tinyint
SET
SET @n
@n == 55
IF
IF (@n
(@n BETWEEN
BETWEEN 44 and
and 6)
6)
BEGIN
BEGIN
WHILE
WHILE (@n
(@n >> 0)
0)
BEGIN
BEGIN
SELECT
SELECT @n
@n AS
AS 'Number'
'Number'
,CASE
,CASE
WHEN
WHEN (@n
(@n %% 2)
2) == 11
THEN
THEN ODD'
ODD'
ELSE
ELSE EVEN'
EVEN'
END
END AS
AS 'Type'
'Type'
SET
SET @n
@n == @n
@n -- 11
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