Guía rápida SQL Server 2000                                    División EmpresasUnidad 4: Introducción a Transact-SQLPanor...
Guía rápida SQL Server 2000                                     División EmpresasSentencias del Lenguaje de Control de Dat...
Guía rápida SQL Server 2000                                     División EmpresasSintaxis de los elementos de Transact-SQL...
Guía rápida SQL Server 2000                                     División EmpresasComentarios en bloquePuede crear un bloqu...
Guía rápida SQL Server 2000                                         División EmpresasIdentificadores delimitadosSi un iden...
Guía rápida SQL Server 2000                                      División EmpresasFechasEste tipo de datos representa fech...
Guía rápida SQL Server 2000                                   División EmpresasVariablesLas variables son elementos del le...
Guía rápida SQL Server 2000                                  División EmpresasFunciones del sistemaPuede utilizar funcione...
Guía rápida SQL Server 2000                                   División EmpresasFunciones         de Realizan una operación...
Guía rápida SQL Server 2000                                     División EmpresasEjemplo 2Este ejemplo utiliza la opción D...
Guía rápida SQL Server 2000                                     División EmpresasOperadoresLos operadores son símbolos que...
Guía rápida SQL Server 2000                                     División EmpresasNiveles de prioridad de los operadoresSi ...
Guía rápida SQL Server 2000                                      División EmpresasElementos del lenguaje de control de flu...
Guía rápida SQL Server 2000                                     División EmpresasEjemplo 2El siguiente ejemplo declara una...
Guía rápida SQL Server 2000                                    División EmpresasPalabras clave reservadas.SQL Server reser...
Próxima SlideShare
Cargando en…5
×

Unidad4 sql

698 visualizaciones

Publicado el

