20
Daniel Ramos Daniel Ramos SQL Server 2005 SQL Server 2005 Daniel Ramos Daniel Ramos Implementación de una base de datos de Microsoft  ® SQL Server 2005

1.- Introduccion a Transact-SQL 2005

Embed Size (px)

Citation preview

Page 1: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 1/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 Daniel Ramos Daniel Ramos 

Implementación deuna base de datos

de Microsoft ® SQL Server ™ 2005

Page 2: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 2/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Introducción

El lenguaje de programación Transact-SQL

Tipos de instrucciones de Transact-SQL

Elementos de la sintaxis de Transact-SQL

Page 3: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 3/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

El lenguaje de programación Transact-SQL

Implementa el estándar ISO del nivel básico de la

especificación ANSI SQL-92

Se pueden ejecutar desde cualquier producto quecumpla los requisitos básicos

Incluye una funcionalidad ampliada

Page 4: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 4/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Tipos de instrucciones de Transact-SQL

Instrucciones del Lenguaje de definición de datos

Instrucciones del Lenguaje de control de datos

Instrucciones del Lenguaje de tratamiento de datos

Page 5: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 5/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Instrucciones del Lenguaje de definición de datos

Definen los objetos de la base de datos

CREATE nombreObjeto

ALTER nombreObjeto

DROP nombreObjeto

USE northwindCREATE TABLE customer(cust_id int, company varchar(40),contact varchar(30), phone char(12) )GO

USE northwind

CREATE TABLE customer(cust_id int, company varchar(40),contact varchar(30), phone char(12) )GO

Deben tener los permisos adecuados

Page 6: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 6/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Instrucciones del Lenguaje de control de datos

Establecer o cambiar los permisos

GRANT

DENY

REVOKE

Deben tener los permisos adecuados

USE northwindGRANT SELECT ON products TO publicGO

USE northwindGRANT SELECT ON products TO publicGO

Page 7: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 7/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Instrucciones del Lenguaje de tratamiento de datos

Las instrucciones DML se utilizan para cambiar datos orecuperar información

SELECT

INSERT

UPDATE

DELETE

Deben tener los permisos adecuados

USE northwindSELECT categoryid, productname, productid, unitpriceFROM productsGO

USE northwindSELECT categoryid, productname, productid, unitpriceFROM productsGO

Page 8: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 8/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

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 lenguajede control de flujo

Palabras clave

reservadas

Page 9: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 9/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Directivas de proceso por lotes

GO

Envía lotes de instrucciones de Transact-SQL a las

herramientas y utilidades No se trata, realmente, de una instrucción de

Transact-SQL

EXEC Ejecuta una función definida por el usuario, un

procedimiento de sistema, un procedimientoalmacenado definido por el usuario o un procedimiento

almacenado extendido

Controla la ejecución de una cadena de caracteresdentro de un lote de Transact-SQL

Page 10: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 10/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Comentarios

Comentarios de línea

Comentarios de bloque

SELECT productname, (unitsinstock - unitsonorder) -- Calcula el inventario, supplierIDFROM productsGO

SELECT productname, (unitsinstock - unitsonorder) -- Calcula el inventario, supplierID

FROM productsGO

/*Este código devuelve todas las filas de la tablaproducts y muestra el precio por unidad, el precioaumentado en un 10 por ciento y el nombre del producto.

*/USE northwindSELECT unitprice, (unitprice * 1.1), productnameFROM productsGO

/*Este código devuelve todas las filas de la tablaproducts y muestra el precio por unidad, el precioaumentado en un 10 por ciento y el nombre del producto.

*/USE northwindSELECT unitprice, (unitprice * 1.1), productnameFROM productsGO

Ejemplo 2Ejemplo 2

Ejemplo 1Ejemplo 1

Page 11: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 11/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Identificadores

Identificadores estándar 

El primer carácter debe ser un carácter alfabético

Otros caracteres pueden incluir letras, números o símbolos

Los identificadores que comienzan con un símbolo tienenusos especiales

Identificadores delimitados

Se utilizan cuando los nombres contienen espaciosincrustados

Se utilizan cuando partes de los nombres incluyenpalabras reservadas

Deben encerrarse entre corchetes ([ ]) o dobles comillas (" ")

Page 12: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 12/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Directrices de denominación para los identificadores

Poner nombres cortos

Utilizar nombres significativos cuando sea posible

Utilizar una convención de denominación clara ysencilla

Utilizar un identificador que distinga el tipo de objeto

Vistas

Procedimientos almacenados

