sql server - practica
TRANSCRIPT
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 1/36
Sql Server
Práctica
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 2/36
Crear Base de datos
entras a Microsoft SQL Server2005 y creamos
una base de datos de nombre: SistEduc
Esta BD tendrá las siguientes tablas
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 4/36
Solución Crear BD
CREATE DATABASE SistEduc ON PRIMARY
(
NAME= SistEduc _data,
FILENAME='C:\BDD\grupo6601.mdf',
SIZE=50MB,
MAXSIZE=70MB,
FILEGROWTH=1MB)
LOG ON
(
NAME= SistEduc _log,
FILENAME='C:\BDD\grupo6601.ldf',
SIZE=15MB,
MAXSIZE=20MB,FILEGROWTH=1MB
)
GO
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 5/36
Solución Crear Tabla Escuela
create table Escuela (idescuela smallint IDENTITY primary key,
NomEscuela varchar (25),
Telefono int,
NomResponsable Varchar (25),
Totalmatric int,
idCarrera smallint,
idMatricula int,
idZona int,
constraint fk_carreraesc foreign key (idCarrera)
references Carrera (idCarrera),
constraint fk_matriculaesc foreign key (idMatricula)references Matricula (idMatricula),
constraint fk_zonaesc foreign key (idZona)
references Zona (idZona))
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 6/36
Solución Crear resto de tablas
use SistEduc
create table Matricula(idMatricula int primary key not null,
grado varchar(10),
TotalMatricula int)
Create table Zona(idZona int primary key not null,
Nombre_zona varchar(10),Cod_postal int,
Clave_zona varchar(10))
Create Table Carrera(idCarrera smallint primary key not null,
nombreCarrera varchar(10),
claveCarrera varchar(10))
select * from Carreraselect * from Zona
select * from Matricula
select * from Escuela
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 7/36
Insertar registros
Insertamos registros en cada una de las tablas.
Al establecerse la restricción del constraint
deben coincidir los registros del id en lastablas.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 8/36
Setencias INNER JOIN
sentencia que permite combinar registros de
dos tablas relacionadas, siempre que existan
valores coincidentes en un campo común,
esto es, que ambas tengan un campo con el
mismo nombre y dominio.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 9/36
Su sintaxis es:
FROM <tabla1> INNER JOIN <tabla2> ON<tabla1.campo1 > [operador de condición
(=, >,<, etc)] <tabla2.campo2>
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 10/36
También se puede vincular varias cláusulas ON en unainstrucción JOIN, mediante la sintaxis siguiente:
SELECT <campos>
FROM <tabla1> INNER JOIN <tabla2>
ON <tabla1.campo1 [operador de condición]<tabla2.campo1> AND
ON <tabla1.campo2 [operador de condición]
<tabla2.campo2> ORON <tabla1.campo3> [operador de
condición]<tabla2.campo3>
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 11/36
Practica
Escribimos la siguiente consulta en nuestra BD
SELECT * FROM Escuela INNER JOIN Zona ONEscuela.idZona = Zona.idZona.
Compila y ejecuta
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 12/36
Consultas de Datos en Tablas
Relacionadas
LEFT OUTER JOIN
esta consulta muestra en la columna derechael campo de la tabla que se desea consultar y
en la izquierda las combinaciones con la tabla
2 donde los valores sean nulos, en el caso que
se utiilice el where y ademas la sentencia is
null.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 13/36
Su formato es:
Select nombretabla 1.nombre campo (columnaizquierda),
nombretabla2.nombrecampo (columna derecha)FROM tabla 1 LEFT OUTER
JOIN tabla 2 ON tabla 1.campo clave principal =tabla2. campo clave principal
WHERE nombre tabla 2.nombrecampo IS NULL.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 14/36
El mismo resultado obtendremos utilizado el
RIGHT OUTER JOIN
En este caso las columnas quedan invertidas,es decir la de la izquierda del ejemplo anterior
queda a la derecha.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 15/36
Es importante mencionar que debe existir una
relación directa entre las dos tablas en la cual
la clave primaria de la primera tabla debe
estar contenida como clave ajena en la
segunda tabla y además tener valores iguales
para la combinación
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 16/36
Ejemplo
Ejecutamos la siguiente consulta
SELECT Escuela.idCarrera, Escuela.NomEscuela,Carrera.idCarrera,Carrera.nombreCarrera
FROM Escuela LEFT OUTER JOIN Carrera
ON Escuela.idCarrera = Carrera.idCarrera
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 17/36
Ejemplo
Ahora ejecutas esta consulta
SELECT Escuela.idCarrera, Escuela.NomEscuela,Carrera.idCarrera,
Carrera.nombreCarrera
FROM Escuela RIGHT OUTER JOIN CarreraON Escuela.idCarrera = Carrera.idCarrera
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 18/36
Funciones de agregado
Agrupar por totales
Las funciones de agregado son aquellas que generanvalores de resumen en los conjuntos de resultados delas consultas.
Una función de agregado procesa todos los valores
seleccionados en una única columna para generar unúnico resultado.
Las funciones de agregado se pueden aplicar a todaslas filas de una tabla, a un subconjunto de la tablaespecificado por una cláusula WHERE o a uno o variosgrupos de filas de la tabla.
Cuando se aplica una función de agregado, se generaun valor individual por cada conjunto de filas.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 19/36
Las funciones de agregado son:
SUM, AVG
± los cuales solo se pueden usar con columnas numéricas
MIN y MAX ± no se puede utilizar con tipo de datos bit
Estas funciones permiten obtener valores medios,máximos y mínimos, de comparativo
de una columna. Mientras que SUM permite sumar los valores de la
columna.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 20/36
Ejemplos
select sum(totalmatric) from Escuela
select MAX(totalmatric) from Escuela
Select MIN(totalmatric) FROM Escuela
Select AVG(totalmatric) From Escuela
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 21/36
Copia de seguridad
en la base de datos
boton derecho tareas copia de seguridad
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 22/36
Copiar BD
boton derecho BD tareas copiar bd
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 23/36
Importar
boton derecho tareas importar
importa una tabla de otra BD
en T-SQL se haría con Bulk insert
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 24/36
Transacciones
Las transacciones es un concepto muy utilizadoprincipalmente por que se piensa en transaccionesfinancieras.
Principalmente se utilizan para realizar modificaciones en
los registros que se encuentran en una tabla, en el cualpuede ser de manera generalizada para todos los registroso para uno específicamente.
Estas transacciones se realizan de manera atómica, es deciruna vez que inician deben concluirse o de lo contrario los
mecanismos de seguridad de la base de datos puedenanularla o abortarla dependiendo de la técnica que seutilice, principalmente cuando suceden fallos del sistemaya sea de tipo físico o lógico.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 25/36
Tipos de transacciones
La transacción explicita
± es definida por el programador utilizando BEGIN
TRANSACTION para especificar el dato que se va a
modificar la cual es completada con la sentencia
COMMIT TRANSACTION y realiza excepciones de
errores esto es hace verificaciones de errores
mediante el ROLLBACK TRANSACTION.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 26/36
Transacciones Implícitas
± aquellas que se realizan cuando dos tablas estánrelacionadas y la modificación de la primera
genera una modificación implícita de la segundapara asegurar la integridad de dominios en ambastablas.
± Se utiliza la sentencia SET
IMPLICIT_TRANSACTIONS ON, principalmentecuando no se realiza atómicamente la transacciónde la primera.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 27/36
AutoCommit Transacction.
± se realiza se puede decir de manera automática,
en los casos en que la modificación se datos se
realiza fuera de las explicitas e implícitas.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 28/36
Ejemplo
BEGIN transaction
UPDATE Escuela SET totalmatric =(totalmatric * 0.05) + totalmatric /*
modificación del campo totalmatric al cual se le incrementa 5% su
valor.*/
WHERE Nomescuela = 'Sor Juana' /* a la escuela que tenga por nombre
Sor Juana*/
IF @@ERROR != 0 /*excepcion de error*/
BEGINROLLBACK transaction
RETURN
END
COMMIT transaction
Fin
de la transacciòn
begin tran
commit tran
rollback tran
consulta
del resultado
select * from Escuela
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 29/36
ejecutamos y vemos
ahora escribimos otra consulta
insert into Escuela values('Sor Juana', 89,
'Rocio',500, 3,156,20)
tb ejecutamos
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 30/36
transacciones en tablas relacionadas
BEGIN transaction
SELECT Escuela.idCarrera, Escuela.NomEscuela,
Carrera.idCarrera,Carrera.nombreCarrera
FROM Escuela LEFT OUTER JOIN Carrera
ON Escuela.idCarrera = Carrera.idCarrera
where Escuela.NomEscuela= 'TESE' /* a la escuela que tenga por nombre
Sor Juana*/IF @@ERROR != 0 /*excepcion de error*/
BEGIN
ROLLBACK transaction
RETURN
END
COMMIT transaction
Fin
de la transacciòn
begin tran
commit tran
rollback tran
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 31/36
ejecutamos y vemos los efectos
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 32/36
Sentencias group by y having
Esta sentencia especifica una condición debúsqueda de un grupo o agregado ynormalmente se utiliza con la cláusula GROUP
BY. Cuando no se utiliza con esta sentencia,
HAVING se comporta como la cláusulaWHERE.
Su sintaxis es:
HAVING <condición_busqueda>.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 33/36
Con esta sentencia no puede utilizarse los tiposde datos text, image y ntext.
Group By especifica las agrupaciones que van a
realizar en las filas de salida. Cuando se especifica GROUP BY , cada columna
que no este en una expresión de agregado de lalista de selección, esto es, todas las columnas de
la tabla, se deben incluir en la lista de GROUP BY o esta debe coincidir exactamente con laexpresión de la lista de selección.
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 34/36
Su sintaxis es:
SELECT * FROM <nombre de la tabla> GROUP
BY <campos de la tabla> HAVING <campo de búsqueda [condición]=registro>
8/9/2019 SQL Server - Practica
http://slidepdf.com/reader/full/sql-server-practica 35/36
Ejemplo
SELECT * FROM Escuela GROUP BY idescuela,
NomEscuela, Telefono,
NomResponsable, Totalmatric, idCarrera,idMatricula,
idZona HAVING Totalmatric >500