Vous êtes sur la page 1sur 18

TUTORIAL

SISTEMA MANEJADOR DE BASE DE


DATOS
Es una colección de numerosas rutinas de softwere
interrelacionadas cada una de las cuales es responsable de una
tarea en especifico
usuario

DBMS
DATOS
SQL SERVER
Microsoft SQL Server es un sistema para la gestión de bases de
datos producido por Microsoft basado en el modelo relacional. Sus
lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL
Server constituye la alternativa de Microsoft a otros
potentessistemas gestores de bases de datos como
son Oracle o PostgreSQL o MySQL.
COMO SE CREA UNA BASE DE
DATOS
Create data base ventas
Nombre de la base
On
de datos
(
Name=“ventas_dat , Donde se
File name =“c:ventasdat.mdf”, guarda
Size = 10
Tamaño de la
Maxize=50,
referencia
Filegrouth=5
) Tamaño
Log on maximo
(
Name=ventas_log, Tamaño en que
File name=ventas log; va creciendo
Como se modifica y borra una base
de datos

Drop data base ventas Se borra la base


de dato

Alter data base ventas


Modify name =TESCI Se cabia el nombre
Como crear una tabla y una llave
primaria
Creacion de la
Create tabla t_autos tabla
(
Matricula char (10) not null as primary key,
Marca char (10),
Costo money
Creacion de la llave
primaria

Tipos de Numero de
datos caracteres
COMO SE ALTERA UNA TABLA
“ALTER TABLE ”
Modifica una definición de tabla al alterar, agregar o quitar
columnas y restricciones, al reasignar particiones o al deshabilitar o
habilitar restricciones y desencadenadores.
ALTER TABLE [ database_name . [ schema_name ] . |
schema_name . ] table_name
SUB COMANDOS DE ALTER TABLE

ALTER COLUMN DROP PRIMARY KEY


MODIFICA LA COLUMNA ELIMINA LA LLAVE PRIMARIA
ALTER COLUMN VENTAS DROP PRIMARY KEY

ADD
AGREGA UNA COLUMNA AL FINAL DE LAS YA EXISTENTES
ALTER TABLE ADD FECHA DATE

DROP COLUMN COLLATE


ELIMINA LA COLUMNA ESPECIFICA LA
DROP COLUMN NOBRE NUEVAINTERRELACION PARA LA
COLUMNA DE ENTRADA
COLLATE <COLLATION_NAME
DEFINICION DE INDICE
Al igual que el índice de un libro, el índice de una base de datos permite encontrar rápidamente
información específica en una tabla o vista indizada. Un índice contiene claves generadas a partir
de una o varias columnas de la tabla o la vista y punteros que asignan la ubicación de
almacenamiento de los datos especificados. Puede mejorar notablemente el rendimiento de las
aplicaciones y consultas de bases de datos creando índices correctamente diseñados para que
sean compatibles con las consultas. Los índices pueden reducir la cantidad de datos que se deben
leer para devolver el conjunto de resultados de la consulta. Los índices también pueden exigir la
unicidad en las filas de una tabla, lo que se garantiza la integridad de los datos de la tabla.
SINTAXIS DE UN INDICE
CREATE []INDEX<NOMBRE_INDICE>
ON <NOMBRE_TABLA>(
{<NOMBRE_CAMPO>ASCI DESC];
PROCEDIMIENTOS ALMACENADOS
es un elemento de base de datos reutilizable almacenado que realiza
alguna operación en la base de datos. Un procedimiento almacenado
contiene código SQL que puede, entre otras cosas, insertar,
actualizar o eliminar registros.
Los procedimientos almacenados también pueden alterar la
estructura de la base de datos. Por ejemplo, pueden utilizar un
procedimiento almacenado para añadir una columna de tabla o
borrar una tabla. De la misma manera un procedimiento almacenado
puede llamar a otro procedimiento almacenado, así como aceptar
entradas y devolver múltiples valores al procedimiento llamado en
forma de parámetros de salida.
Create procedure nombre
@nom char (10)
@apa char(10)
As
Insert into (nombre,apaterno)
Values (@nom,@apa)
Go
Y para ver
Execute nombre
VISTAS
Vistas
En el modelo de datos relacional la forma de guardar la información no es la
mejor para ver los datos
Una vista es una consulta, que refleja el contenido de una o más tablas, desde
la que se puede acceder a los datos como si fuera una tabla.
Dos son las principales razones por las que podemos crear vistas.
Seguridad, nos pueden interesar que los usuarios tengan acceso a una parte de
la información que hay en una tabla, pero no a toda la tabla.
Comodidad, como hemos dicho el modelo relacional no es el más comodo para
visualizar los datos, lo que nos puede llevar a tener que escribir complejas
sentencias SQL, tener una vista nos simplifica esta tarea.
Las vistas no tienen una copia física de los datos, son consultas a los datos que
hay en las tablas, por lo que si actualizamos los datos de una vista, estamos
actualizando realmente la tabla, y si actualizamos la tabla estos cambios serán
visibles desde la vista.
Nota: No siempre podremos actualizar los datos de una vista, dependerá de la
complejidad de la misma (dependerá de si el cojunto de resultados tiene acceso
a la clave principal de la tabla o no), y del gestor de base de datos.
COMO SE CREA UNA VISTA
Creación de vistas.
Para crear una vista debemos utilizar la sentencia CREATE VIEW,
debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida.

CREATE VIEW <nombre_vista>


AS
(<sentencia_select>);
Ejemplo:Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el
nombre y apellidos del cliente en lugar de su código.

CREATE VIEW vAlquileres


AS
(
SELECT nombre,
apellidos,
matricula
FROM tAlquileres,
tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
)
COMO SE MODIFICA UNA VISTA
Si queremos, modificar la definición de nuestra vista podemos utilizar la
sentencia ALTER VIEW, de forma muy parecida a como lo haciamos con las tablas.
En este caso queremos añadir los campos fx_alquiler y fx_devolucion a la vista.

ALTER VIEW vAlquileres


AS
(
SELECT nombre,
apellidos,
matricula,
fx_alquiler,
fx_devolucion
FROM tAlquileres,
tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
)
Por último podemos eliminar la vista a través de la sentencia DROP VIEW. Para
eliminar la vista que hemos creado anteriormente se uitlizaría:

DROP VIEW vAlquileres;


Una vista se consulta como si fuese una tabla
Creacion de un tigger
----------------------------

create trigger nombre


on tabla
after insert,update,delete
as
begin
end
----------------------------
ejemplo con con la bd tesa2011
----------------------------
create trigger fechaIns
on alumnos
after Insert
as
begin
update alumnos set
fechaDeInscripcion=getDate()
end
Insert Into alumnos (noControl,nombre,aPaterno,aMaterno)
values ('083107121','federico','mendez','hernandez')

select * from Alumnos

Insert Into alumnos (noControl,nombre,aPaterno,aMaterno)


values ('132456789','juan','mendez','hernandez')

create trigger Limpia


on Alumnos
after Insert,Update,Delete
as
begin
Truncate Table Respaldo
insert Into Respaldo
select * from Alumnos
end
Insert Into alumnos (noControl,nombre,aPaterno,aMaterno)
values ('132456789','PEDRO','mendez','hernandez')
SELECT * FROM Alumnos
select * from Respaldo

Disable trigger fechaIns on Alumnos

Insert Into alumnos (noControl,nombre,aPaterno,aMaterno)


values ('132456789','arturo','mendez','hernandez')
SELECT * FROM Alumnos
select * from Respaldo

Enable trigger fechaIns on Alumnos


Insert Into alumnos (noControl,nombre,aPaterno,aMaterno)
values ('132456789','julio','mendez','hernandez')
SELECT * FROM Alumnos
select * from Respaldo