SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Guía rápida SQL Server 2000                                    División Empresas




Unidad 4: Introducción a Transact-SQL
Panorama general.
Transact-SQL es un lenguaje de definición, manipulación y control de datos.

El lenguaje de programación Transact-SQL
El American National Standards Institute (ANSI) y el Internacional Standards
Organization (ISO) definieron estándares para SQL. Utilizando Transact-SQL,
Microsoft SQL Server 2000 soporta el nivel de implementación de SQL-92, El
SQL estándar publicado por ANSI e ISO en 1992. Transact SQL también contiene
algunas extensiones que incrementan su funcionalidad.

Tipos de sentencias de Transact-SQL
Para escribir y ejecutar una sentencia de Transact- SQL, deberá utilizar:
   • Sentencias del Lenguaje de Definición de Datos (DDL), que permiten
      crear objetos en la base de datos.
   • Sentencias del Lenguaje de Control de Datos (DCL), que permiten
      determinar quien puede ver o modificar los datos.
   • Sentencias del Lenguaje de Manipulación de Datos (DML), que permiten
      consultar y modificar los datos.

Sentencias del Lenguaje de Definición de Datos
Permiten crear bases de datos, tablas y tipos de datos definidos por el usuario.
También puede utilizar las sentencias DDL para administrar los objetos de
bases de datos. Algunas sentencias DDL son:

   •   CREATE nombre_objeto
   •   ALTER nombre_objeto
   •   DROP nombre_objeto

Por defecto, solo los miembros de sysadmin, dbcreator, db_owner, o
db_ddladmin pueden ejecutar sentencias DDL.

Ejemplo
USE Northwind
CREATE TABLE custumer
(cust_id int, company varchar(40), contact varchar(30), phone char(12))
GO




Unidad 4                            -1-                   www.icam.com.mx
Guía rápida SQL Server 2000                                     División Empresas


Sentencias del Lenguaje de Control de Datos
Son utilizadas para cambiar los permisos asociados con un usuario de bases de
datos. La siguiente tabla describe las sentencias DCL

Sentencia       Descripción
GRANT           Crea una entrada en el sistema de seguridad que permite a un
                usuario de la base de datos actual trabajar con datos de la base
                de datos actual o ejecutar instrucciones Transact-SQL
                específicas.
DENY            Crea una entrada en el sistema de seguridad que deniega un
                permiso de una cuenta de seguridad en la base de datos actual
                e impide que la cuenta de seguridad herede los permisos a
                través de los miembros de su grupo o función.
REVOKE          Quita un permiso otorgado o denegado previamente de un
                usuario de la base de datos actual.

Ejemplo
USE Northwind
GRANT SELECT ON products TO public
GO

Sentencias del Lenguaje de Manipulación de Datos
Estas sentencias trabajan con los datos en la base de datos. Puede cambiar
datos o recuperar información. Las sentencias DML incluyen:

   •   SELECT
   •   INSERT
   •   UPDATE
   •   DELETE

Ejemplo
USE Northwind
SELECT categoryid, productname, productid, unitprice
FROM products
GO




Unidad 4                             -2-                   www.icam.com.mx
Guía rápida SQL Server 2000                                     División Empresas



Sintaxis de los elementos de Transact-SQL
Las sentencias DML son construidas utilizando un número de elemento de
sintaxis. Estos incluyen:

Directivas de Batch
Un Batch es una colección de una o más instrucciones SQL que el cliente envía
en una unidad. Hay dos métodos básicos para controlar procesos por lotes:

GO
Las herramientas de SQL Server interpretan GO como una señal de que deben
enviar el lote actual de instrucciones Transact-SQL a SQL Server. Una
instrucción Transact-SQL no puede ocupar la misma línea que un comando GO,
GO no es una instrucción de Transact-SQL.

EXEC
Ejecuta una función definida por el usuario y devuelve valores escalares, un
procedimiento del sistema, un procedimiento almacenado definido por el
usuario o un procedimiento almacenado extendido. Admite también la
ejecución de una cadena de caracteres en un proceso por lotes Transact-SQL.

Comentarios
Los comentarios son cadenas de texto incluidas en el código de un programa
que no se ejecutan. Pueden ser utilizados de dos formas, en línea con la
sentencia o como un bloque.

Comentarios en línea
Puede crear comentarios en línea utilizando dos guiones (--).
Ejemplo

USE northwind
SELECT productname
 , (unitsinstock – unitsonorder) -- Calcula el inventario
 , supplierid
FROM products
GO




Unidad 4                              -3-                   www.icam.com.mx
Guía rápida SQL Server 2000                                     División Empresas


Comentarios en bloque
Puede crear un bloque de comentarios colocando el carácter (/*) al inicio del
bloque y finalizar el comentario con el carácter (*/).

Ejemplo

/*
Este código recupera todas las líneas de la tabla productos y muestra el precio
unitario, el precio unitario se incrementado un 10%, y el nombre del producto.
*/
USE northwind
SELECT unitprice, (unitprice * 1.1), productname
FROM products
GO

Identificadores
SQL Server proporciona una serie de reglas para nombrar identificadores
normales de objetos y un método de utilizar delimitadores para identificadores
que no son normales.