Hacer que los nombres de los objetos y de los usuariossean únicos

Tabla sales y función sales

Page 13: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 13/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Tipos de datos

Números

Fechas

Caracteres

Binario

Identificadores únicos(GUID)

Variaciones de SQL

Texto e imagen

Tablas

Cursores

Tipos de datos definidospor el usuario

Page 14: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 14/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Variables

Variable definida por el usuario en una instrucciónDECLARE @

Valores asignados con una instrucción SET o SELECT @

Las variables tienen el ámbito Local o Global

USE northwindDECLARE @EmpID varchar(11),@vlName char(20)

SET @vlname = 'Dodsworth'SELECT @EmpID = employeeid

FROM employeesWHERE LastName = @vlnameSELECT @EmpID AS EmployeeIDGO

USE northwindDECLARE @EmpID varchar(11),@vlName char(20)

SET @vlname = 'Dodsworth'SELECT @EmpID = employeeid

FROM employeesWHERE LastName = @vlnameSELECT @EmpID AS EmployeeIDGO

Page 15: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 15/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Funciones del sistema

Funciones de agregado

Funciones escalares

Funciones de conjunto de filas

SELECT *FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM owner.titles')

SELECT *FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM owner.titles')

USE northwind

SELECT AVG (unitprice) AS AvgPrice FROM productsGO

USE northwindSELECT AVG (unitprice) AS AvgPrice FROM productsGO

USE northwindSELECT DB_NAME() AS 'database‘GO

USE northwind

SELECT DB_NAME() AS 'database‘GO

Page 16: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 16/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Ejemplos de función del sistema

SELECT 'ANSI:', CONVERT(varchar(30), GETDATE(), 102) AS

StyleUNIONSELECT 'Japanese:', CONVERT(varchar(30), GETDATE(), 111)UNIONSELECT 'European:', CONVERT(varchar(30), GETDATE(), 113)

GO

SELECT 'ANSI:', CONVERT(varchar(30), GETDATE(), 102) AS

StyleUNIONSELECT 'Japanese:', CONVERT(varchar(30), GETDATE(), 111)UNIONSELECT 'European:', CONVERT(varchar(30), GETDATE(), 113)

GO

Resultado

Style Style Style 

ANSI:ANSI:

Japanese:Japanese:

European:European:

1998.03.191998.03.19

1998/03/191998/03/19

19 Mar 1998 16:34:40:61619 Mar 1998 16:34:40:616

Ejemplo 1

Page 17: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 17/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Operadores

Tipos de operadores

Aritmético

Comparación

Concatenación de cadenas

Lógico

Niveles de precedencia de los operadores

Page 18: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 18/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Expresiones

Combinación de símbolos y operadores

Evaluación de valores escalares simples

El tipo de datos del resultado depende de loselementos que forman la expresión

SELECT OrderID, ProductID,(UnitPrice * Quantity) as ExtendedAmount

FROM [Order Details]WHERE (UnitPrice * Quantity) > 10000GO

SELECT OrderID, ProductID,(UnitPrice * Quantity) as ExtendedAmount

FROM [Order Details]WHERE (UnitPrice * Quantity) > 10000GO

Page 19: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 19/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

Elementos del lenguaje de control de flujo

Nivel de instrucción

Bloques BEGIN … END

Bloques IF … ELSE

Construcciones WHILE

Nivel de fila

CASE expresión

DECLARE @n tinyintSET @n = 5IF (@n BETWEEN 4 and 6)BEGIN

WHILE (@n > 0)BEGINSELECT @n AS 'Number'

,CASEWHEN (@n % 2) = 1

THEN ‘ODD'ELSE ‘EVEN'

END AS 'Type'SET @n = @n - 1

END

ENDELSEPRINT ‘NO ANALYSIS‘GO

DECLARE @n tinyintSET @n = 5IF (@n BETWEEN 4 and 6)BEGIN

WHILE (@n > 0)BEGINSELECT @n AS 'Number',CASE

WHEN (@n % 2) = 1

THEN ‘ODD'ELSE ‘EVEN'

END AS 'Type'SET @n = @n - 1

END

ENDELSEPRINT ‘NO ANALYSIS‘GO

EjemploEjemplo

Page 20: 1.- Introduccion a Transact-SQL 2005

8/17/2019 1.- Introduccion a Transact-SQL 2005

http://slidepdf.com/reader/full/1-introduccion-a-transact-sql-2005 20/20

Daniel Ramos Daniel Ramos  SQL Server 2005 SQL Server 2005 

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