Universidad Nacional De Ingeniería
Facultad Ingeniería Industrial y de Sistemas
Profesor: Ing. MBA Ysabel Rojas
ARQUITECTURA DEL GESTOR SQL SERVER
REVISION INSTRUCCIONES DDL
ACTUALIZACION DE TUPLAS
CONSULTAS - QUERYS
EJERCICIOS NIVEL BÁSICO
CONSULTAS MULTITABLAS
PROYECTO TRABAJO GRUPAL
PRACTICA DIRIGIDA 02
ARQUITECTURA DEL
GESTOR SQL SERVER
ARQUITECTURA DEL GESTOR
SQL SERVER
Cuando se instala SQL Server se crean cuatro bases de datos del
sistema que guardan información del propio sistema, son necesarias
para su funcionamiento, y no son utilizables directamente por el
usuario:
ARQUITECTURA DEL GESTOR
SQL SERVER
MASTER
Las cuentas de inicio de sesión,
parámetros de configuración del servidor,
Registrar la existencia de otras bases de datos, etc
MSBD
Programación de trabajos,
Definición de operadores y alertas.
Almacena la información de la copia de seguridad y se emplea en la restauración de
la base de datos
MODEL
Es la base de datos plantilla cuando se crea una nueva B:D. Si se desea que
determinados objetos, permisos, usuarios se creen automáticamente cada vez que se
crea una base de datos, pueden incluirse en esta base.
TEMPDB
Utilizada cuando se necesita crear tablas temporales internas (o tablas de trabajo)
para determinadas operaciones, ordenación, las operaciones multitabla, el
tratamiento de cursores, almacena todas las tablas y procedimientos
almacenados temporales.
VISTA DESDE EL
ADMINISTRADOR
Se Pulsa la B.D que se desea :
ARQUITECTURA DEL GESTOR SQL SERVER
REVISION INSTRUCCIONES DDL
ACTUALIZACION DE TUPLAS
CONSULTAS - QUERYS
EJERCICIOS NIVEL BÁSICO
CONSULTAS MULTITABLAS
PROYECTO TRABAJO GRUPAL
PRACTICA DIRIGIDA 02
Conceptos Básicos
Lenguaje de Consultas Estruturado (SQL)
Lenguaje de trabajo estándard para modelo
relacional
Componentes
DDL: Data Definition Language
DML: Data Manipulation Language (AR y CRT)
DCL : Data Control Language
8
SQL
DDL - Lenguaje de definición de datos.
Definición de esquemas,relaciones, indices y vistas (una
vista es una tabla virtual, ya que sus filas no se almacenan
físicamente, sino que son producto de una consulta)
Autorizaciones al acceso a datos
Definición de reglas de integridad.
Control de Concurrencia
DML - Lenguaje interactivo de manipulación de datos.
Consultar datos almacenados.
Modificar el contenido de los datos almacenados.
DCL - Lenguaje interactivo del control de la seguridad de
datos .
Control de accesos y privilegios entre los usuarios.
9
SQL : Grupos de instrucciones
(mandatos)
Los mandatos de SQL se dividen en tres grandes grupos diferenciados
DDL(Data Definition Language), es el encargado de la definición de Bases de Datos, tablas, vistas e índices entre otros.
Son comandos propios DDL
CREATE TABLE
CREATE INDEX
CREATE VIEW
CREATE SYNONYM
DML(Data Manipulation Language), cuya misión es la manipulación de datos. A través de él podemos seleccionar,
insertar, eliminar y actualizar datos. Es la parte que más frecuentemente utilizaremos, y que con ella se construyen
las consultas.
Son comandos propios DML
SELECT
UPDATE
INSERT
INSERT INTO
DELETE FROM
DCL (Data Control Language), encargado de la seguridad de la base de datos, en todo lo referente al control de accesos
y privilegios entre los usuarios.
Son comandos propios de este lenguaje:
GRANT
REVOKE
ARQUITECTURA DEL GESTOR SQL SERVER
REVISION INSTRUCCIONES DDL
ACTUALIZACION DE TUPLAS
CONSULTAS - QUERYS
EJERCICIOS NIVEL BÁSICO
CONSULTAS MULTITABLAS
PROYECTO TRABAJO GRUPAL
PRACTICA DIRIGIDA 02
ACTUALIZACION
Permite la actualizacion de unos o
varios registros
UPDATE <nombre_tabla>
SET <campo1> = <valor1>
{[,<campo2> = <valor2>,...,<campoN> =
<valorN>]}
[ WHERE <condicion>];
ACTUALIZACION
Incrementar en 10% el sueldo de los empleados del departamento 02
UPDATE EMPLEADO
SET SALARIO=SALARIO*1.1
WHERE cod-dep= ‘02’)
A la izquierda se refiere al nuevo valor
de SALARIO
A la derecha al valor antiguo
ARQUITECTURA DEL GESTOR SQL SERVER
REVISION INSTRUCCIONES DDL
ACTUALIZACION DE TUPLAS
CONSULTAS - QUERYS
EJERCICIOS NIVEL BÁSICO
CONSULTAS MULTITABLAS
PROYECTO TRABAJO GRUPAL
PRACTICA DIRIGIDA 02
SQL – Consultas Basicas
Estructura básica: 3 cláusulas
Select (equivale a )
From (equivale a x)
Where (equivale a )
a1,...,an (p (r1 x ... X rm ) ) equivale a
Select a1,..., an
From r1,..., rm
Where P
Ej1: todas las sucursales de la
relación sucursal
35
Consultas - Querys
SELECT [ALL | DISTINCT ]
<nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista>
[{,<nombre_tabla>|<nombre_vista>}] [WHERE
<condicion> [{ AND|OR <condicion>}]] [GROUP
BY <nombre_campo> [{,<nombre_campo
>}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY
<nombre_campo>|<indice_campo> [ASC | DESC]
[{,<nombre_campo>|<indice_campo> [AS
C | DESC ]}]]
SQL - Querys
Select
* (incluye todos los atributos de las
tablas que aparecen en el from)
Distinct (eliminan tuplas
duplicadas)
All (valor por defecto, aparecen
todas las tuplas) 37
SQL- Querys Nivel básico
Ej: nombres de las sucursales en la relación
o tabla préstamo sin repetición
Ej :Operaciones en el select
Select nombre, saldo * 3
From cliente
Where
Operadores lógicos
Ej: préstamos cuyo monto es superior a S/.20000
Between
Ej: préstamos cuyo monto este entre 20000 y 30000
Nuevos soles
38
SQL- Querys
Ordenamiento de las tuplas resultado
Order By atributo: especifica el atributo por el
cual las tuplas serán ordenadas
Ej8: presentar todos los clientes ordenados por
nombre.
Desc, asc: por defecto es ascendente,
se puede especificar descendente.
Facturas=(Nro,Fecha,Hora)
Ej: presentar las facturas del mes de agosto
ordenadas por fecha desde el 31 al 1 de agosto
39
SQL- Querys Nivel basico
SQL- Querys Nivel 1
SQL- Querys formato general
Significado
Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de
SELECT
búsqueda seleccionada
Indica que queremos seleccionar todos los [Link] el valor por defecto y no suele
ALL especificarse casi nunca.
DISTINCT Indica que queremos seleccionar sólo los valores distintos.
FROM Indica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso
de que exista más de una tabla se denomina a la consulta "consulta combinada" o
"join". En las consultas combinadas es necesario aplicar una condición de combinació
a través de una cláusula WHERE.
WHERE Especifica una condición que debe cumplirse para que los datos sean devueltos por
la consulta. Admite los operadores lógicos AND y OR.
GROUP BY Especifica la agrupación que se da a los datos. Se usa siempre en combinación con
funciones agregadas.
HAVING Especifica una condición que debe cumplirse para que los datos sean devueltos por
la consulta. Su funcionamiento es similar al de WHERE pero aplicado al conjunto de
resultados devueltos por la consulta. Debe aplicarse siempre junto a GROUP BY y la
condición debe estar referida a los campos contenidos en ella.
Presenta el resultado ordenado por las columnas indicadas. El orden puede
ORDER BY expresarse con ASC (orden ascendente) y DESC (orden descendente).
El valor predeterminado es ASC.
ARQUITECTURA DEL GESTOR SQL SERVER
REVISION INSTRUCCIONES DDL
ACTUALIZACION DE TUPLAS
CONSULTAS - QUERYS
EJERCICIOS NIVEL BÁSICO
CONSULTAS MULTITABLAS
PROYECTO TRABAJO GRUPAL
PRACTICA DIRIGIDA 02
Consultas – Nivel basico
1)CONSULTANDO TODAS LAS TUPLAS (Con todos los
campos creados) (Tabla Empleado de B.D Edumatica)
Use Edumatica
Go
Select * from empleado
Go
2)CONSULTANDO TODAS LAS TUPLAS (Con campos
seleccionados) (Tabla Empleado)
Use Edumatica
Go
Select IDEMPLEADO,APEEMPLEADO,NOMEMPLEADO from
empleado
Go
Consultas – Nivel Basico
3)CONSULTANDO TUPLAS (Concatenando campos)
Select IDEMPLEADO,APEEMPLEADO+’, ‘ +NOMEMPLEADO from
empleado
Go
4)Estableciendo Titulo a las columnas
Select IDEMPLEADO,APEEMPLEADO+’, ‘ +NOMEMPLEADO AS
EMPLEADO from empleado
Go
5)Seleccionando registros en base a rangos
Select * from Products Where UnitPrice Between 20 and 40
Go
Select * from Employees Where hiredate Between ‘20160101’ and ‘20161231’
Go
ARQUITECTURA DEL GESTOR SQL SERVER
REVISION INSTRUCCIONES DDL
ACTUALIZACION DE TUPLAS
CONSULTAS - QUERYS
EJERCICIOS NIVEL BÁSICO
CONSULTAS MULTITABLAS
PROYECTO TRABAJO GRUPAL
PRACTICA DIRIGIDA 02
Consultas
Multitablas
Consultas Multitabla
Las consultas multitabla son
llamadas así porque están basadas
en más de una tabla y permite
La unión de tablas
La composición
UNIÓN DE TABLAS
Requisitos: deben de tener igual estructura las dos tablas
La consulta unión sirven para ver en un único campo los datos
de igual tipo de varias tablas. En Access se realiza en diseño
de consultas, menú consulta, opción específica de SQL y
Unión. O directamente escribiéndola en la pantalla de SQL. No
se puede hacer en modo gráfico.
SELECT [CAMPO1], [CAMPO2] FROM [TABLA1] UNION
SELECT [CAMPO1], [CAMPO2] FROM [TABLA2];
La TABLA1 y la TABLA2 deben de tener el mismo número de
campos.
El resultado es que devuelve en una misma columna el
resultado de las dos tablas.
Los registros duplicados se eliminan. Si no se quiere que se
eliminen se escribe UNION ALL
Consultas Multitabla
El poder de la sentencia Select es la capacidad de poder en una
solo sentencia consultar multiples tablas simultaneamente, a esta
operación tambien se le conoce como JOIN
El requisito principal para que se pueda dar esta operacion, es
que las tablas a reunirse en una consulta esten relacionadas a
través de una llave (tener una columna de conexion)
Consultas Multitabla : Joins
Composicion de tablas
Los tipos de composición de tablas son:
El INNER JOIN
El OUTER JOIN
LEFT / RIGHT JOIN/ Full Outer Join
Composición interna: Inner join
INNER JOIN es una composición interna ya
que todos los valores de las filas del
resultado son valores que están en las
tablas que se combinan
Con una composición interna sólo se
obtienen las filas que tienen al menos una
fila de la otra tabla que cumpla la condición
Composición interna: Inner join
Inner Join
Composición externa: Outer join
Inner Join vs Outer Join
JOIN vs UNION
JOIN
UNION
Uniendo Tres o mas tablas
Inner Join con varias tablas
Se pueden combinar más de dos tablas
En este caso hay que sustituir en la sintaxis una tabla por un
INNER JOIN completo.
Por ejemplo:
SELECT * FROM
(PEDIDOS
INNER JOIN CLIENTES
ON [Link] = [Link])
INNER JOIN EMPLEADOS ON
[Link] =
[Link]
Ejemplos :Consultas Multitabla
Ejem:
Queremos combinar los empleados con las oficinas para saber
la ciudad de la oficina donde trabaja cada empleado
Soluciones
Solución 1: utilizando un producto cartesiano
SELECT EMPLEADOS.*,CIUDAD
FROM EMPLEADOS, OFICINAS
WHERE [Link] = [Link]
Solución 2: utilizando Inner Join
SELECT EMPLEADOS.*, CIUDAD
FROM EMPLEADOS INNER JOIN OFICINAS ON
[Link] = [Link].
Haciendo Join con varias
Tablas
Encadenar Joins es tan simple como ponerlos
uno a
continuación de otro ejemplo:
SELECT A.*, B.*, [Link] FROM tabla_a A
INNER JOIN tabla_b B ON [Link] = [Link]
INNER JOIN tabla_c C ON [Link] = [Link]
Y así sucesivamente. Puedes tener tantos joins
como necesites, y si es necesario jugar con
los paréntesis para cambiar la preferencia (por
defecto MySQL lee de izquierda a derecha).
Ejemplos con Inner Join / Left
Y Right Join
Para los casos en que queremos que
también aparezcan las filas que no
tienen una fila coincidente en la otra
tabla, utilizaremos el LEFT o RIGHT
JOIN.
Ejemplos de JOIN
Mostrar en una consulta el nombre de los empleados junto con la
remuneración en el 2016
Existen dos formas equivalentes
CON INNER JOIN...ON
SELECT [Link], Sum([Link]) AS
Remuneracion FROM PERSONAL INNER JOIN SALARIO ON
[Link] = SALARIO.CA_PERSONAL WHERE
SALARIO.AÑO=2011 GROUP BY [Link];
PONIENDO LA INFORMACIÓN DE UNIÓN EN EL WHERE
SELECT [Link], Sum([Link]) AS
Remuneracion
FROM PERSONAL,SALARIO WHERE [Link] =
SALARIO.CA_PERSONAL AND SALARIO.AÑO=2016
GROUP BY [Link];
ARQUITECTURA DEL GESTOR SQL SERVER
REVISION INSTRUCCIONES DDL
ACTUALIZACION DE TUPLAS
CONSULTAS - QUERYS
EJERCICIOS NIVEL BÁSICO
CONSULTAS MULTITABLAS
PROYECTO TRABAJO GRUPAL
PRACTICA DIRIGIDA 02
Proyecto Grupal
Presentación del Primer
Avance
ARQUITECTURA DEL GESTOR SQL SERVER
REVISION INSTRUCCIONES DDL
ACTUALIZACION DE TUPLAS
CONSULTAS - QUERYS
EJERCICIOS NIVEL BÁSICO
CONSULTAS MULTITABLAS
PROYECTO TRABAJO GRUPAL
PRACTICA DIRIGIDA 02
PRACTICA DIRIGIDA 02
Muchas Gracias!