Identificadores normales
Reglas de los identificadores normales:

   •   El primer carácter debe ser alguno de los siguientes:
           o Una letra, de la "a" a la "z" y de la "A" a la "Z.
           o El signo de subrayado (_), arroba (@) o número (#).
             Un identificador que empieza con el signo arroba indica un
             parámetro o una variable local. Un identificador que empieza con
             un signo número indica una tabla o procedimiento temporal. Un
             identificador que empieza con un signo de número doble (##)
             indica un objeto temporal global.
   •   Los caracteres subsiguientes pueden ser:
           o Letras
           o Números
           o El signo de arroba, dólar ($), número o subrayado.
   •   El identificador no debe ser una palabra reservada de Transact-SQL. SQL
       Server reserva las versiones en mayúsculas y minúsculas de las palabras
       reservadas.
   •   No se permiten los caracteres especiales o los espacios incrustados.




Unidad 4                            -4-                    www.icam.com.mx
Guía rápida SQL Server 2000                                         División Empresas


Identificadores delimitados
Si un identificador cumple todas las reglas de formato de los identificadores, se
puede utilizar con o sin delimitadores. Si un identificador no cumple las reglas
de formato de los identificadores normales, debe aparecer siempre delimitado.

Los identificadores delimitados se utilizan en estas situaciones:

   •   Cuando los nombres contienen espacios
   •   Cuando las palabras reservadas se usan para los nombres de objeto o
       partes de los nombres de objeto.

   •   Los identificadores entre corchetes aparecen delimitados por corchetes
       ([ ]):
       SELECT * FROM [Blanks In Table Name]

   •   Los identificadores entrecomillados aparecen delimitados por comillas
       dobles ("):
       SELECT * FROM "Blanks in Table Name"

       Los identificadores entre comillas dobles sólo son válidos si la opción
       SET QUOTED_IDENTIFIER es ON.

Sugerencias para nombrar identificadores
   •   Utilice nombres cortos
   •   Utilice nombres que tengan un significado
   •   Utilice las convenciones para nombrar identificadores
   •   Use Un identificador que distinga el tipo de objeto
           o Vistas
           o Procedimientos almacenados
   •   Utilice nombres de objetos y nombres de usuarios únicos
           o Tabla Ventas y rol Ventas


Tipos de datos
Los tipos de datos son los tipos de valores que se pueden almacenar en una
base de datos.

Números
Este tipo de datos representa valores numéricos e incluye enteros como int,
tinyint, smallint y bigint. También incluyen valores con precisión decimal
como es numeric, decimal, money, smallmoney. Estos incluyen valores con
punto flotante como son float y real.




Unidad 4                             -5-                    www.icam.com.mx
Guía rápida SQL Server 2000                                      División Empresas


Fechas
Este tipo de datos representa fechas y horas. Los dos tipos de fechas son
datetime, que tiene una precisión de 3. 33 milisegundos, y smalldatetime,
que tiene una precisión de intervalos de un minuto.

Caracteres
Este tipo de datos es utilizado para representar datos de tipo carácter o cadena
e incluye tipos de datos de tamaño fijo como son char y nchar, así como tipos
de datos de longitud variable como son varchar y nvarchar.

Binario
Este tipo de datos es muy similar al tipo carácter en términos de
almacenamiento y estructura, excepto que el contenido de los datos son una
serie de bytes. El tipo de dato binario incluye binary y varbinary. Un dato de
tipo bit indica un valor simple de cero o uno.

Identificadores únicos
Este tipo especial de datos es un uniqueidentifier que representa un
identificador global único (GUID), el cual es un valor hexadecimal de 16-bytes.

SQL Variant
Este tipo de dato puede representar valores de varios tipos soportados por SQL
Server, con excepción de text, ntext, image, timestamp y rowversion.

Imagen y texto
Estos tipos de datos son estructuras de objetos largos binarios (BLOB) que
representan tipos de datos de longitud fija y variable para almacenar
caracteres no-Unicode y Unicode y datos binarios, como es image, text y ntext.

Tablas
El tipo de dato tabla puede ser utilizado sólo para definir varios locales de tipo
tabla o retornar valores de una función definida por el usuario.

Tipos de datos definido por el usuario
Este tipo de dato es creado por el administrador de base de datos y está
basado en tipos de datos del sistema. Utilice tipos de datos definidos por el
usuario cuando algunas tablas deban almacenar el mismo tipo de datos en una
columna y quiera asegurarse que las columnas tienen exactamente el mismo
tipo de datos, longitud.




Unidad 4                             -6-                    www.icam.com.mx
Guía rápida SQL Server 2000                                   División Empresas



Variables
Las variables son elementos del lenguaje con valores asignados. Puede utilizar
variables locales en Transact-SQL.

Una variable local es definida por el usuario utilizando la sentencia DECLARE,
asignando en un valor inicial en un SET o SELECT, y entonces utilizarla con la
sentencia o procedimiento por lotes en el cual fue declarada. El ámbito de una
variable local abarca el procedimiento en el cual fue definida. Para una
variable local se utiliza un símbolo @antes del nombre.

Sintaxis

DECLARE {@ variable_local tipo_dato} [...n]
SET @nombre_variable_local = expresión

Ejemplo

Use northwind
DECLARE @EmpID varchar(11), @vlName char(20)
SET @vlname = ‘Dodsworth’
SELECT @EmpID = employeeid FROM employees
WHERE LastName = @vlname
SELECT @EmpID AS EmployeeID
GO

Resultado
EmployeeID
9
(1 row(s) affected)




Unidad 4                           -7-                   www.icam.com.mx
Guía rápida SQL Server 2000                                  División Empresas



Funciones del sistema

Puede utilizar funciones, incluyendo funciones de sistema, en cualquier parte
que una expresión lo permita en una consulta. Transact-SQL proporciona
algunas funciones que retornan información.
Aquí hay tres tipos de funciones con las que debería estar familiarizado:

Funciones de agregado
Operan sobre una colección de valores y devuelven un solo valor de resumen.

Ejemplo

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

Resultado

AvgPrice
28.8663
(1 row(s) affected)


Funciones escalares
Operan sobre un valor y después devuelven otro valor. Las funciones escalares
se pueden utilizar donde la expresión sea válida. Esta tabla clasifica las
funciones escalares.

Categoría de la       Explicación
función
Funciones        de  Devuelven información acerca de la configuración
configuración        actual.
Funciones de cursor  Devuelven información acerca de los cursores.
Funciones de fecha   Realizan una operación sobre un valor de entrada de
y hora               fecha u hora, y devuelven un valor de cadena, numérico
                     o de fecha y hora.
Funciones            Realizan un cálculo sobre valores de entrada
matemáticas          proporcionados como parámetros de la función y
                     devuelven un valor numérico.
Funciones         de Devuelven información acerca de la base de datos y los
metadatos            objetos de la base de datos.
Funciones         de Devuelven información acerca de usuarios y funciones.
seguridad

Unidad 4                            -8-                 www.icam.com.mx
Guía rápida SQL Server 2000                                   División Empresas


Funciones         de Realizan una operación sobre un valor de entrada de
cadena                cadena (char o varchar) y devuelven un valor de cadena
                      o numérico.
Funciones         del Realizan operaciones y devuelven información acerca
sistema               de valores, objetos y configuraciones de Microsoft®
                      SQL Server™.
Funciones         de Devuelven información estadística acerca del sistema.
estadísticas      del
sistema
Funciones de texto e Realizan una operación sobre un valor o una columna de
imagen               texto o imagen, y devuelven información acerca del
                     valor.

Ejemplo

USE northwind
SELECT DB_NAME() AS ‘database’
GO

Resultado

Database
Northwind
(1 row(s) affected)


Ejemplos de funciones de sistema
Las funciones del sistema son comúnmente utilizadas cuando convierte datos de
tipo fecha de un formato de un país a otro.

Ejemplo 1
Este ejemplo demuestra como puede convertir fechas a diferentes estilos.

SELECT ‘ANSI:’, CONVERT (varchar(30), GETDATE(), 102) AS Style UNION
SELECT ‘japanese:’, CONVERT (varchar(30), GETDATE(), 111) UNION
SELECT ‘European:’, CONVERT (varchar(30), GETDATE(), 113)
GO

Resultado    Estilo
European:    20 Nov 1998 16:44:12:857
Japanese:    11/20/98
ANSI:        1998.11.20




Unidad 4                           -9-                   www.icam.com.mx
Guía rápida SQL Server 2000                                     División Empresas


Ejemplo 2
Este ejemplo utiliza la opción DATEFORMAT de la sentencia SET para formatear
fechas. Esta configuración es utilizada solo en la interpretación de caracteres
tipo cadena que son convertidos a tipo fecha. No tiene efectos en el despliegue
de los valores.

SET DATEFORMAT dmy
GO
DECLARE @vdate datetime
SET @vdate = ‘29/11/98’
SELECT @vdate
GO

Resultado
1998-11-29 00:00:00.000
(1 row(s) affected)

Ejemplo 3
Este ejemplo retorna el nombre de usuario actual y la aplicación que el usuario
está utilizando. El usuario en este ejemplo es un miembro de sysadmin.

USE library
SELECT user_name(), app_name()
GO

Resultado
Dbo       MS SQL Query Analyzer

Ejemplo 4
Este ejemplo determina si la columna firstname en la tabla member de la base
de datos library permite valores nulos.

Un resultado de cero (falso) significa que los valores nulos no son permitidos, y
un resultado de uno (verdadero) significa que los valores nulos son permitidos.
Note que la función OBJECT_ID es incrustada en la función COLUMNPROPERTY.
Esto le permite obtener el objeto id de la tabla member.

USE library
SELECT COLUMNPROPERTY(OBJECT_ID(‘member’), ‘firstname’, ‘allowsNull’)
GO

Resultado
0
(1 row(s) affected)


Unidad 4                            - 10 -                 www.icam.com.mx
Guía rápida SQL Server 2000                                     División Empresas



Operadores
Los operadores son símbolos que realizan cálculos matemáticos,
concatenaciones de cadena, comparaciones entre columnas, constantes y
variables.
Pueden ser combinados y utilizados en condiciones de búsqueda. Cuando se
combinan, el orden en el cual son procesados se basa en la prioridad
establecida.

Tipos de operadores
SQL Server soporta cuatro tipos de operadores:

Aritméticos
Los operadores aritméticos realizan cálculos con columnas numéricas o
constantes. Transact-SQL soporta multiplicación (*), división (/), módulo (%),
suma (+) y resta (-).

Comparación
Los operadores de relación comparan dos expresiones. Las comparaciones
pueden ser entre variables, columnas y expresiones del mismo tipo. Los
operadores de comparación se incluyen en la siguiente tabla.

Operadores                              Significado
=                                       Igual a
>                                       Mayor que
<                                       Menor que
>=                                      Mayor o igual que
<=                                      Menor o igual que
<>                                      No igual que

Concatenación de cadenas
El operador de concatenación de cadenas (+) concatena valores de cadena.

Lógicos
Los operadores lógicos AND, OR y NOT permiten unir condiciones en la
cláusula WHERE.




Unidad 4                           - 11 -                   www.icam.com.mx
Guía rápida SQL Server 2000                                     División Empresas


Niveles de prioridad de los operadores
Si utiliza múltiples operadores (lógicos o aritméticos) para combinar
expresiones, SQL Server procesa los operadores en el orden de su prioridad, lo
cual puede afectar el valor del resultado. Los operadores tienen la siguiente
prioridad de (de más alto más bajo).

Tipo                       Operador                   Símbolo
Agrupar                    Agrupación primaria        ()
Aritmético                 Multiplicativos            */%
Aritmético                 Aditivos                   -+
Otros                      Concatenación              +
Lógico                     NOT                        NOT
Lógico                     AND                        AND
Lógico                     OR                         OR

Expresiones
Las expresiones son una combinación de símbolos y operadores que se evalúan
para generar un simple valor. Pueden ser simples cómo es una constante,
variable, columna o valor escalar o expresiones complejas creadas por la
conexión de una o más expresiones simples con operadores.

Ejemplo
El siguiente ejemplo calcula el monto total de un producto en una orden,
multiplica el precio unitario por la cantidad ordenada, y entonces se filtran los
resultados para aquellos que el monto total es mayor de $10,000.00.

USE northwind
SELECT orderID, ProductID
       ,(UnitPrice * Quantity) as ExtendedAmount
FROM [Order Details]
WHERE (UnitPrice * Quantity) > 1000
GO

Resultado

OrderID                    ProductID                  ExtendedAmount
10353                      38                         10540.0000
10417                      38                         10540.0000
10424                      38                         10329.2000
10865                      38                         15810.0000
10889                      38                         10540.0000
10981                      38                         15810.0000

(6 row(s) affected)


Unidad 4                            - 12 -                 www.icam.com.mx
Guía rápida SQL Server 2000                                      División Empresas


Elementos del lenguaje de control de flujo
Transact-SQL contiene algunos elementos del lenguaje que controlan el flujo
lógico. También contiene la función CASE que permite utilizar condiciones
lógicas en una fila simple con una sentencia SELECT o UPDATE.

Nivel de sentencia
Los siguientes elementos le permiten controlar el flujo lógico con un script:

BEGIN ... END Blocks Estos elementos encierran una serie de sentencias.

IF ... ELSE Blocks Estos elementos especifican que SQL Server deberá
ejecutar la primera alternativa si la condición es verdadera. De lo contrario,
SQL deberá ejecutar la segunda alternativa.

WHILE Constructs Estos elementos ejecutar una sentencia repetidamente
mientras la condición especificada es verdadera. Las sentencias BREAK y
CONTINUE controlan la operación de las sentencias dentro del ciclo WHILE.

Ejemplo 1
Éste ejemplo determina si un cliente tiene alguna orden antes de borrar el
cliente de la lista.

USE northwind
IF EXISTS (SELECT * FROM orders
            WHERE customerid = ‘frank’)
   PRINT ‘*** El cliente no puede ser borrado ***’
ELSE
   BEGIN
     DELETE customers WHERE customerid = ‘frank’
     PRINT ‘*** Cliente eliminado***’
   END
GO

Nivel de fila
Una función CASE evalúa una lista de condiciones y devuelve como resultado
una de las distintas expresiones posibles.

CASE input_expression
  WHEN when_expression THEN result_expression
    [ ...n ]
  [
    ELSE else_result_expression
  ]
END


Unidad 4                            - 13 -                  www.icam.com.mx
Guía rápida SQL Server 2000                                     División Empresas


Ejemplo 2
El siguiente ejemplo declara una variable local, evalúa para ver si es igual a 4,
5, o 6, y si lo es, un contador a través de un ciclo WHILE determina si el valor
actual es un número par o impar.

DECLARE @n tinyint
SET @n = 5
IF (@n BETWEEN 4 and 6)
  BEGIN
    WHILE (@n > 0)
     BEGIN
       SELECT @n AS ‘Numero’
          ,CASE
             WHEN (@N % 2) = 1
               THEN ‘IMPAR’
           ELSE ‘PAR’
           END AS ‘Type’
       SET @n = @n – 1
      END
  END
ELSE
  PRINT ‘NO ANALIZADO’
GO

Resultado

Numero              Tipo
5                   IMPAR
(1 row(s) affected)

Numero              Tipo
4                   PAR
(1 row(s) affected)

Numero              Tipo
3                   IMPAR
(1 row(s) affected)

Numero              Tipo
2                   PAR
(1 row(s) affected)

Numero              Tipo
1                   IMPAR
(1 row(s) affected)

Unidad 4                            - 14 -                 www.icam.com.mx
Guía rápida SQL Server 2000                                    División Empresas




Palabras clave reservadas.
SQL Server reserva ciertas palabras clave para su uso exclusivo.

   •   Nombres de identificadores que tienen significado especial
          o Palabras claves de Transact-SQL
          o Palabras claves de ANSI SQL-92
          o Palabras claves de ODBC
   •   No utilice palabras claves reservadas para nombres de identificadores




Unidad 4                           - 15 -                 www.icam.com.mx

Weitere ähnliche Inhalte

Was ist angesagt?

Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlCristian Garzon
 
Sql server 2005 (bda)henrry
Sql server 2005 (bda)henrrySql server 2005 (bda)henrry
Sql server 2005 (bda)henrryHENRRYDAVIDS1
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datosLuis Bando
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosJosé Antonio Sandoval Acosta
 

Was ist angesagt? (8)

Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sql
 
Sql server 2005 (bda)henrry
Sql server 2005 (bda)henrrySql server 2005 (bda)henrry
Sql server 2005 (bda)henrry
 
Introduccion a SQL
Introduccion a SQL Introduccion a SQL
Introduccion a SQL
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datos
 
Abd3 sql
Abd3 sqlAbd3 sql
Abd3 sql
 
Lenguaje sql
Lenguaje sqlLenguaje sql
Lenguaje sql
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 

Ähnlich wie Unidad4 sql

Ähnlich wie Unidad4 sql (20)

Unid2 transact sql 1
Unid2  transact sql 1Unid2  transact sql 1
Unid2 transact sql 1
 
TODO SOBRE SQL
TODO SOBRE SQLTODO SOBRE SQL
TODO SOBRE SQL
 
Sql
SqlSql
Sql
 
Tema3
Tema3Tema3
Tema3
 
Modificaciones De Ansi Sql
Modificaciones De Ansi SqlModificaciones De Ansi Sql
Modificaciones De Ansi Sql
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Instrucciones Transact Sql
Instrucciones Transact SqlInstrucciones Transact Sql
Instrucciones Transact Sql
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q L
 
Curso Developer SQL 2012 enfocado a la Certificación 70-641
Curso Developer SQL 2012 enfocado a la Certificación 70-641Curso Developer SQL 2012 enfocado a la Certificación 70-641
Curso Developer SQL 2012 enfocado a la Certificación 70-641
 
LENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQLLENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQL
 
103305862 t-sql
103305862 t-sql103305862 t-sql
103305862 t-sql
 
t-sql
t-sqlt-sql
t-sql
 
04-SQL.pdf
04-SQL.pdf04-SQL.pdf
04-SQL.pdf
 
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf
 
Lenguaje Transact sql
Lenguaje Transact sqlLenguaje Transact sql
Lenguaje Transact sql
 
Investigacion Uno
Investigacion UnoInvestigacion Uno
Investigacion Uno
 
Tsql
TsqlTsql
Tsql
 
SQL (Structured Query Language): Informe de Lectura Unidad 3
SQL (Structured Query Language): Informe de Lectura Unidad 3SQL (Structured Query Language): Informe de Lectura Unidad 3
SQL (Structured Query Language): Informe de Lectura Unidad 3
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 

Kürzlich hochgeladen

Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 

Kürzlich hochgeladen (20)

Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 

Unidad4 sql

  • 1. Guía rápida SQL Server 2000 División Empresas Unidad 4: Introducción a Transact-SQL Panorama general. Transact-SQL es un lenguaje de definición, manipulación y control de datos. El lenguaje de programación Transact-SQL El American National Standards Institute (ANSI) y el Internacional Standards Organization (ISO) definieron estándares para SQL. Utilizando Transact-SQL, Microsoft SQL Server 2000 soporta el nivel de implementación de SQL-92, El SQL estándar publicado por ANSI e ISO en 1992. Transact SQL también contiene algunas extensiones que incrementan su funcionalidad. Tipos de sentencias de Transact-SQL Para escribir y ejecutar una sentencia de Transact- SQL, deberá utilizar: • Sentencias del Lenguaje de Definición de Datos (DDL), que permiten crear objetos en la base de datos. • Sentencias del Lenguaje de Control de Datos (DCL), que permiten determinar quien puede ver o modificar los datos. • Sentencias del Lenguaje de Manipulación de Datos (DML), que permiten consultar y modificar los datos. Sentencias del Lenguaje de Definición de Datos Permiten crear bases de datos, tablas y tipos de datos definidos por el usuario. También puede utilizar las sentencias DDL para administrar los objetos de bases de datos. Algunas sentencias DDL son: • CREATE nombre_objeto • ALTER nombre_objeto • DROP nombre_objeto Por defecto, solo los miembros de sysadmin, dbcreator, db_owner, o db_ddladmin pueden ejecutar sentencias DDL. Ejemplo USE Northwind CREATE TABLE custumer (cust_id int, company varchar(40), contact varchar(30), phone char(12)) GO Unidad 4 -1- www.icam.com.mx
  • 2. Guía rápida SQL Server 2000 División Empresas Sentencias del Lenguaje de Control de Datos Son utilizadas para cambiar los permisos asociados con un usuario de bases de datos. La siguiente tabla describe las sentencias DCL Sentencia Descripción GRANT Crea una entrada en el sistema de seguridad que permite a un usuario de la base de datos actual trabajar con datos de la base de datos actual o ejecutar instrucciones Transact-SQL específicas. DENY Crea una entrada en el sistema de seguridad que deniega un permiso de una cuenta de seguridad en la base de datos actual e impide que la cuenta de seguridad herede los permisos a través de los miembros de su grupo o función. REVOKE Quita un permiso otorgado o denegado previamente de un usuario de la base de datos actual. Ejemplo USE Northwind GRANT SELECT ON products TO public GO Sentencias del Lenguaje de Manipulación de Datos Estas sentencias trabajan con los datos en la base de datos. Puede cambiar datos o recuperar información. Las sentencias DML incluyen: • SELECT • INSERT • UPDATE • DELETE Ejemplo USE Northwind SELECT categoryid, productname, productid, unitprice FROM products GO Unidad 4 -2- www.icam.com.mx
  • 3. Guía rápida SQL Server 2000 División Empresas Sintaxis de los elementos de Transact-SQL Las sentencias DML son construidas utilizando un número de elemento de sintaxis. Estos incluyen: Directivas de Batch Un Batch es una colección de una o más instrucciones SQL que el cliente envía en una unidad. Hay dos métodos básicos para controlar procesos por lotes: GO Las herramientas de SQL Server interpretan GO como una señal de que deben enviar el lote actual de instrucciones Transact-SQL a SQL Server. Una instrucción Transact-SQL no puede ocupar la misma línea que un comando GO, GO no es una instrucción de Transact-SQL. EXEC Ejecuta una función definida por el usuario y devuelve valores escalares, un procedimiento del sistema, un procedimiento almacenado definido por el usuario o un procedimiento almacenado extendido. Admite también la ejecución de una cadena de caracteres en un proceso por lotes Transact-SQL. Comentarios Los comentarios son cadenas de texto incluidas en el código de un programa que no se ejecutan. Pueden ser utilizados de dos formas, en línea con la sentencia o como un bloque. Comentarios en línea Puede crear comentarios en línea utilizando dos guiones (--). Ejemplo USE northwind SELECT productname , (unitsinstock – unitsonorder) -- Calcula el inventario , supplierid FROM products GO Unidad 4 -3- www.icam.com.mx
  • 4. Guía rápida SQL Server 2000 División Empresas Comentarios en bloque Puede crear un bloque de comentarios colocando el carácter (/*) al inicio del bloque y finalizar el comentario con el carácter (*/). Ejemplo /* Este código recupera todas las líneas de la tabla productos y muestra el precio unitario, el precio unitario se incrementado un 10%, y el nombre del producto. */ USE northwind SELECT unitprice, (unitprice * 1.1), productname FROM products GO Identificadores SQL Server proporciona una serie de reglas para nombrar identificadores normales de objetos y un método de utilizar delimitadores para identificadores que no son normales. Identificadores normales Reglas de los identificadores normales: • El primer carácter debe ser alguno de los siguientes: o Una letra, de la "a" a la "z" y de la "A" a la "Z. o El signo de subrayado (_), arroba (@) o número (#). Un identificador que empieza con el signo arroba indica un parámetro o una variable local. Un identificador que empieza con un signo número indica una tabla o procedimiento temporal. Un identificador que empieza con un signo de número doble (##) indica un objeto temporal global. • Los caracteres subsiguientes pueden ser: o Letras o Números o El signo de arroba, dólar ($), número o subrayado. • El identificador no debe ser una palabra reservada de Transact-SQL. SQL Server reserva las versiones en mayúsculas y minúsculas de las palabras reservadas. • No se permiten los caracteres especiales o los espacios incrustados. Unidad 4 -4- www.icam.com.mx
  • 5. Guía rápida SQL Server 2000 División Empresas Identificadores delimitados Si un identificador cumple todas las reglas de formato de los identificadores, se puede utilizar con o sin delimitadores. Si un identificador no cumple las reglas de formato de los identificadores normales, debe aparecer siempre delimitado. Los identificadores delimitados se utilizan en estas situaciones: • Cuando los nombres contienen espacios • Cuando las palabras reservadas se usan para los nombres de objeto o partes de los nombres de objeto. • Los identificadores entre corchetes aparecen delimitados por corchetes ([ ]): SELECT * FROM [Blanks In Table Name] • Los identificadores entrecomillados aparecen delimitados por comillas dobles ("): SELECT * FROM "Blanks in Table Name" Los identificadores entre comillas dobles sólo son válidos si la opción SET QUOTED_IDENTIFIER es ON. Sugerencias para nombrar identificadores • Utilice nombres cortos • Utilice nombres que tengan un significado • Utilice las convenciones para nombrar identificadores • Use Un identificador que distinga el tipo de objeto o Vistas o Procedimientos almacenados • Utilice nombres de objetos y nombres de usuarios únicos o Tabla Ventas y rol Ventas Tipos de datos Los tipos de datos son los tipos de valores que se pueden almacenar en una base de datos. Números Este tipo de datos representa valores numéricos e incluye enteros como int, tinyint, smallint y bigint. También incluyen valores con precisión decimal como es numeric, decimal, money, smallmoney. Estos incluyen valores con punto flotante como son float y real. Unidad 4 -5- www.icam.com.mx
  • 6. Guía rápida SQL Server 2000 División Empresas Fechas Este tipo de datos representa fechas y horas. Los dos tipos de fechas son datetime, que tiene una precisión de 3. 33 milisegundos, y smalldatetime, que tiene una precisión de intervalos de un minuto. Caracteres Este tipo de datos es utilizado para representar datos de tipo carácter o cadena e incluye tipos de datos de tamaño fijo como son char y nchar, así como tipos de datos de longitud variable como son varchar y nvarchar. Binario Este tipo de datos es muy similar al tipo carácter en términos de almacenamiento y estructura, excepto que el contenido de los datos son una serie de bytes. El tipo de dato binario incluye binary y varbinary. Un dato de tipo bit indica un valor simple de cero o uno. Identificadores únicos Este tipo especial de datos es un uniqueidentifier que representa un identificador global único (GUID), el cual es un valor hexadecimal de 16-bytes. SQL Variant Este tipo de dato puede representar valores de varios tipos soportados por SQL Server, con excepción de text, ntext, image, timestamp y rowversion. Imagen y texto Estos tipos de datos son estructuras de objetos largos binarios (BLOB) que representan tipos de datos de longitud fija y variable para almacenar caracteres no-Unicode y Unicode y datos binarios, como es image, text y ntext. Tablas El tipo de dato tabla puede ser utilizado sólo para definir varios locales de tipo tabla o retornar valores de una función definida por el usuario. Tipos de datos definido por el usuario Este tipo de dato es creado por el administrador de base de datos y está basado en tipos de datos del sistema. Utilice tipos de datos definidos por el usuario cuando algunas tablas deban almacenar el mismo tipo de datos en una columna y quiera asegurarse que las columnas tienen exactamente el mismo tipo de datos, longitud. Unidad 4 -6- www.icam.com.mx
  • 7. Guía rápida SQL Server 2000 División Empresas Variables Las variables son elementos del lenguaje con valores asignados. Puede utilizar variables locales en Transact-SQL. Una variable local es definida por el usuario utilizando la sentencia DECLARE, asignando en un valor inicial en un SET o SELECT, y entonces utilizarla con la sentencia o procedimiento por lotes en el cual fue declarada. El ámbito de una variable local abarca el procedimiento en el cual fue definida. Para una variable local se utiliza un símbolo @antes del nombre. Sintaxis DECLARE {@ variable_local tipo_dato} [...n] SET @nombre_variable_local = expresión Ejemplo Use northwind DECLARE @EmpID varchar(11), @vlName char(20) SET @vlname = ‘Dodsworth’ SELECT @EmpID = employeeid FROM employees WHERE LastName = @vlname SELECT @EmpID AS EmployeeID GO Resultado EmployeeID 9 (1 row(s) affected) Unidad 4 -7- www.icam.com.mx
  • 8. Guía rápida SQL Server 2000 División Empresas Funciones del sistema Puede utilizar funciones, incluyendo funciones de sistema, en cualquier parte que una expresión lo permita en una consulta. Transact-SQL proporciona algunas funciones que retornan información. Aquí hay tres tipos de funciones con las que debería estar familiarizado: Funciones de agregado Operan sobre una colección de valores y devuelven un solo valor de resumen. Ejemplo USE northwind SELECT AVG(unitprice) AS AvgPrice FROM products GO Resultado AvgPrice 28.8663 (1 row(s) affected) Funciones escalares Operan sobre un valor y después devuelven otro valor. Las funciones escalares se pueden utilizar donde la expresión sea válida. Esta tabla clasifica las funciones escalares. Categoría de la Explicación función Funciones de Devuelven información acerca de la configuración configuración actual. Funciones de cursor Devuelven información acerca de los cursores. Funciones de fecha Realizan una operación sobre un valor de entrada de y hora fecha u hora, y devuelven un valor de cadena, numérico o de fecha y hora. Funciones Realizan un cálculo sobre valores de entrada matemáticas proporcionados como parámetros de la función y devuelven un valor numérico. Funciones de Devuelven información acerca de la base de datos y los metadatos objetos de la base de datos. Funciones de Devuelven información acerca de usuarios y funciones. seguridad Unidad 4 -8- www.icam.com.mx
  • 9. Guía rápida SQL Server 2000 División Empresas Funciones de Realizan una operación sobre un valor de entrada de cadena cadena (char o varchar) y devuelven un valor de cadena o numérico. Funciones del Realizan operaciones y devuelven información acerca sistema de valores, objetos y configuraciones de Microsoft® SQL Server™. Funciones de Devuelven información estadística acerca del sistema. estadísticas del sistema Funciones de texto e Realizan una operación sobre un valor o una columna de imagen texto o imagen, y devuelven información acerca del valor. Ejemplo USE northwind SELECT DB_NAME() AS ‘database’ GO Resultado Database Northwind (1 row(s) affected) Ejemplos de funciones de sistema Las funciones del sistema son comúnmente utilizadas cuando convierte datos de tipo fecha de un formato de un país a otro. Ejemplo 1 Este ejemplo demuestra como puede convertir fechas a diferentes estilos. SELECT ‘ANSI:’, CONVERT (varchar(30), GETDATE(), 102) AS Style UNION SELECT ‘japanese:’, CONVERT (varchar(30), GETDATE(), 111) UNION SELECT ‘European:’, CONVERT (varchar(30), GETDATE(), 113) GO Resultado Estilo European: 20 Nov 1998 16:44:12:857 Japanese: 11/20/98 ANSI: 1998.11.20 Unidad 4 -9- www.icam.com.mx
  • 10. Guía rápida SQL Server 2000 División Empresas Ejemplo 2 Este ejemplo utiliza la opción DATEFORMAT de la sentencia SET para formatear fechas. Esta configuración es utilizada solo en la interpretación de caracteres tipo cadena que son convertidos a tipo fecha. No tiene efectos en el despliegue de los valores. SET DATEFORMAT dmy GO DECLARE @vdate datetime SET @vdate = ‘29/11/98’ SELECT @vdate GO Resultado 1998-11-29 00:00:00.000 (1 row(s) affected) Ejemplo 3 Este ejemplo retorna el nombre de usuario actual y la aplicación que el usuario está utilizando. El usuario en este ejemplo es un miembro de sysadmin. USE library SELECT user_name(), app_name() GO Resultado Dbo MS SQL Query Analyzer Ejemplo 4 Este ejemplo determina si la columna firstname en la tabla member de la base de datos library permite valores nulos. Un resultado de cero (falso) significa que los valores nulos no son permitidos, y un resultado de uno (verdadero) significa que los valores nulos son permitidos. Note que la función OBJECT_ID es incrustada en la función COLUMNPROPERTY. Esto le permite obtener el objeto id de la tabla member. USE library SELECT COLUMNPROPERTY(OBJECT_ID(‘member’), ‘firstname’, ‘allowsNull’) GO Resultado 0 (1 row(s) affected) Unidad 4 - 10 - www.icam.com.mx
  • 11. Guía rápida SQL Server 2000 División Empresas Operadores Los operadores son símbolos que realizan cálculos matemáticos, concatenaciones de cadena, comparaciones entre columnas, constantes y variables. Pueden ser combinados y utilizados en condiciones de búsqueda. Cuando se combinan, el orden en el cual son procesados se basa en la prioridad establecida. Tipos de operadores SQL Server soporta cuatro tipos de operadores: Aritméticos Los operadores aritméticos realizan cálculos con columnas numéricas o constantes. Transact-SQL soporta multiplicación (*), división (/), módulo (%), suma (+) y resta (-). Comparación Los operadores de relación comparan dos expresiones. Las comparaciones pueden ser entre variables, columnas y expresiones del mismo tipo. Los operadores de comparación se incluyen en la siguiente tabla. Operadores Significado = Igual a > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que <> No igual que Concatenación de cadenas El operador de concatenación de cadenas (+) concatena valores de cadena. Lógicos Los operadores lógicos AND, OR y NOT permiten unir condiciones en la cláusula WHERE. Unidad 4 - 11 - www.icam.com.mx
  • 12. Guía rápida SQL Server 2000 División Empresas Niveles de prioridad de los operadores Si utiliza múltiples operadores (lógicos o aritméticos) para combinar expresiones, SQL Server procesa los operadores en el orden de su prioridad, lo cual puede afectar el valor del resultado. Los operadores tienen la siguiente prioridad de (de más alto más bajo). Tipo Operador Símbolo Agrupar Agrupación primaria () Aritmético Multiplicativos */% Aritmético Aditivos -+ Otros Concatenación + Lógico NOT NOT Lógico AND AND Lógico OR OR Expresiones Las expresiones son una combinación de símbolos y operadores que se evalúan para generar un simple valor. Pueden ser simples cómo es una constante, variable, columna o valor escalar o expresiones complejas creadas por la conexión de una o más expresiones simples con operadores. Ejemplo El siguiente ejemplo calcula el monto total de un producto en una orden, multiplica el precio unitario por la cantidad ordenada, y entonces se filtran los resultados para aquellos que el monto total es mayor de $10,000.00. USE northwind SELECT orderID, ProductID ,(UnitPrice * Quantity) as ExtendedAmount FROM [Order Details] WHERE (UnitPrice * Quantity) > 1000 GO Resultado OrderID ProductID ExtendedAmount 10353 38 10540.0000 10417 38 10540.0000 10424 38 10329.2000 10865 38 15810.0000 10889 38 10540.0000 10981 38 15810.0000 (6 row(s) affected) Unidad 4 - 12 - www.icam.com.mx
  • 13. Guía rápida SQL Server 2000 División Empresas Elementos del lenguaje de control de flujo Transact-SQL contiene algunos elementos del lenguaje que controlan el flujo lógico. También contiene la función CASE que permite utilizar condiciones lógicas en una fila simple con una sentencia SELECT o UPDATE. Nivel de sentencia Los siguientes elementos le permiten controlar el flujo lógico con un script: BEGIN ... END Blocks Estos elementos encierran una serie de sentencias. IF ... ELSE Blocks Estos elementos especifican que SQL Server deberá ejecutar la primera alternativa si la condición es verdadera. De lo contrario, SQL deberá ejecutar la segunda alternativa. WHILE Constructs Estos elementos ejecutar una sentencia repetidamente mientras la condición especificada es verdadera. Las sentencias BREAK y CONTINUE controlan la operación de las sentencias dentro del ciclo WHILE. Ejemplo 1 Éste ejemplo determina si un cliente tiene alguna orden antes de borrar el cliente de la lista. USE northwind IF EXISTS (SELECT * FROM orders WHERE customerid = ‘frank’) PRINT ‘*** El cliente no puede ser borrado ***’ ELSE BEGIN DELETE customers WHERE customerid = ‘frank’ PRINT ‘*** Cliente eliminado***’ END GO Nivel de fila Una función CASE evalúa una lista de condiciones y devuelve como resultado una de las distintas expresiones posibles. CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END Unidad 4 - 13 - www.icam.com.mx
  • 14. Guía rápida SQL Server 2000 División Empresas Ejemplo 2 El siguiente ejemplo declara una variable local, evalúa para ver si es igual a 4, 5, o 6, y si lo es, un contador a través de un ciclo WHILE determina si el valor actual es un número par o impar. DECLARE @n tinyint SET @n = 5 IF (@n BETWEEN 4 and 6) BEGIN WHILE (@n > 0) BEGIN SELECT @n AS ‘Numero’ ,CASE WHEN (@N % 2) = 1 THEN ‘IMPAR’ ELSE ‘PAR’ END AS ‘Type’ SET @n = @n – 1 END END ELSE PRINT ‘NO ANALIZADO’ GO Resultado Numero Tipo 5 IMPAR (1 row(s) affected) Numero Tipo 4 PAR (1 row(s) affected) Numero Tipo 3 IMPAR (1 row(s) affected) Numero Tipo 2 PAR (1 row(s) affected) Numero Tipo 1 IMPAR (1 row(s) affected) Unidad 4 - 14 - www.icam.com.mx
  • 15. Guía rápida SQL Server 2000 División Empresas Palabras clave reservadas. SQL Server reserva ciertas palabras clave para su uso exclusivo. • Nombres de identificadores que tienen significado especial o Palabras claves de Transact-SQL o Palabras claves de ANSI SQL-92 o Palabras claves de ODBC • No utilice palabras claves reservadas para nombres de identificadores Unidad 4 - 15 - www.icam.com.mx