EQUIPO : Investigation Systems
Estudiantes : Aguilar Rafael Jaime
Diaz Guerrero Imer Hobet
CURSO :
Base de Datos II
TEMA :
Lenguaje
Transact
SQL
DOCENTE :
Marco Aurelio Porro Chulli
I. Tema: Lenguaje Transact SQL
1. Contenido
v Definición
Es un lenguaje muy potente que
nos permite definir casi cualquier tarea que queramos efectuar sobre la base de
datos; incluye características propias de cualquier lenguaje de programación,
características que nos permiten definir la lógica necesaria para el
tratamiento de la información:
• Tipos de datos.
• Definición de variables.
• Estructuras de control de flujo.
• Gestión de excepciones.
• Funciones predefinidas.
Debido a estas restricciones
se emplea generalmente para crear procedimientos almacenados, triggers y
funciones de usuario.
Puede ser utilizado como
cualquier SQL como lenguaje embebido en aplicaciones desarrolladas en otros
lenguajes de programación como Visual Basic, C, Java, etc. Y por supuesto los
lenguajes incluidos en la plataforma .NET.
También lo podremos ejecutar
directamente de manera interactiva, por ejemplo, desde el editor de consultas
de SSMS (SQL Server Management Studio).
v Tipos de comandos (DDL, MDL, etc.)
ü DDL (Data Definition
Language): Permite crear y definir bases
de datos, tablas, campos, índices.
CREATE: Sirve
para crear un nuevo objeto dentro del gestor de bases de datos. Los objetos de
unas bases de datos son tablas, índices, procedimientos almacenados y vistas.
Creación de una base de datos:
CREATE DATABASE
NOMBRE_BASE_DE_DATOS
Creación de un índice:
CREATE INDEX NOMBRE_ÍNDICE ON
"NOMBRE_TABLA" (NOMBRE_COLUMNA)
Creación de un procedimiento almacenado:
CREATE PROCEDURE
NOMBRE_PROCEDIMIENTO
[PARAMETROS]
AS
(Sentencias SQL)
[RETURN [VALOR]]
Creación de una vista:
CREATE VIEW NOMBRE_VISTA AS
SUBCONSULTA;
ALTER
El comando ALTER permite
realizar modificaciones en un objeto de la base de datos ya existente.
El uso más común del comando
ALTER es el enfocado en la edición de una tabla, ALTER TABLE.
Por ejemplo, para agregar una
nueva columna a una tabla ya existente ejecutaríamos el siguiente comando:
ALTER TABLE 'NOMBRE_TABLA' ADD
NUEVO_CAMPO TIPO;
No obstante, el comando ALTER,
como todos los comandos DDL, es aplicable a cualquier objeto de la base de
datos.
DROP
Sirve para eliminar objetos de
la base de datos. Por ejemplo, podríamos borrar una tabla con la siguiente
sentencia:
DROP TABLE 'NOMBRE_TABLA'
ü DML (Data Manipulation
Language): Filtra y ordena los datos que
queremos manipular.
SELECT
Este comando sirve para
recuperar un conjunto de datos siguiendo unos criterios de filtrado.
La instrucción SELECT se
utiliza para seleccionar datos de una base de datos.
Los datos devueltos se almacenan
en una tabla de resultados, llamada conjunto de resultados.
No obstante, con indicar la
procedencia de los datos ya podríamos crear nuestra primera consulta:
SELECT campos FROM NombreTabla
INSERT
La instrucción INSERT se
utiliza para insertar nuevos registros en una tabla.
Sintaxis:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
Si está agregando valores para
todas las columnas de la tabla, no necesita especificar los nombres de columna
en la consulta SQL. Sin embargo, asegúrese de que el orden de los valores esté
en el mismo orden que las columnas de la tabla. La sintaxis INSERT INTO sería
la siguiente:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
UPDATE
La instrucción UPDATE se usa
para modificar los registros existentes en una tabla.
Sintaxis:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
DELETE
La declaración DELETE se
utiliza para eliminar registros existentes en una tabla.
Sintaxis:
DELETE FROM table_name
WHERE condition;
v Funciones- Identificadores
FUNCIONES
Funciones de agregado
Las funciones de agregado
realizan un cálculo sobre un conjunto de valores y devuelven un solo valor. Se
pueden usar en la lista de selección o en la cláusula HAVING de una instrucción SELECT.
Puede usar una agregación en combinación con la cláusula GROUP BY para calcular la agregación en las categorías de filas.
Use la cláusula OVER para calcular
la agregación en un intervalo de valor específico. La cláusula OVER no puede
seguir las agregaciones GROUPING o GROUPING_ID.
Todas las funciones de
agregación son deterministas; es decir, siempre devuelven el mismo resultado
cuando se ejecutan con los mismos valores de entrada.
Funciones analíticas
Las funciones analíticas
calculan un valor agregado basándose en un grupo de filas. A diferencia de las
funciones de agregado, estas funciones pueden devolver varias filas para cada
grupo. Puede usar funciones analíticas para calcular medias móviles, totales
acumulados, porcentajes o resultados de N valores superiores dentro de un grupo.
Funciones de categoría
Las funciones de categoría
devuelven un valor de categoría para cada fila de una partición. Según la
función que se utilice, algunas filas pueden recibir el mismo valor que otras.
Las funciones de categoría son no deterministas.
Funciones de conjuntos de filas
Las funciones de conjuntos de
filas devuelven un objeto que se puede usar como referencias de tabla en una
instrucción SQL.
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.
Determinismo de función
Las funciones integradas de
SQL Server son deterministas o no deterministas. Las funciones son
deterministas cuando devuelven siempre el mismo resultado cada vez que se
llaman con un conjunto específico de valores de entrada. Las funciones son no
deterministas cuando es posible que devuelvan distintos resultados cada vez que
se llaman con un mismo conjunto específico de valores de entrada.
Intercalación de funciones
Las funciones que toman una
entrada de cadena de caracteres y devuelven una salida de cadena de caracteres
utilizan la intercalación de la cadena de entrada para la salida.
Las funciones que toman
entradas que no son de caracteres y devuelven una cadena de caracteres utilizan
la intercalación predeterminada de la base de datos actual para la salida.
Las funciones que toman varias
entradas de cadena de caracteres y devuelven una cadena de caracteres utilizan
las reglas de prioridad de intercalación para establecer la intercalación de la
cadena de salida.
IDENTIFICADORES
El identificador se utiliza para hacer
referencia al objeto. Por ejemplo, la instrucción siguiente crea una tabla con
el identificador Tablex y dos columnas con los identificadores KeyCol y
Description:
CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description
nvarchar(80))
Esta tabla tiene también una restricción sin
nombre. La restricción PRIMARY KEY no tiene ningún identificador.
La intercalación de un identificador depende
del nivel en que está definido. Se asigna a los identificadores de objetos de
instancia, como los inicios de sesión y los nombres de base de datos, la
intercalación predeterminada de la instancia. A los identificadores de objetos
de una base de datos, como nombres de tablas, vistas y columnas, se asigna la
intercalación predeterminada de la base de datos. Por ejemplo, es posible crear
dos tablas con nombres que solo se diferencian en las mayúsculas en una base de
datos con intercalación que distinga entre mayúsculas y minúsculas, pero no se
pueden crear en una base de datos con intercalación que no distinga entre
mayúsculas y minúsculas.
Los nombres de variables o los parámetros de
funciones y procedimientos almacenados deben cumplir las reglas para los
identificadores de Transact-SQL.
Clases
de identificadores
ü Identificadores normales
Siguen las reglas de formato de los
identificadores. Los identificadores normales no están delimitados cuando se
usan en instrucciones Transact-SQL.
SELECT * FROM TableX
WHERE KeyCol = 124
ü Identificadores delimitados
Se incluyen entre comillas dobles (") o
corchetes ([ ]). Los identificadores que siguen las reglas de formato de los
identificadores pueden no estar delimitados. Por ejemplo:
SELECT * FROM [TableX] --Delimiter is optional.
WHERE [KeyCol] = 124 --Delimiter is optional.
Los identificadores que no cumplen las reglas
de los identificadores deben estar delimitados en las instrucciones
Transact-SQL. Por ejemplo:
SELECT * FROM [My Table] --Identifier contains a space and uses a
reserved keyword.
WHERE [order] = 10 --Identifier is a reserved keyword.
Ambos identificadores, normales y delimitados,
deben tener entre 1 y 128 caracteres. En el caso de las tablas temporales
locales, el identificador puede tener un máximo de 116 caracteres.
Reglas
de los identificadores normales
Los nombres de variables, funciones y
procedimientos almacenados deben cumplir las siguientes reglas para los
identificadores de Transact-SQL.
1. El
primer carácter debe ser alguno de los siguientes:
·
Una letra, tal como se define en el estándar
Unicode 3,2. La definición Unicode de letras incluye los caracteres latinos de
la “a” a la “z” y de la “A” a la “Z”, además de los caracteres de letras de
otros idiomas.
·
El signo de subrayado (), arroba (@) o número
(#).
Ciertos símbolos al principio de un
identificador tienen un significado especial en SQL Server. Un identificador
normal que comience por el signo arroba siempre denotará una variable local o
un parámetro, y no se puede usar como nombre de ningún otro tipo de objeto. Un
identificador que empieza con el signo de número indica una tabla o
procedimiento temporal. Un identificador que empieza con un signo de número
doble (##) indica un objeto temporal global. Aunque es posible utilizar los
caracteres de signo de número o doble signo de número para comenzar los nombres
de otros tipos de objetos, no se recomienda hacerlo.
Algunas funciones de Transact-SQL tienen
nombres que empiezan con un doble signo de arroba (@@). Para evitar confusiones
con estas funciones, se recomienda no utilizar nombres que empiecen con @@.
Los caracteres subsiguientes pueden ser:
Letras, tal como se definen en el estándar
Unicode 3,2.
Números decimales del alfabeto latín básico u
otros alfabetos de otros idiomas.
El signo de arroba, dólar ($), número o
subrayado.
El identificador no debe ser una palabra
reservada de Transact-SQL. SQL Server se reserva las versiones en mayúsculas y
minúsculas de las palabras reservadas. Cuando se utilizan en instrucciones
Transact-SQL, los identificadores que no cumplan estas reglas deben aparecer
delimitados por comillas dobles o corchetes. Las palabras reservadas dependen
del nivel de compatibilidad de la base de datos. Este nivel se puede establecer
mediante la instrucción ALTER DATABASE.
No se permiten los caracteres especiales o los
espacios incrustados.
Los caracteres complementarios no están
permitidos.
Cuando se utilizan en instrucciones
Transact-SQL, los identificadores que no cumplan estas reglas deben aparecer
delimitados por comillas dobles o corchetes.
v Tipos de datos – Palabras Reservadas
TIPOS
DE DATOS
Un tipo de datos es un atributo
que especifica el tipo de datos que el objeto puede contener: datos de enteros,
datos de caracteres, datos de moneda, datos de fecha y hora, cadenas binarias,
etc.
SQL Server proporciona un
conjunto de tipos de datos del sistema que define todos los tipos de datos que
pueden utilizarse con SQL Server. También puede definir sus propios tipos de
datos en Transact-SQL o Microsoft .NET Framework. Los tipos de datos de alias
están basados en los tipos de datos proporcionados por el sistema.
Los tipos definidos por el usuario obtienen
sus características de los métodos y los operadores de una clase que se crean
mediante uno de los lenguajes de programación compatibles con .NET Framework.
Cuando dos expresiones que
tienen tipos de datos, intercalaciones, precisión, escala o longitud diferentes
son combinadas por un operador, las características del resultado vienen
determinadas por lo siguiente:
El tipo de datos del resultado
viene determinado por la aplicación de las reglas de precedencia de tipos de
datos a los tipos de datos de las expresiones de entrada.
La intercalación del resultado
viene determinada por las reglas de precedencia de intercalación cuando el tipo
de datos del resultado es char, varchar, text, nchar, nvarchar o ntext.
La precisión, escala y
longitud del resultado dependen de la precisión, escala y longitud de las
expresiones de entrada.
SQL Server proporciona
sinónimos de tipos de datos para la compatibilidad con ISO.
Los tipos de datos de SQL
Server se organizan en las siguientes categorías:
ü Numéricos exactos
ü Cadenas de caracteres Unicode
ü Numéricos aproximados
ü Cadenas binarias
ü Fecha y hora
ü Cadenas de caracteres
ü Otros tipos de datos
ü Numéricos exactos
·
bigint
·
numeric
·
bit
·
smallint
·
decimal
·
Smallmoney
·
int
·
tinyint
·
money
ü Numéricos aproximados
·
float
·
real
ü Fecha y hora
·
date
·
datetimeoffset
·
datetime2
·
smalldatetime
·
datetime
·
time
ü Cadenas de caracteres
·
char
·
varchar
·
varchar(max)
ü Cadenas de caracteres Unicode
·
nchar
·
nvarchar
·
ntext
ü Cadenas binarias
·
binario
·
varbinary
·
imagen
ü Otros tipos de datos
·
cursor rowversion
·
hierarchyid
·
uniqueidentifier
·
sql_variant
·
xml
PALABRAS
RESERVADAS
En
la tabla siguiente se enumeran las palabras clave reservadas de SQL Server.
|
ADD
|
FULL
|
SAVE
|
CONTINUE
|
|
EXTERNAL
|
RESTRICT
|
CLOSE
|
KILL
|
|
PROCEDURE
|
BETWEEN
|
IF
|
SOME
|
|
ALL
|
FUNCTION
|
SCHEMA
|
CONVERT
|
|
FETCH
|
RETURN
|
CLUSTERED
|
LEFT
|
|
PUBLIC
|
BREAK
|
IN
|
STATISTICS
|
|
ALTER
|
GOTO
|
SECURITYAUDIT
|
CREATE
|
|
FILE
|
REVERT
|
COALESCE
|
LIKE
|
|
RAISERROR
|
BROWSE
|
INDEX
|
SYSTEM_USR
|
|
AND
|
GRANT
|
SELECT
|
CROSS
|
|
FILLFACTOR
|
REVOKE
|
COLLATE
|
LILENO
|
|
READ
|
BULK
|
INNER
|
TABLE
|
|
ANY
|
GROUP
|
COLUMN
|
CURRENT
|
|
FOR
|
RIGHT
|
INSERT
|
LOAD
|
|
READTEXT
|
BY
|
COMMIT
|
Tablesample
|
|
AS
|
HAVING
|
INTERSECT
|
Current_date
|
|
FOREIGN
|
ROLLBACK
|
COMPUTE
|
MARGE
|
|
RECONFIGURE
|
CASCADE
|
INTO
|
TEXTSIZE
|
|
ASC
|
HOLDLOCK
|
SESSION_USER
|
Current_Time
|
|
FREETEXT
|
ROWCOUNT
|
CONSTRAINT
|
NATIONAL
|
|
REFERENCES
|
CASCADE
|
IS
|
THEN
|
|
ATHORIZATION
|
IDENTITY
|
SET
|
NOCHECK
|
|
FREETEXTTABLE
|
ROWGUIDCOL
|
CONTAINS
|
TO
|
|
REPLICATION
|
CHECK
|
JOIN
|
Current_User
|
|
BACKUP
|
IDENTITY_INSERT
|
SETUSER
|
Nonclustered
|
|
FROM
|
RULE
|
CONTAINSTABLE
|
TOP
|
|
RESTORE
|
CHECKPOINT
|
KEY
|
CURSOR
|
|
BEGIN
|
IDENTITYCOL
|
SHUTDOWN
|
NOT
|
|
TRAN
|
DATABASE
|
TRANSACTION
|
NULL
|
|
DBCC
|
NULLIF
|
TRIGGER
|
OF
|
|
DEALLOCATE
|
TRUNCATE
|
DECLARE
|
OFF
|
|
TRY_CONVERTE
|
DEFAULT
|
OFFSETS
|
TSEQUAL
|
|
DELETE
|
ON
|
UNION
|
DENY
|
|
OPEN
|
UNIQUE
|
UNPIVOT
|
DISK
|
|
Opendatasource
|
UPDATE
|
DISTINCT
|
USE
|
|
OPENQUERY
|
OPENROWSET
|
UPDATETEXT
|
DOUBLE
|
|
DISTRIBUTED
|
OPENXML
|
OPTION
|
USER
|
|
DROP
|
OR
|
VALUES
|
DUMP
|
|
ORDER
|
VARYING
|
ELSE
|
OUTER
|
|
VIEW
|
END
|
OVER
|
WAITFOR
|
|
ERRLVL
|
PERCENT
|
WHEN
|
ESCAPE
|
|
PIVOT
|
WHERE
|
EXCEPT
|
PLAN
|
|
WHILE
|
EXEC
|
PRECISION
|
WITH
|
|
EXECUTE
|
PRIMARY
|
WITHIN GROUP
|
EXISTS
|
|
PRINT
|
WRITETEXT
|
EXIT
|
PROC
|
Además,
el estándar ISO define una lista de palabras clave reservadas. Evite utilizar
las palabras clave reservadas de ISO como identificadores y nombres de objetos.
Nota
La
lista de palabras clave reservadas de los estándares ISO puede ser unas veces
más restrictiva que SQL Server y otras veces, menos. Por ejemplo, la lista de
palabras clave reservadas de ISO contiene INT. SQL Server no tiene que
distinguirla como una palabra clave reservada.
Se
puede utilizar palabras clave reservadas de Transact-SQL como identificadores o
nombres de objetos de base de datos, tales como tablas, columnas, vistas, etc.
Utilice identificadores entre comillas o identificadores delimitados. No está
restringido el uso de palabras clave reservadas como nombres de variables y
parámetros de procedimientos almacenados.
v Operadores – Flujos de control
Un Operador es un símbolo que especifica una
acción en que se realiza una o más expresiones.
OPERADORES
ARTMÉTICOS
Son aquellos que se realizan operaciones
matemáticas entre dos expresiones numéricas.
|
OPERADOR
|
SIGNIFICADO
|
|
+
|
Suma
|
|
-
|
Resta
|
|
*
|
Multiplicación
|
|
/
|
División
|
|
%
|
Devuelve el resto
entero de una división
|
Los operadores de suma (+) y resta (-) son
utilizados para realizar operaciones aritméticas son valores dateTime y Smalldatetime.
OPERADOR
DE ASIGNACIÓN
El operador igual (=) es sólo el operador de
Asignación del SQL Server.
Ejemplo:
DECLARE @NUM INT
SET @NUM=12
PRINT ‘EL NÚMERO INGRESADO
ES:’ + STR(@NUM)
OPERADORES
DE COMPARACIÓN
Los
operadores de comparación permiten comprobar dos expresiones retornando un
valor verdadero o falso, es decir un dato Booleano. Se pueden utilizar en todas
las expresiones excepto en las de los tipos de datos Text, nText o imagen.
|
Operadores
de Comparación
|
Significado
|
|
=
|
Igual a
|
|
>
|
Mayor que
|
|
<
|
Menor que
|
|
>=
|
Mayor o igual que
|
|
<=
|
Menor o igual que
|
|
<
>
|
Diferente que
|
|
!=
|
Diferente que (no es del estándar ISO)
|
|
!<
|
No es Menor que (no es del estándar
ISO)
|
|
!>
|
No es Mayor que (no es del estándar
ISO)
|
OPERADORES LÓGICOS
Los
operadores Lógicos comprueban la veracidad de alguna condición. Éstos, como los
comparadores de comparación, devuelven el tipo de datos Boolean con el valor
TRUE, FALSE O UNKNOWN.
|
OPERADOR
|
SIGNIFICADO
|
|
ALL
|
TRUE
si el conjunto completo de comparaciones es TRUE
|
|
AND
|
TRUE
si ambas expresiones booleanas son TRUE
|
|
ANY
|
TRUE
si cualquier miembro del conjunto de comparaciones es TRUE
|
|
BETWEEN
|
TRUE
si el operador está dentro de un intervalo.
|
|
EXISTS
|
TRUE
si una subconsulta contiene cualquiera de las filas.
|
|
IN
|
TRUE
si el operador es igual a uno de la lista de expresiones
|
|
LIKE
|
TRUE
si el operando coincide con un patrón
|
|
NOT
|
Invierte
el valor de cualquier otro operador booleano
|
|
OR
|
TRUE
si cualquiera de las dos expresiones booleanas es TRUE
|
|
SOME
|
TRUE
si alguna de las comparaciones de un conjunto es TRUE
|
FLUJOS DE CONTROL
Las
palabras clave del lenguaje de control de flujo de Transact-SQL son:
§ BEGIN…END
§ BREAK
§ RETURN
§ CONTINUE
§ GOTO
§ IF…ELSE
§ THROW
§ TRY…CATCH
§ WAITFOR
§ WHILE
2.
Resumen
v Definición
Es un lenguaje muy potente que
nos permite definir casi cualquier tarea que queramos efectuar sobre la base de
datos; incluye características propias de cualquier lenguaje de programación,
características que nos permiten definir la lógica necesaria para el
tratamiento de la información.
Puede ser utilizado como
cualquier SQL como lenguaje embebido en aplicaciones desarrolladas en otros
lenguajes de programación como Visual Basic, C, Java, etc. Y por supuesto los
lenguajes incluidos en la plataforma .NET.
v Tipos de comandos (DDL, MDL, etc.)
ü DDL (Data Definition
Language): Permite crear y definir bases
de datos, tablas, campos, índices.
v CREATE
v ALTER
v DROP
ü DML (Data Manipulation
Language): Filtra y ordena los datos que
queremos manipular.
v SELECT
v INSERT
v UPDATE
v DELETE
v Funciones- Identificadores
FUNCIONES
ü Funciones de agregado
ü Funciones analíticas
ü Funciones de categoría
ü Funciones de conjuntos
de filas
ü Funciones escalares
IDENTIFICADORES
El identificador se utiliza para hacer
referencia al objeto
Clases
de identificadores
ü Identificadores normales
ü Identificadores delimitados
Reglas
de los identificadores normales
Los nombres de variables, funciones y
procedimientos almacenados deben cumplir las siguientes reglas para los
identificadores de Transact-SQL.
El
primer carácter debe ser alguno de los siguientes:
·
Una letra, tal como se define en el estándar
Unicode 3,2. La definición Unicode de letras incluye los caracteres latinos de
la “a” a la “z” y de la “A” a la “Z”, además de los caracteres de letras de
otros idiomas.
·
El signo de subrayado (), arroba (@) o número
(#).
Ciertos símbolos al principio de un
identificador tienen un significado especial en SQL Server. Un identificador
normal que comience por el signo arroba siempre denotará una variable local o
un parámetro, y no se puede usar como nombre de ningún otro tipo de objeto. Un
identificador que empieza con el signo de número indica una tabla o
procedimiento temporal. Un identificador que empieza con un signo de número
doble (##) indica un objeto temporal global. Aunque es posible utilizar los
caracteres de signo de número o doble signo de número para comenzar los nombres
de otros tipos de objetos, no se recomienda hacerlo.
Algunas funciones de Transact-SQL tienen
nombres que empiezan con un doble signo de arroba (@@). Para evitar
Letras, tal como se definen en el estándar
Unicode 3,2.
Números decimales del alfabeto latín básico u
otros alfabetos de otros idiomas.
El signo de arroba, dólar ($), número o
subrayado.
El identificador no debe ser una palabra
reservada de Transact-SQL. SQL Server se reserva las versiones en mayúsculas y
minúsculas de las palabras reservadas. Cuando se utilizan en instrucciones
Transact-SQL, los identificadores que no cumplan estas reglas deben aparecer
delimitados por comillas dobles o corchetes. Las palabras reservadas dependen
del nivel de compatibilidad de la base de datos.
v Tipos de datos – Palabras Reservadas
TIPOS
DE DATOS
Un tipo de datos es un
atributo que especifica el tipo de datos que el objeto puede contener: datos de
enteros, datos de caracteres, datos de moneda, datos de fecha y hora, cadenas
binarias, etc.
SQL Server proporciona un
conjunto de tipos de datos del sistema que define todos los tipos de datos que
pueden utilizarse con SQL Server. También puede definir sus propios tipos de
datos en Transact-SQL o Microsoft .NET Framework. Los tipos de datos de alias
están basados en los tipos de datos proporcionados por el sistema.
Los tipos de datos de SQL
Server se organizan en las siguientes categorías:
ü Numéricos exactos
·
bigint
·
numeric
·
bit
·
smallint
·
decimal
·
Smallmoney
·
int
·
tinyint
·
money
ü Numéricos aproximados
·
float
·
real
ü Fecha y hora
·
date
·
datetimeoffset
·
datetime2
·
smalldatetime
·
datetime
·
time
ü Cadenas de caracteres
·
char
·
varchar
·
varchar(max)
ü Cadenas de caracteres Unicode
·
nchar
·
nvarchar
·
ntext
ü Cadenas binarias
·
binario
·
varbinary
·
imagen
ü Otros tipos de datos
·
cursor rowversion
·
hierarchyid
·
uniqueidentifier
·
sql_variant
·
xml
PALABRAS
RESERVADAS
Microsoft SQL
Server utiliza palabras clave reservadas para definir, manipular y tener acceso
a las bases de datos. Las palabras clave reservadas forman parte de la
gramática del lenguaje Transact-SQL que utiliza SQL Server para analizar y
comprender las instrucciones y lotes de Transact-SQL. Aunque resulta sintácticamente
posible usar palabras clave reservadas de SQL Server como identificadores y
nombres de objetos en scripts de Transact-SQL, solo se puede hacer usando
identificadores delimitados.
En
la tabla siguiente se enumeran las palabras clave reservadas de SQL Server.
|
ADD
|
FULL
|
SAVE
|
CONTINUE
|
|
EXTERNAL
|
RESTRICT
|
CLOSE
|
KILL
|
|
PROCEDURE
|
BETWEEN
|
IF
|
SOME
|
|
ALL
|
FUNCTION
|
SCHEMA
|
CONVERT
|
|
FETCH
|
RETURN
|
CLUSTERED
|
LEFT
|
|
PUBLIC
|
BREAK
|
IN
|
STATISTICS
|
|
ALTER
|
GOTO
|
SECURITYAUDIT
|
CREATE
|
|
FILE
|
REVERT
|
COALESCE
|
LIKE
|
|
RAISERROR
|
BROWSE
|
INDEX
|
SYSTEM_USR
|
|
AND
|
GRANT
|
SELECT
|
CROSS
|
|
FILLFACTOR
|
REVOKE
|
COLLATE
|
LILENO
|
|
READ
|
BULK
|
INNER
|
TABLE
|
|
ANY
|
GROUP
|
COLUMN
|
CURRENT
|
|
FOR
|
RIGHT
|
INSERT
|
LOAD
|
|
READTEXT
|
BY
|
COMMIT
|
Tablesample
|
|
AS
|
HAVING
|
INTERSECT
|
Current_date
|
|
FOREIGN
|
ROLLBACK
|
COMPUTE
|
MARGE
|
|
RECONFIGURE
|
CASCADE
|
INTO
|
TEXTSIZE
|
|
ASC
|
HOLDLOCK
|
SESSION_USER
|
Current_Time
|
|
FREETEXT
|
ROWCOUNT
|
CONSTRAINT
|
NATIONAL
|
|
REFERENCES
|
CASCADE
|
IS
|
THEN
|
|
ATHORIZATION
|
IDENTITY
|
SET
|
NOCHECK
|
|
FREETEXTTABLE
|
ROWGUIDCOL
|
CONTAINS
|
TO
|
|
REPLICATION
|
CHECK
|
JOIN
|
Current_User
|
|
BACKUP
|
IDENTITY_INSERT
|
SETUSER
|
Nonclustered
|
|
FROM
|
RULE
|
CONTAINSTABLE
|
TOP
|
|
RESTORE
|
CHECKPOINT
|
KEY
|
CURSOR
|
|
BEGIN
|
IDENTITYCOL
|
SHUTDOWN
|
NOT
|
|
TRAN
|
DATABASE
|
TRANSACTION
|
NULL
|
|
DBCC
|
NULLIF
|
TRIGGER
|
OF
|
|
DEALLOCATE
|
TRUNCATE
|
DECLARE
|
OFF
|
|
TRY_CONVERTE
|
DEFAULT
|
OFFSETS
|
TSEQUAL
|
|
DELETE
|
ON
|
UNION
|
DENY
|
|
OPEN
|
UNIQUE
|
UNPIVOT
|
DISK
|
|
Opendatasource
|
UPDATE
|
DISTINCT
|
USE
|
|
OPENQUERY
|
OPENROWSET
|
UPDATETEXT
|
DOUBLE
|
|
DISTRIBUTED
|
OPENXML
|
OPTION
|
USER
|
|
DROP
|
OR
|
VALUES
|
DUMP
|
|
ORDER
|
VARYING
|
ELSE
|
OUTER
|
|
VIEW
|
END
|
OVER
|
WAITFOR
|
|
ERRLVL
|
PERCENT
|
WHEN
|
ESCAPE
|
|
PIVOT
|
WHERE
|
EXCEPT
|
PLAN
|
|
WHILE
|
EXEC
|
PRECISION
|
WITH
|
|
EXECUTE
|
PRIMARY
|
WITHIN GROUP
|
EXISTS
|
|
PRINT
|
WRITETEXT
|
EXIT
|
PROC
|
v Operadores – Flujos de control
Un Operador es un símbolo que especifica una
acción en que se realiza una o más expresiones.
OPERADORES
ARTMÉTICOS
Son aquellos que se realizan operaciones
matemáticas entre dos expresiones numéricas.
|
OPERADOR
|
SIGNIFICADO
|
|
+
|
Suma
|
|
-
|
Resta
|
|
*
|
Multiplicación
|
|
/
|
División
|
|
%
|
Devuelve el resto
entero de una división
|
OPERADOR
DE ASIGNACIÓN
El operador igual (=) es sólo el operador de
Asignación del SQL Server.
OPERADORES DE COMPARACIÓN
|
Operadores
de Comparación
|
Significado
|
|
=
|
Igual a
|
|
>
|
Mayor que
|
|
<
|
Menor que
|
|
>=
|
Mayor o igual que
|
|
<=
|
Menor o igual que
|
|
<
>
|
Diferente que
|
|
!=
|
Diferente que (no es del estándar ISO)
|
|
!<
|
No es Menor que (no es del estándar
ISO)
|
|
!>
|
No es Mayor que (no es del estándar
ISO)
|
OPERADORES LÓGICOS
|
OPERADOR
|
SIGNIFICADO
|
|
ALL
|
TRUE
si el conjunto completo de comparaciones es TRUE
|
|
AND
|
TRUE
si ambas expresiones booleanas son TRUE
|
|
ANY
|
TRUE
si cualquier miembro del conjunto de comparaciones es TRUE
|
|
BETWEEN
|
TRUE
si el operador está dentro de un intervalo.
|
|
EXISTS
|
TRUE
si una subconsulta contiene cualquiera de las filas.
|
|
IN
|
TRUE
si el operador es igual a uno de la lista de expresiones
|
|
LIKE
|
TRUE
si el operando coincide con un patrón
|
|
NOT
|
Invierte
el valor de cualquier otro operador booleano
|
|
OR
|
TRUE
si cualquiera de las dos expresiones booleanas es TRUE
|
|
SOME
|
TRUE
si alguna de las comparaciones de un conjunto es TRUE
|
FLUJOS DE CONTROL
Las
palabras clave del lenguaje de control de flujo de Transact-SQL son:
§ BEGIN…END
§ BREAK
§ RETURN
§ CONTINUE
§ GOTO
§ IF…ELSE
§ THROW
§ TRY…CATCH
§ WAITFOR
§ WHILE
3.
Summary
Definition
It is a very powerful language
that allows us to define any task we want to perform based on data;
"personal characteristics of any programming parameter, characteristics
that allow us to define the logic necessary for the treatment of
information".
It can be used as an
alternative language in applications developed in other programming languages
such as Visual Basic, C, Java, etc. And of course the languages included in
the .NET platform.
Types of commands (DDL, MDL,
etc.)
DDL (Data Definition
Language): Allows you to create and define databases, tables, fields, indexes.
ü CREATE
ü ALTER
ü DROP
DML (Data Manipulation
Language): Filter and sort the data that we want to manipulate.
ü SELECT
ü INSERT
ü UPDATE
ü DELETE
Functions- Identifiers
FUNCTIONS
ü Aggregate functions
ü Analytical functions
ü Category functions
ü Row set functions
ü Scalar functions
IDENTIFIER
The identifier is used to
refer to the object
Classes of identifiers
ü Normal identifiers
ü Defined identifiers
Rules of the normal
identifiers
The names of variables,
functions and stored procedures must comply with the following rules for
Transact-SQL identifiers.
The first character must be
one of the following:
• One letter, as defined in
the Unicode standard 3.2. The Unicode definition of letters includes the Latin
characters from "a" to "z" and from "A" to
"Z", in addition to the letters characters of other languages.
• The underscore (), at sign
(@) or number (#).
Certain
symbols at the beginning of an identifier have a special meaning in SQL Server.
A normal identifier that begins with the at sign will always denote a local
variable or a parameter, and can not be used as the name of any other type of
object. An identifier that starts with the number sign indicates a table or
temporary procedure. An identifier that starts with a double number sign (##)
indicates a global temporary object. Although it is possible to use the number
sign characters or double number sign to start the names of other types of
objects, it is not recommended to do so.
Some
Transact-SQL functions have names that start with a double at sign (@@). To
avoid
Letters,
as defined in the Unicode standard 3.2.
Decimal
numbers of the basic Latin alphabet or other alphabets of other languages.
The
at sign, dollar ($), number or underline.
The
identifier must not be a reserved Transact-SQL word. SQL Server reserves the
uppercase and lowercase versions of the reserved words. When used in
Transact-SQL statements, identifiers that do not comply with these rules must
be delimited by double quotes or square brackets. The reserved words depend on
the compatibility level of the database.
Types
of data - Reserved words
TYPE
OF DATA
A
data type is an attribute that specifies the type of data that the object can
contain: integer data, character data, currency data, date and time data,
binary strings, etc.
SQL
Server provides a set of system data types that defines all types of data that
can be used with SQL Server. You can also define your own data types in
Transact-SQL or Microsoft .NET Framework. The alias data types are based on the
types of data provided by the system.
The
SQL Server data types are organized into the following categories:
v Exact numbers
·
bigint
·
numeric
·
bit
·
smallint
·
decimal
·
Smallmoney
·
int
·
tinyint
·
money
v Approximate numbers
·
Float
·
real
v Date and time
·
Date
·
Datetimeoffset
·
datetime2
·
smalldatetime
·
datetime
·
time
v Character strings
·
Char
·
Varchar
·
varchar (max)
v Unicode character strings
·
Nchar
·
Nvarchar
·
ntext
v Binary chains
·
Binary
·
Varbinary
·
image
v Other types of data
·
cursor rowversion
·
hierarchyid
·
Uniqueidentifier
·
sql_variant
·
xml
RESERVED WORDS
Microsoft
SQL Server uses reserved keywords to define, manipulate and access databases.
Reserved keywords are part of the Transact-SQL language grammar used by SQL
Server to analyze and understand Transact-SQL statements and batches. Although
it is syntactically possible to use SQL Server reserved key keys as identifiers
and object names in Transact-SQL scripts, it can only be done using delimited
identifiers.
The
SQL Server reserved keywords are listed in the following table.
Operators - Control flows
An Operator
is a symbol that specifies an action in which one or more expressions are
performed.
ARTMETERS OPERATORS
Are
those that perform mathematical operations between two numeric expressions.
MEANING OPERATOR
+ Sum
-
Subtraction
* Multiplication
/ Division
% Returns the entire rest of a division
ALLOCATION OPERATOR
4.
Recomendaciones
Ø Recomendarle Utilizar
el Leguaje Transact SQL para hacer diferentes tipos de tareas.
Ø Se recomienda hacer uso del
comando DDL para crear, modificar y eliminar, tablas, campos a nivel de código.
Ø Se recomienda hacer el uso de la
palabra reservada EXISTS en subconsultas.
5.
Conclusiones
Ø El equipo de Trabajo concluye que Transact SQL es muy
importante para administradores de Base de Datos.
Ø
Concluimos
que es Transact SQL es un Lenguaje de programación, pero no se desarrolla
aplicaciones.
Ø
También se
concluyó, que, esta herramienta que soporta la capacidad de consultas SQL.
6.
Apreciación del Equipo
Ø Transact-SQL es fundamental para trabajar con SQL SERVER, ya
que todas las aplicaciones que se comunican con SQL SERVER, Lo hacen mediante
el Lenguaje Transact SQL.
Ø Gracias al Lenguaje Transact SQL nos permite hacer consultas,
procedimientos almacenados, etc. en el SQL SERVER que facilita, tanto a los desarrolladores
de Software y a los Usuarios.
Ø Transact SQL es un lenguaje muy implementado.
7.
Glosario de Términos
Ø TRUNCATE: Quita todas las filas de una tabla o particiones específicas
de una tabla, sin registrar las eliminaciones de fila individuales. TRUNCATE
TABLE es similar a la sentencia DELETE sin cláusula WHERE; sin embargo,
TRUNCATE TABLE es más rápido y utiliza menos recursos de registro de sistema y
de transacción.
Ø BEGIN: Incluye una serie de instrucciones Transact-SQL para que se
pueda ejecutar un grupo de instrucciones Transact-SQL. BEGIN y END son palabras
clave del lenguaje de control de flujo.
Ø COMMIT: Marca el final de una transacción implícita o explícita
exitosa. Si @@ TRANCOUNT es 1, COMMIT TRANSACTION realiza todas las
modificaciones de datos realizadas desde el inicio de la transacción como parte
permanente de la base de datos, libera los recursos que posee la transacción y
disminuye @@ TRANCOUNT a 0. Si @@ TRANCOUNT es mayor que 1, COMPRAR TRANSACCIÓN
disminuye @@ TRANCOUNT sólo por 1 y la transacción permanece activa.
Ø INDEX: La instrucción CREATE
INDEX se usa para crear índices en tablas.
Ø Los índices se utilizan para recuperar datos de la base de
datos muy rápido. Los usuarios no pueden ver los índices, solo se utilizan para
acelerar las búsquedas / consultas.
Ø UNIQUE: La restricción ÚNICA asegura que todos los valores en una
columna sean diferentes.
Ø Las restricciones ÚNICA y PRIMARY KEY proporcionan una
garantía de exclusividad para una columna o conjunto de columnas.
Ø Una restricción PRIMARY KEY tiene automáticamente una
restricción ÚNICA.
Ø Sin embargo, puede tener muchas restricciones ÚNICAS por
tabla, pero solo una restricción PRIMARY KEY por tabla.
Ø DEFAULT: La restricción DEFAULT se usa para proporcionar un valor
predeterminado para una columna.
Ø El valor predeterminado se agregará a todos los registros
nuevos SI no se especifica ningún otro valor.
Ø TRIGGER: Crea un desencadenador DML, DDL o de inicio de sesión. Un
desencadenante es un tipo especial de procedimiento almacenado que se ejecuta
automáticamente cuando ocurre un evento en el servidor de la base de datos. Los
desencadenadores DML se ejecutan cuando un usuario intenta modificar datos a
través de un evento de lenguaje de manipulación de datos (DML). Los eventos DML
son instrucciones INSERT, UPDATE o DELETE en una tabla o vista. Estos
desencadenantes se activan cuando se activa un evento válido,
independientemente de si se afectan o no las filas de una tabla.
Ø CONSTRAINT: Las restricciones de SQL se utilizan para especificar
reglas para los datos en una tabla. Las restricciones se pueden especificar
cuando la tabla se crea con la instrucción CREATE TABLE, o después de que la
tabla se crea con la sentencia.
Ø CURSOR: Permite procesar el conjunto de resultados una fila a la
vez. Puede asignar un cursor a una variable o parámetro con un tipo de datos de
cursor.
Ø PIVOT: gira una expresión con valores de tabla convirtiendo los
valores únicos de una columna de la expresión en varias columnas en la salida y
realiza agregaciones donde son necesarias en cualquier valor de columna
restante que se desee en la salida final.
Ø UNPIVOT: realiza la operación contraria a PIVOT girando las
columnas de una expresión con valores de tabla a valores de columna.
Ø SCHEMA: Crea un esquema en la base de datos actual. La transacción
CREATE SCHEMA también puede crear tablas y vistas dentro del nuevo esquema, y
establecer permisos GRANT, DENY o REVOKE en esos objetos.
Ø ROLLBACK: Revierte una transacción explícita o implícita al comienzo
de la transacción o a un punto de rescate dentro de la transacción. Puede usar
ROLLBACK TRANSACTION para borrar todas las modificaciones de datos realizadas
desde el inicio de la transacción o hasta un punto de rescate. También libera
los recursos que posee la transacción.
8.
Bibliografía o Linkografía
LINK DE DIAPOSITIVAS
https://es.slideshare.net/JaimeAguilarRafael1/lenguaje-transact-sql-91962852
VIDEOS
muy buen aporte mi estimado...
ResponderEliminar