Introduccion a transact-SQL

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
698
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
8
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Unidad4 sql

  1. 1. Guía rápida SQL Server 2000 División EmpresasUnidad 4: Introducción a Transact-SQLPanorama general.Transact-SQL es un lenguaje de definición, manipulación y control de datos.El lenguaje de programación Transact-SQLEl American National Standards Institute (ANSI) y el Internacional StandardsOrganization (ISO) definieron estándares para SQL. Utilizando Transact-SQL,Microsoft SQL Server 2000 soporta el nivel de implementación de SQL-92, ElSQL estándar publicado por ANSI e ISO en 1992. Transact SQL también contienealgunas extensiones que incrementan su funcionalidad.Tipos de sentencias de Transact-SQLPara 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 DatosPermiten crear bases de datos, tablas y tipos de datos definidos por el usuario.También puede utilizar las sentencias DDL para administrar los objetos debases de datos. Algunas sentencias DDL son: • CREATE nombre_objeto • ALTER nombre_objeto • DROP nombre_objetoPor defecto, solo los miembros de sysadmin, dbcreator, db_owner, odb_ddladmin pueden ejecutar sentencias DDL.EjemploUSE NorthwindCREATE TABLE custumer(cust_id int, company varchar(40), contact varchar(30), phone char(12))GOUnidad 4 -1- www.icam.com.mx
  2. 2. Guía rápida SQL Server 2000 División EmpresasSentencias del Lenguaje de Control de DatosSon utilizadas para cambiar los permisos asociados con un usuario de bases dedatos. La siguiente tabla describe las sentencias DCLSentencia DescripciónGRANT 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.EjemploUSE NorthwindGRANT SELECT ON products TO publicGOSentencias del Lenguaje de Manipulación de DatosEstas sentencias trabajan con los datos en la base de datos. Puede cambiardatos o recuperar información. Las sentencias DML incluyen: • SELECT • INSERT • UPDATE • DELETEEjemploUSE NorthwindSELECT categoryid, productname, productid, unitpriceFROM productsGOUnidad 4 -2- www.icam.com.mx
  3. 3. Guía rápida SQL Server 2000 División EmpresasSintaxis de los elementos de Transact-SQLLas sentencias DML son construidas utilizando un número de elemento desintaxis. Estos incluyen:Directivas de BatchUn Batch es una colección de una o más instrucciones SQL que el cliente envíaen una unidad. Hay dos métodos básicos para controlar procesos por lotes:GOLas herramientas de SQL Server interpretan GO como una señal de que debenenviar el lote actual de instrucciones Transact-SQL a SQL Server. Unainstrucción Transact-SQL no puede ocupar la misma línea que un comando GO,GO no es una instrucción de Transact-SQL.EXECEjecuta una función definida por el usuario y devuelve valores escalares, unprocedimiento del sistema, un procedimiento almacenado definido por elusuario o un procedimiento almacenado extendido. Admite también laejecución de una cadena de caracteres en un proceso por lotes Transact-SQL.ComentariosLos comentarios son cadenas de texto incluidas en el código de un programaque no se ejecutan. Pueden ser utilizados de dos formas, en línea con lasentencia o como un bloque.Comentarios en líneaPuede crear comentarios en línea utilizando dos guiones (--).EjemploUSE northwindSELECT productname , (unitsinstock – unitsonorder) -- Calcula el inventario , supplieridFROM productsGOUnidad 4 -3- www.icam.com.mx
  4. 4. Guía rápida SQL Server 2000 División EmpresasComentarios en bloquePuede crear un bloque de comentarios colocando el carácter (/*) al inicio delbloque y finalizar el comentario con el carácter (*/).Ejemplo/*Este código recupera todas las líneas de la tabla productos y muestra el preciounitario, el precio unitario se incrementado un 10%, y el nombre del producto.*/USE northwindSELECT unitprice, (unitprice * 1.1), productnameFROM productsGOIdentificadoresSQL Server proporciona una serie de reglas para nombrar identificadoresnormales de objetos y un método de utilizar delimitadores para identificadoresque no son normales.Identificadores normalesReglas 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. 5. Guía rápida SQL Server 2000 División EmpresasIdentificadores delimitadosSi un identificador cumple todas las reglas de formato de los identificadores, sepuede utilizar con o sin delimitadores. Si un identificador no cumple las reglasde 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 VentasTipos de datosLos tipos de datos son los tipos de valores que se pueden almacenar en unabase de datos.NúmerosEste tipo de datos representa valores numéricos e incluye enteros como int,tinyint, smallint y bigint. También incluyen valores con precisión decimalcomo es numeric, decimal, money, smallmoney. Estos incluyen valores conpunto flotante como son float y real.Unidad 4 -5- www.icam.com.mx
  6. 6. Guía rápida SQL Server 2000 División EmpresasFechasEste tipo de datos representa fechas y horas. Los dos tipos de fechas sondatetime, que tiene una precisión de 3. 33 milisegundos, y smalldatetime,que tiene una precisión de intervalos de un minuto.CaracteresEste tipo de datos es utilizado para representar datos de tipo carácter o cadenae incluye tipos de datos de tamaño fijo como son char y nchar, así como tiposde datos de longitud variable como son varchar y nvarchar.BinarioEste tipo de datos es muy similar al tipo carácter en términos dealmacenamiento y estructura, excepto que el contenido de los datos son unaserie de bytes. El tipo de dato binario incluye binary y varbinary. Un dato detipo bit indica un valor simple de cero o uno.Identificadores únicosEste tipo especial de datos es un uniqueidentifier que representa unidentificador global único (GUID), el cual es un valor hexadecimal de 16-bytes.SQL VariantEste tipo de dato puede representar valores de varios tipos soportados por SQLServer, con excepción de text, ntext, image, timestamp y rowversion.Imagen y textoEstos tipos de datos son estructuras de objetos largos binarios (BLOB) querepresentan tipos de datos de longitud fija y variable para almacenarcaracteres no-Unicode y Unicode y datos binarios, como es image, text y ntext.TablasEl tipo de dato tabla puede ser utilizado sólo para definir varios locales de tipotabla o retornar valores de una función definida por el usuario.Tipos de datos definido por el usuarioEste 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 elusuario cuando algunas tablas deban almacenar el mismo tipo de datos en unacolumna y quiera asegurarse que las columnas tienen exactamente el mismotipo de datos, longitud.Unidad 4 -6- www.icam.com.mx
  7. 7. Guía rápida SQL Server 2000 División EmpresasVariablesLas variables son elementos del lenguaje con valores asignados. Puede utilizarvariables 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 lasentencia o procedimiento por lotes en el cual fue declarada. El ámbito de unavariable local abarca el procedimiento en el cual fue definida. Para unavariable local se utiliza un símbolo @antes del nombre.SintaxisDECLARE {@ variable_local tipo_dato} [...n]SET @nombre_variable_local = expresiónEjemploUse northwindDECLARE @EmpID varchar(11), @vlName char(20)SET @vlname = ‘Dodsworth’SELECT @EmpID = employeeid FROM employeesWHERE LastName = @vlnameSELECT @EmpID AS EmployeeIDGOResultadoEmployeeID9(1 row(s) affected)Unidad 4 -7- www.icam.com.mx
  8. 8. Guía rápida SQL Server 2000 División EmpresasFunciones del sistemaPuede utilizar funciones, incluyendo funciones de sistema, en cualquier parteque una expresión lo permita en una consulta. Transact-SQL proporcionaalgunas funciones que retornan información.Aquí hay tres tipos de funciones con las que debería estar familiarizado:Funciones de agregadoOperan sobre una colección de valores y devuelven un solo valor de resumen.EjemploUSE northwindSELECT AVG(unitprice) AS AvgPriceFROM productsGOResultadoAvgPrice28.8663(1 row(s) affected)Funciones escalaresOperan sobre un valor y después devuelven otro valor. Las funciones escalaresse pueden utilizar donde la expresión sea válida. Esta tabla clasifica lasfunciones escalares.Categoría de la ExplicaciónfunciónFunciones de Devuelven información acerca de la configuraciónconfiguración actual.Funciones de cursor Devuelven información acerca de los cursores.Funciones de fecha Realizan una operación sobre un valor de entrada dey 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 entradamatemá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 losmetadatos objetos de la base de datos.Funciones de Devuelven información acerca de usuarios y funciones.seguridadUnidad 4 -8- www.icam.com.mx
  9. 9. Guía rápida SQL Server 2000 División EmpresasFunciones de Realizan una operación sobre un valor de entrada decadena cadena (char o varchar) y devuelven un valor de cadena o numérico.Funciones del Realizan operaciones y devuelven información acercasistema de valores, objetos y configuraciones de Microsoft® SQL Server™.Funciones de Devuelven información estadística acerca del sistema.estadísticas delsistemaFunciones de texto e Realizan una operación sobre un valor o una columna deimagen texto o imagen, y devuelven información acerca del valor.EjemploUSE northwindSELECT DB_NAME() AS ‘database’GOResultadoDatabaseNorthwind(1 row(s) affected)Ejemplos de funciones de sistemaLas funciones del sistema son comúnmente utilizadas cuando convierte datos detipo fecha de un formato de un país a otro.Ejemplo 1Este ejemplo demuestra como puede convertir fechas a diferentes estilos.SELECT ‘ANSI:’, CONVERT (varchar(30), GETDATE(), 102) AS Style UNIONSELECT ‘japanese:’, CONVERT (varchar(30), GETDATE(), 111) UNIONSELECT ‘European:’, CONVERT (varchar(30), GETDATE(), 113)GOResultado EstiloEuropean: 20 Nov 1998 16:44:12:857Japanese: 11/20/98ANSI: 1998.11.20Unidad 4 -9- www.icam.com.mx
  10. 10. Guía rápida SQL Server 2000 División EmpresasEjemplo 2Este ejemplo utiliza la opción DATEFORMAT de la sentencia SET para formatearfechas. Esta configuración es utilizada solo en la interpretación de caracterestipo cadena que son convertidos a tipo fecha. No tiene efectos en el desplieguede los valores.SET DATEFORMAT dmyGODECLARE @vdate datetimeSET @vdate = ‘29/11/98’SELECT @vdateGOResultado1998-11-29 00:00:00.000(1 row(s) affected)Ejemplo 3Este ejemplo retorna el nombre de usuario actual y la aplicación que el usuarioestá utilizando. El usuario en este ejemplo es un miembro de sysadmin.USE librarySELECT user_name(), app_name()GOResultadoDbo MS SQL Query AnalyzerEjemplo 4Este ejemplo determina si la columna firstname en la tabla member de la basede datos library permite valores nulos.Un resultado de cero (falso) significa que los valores nulos no son permitidos, yun 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 librarySELECT COLUMNPROPERTY(OBJECT_ID(‘member’), ‘firstname’, ‘allowsNull’)GOResultado0(1 row(s) affected)Unidad 4 - 10 - www.icam.com.mx
  11. 11. Guía rápida SQL Server 2000 División EmpresasOperadoresLos operadores son símbolos que realizan cálculos matemáticos,concatenaciones de cadena, comparaciones entre columnas, constantes yvariables.Pueden ser combinados y utilizados en condiciones de búsqueda. Cuando secombinan, el orden en el cual son procesados se basa en la prioridadestablecida.Tipos de operadoresSQL Server soporta cuatro tipos de operadores:AritméticosLos operadores aritméticos realizan cálculos con columnas numéricas oconstantes. Transact-SQL soporta multiplicación (*), división (/), módulo (%),suma (+) y resta (-).ComparaciónLos operadores de relación comparan dos expresiones. Las comparacionespueden ser entre variables, columnas y expresiones del mismo tipo. Losoperadores 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 queConcatenación de cadenasEl operador de concatenación de cadenas (+) concatena valores de cadena.LógicosLos operadores lógicos AND, OR y NOT permiten unir condiciones en lacláusula WHERE.Unidad 4 - 11 - www.icam.com.mx
  12. 12. Guía rápida SQL Server 2000 División EmpresasNiveles de prioridad de los operadoresSi utiliza múltiples operadores (lógicos o aritméticos) para combinarexpresiones, SQL Server procesa los operadores en el orden de su prioridad, locual puede afectar el valor del resultado. Los operadores tienen la siguienteprioridad de (de más alto más bajo).Tipo Operador SímboloAgrupar Agrupación primaria ()Aritmético Multiplicativos */%Aritmético Aditivos -+Otros Concatenación +Lógico NOT NOTLógico AND ANDLógico OR ORExpresionesLas expresiones son una combinación de símbolos y operadores que se evalúanpara generar un simple valor. Pueden ser simples cómo es una constante,variable, columna o valor escalar o expresiones complejas creadas por laconexión de una o más expresiones simples con operadores.EjemploEl siguiente ejemplo calcula el monto total de un producto en una orden,multiplica el precio unitario por la cantidad ordenada, y entonces se filtran losresultados para aquellos que el monto total es mayor de $10,000.00.USE northwindSELECT orderID, ProductID ,(UnitPrice * Quantity) as ExtendedAmountFROM [Order Details]WHERE (UnitPrice * Quantity) > 1000GOResultadoOrderID ProductID ExtendedAmount10353 38 10540.000010417 38 10540.000010424 38 10329.200010865 38 15810.000010889 38 10540.000010981 38 15810.0000(6 row(s) affected)Unidad 4 - 12 - www.icam.com.mx
  13. 13. Guía rápida SQL Server 2000 División EmpresasElementos del lenguaje de control de flujoTransact-SQL contiene algunos elementos del lenguaje que controlan el flujológico. También contiene la función CASE que permite utilizar condicioneslógicas en una fila simple con una sentencia SELECT o UPDATE.Nivel de sentenciaLos 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 repetidamentemientras la condición especificada es verdadera. Las sentencias BREAK yCONTINUE 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 elcliente de la lista.USE northwindIF EXISTS (SELECT * FROM orders WHERE customerid = ‘frank’) PRINT ‘*** El cliente no puede ser borrado ***’ELSE BEGIN DELETE customers WHERE customerid = ‘frank’ PRINT ‘*** Cliente eliminado***’ ENDGONivel de filaUna función CASE evalúa una lista de condiciones y devuelve como resultadouna de las distintas expresiones posibles.CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ]ENDUnidad 4 - 13 - www.icam.com.mx
  14. 14. Guía rápida SQL Server 2000 División EmpresasEjemplo 2El 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 valoractual es un número par o impar.DECLARE @n tinyintSET @n = 5IF (@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 ENDELSE PRINT ‘NO ANALIZADO’GOResultadoNumero Tipo5 IMPAR(1 row(s) affected)Numero Tipo4 PAR(1 row(s) affected)Numero Tipo3 IMPAR(1 row(s) affected)Numero Tipo2 PAR(1 row(s) affected)Numero Tipo1 IMPAR(1 row(s) affected)Unidad 4 - 14 - www.icam.com.mx
  15. 15. Guía rápida SQL Server 2000 División EmpresasPalabras 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 identificadoresUnidad 4 - 15 - www.icam.com.mx

×