CARRERA PROFESIONAL DE : Ingeniería de Sistemas y
Telemática
ASIGNATURA : Laboratorio
de programación III
ESTUDIANTE :
ü CHUQUIZUTA
RAMOS, Marleni
ü HERRERA
SILVA, Carlos Jhonatan
CICLO : VII
GRUPO : “A”
I.
Tema: Lenguaje Transact SQL
1. Contenido
ü
Definición
Transact-SQL es un lenguaje muy potente que nos
ayudará a definir tareas del negocio con la Base de Datos de Microsoft SQL
Server. Podremos hacer uso de Transact-SQL en lenguajes de programación como Visual
Basic. Net, Java en sus diferentes entonos de programación.
Haciéndonos muy competitivos en el mercado
empresarial, gestionando base de datos con procedimientos muy avanzados.
ü
Tipos de Comandos
(DDL, DML, etc.)
El DDL
(Lenguaje de Descripción de Datos.)
Es la parte del SQL dedicada a la definición de
la base de datos, consta de sentencias para definir la estructura de la base de
datos, permiten crear la base de datos, crear, modificar o eliminar la
estructura de las tablas, crear índices, definir reglas de validación de datos,
relaciones entre las tablas, etc. Permite definir gran parte del nivel interno
de la base de datos. Por este motivo estas sentencias serán utilizadas
normalmente por el administrador de la base de datos.
ü CREATE,
se usa para crear una base de datos, tabla, vistas, etc.
ü ALTER,
se utiliza para modificar la estructura, por ejemplo añadir o borrar columnas
de una tabla.
ü DROP,
con esta sentencia, podemos eliminar los objetos de la estructura, por ejemplo
un índice o una secuencia.
El DCL
(Lenguaje de Control de Datos.)
Ejerce un control sobre los datos tal como la
asignación de privilegios de acceso a los datos (GRANT/REVOKE), La gestión de
transacciones (COMMIT/ROLLBACK).
Una transacción se puede definir como un
conjunto de acciones que se tienen que realizar todas o ninguna para preservar
la integridad de la base de datos.
Por ejemplo supongamos que tenemos una base de
datos para las reservas de avión. Cuando un usuario pide reservar una plaza en
un determinado vuelo, el sistema tiene que comprobar que queden plazas libres,
si quedan plazas reservará la que quiera el usuario generando un nuevo billete
y marcando la plaza como ocupada. Aquí tenemos un proceso que consta de dos
operaciones de actualización de la base de datos (crear una nueva fila en la
tabla de billetes y actualizar la plaza reservada en el vuelo, poniéndola como
ocupada) estas dos operaciones se tienen que ejecutar o todas o ninguna, si
después de crear el billete no se actualiza la plaza porque se cae el sistema,
por ejemplo, la base de datos quedaría en un estado inconsistente ya que la
plaza constaría como libre cuando realmente habría un billete emitido para esta
plaza. En este caso el sistema tiene el mecanismo de transacciones para evitar
este error. Las operaciones se incluyen las dos en una misma transacción y así
el sistema sabe que las tiene que ejecutar las dos, si por lo que sea no se
pueden ejecutar las dos, se encarga de deshacer los cambios que se hubiesen
producido para no ejecutar ninguna.
Las instrucciones que gestionan las
autorizaciones serán utilizadas normalmente por el administrador mientras que
las otras, referentes a proceso de transacciones serán utilizadas también por
los programadores.
ü GRANT,
permite otorgar permisos.
ü REVOKE,
elimina los permisos que previamente se han concedido.
El DML
(Lenguaje de Manipulación de Datos.)
Se compone de las instrucciones para el manejo
de los datos, para insertar nuevos datos, modificar datos existentes, para
eliminar datos y la más utilizada, para recuperar datos de la base de datos.
Veremos que una sola instrucción de recuperación de datos es tan potente que
permite recuperar datos de varias tablas a la vez, realizar cálculos sobre
estos datos y obtener resúmenes.
El DML interactúa con el nivel externo de la
base de datos por lo que sus instrucciones son muy parecidas, por no decir casi
idénticas, de un sistema a otro, el usuario sólo indica lo que quiere recuperar
no cómo se tiene que recuperar, no influye el cómo están almacenados los datos.
Es el lenguaje que utilizan los programadores y
los usuarios de la base de datos.
o
SELECT, esta sentencia se utiliza para realizar
consultas sobre los datos.
o
INSERT, con esta instrucción podemos insertar
los valores en una base de datos.
o
UPDATE, sirve para modificar los valores de uno
o varios registros.
o
DELETE, se utiliza para eliminar las finas de
una tabla.
ü
Funciones –
Identificadores
Funciones:
Funciones
en Transact SQL
SQL Server proporciona al usuario la posibilidad de definir
sus propias funciones, conocidad como UDF (user defined functions). Exisiten
tres tipos de funciones. Estas son:
o
Funciones escalares.
o
Funciones en línea.
o
Funciones en línea de multiples sentencias
Funciones
escalares
Las funciones escalares devuelven un único
valor de cualquier tipo de los datos tal como int, money, varchar, real, etc.
Funciones
en línea
Las funciones en línea son las funciones que
devuelven un conjunto de resultados correspondientes a la ecuación de una
sentencia SELECT.
Funciones
en línea de múltiples sentencias
Las funciones en línea de múltiples sentencias
son similares a las funciones en línea excepto que el conjunto de resultados
que devuelven puede estar compuesto por la ejecución de varias consultas
SELECT.
Este tipo de función se usa en situaciones
donde se requiere una mayor lógica de proceso.
Identificadores:
Existen dos 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.
ü
Tipos de Datos –
Palabras Reservadas
Transact SQL proporciona una variedad
predefinida de tipos de datos. Casi todos los tipos de datos manejados por
Transact SQL son similares a los soportados por SQL.
Tipos
de datos numéricos.
SQL Server dispone de varios tipos de datos
númericos. Cuanto mayor sea el número que puedan almacenar mayor será en
consecuencia el espacio utilizado para almacenarlo. Como regla general se
recomienda usar el tipo de dato mínimo posible. Todos los datos numéricos
admiten el valor NULL.
§ Bit. Una columna o variable
de tipo bit puede almacenar el rango de valores de 1 a 0.
§ Tinyint. Una columna o variable
de tipo tinyint puede almacenar el rango de valores de 0 a 255.
§ SmallInt. Una
columna o variable de tipo smallint puede almacenar el rango de valores -32768
a 32767.
§ Int.
Una columna o variable de tipo int puede almacenar el rango de valores -231 a
231-1 .
§ BigInt. Una columna o variable
de tipo bigint puede almacenar el rango de valores -263 a 263-1 .
§ Decimal(p,s). Una
columna de tipo decimal puede almacenar datos númericos decimales sin
redondear. Donde p es la precision (número total del dígitos) y s la escala
(número de valores decimales)
§ Float. Una columna de datos
float puede almacenar el rango de valores -1,79x-10308 a 1,79x-10308, , si la
definimos con el valor máxmo de precisión. La precisión puede variar entre 1 y
53.
§ Real. Sinónimo de float(24).
Puede almacenar el rango de valores -3,4x-1038 a 3,4x-1038,
§ Money. Almacena valores
númericos monetarios de -263 a 263-1,
con una precisión de hasta diexz milesimas de la unidad monetaria.
§ SmallMoney.
Almacena valores númericos monetarios de -214.748,3647 a 214.748,3647, con una
precisión de hasta diez milesimas de la unidad monetaria.
Todos
los tipos de datos enteros pueden marcarse con la propiedad identity para
hacerlos auto numéricos.
Tipos
de datos de carácter.
§ Char(n). Almacena n caracteres
en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo
char, siempre se utilizan los n caracteres indicados, incluso si la entrada de
datos es inferior. Por ejemplo, si en un char(5), guardamos el valor 'A', se
almacena 'A ', ocupando los cinco
bytes.
§ Varchar(n).Almacena
n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos
en el tipo varchar, unicamente se utilizan los caracteres necesarios,Por
ejemplo, si en un varchar(255), guardamos el valor 'A', se almacena 'A',
ocupando solo un byte bytes.
§ Varchar(max). Igual
que varchar, pero al declararse como max puede almacenar 231-1 bytes.
§ Nchar(n).Almacena
n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable
utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan
pertenecer a diferente idomas.
§ Nvarchar(n).Almacena
n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable
utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer
a diferente idomas.
§ Nvarchar(max).Igual
que varchar, pero al declararse como max puede almacenar 231-1 bytes.
Tipos
de datos de fecha.
§ Datetime.
Almacena fechas con una precision de milisegundo. Debe usarse para fechas muy
especificas.
§ SmallDatetime.
Almacena fechas con una precision de minuto, por lo que ocupa la mitad de
espacio de que el tipo datetime, para tablas que puedan llegar a tener muchos
datos es un factor a tener muy en cuenta.
§ TimeStamp.Se
utiliza para marcar un registro con la fecha de inserción - actualización. El
tipo timestamp se actualiza automáticamente cada vez que insertamos o
modificamos los datos.
Tipos
de datos binarios.
§ Binary. Se utiliza para
almacenar datos binarios de longitud fija, con una longitud máxima de 8000 bytes.
§ Varbinary. Se
utiliza para almacenar datos binarios de longitud variable, con una longitud
máxima de 8000 bytes..Es muy similar a binary, salvo que varbinary utiliza
menos espacio en disco.
§ Varbinary(max).Igual
que varbinary, pero puede almacenar 231-1
bytes
Tipo
de datos XML.
§ XML. Una de las grandes
mejoras que incorpora SQL Server 2005 es el soporte nativo para XML. Como
podemos deducir, este tipo de datos se utiliza para almacenar XML.
Otros
tipos de datos.
§ UniqueIdentifier. Se
utiliza para identificadores únicos. Para generar identificadores únicos
debemos utilizar la funciónNEWID().
§ Sql_Variant .Permite
almacenar valores de diferentes tipos de datos. No puede almacenar
varchar(max), xml, timestamp y tipos de datos definidos por el usuario.
Tipos
de datos personalizados.
Transact SQL permite la creación de tipos de datos
personalizados, a través de la instrucción CREATE TYPE. Personalmente,
desaconsejo el uso de tipos de datos personalizados.
Palabras Reservadas
ADD
|
EXTERNAL
|
PROCEDURE
|
ALL
|
FETCH
|
PUBLIC
|
ALTER
|
FILE
|
RAISERROR
|
ANY
|
FILLFACTOR
|
READ
|
AS
|
FOR
|
READTEXT
|
ASC
|
FOREIGN
|
RECONFIGURE
|
AUTHORIZATION
|
FREETEXT
|
REFERENCES
|
BACKUP
|
FREETEXTTABLE
|
Replicación
|
BEGIN
|
FROM
|
RESTORE
|
BETWEEN
|
FULL
|
RESTRICT
|
BREAK
|
FUNCTION
|
RETURN
|
BROWSE
|
GOTO
|
REVERT
|
BULK
|
GRANT
|
REVOKE
|
BY
|
GROUP
|
RIGHT
|
CASCADE
|
HAVING
|
ROLLBACK
|
CASE
|
HOLDLOCK
|
ROWCOUNT
|
CHECK
|
IDENTITY
|
ROWGUIDCOL
|
CHECKPOINT
|
DENTITY_INSERT
|
RULE
|
CLOSE
|
IF
|
INNER
|
CLUSTERED
|
IN
|
SELECT
|
COALESCE
|
INDEX
|
SET
|
CONSTRAINT
|
INSERT
|
TABLE
|
CONTINUE
|
INTO
|
INTERSECT
|
COMPUTE
|
JOIN
|
COLUMN
|
CREATE
|
KEY
|
LIKE
|
CONVERT
|
LEFT
|
CURRENT
|
DELETE
|
CURSOR
|
UNIQUE
|
STATISTICS
|
DISK
|
OF
|
UPDATE
|
DESC
|
OPEN
|
ORDER
|
DENY
|
ON
|
VALUES
|
UNION
|
NOT
|
DROP
|
DEFAULT
|
NULLIF
|
OPTION
|
OFF
|
NULL
|
DOUBLE
|
DECLARE
|
TRANSACTION
|
USE
|
ELSE
|
TRIGGER
|
DISTRIBUTED
|
END
|
TRAN
|
DISTINCT
|
EXEC
|
DATABASE
|
LOAD
|
THEN
|
TO
|
Operadores
– Flujos de Control
Operadores
Tipo de Operador
|
Operadores
|
Operador de asignación
|
=
|
Operadores aritméticos
|
+ (suma)
- (resta)
* (multiplicación)
/ (división)
** (exponente)
% (modulo)
|
Operadores relacionales o de
comparación
|
= (igual a)
<> (distinto de)
!= (distinto de)
< (menor que)
> (mayor que)
>= (mayor o igual a)
<= (menor o igual a)
!> (no mayor a)
!< (no menor a)
|
Operadores lógicos
|
AND (y lógico)
NOT (negacion)
OR (o lógico)
& (AND a nivel de bit)
| (OR a nivel de bit)
^ (OR exclusivo a nivel de bit)
|
Operador de concatenación
|
+
|
Otros
|
ALL (Devuelve TRUE si el
conjunto completo de comparaciones es TRUE)
ANY(Devuelve TRUE si
cualquier elemento del conjunto de comparaciones es TRUE)
BETWEEN (Devuelve TRUE si el
operando está dentro del intervalo)
EXISTS (TRUE si una sub consulta
contiene filas)
IN (TRUE si el operando está
en la lista)LIKE (TRUE si el operando coincide con un patrón)
NOT (Invierte el valor de
cualquier operador booleano)
SOME(Devuelve TRUE si alguna
de las comparaciones de un conjunto es TRUE)
|
2. Resumen
ü Definición
Transact-SQL es un lenguaje
muy potente que nos ayudará a definir tareas del negocio con la Base de Datos
de Microsoft SQL Server
ü Tipos de Comandos (DDL, DML, etc.)
El DDL
(Lenguaje de Descripción de Datos.)
Es la parte del SQL dedicada a la definición de
la base de datos, consta de sentencias para definir la estructura de la base de
datos
El DCL
(Lenguaje de Control de Datos.)
Ejerce un control sobre los datos tal como la
asignación de privilegios de acceso a los datos (GRANT/REVOKE), La gestión de
transacciones (COMMIT/ROLLBACK).
El DML
(Lenguaje de Manipulación de Datos.)
Se compone de las instrucciones para el manejo
de los datos, para insertar nuevos datos, modificar datos existentes, para
eliminar datos y la más utilizada, para recuperar datos de la base de datos.
ü Funciones – Identificadores
Funciones:
Funciones
en Transact SQL
Existen tres tipos de funciones. Estas son:
o
Funciones escalares.
o
Funciones en línea.
o
Funciones en línea de múltiples sentencias
Identificadores:
o
Identificadores normales
o
Identificadores delimitados
ü Tipos de Datos – Palabras Reservadas
Tipos
de Datos
o
Tipos de datos numéricos.
o
Tipos de datos de carácter.
o
Tipos de datos de fecha.
o
Tipos de datos binarios.
o
Tipo de datos XML.
o
Tipos de datos personalizados.
Palabras
Reservadas
o
Add
o
All
o
Enter
o
etc
3. Summary
ü Definition
Transact-SQL
is a very powerful language that will help us define business tasks with the
Microsoft SQL Server Database
ü Command
Types (DDL, DML, etc.)
The DDL (Data Description Language)
It
is the part of the SQL dedicated to the definition of the database, consists of
statements to define the structure of the database
The
DCL (Data Control Language.)
It
exerts a control on the data such as the assignment of privileges of access to
the data (GRANT / REVOKE), the management of transactions (COMMIT / ROLLBACK).
The
DML (Data Manipulation Language.)
It
consists of the instructions for the handling of the data, to insert new data,
modify existing data, to eliminate data and the most used, to recover data from
the database.
ü Functions
- Identifiers
Functions:
Functions in Transact SQL
There are three types
of functions. These are:
o Scalar functions.
o Online functions.
o Online functions of multiple sentences
Identifiers:
Normal identifiers
Delimited identifiers
ü Types
of Data - Reserved Words
Type of data
o Numerical data types.
o Character data types.
o Date data types.
o Binary data types.
o XML data type.
o Custom data types.
Reserved Words
o Add
o All
o Enter
o Etc
4. Recomendaciones
ü No use la cláusula into nombre de tabla (“SELECT…
INTO”). Esto bloqueará mientras se ejecuta la consulta las tablas del sistema.
ü En su lugar cree primero las tablas y luego
reescribe la sentencia como INSERT INTO tabla_name SELECT.
ü Cuando cree una base de datos, defina el mayor
tamaño posible para los archivos de datos según la cantidad de datos máxima
prevista para la base datos.
5. Conclusiones
ü Se logró el objetivo de conocer como es el manejo
adecuado de la herramienta SQL. Teniendo en cuenta el estudio previo y la
practica con dicha herramienta.
ü Con este lenguaje se ha conseguido en gran medida ya
que con una sola frase (instrucción) podemos recuperar datos complejos (por
ejemplo, datos que se encuentran en varias tablas, combinándolos, calculando
resúmenes).
6. Apreciación del Equipo
ü Como equipo podemos apreciar que se puede utilizar
Transact SQL Server en lenguaje de programación como puede ser Visual Basic.
NET, C, Java. También lo podemos ejecutar en un entorno SQL Server Management
Studio. Se dice que T-SQL es un lenguaje muy parecido al lenguaje hablado.
7. Glosario de Términos
o DTL: Lenguaje de Control de Transacciones
o DDL: Lenguaje de Definición de Datos.
o DML: Lenguaje de Manipulación de Datos
o DCL: Lenguaje de Control de Datos.
o ROLLBACK: Restaura la base de datos al estado
original desde el comando COMMIT pasado en las transacciones.
o WHILE: Establece una condición para la ejecución
repetida de una instrucción o bloque de instrucciones SQL. Las instrucciones se
ejecutan repetidamente siempre que la condición especificada sea verdadera. Se
puede controlar la ejecución de instrucciones en el bucle WHILE con las
palabras clave BREAK y CONTINUE.
8. Bibliografía o Linkografía
