0% encontró este documento útil (0 votos)
26 vistas34 páginas

Definición de SQL Server y sus usos

SQL Server es un sistema de gestión de bases de datos relacional desarrollado por Microsoft que permite almacenar, consultar y administrar datos de manera eficiente. Existen diferentes ediciones como Enterprise, Standard, Express y Developer, cada una adaptada a diferentes necesidades y casos de uso. El documento también incluye ejemplos de creación de tablas, inserciones de datos y procedimientos almacenados para manejar la información en el entorno de SQL Server.

Cargado por

Jio Arenas
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas34 páginas

Definición de SQL Server y sus usos

SQL Server es un sistema de gestión de bases de datos relacional desarrollado por Microsoft que permite almacenar, consultar y administrar datos de manera eficiente. Existen diferentes ediciones como Enterprise, Standard, Express y Developer, cada una adaptada a diferentes necesidades y casos de uso. El documento también incluye ejemplos de creación de tablas, inserciones de datos y procedimientos almacenados para manejar la información en el entorno de SQL Server.

Cargado por

Jio Arenas
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

¿Qué es SQL Server?

Es un sistema de gestión de bases de datos relacional (RDBMS) desarrollado por


Microsoft.

Permite almacenar, consultar, administrar y proteger datos de manera eficiente.

Edición Descripción Casos de uso

Enterprise Completa, para grandes Alta disponibilidad,


empresas rendimiento avanzado

Funciones básicas, Pequeñas/medianas


menos costosa empresas
Standard

Express Gratuita, con Estudiantes, aprendizaje,


Limitaciones pequeñas apps

Gratuita, con limitaciones Desarrollo y pruebas (No


para producción)
Developer

Web Adaptadas a servicios Hosting y soluciones web


web económicas.

Herramientas para usar

● Instalación básica

● Requisitos mínimos

● SQL Server Enterprise

● SSMS (Herramienta gráfica para trabajar con bases de datos)


Exploración general del entorno: SQL Server Management Studio (SSMS)
Actividad en clase

Una institución educativa necesita registrar la información de sus cursos. Tu tarea


es diseñar en Excel como se vería la tabla llamada Cursos, que contendrá la
siguiente información:

● Código del curso (Único por curso)

● Nombre del Curso

● Duración en horas

● Modalidad (Presencial o virtual)

● Número de estudiantes inscritos

Instalación de Microsoft SQL Server

[Link]

[Link]

Introducción a la estructura de una base de datos relacional

¿Qué es una base datos relacional?

● Sistema que almacena datos en tablas.


● Propuesta por Edgar F. Codd en 1970

● Organiza grandes volúmenes de datos evitando redundancia

Estructura de una base de datos relacional

● Formada por:
Tablas
● Columnas

● Filas

● Cada tabla representa una entidad real

Relaciones entre tablas

● Clave primaria (Primary key): Identificador único

● Clave foránea: conecta tablas

● Ejemplo: ID_Cliente “Pedidos” Referencia “Clientes”

Tipos de relaciones de Tablas

Tipo de relación Descripción Ejemplo

1a1 Un registro de A se asocia Cada persona tiene un


a uno de B pasaporte

1 a muchos (más común) Un registro de A se asocia Un cliente tiene muchos


a muchos en B pedidos

Muchos a muchos Muchos en A se asocian a Estudiantes inscritos en


muchos en B muchos cursos
Ejemplo

Actividad
-- Crear tabla de Clientes

CREATE TABLE Clientes (

ID_Cliente INT PRIMARY KEY,

Nombre VARCHAR (100),

Direccion VARCHAR (200),

Telefono VARCHAR (20)

);

-- Crear tabla de Facturas

CREATE TABLE Facturas (

ID_Factura INT PRIMARY KEY,

Fecha DATE,

ID_Cliente INT,

FOREIGN KEY (ID_Cliente) REFERENCES Clientes(ID_Cliente)

);

-- Crear tabla de Categorías

CREATE TABLE Categorias (

ID_Categoria INT PRIMARY KEY,

Descripcion VARCHAR (100)

);

-- Crear tabla de Proveedores

CREATE TABLE Proveedores (

ID_Proveedor INT PRIMARY KEY,

Nombre VARCHAR (100),

Direccion VARCHAR (200),

Telefono VARCHAR (20)

);

-- Crear tabla de Productos

CREATE TABLE Productos (


Actividad

Instituto

CREATE DATABASE Instituto

CREATE TABLE estudiantes (

id_estudiante INT PRIMARY KEY,

nombre VARCHAR(80),

apellido VARCHAR(80),

estrato INT,

genero VARCHAR(30),

ciudad VARCHAR(100),

fecha_nac DATE

);

CREATE TABLE profesores (


id_profesor INT PRIMARY KEY,

nombre VARCHAR(80),

apellido VARCHAR(80),

titulo VARCHAR(100),

genero VARCHAR(100),

area VARCHAR(100)

);

CREATE TABLE programas (

id_programa INT PRIMARY KEY,

programa VARCHAR(100),

facultad VARCHAR(100),

dpto VARCHAR(100)

);

CREATE TABLE asignaturas (

id_asignatura INT PRIMARY KEY,

id_profesor INT,

id_programa INT,

asignatura VARCHAR(100),

creditos INT,

int_horaria INT,

FOREIGN KEY (id_profesor) REFERENCES profesores(id_profesor),

FOREIGN KEY (id_programa) REFERENCES programas(id_programa)

);

CREATE TABLE grupos (


id_grupo INT PRIMARY KEY,

id_profesor INT,

id_asignatura INT,

grupo VARCHAR(80),

numero_estudiantes INT,

FOREIGN KEY (id_profesor) REFERENCES profesores(id_profesor),

FOREIGN KEY (id_asignatura) REFERENCES asignaturas(id_asignatura)

);

CREATE TABLE aulas (

id_aula INT PRIMARY KEY,

nombre_aula VARCHAR(100),

ubicacion VARCHAR(100),

capacidad INT,

tipo VARCHAR(100)

);

CREATE TABLE horarios (

id_horario INT PRIMARY KEY,

id_asignatura INT,

id_aula INT,

dia VARCHAR(80),

hora_inicio TIME,

hora_fin TIME,

FOREIGN KEY (id_asignatura) REFERENCES asignaturas(id_asignatura),

FOREIGN KEY (id_aula) REFERENCES aulas(id_aula)

);
CREATE TABLE matriculas (

id_matricula INT PRIMARY KEY,

id_estudiante INT,

id_asignatura INT,

nota DECIMAL(4,2),

FOREIGN KEY (id_estudiante) REFERENCES estudiantes(id_estudiante),

FOREIGN KEY (id_asignatura) REFERENCES asignaturas(id_asignatura)

);

INSERT INTO estudiantes (id_estudiante, nombre, apellido, estrato, genero, ciudad,


fecha_nac)

VALUES

(1001, 'Ana', 'Andrade', 3, 'Femenino', 'Bogota', '2002-05-10'),

(1002, 'Pepe', 'Gonzalez', 5, 'Masculino', 'Tunja', '2000-03-01'),

(1003, 'Juan', 'Cardona', 2, 'Masculino', 'Medellin', '2002-09-15'),

(1004, 'Camilo', 'Garcia', 1, 'Masculino', 'Cali', '1999-05-10'),

(1005, 'Diana', 'Samaca', 3, 'Femenino', 'Cartagena', '1970-06-10');

INSERT INTO programas (id_programa, programa, facultad, dpto) VALUES

(1, 'Ingenieria de Sistemas', 'Facultad de ingenierias', 'ingenieria'),

(2, 'Ingenieria de Software', 'Facultad de ingenierias', 'ingenieria'),

(3, 'Contaduria', 'Facultad de negocios', 'Escuela de Negocios'),

(4, 'Idiomas', 'Facultad de lenguas', 'Idiomas'),


(5, 'Culinaria', 'Facultad de Cocina', 'Escuela de reposteria');

INSERT INTO profesores (id_profesor, nombre, apellido, titulo, genero, area) VALUES

(101, 'Carlos', 'Ramirez', 'Magister', 'Masculino', 'Ingenierias'),

(102, 'Laura', 'Martinez', 'Magister', 'Femenino', 'Ingenierias'),

(103, 'Felipe', 'Rodriguez', 'Ingeniero', 'Masculino', 'Ingenierias'),

(104, 'Manuel', 'Daza', 'Magister', 'Masculino', 'Culinaria'),

(105, 'Francisco', 'Bonilla', 'Doctor', 'Masculino', 'Negocios');

INSERT INTO asignaturas (id_asignatura, id_profesor, id_programa, asignatura,


creditos, inf_horario)

VALUES

(201, 101, 1, 'Programacion I', 3, 4),

(202, 102, 2, 'Fundamentos de Administración', 4, 4),

(203, 103, 3, 'Fundamentos de Programacion', 3, 2),

(204, 104, 5, 'Fundamentos de la changua', 5, 5),

(205, 105, 4, 'Fundamentos de los idiomas', 4, 3);

INSERT INTO grupos (id_grupo, id_profesor, id_asignatura, grupo, numero_estudiantes)

VALUES

(301, 101, 201, 'A', 30),

(302, 102, 202, 'B', 25),

(303, 103, 203, 'A', 20),

(304, 104, 204, 'C', 15),

(305, 105, 205, 'A', 28);


INSERT INTO aulas (id_aula, nombre_aula, ubicacion, capacidad, tipo)

VALUES

(401, 'Aula 101', 'Bloque A', 35, 'Teorica'),

(402, 'Aula 202', 'Bloque B', 25, 'Laboratorio'),

(403, 'Cocina 1', 'Bloque C', 20, 'Practica'),

(404, 'Salon Idiomas', 'Bloque D', 30, 'Multimedia'),

(405, 'Aula Magna', 'Bloque E', 50, 'Auditorio');

INSERT INTO horarios (id_horario, id_asignatura, id_aula, dia, hora_inicio, hora_fin)

VALUES

(501, 201, 401, 'Lunes', '08:00:00', '10:00:00'),

(502, 202, 402, 'Martes', '10:00:00', '12:00:00'),

(503, 203, 401, 'Miércoles', '14:00:00', '16:00:00'),

(504, 204, 403, 'Jueves', '08:00:00', '11:00:00'),

(505, 205, 404, 'Viernes', '09:00:00', '11:00:00');

INSERT INTO matriculas (id_matricula, id_estudiante, id_asignatura, nota)

VALUES

(601, 1001, 201, 4.5),

(602, 1002, 202, 3.8),

(603, 1003, 203, 4.2),

(604, 1004, 204, 4.9),

(605, 1005, 205, 3.6);


SELECT id_asignatura,

AVG (nota)AS promedio_nota

FROM matriculas

GROUP BY id_asignatura;

SELECT genero,

COUNT (*)AS total_estudiantes

FROM estudiantes

GROUP BY genero;

SELECT tipo,

SUM (capacidad) AS capacidad_total

FROM aulas

GROUP BY tipo;

SELECT MAX (nota) as nota_maxima,

MIN (nota) AS nota_minima

FROM matriculas;

SELECT asignatura, MAX(int_horaria) AS intensidad_max

FROM asignaturas

GROUP BY asignatura

ORDER BY intensidad_max DESC;


SELECT AVG(estrato) AS promedio_estrato

FROM estudiantes;

SELECT nombre_aula, capacidad

FROM aulas

WHERE capacidad >30;

SELECT dia, hora_inicio, hora_fin

FROM horarios

ORDER BY dia, hora_inicio;

SELECT SUM (creditos) AS total_creditos

FROM asignaturas;

SELECT *

FROM estudiantes

WHERE genero = 'Femenino'

AND estrato IN (2, 3);

SELECT*

FROM asignaturas

WHERE int_horaria > 3

AND creditos >2;


SELECT*

FROM profesores

WHERE NOT area = 'Ingenierias';

SELECT*

FROM aulas

WHERE capacidad BETWEEN 20 AND 40 AND NOT tipo= 'Practicas';

SELECT *

FROM estudiantes

WHERE ciudad <> 'Bogota' OR genero = 'Masculino';

SELECT*

FROM asignaturas

WHERE asignatura LIKE '%Fundamentos%';

SELECT *

FROM asignaturas

WHERE asignatura LIKE '%Programacion%';

SELECT*

FROM estudiantes
WHERE YEAR (fecha_nac) BETWEEN 2001 AND 2003;

SELECT*

FROM matriculas

WHERE (nota) NOT BETWEEN 1.0 AND 3.0;

SELECT*

FROM asignaturas

WHERE creditos >3 OR int_horaria >4;

Eliminación de datos, si arroja algún error, que pueden ser de Primary KEY o Llaves
foráneas

ALTER TABLE matriculas

DROP CONSTRAINT FK_matricula_id_es_49C3F6B7;

ALTER TABLE matriculas

ADD CONSTRAINT FK_matriculas_estudiantes

FOREIGN KEY (id_estudiante)

REFERENCES estudiantes(id_estudiante)

ON DELETE CASCADE;

Actualización de datos en las tablas


UPDATE estudiantes

SET ciudad = 'Tunja', estrato = 5

WHERE id_estudiante = 1005;

Paradigmas

Estructura condicional

● +CAST: es una función estándar que permite la conversión explícita de


un tipo de datos a otro Ejemplo de INT a VARCHAR
● ELSE: se usa dentro de estructuras condicionales IF o CASE para
ejecutar un bloque de código alternativo si la condición principal no se
cumple. En esencia, ELSE proporciona una ruta de acción predeterminada
cuando una condición no es verdadera.
● BEGIN: se utiliza principalmente para dos propósitos: iniciar una
transacción y agrupar múltiples sentencias en un bloque.
● WHILE:se utiliza para ejecutar repetidamente un bloque de código
mientras una condición especificada sea verdadera.
● DECLARE: se usa para declarar variables locales dentro de un
procedimiento o bloque de código, especificando su nombre y tipo de
datos.
● BREAK: se usa con frecuencia para finalizar el procesamiento de un
caso concreto en una instrucción switch.
● SET: se utiliza para asignar valores a variables, tanto variables de
sesión como variables del sistema, o para configurar ajustes de la sesión.
● CASE: Son casos que podemos ir agregando: es una expresión
condicional que permite evaluar múltiples condiciones y devolver
diferentes valores o realizar distintas acciones según el resultado de esas
condiciones.
● CREATE PROCEDURE: se utiliza para definir un procedimiento
almacenado. Un procedimiento almacenado es una secuencia de
instrucciones SQL que se pueden ejecutar como una unidad.
● DROP: Elimina una tabla

● DELETE: Se usa para eliminar un registro

SELECT* FROM [Link]


------------------------------------------------------------------------------

CREATE PROCEDURE EvaluarNota

@nota DECIMAL(4,2)

AS

BEGIN

IF @nota >= 3.0

PRINT 'Aprobado'

ELSE

PRINT 'Reprobado'

END

------------------------------------------------------------------------------

EXEC EvaluarNota @nota = 2.0;

------------------------------------------------------------------------------

CREATE PROCEDURE verificarEstudiante

@id_estudiante INT

AS

BEGIN

IF EXISTS (SELECT 1 FROM estudiantes WHERE id_estudiante = @id_estudiante)

PRINT 'Estudiante encontrado/Registrado'

ELSE

PRINT 'Estudiante no existe'

END

------------------------------------------------------------------------------

EXEC verificarEstudiante @id_estudiante = 1001;

------------------------------------------------------------------------------

Para dos o más consultas

CREATE PROCEDURE verificarestudiantes


@id_estudiante1 INT,

@id_estudiante2 INT

AS

BEGIN

IF EXISTS (SELECT 1 FROM estudiantes WHERE id_estudiante= @id_estudiante1)

PRINT 'Estudiante encontrado/Registrado'

ELSE

PRINT 'Estudiante no existe'

IF EXISTS (SELECT 1 FROM estudiantes WHERE id_estudiante= @id_estudiante2)

PRINT 'Estudiante encontrado/Registrado'

ELSE

PRINT 'Estudiante no existe'

END

------------------------------------------------------------------------------

EXEC verificarEstudiantes @id_estudiante1 = 1020, @id_estudiante2 = 1003;

------------------------------------------------------------------------------

------------------------------------------------------------------------------

CREATE PROCEDURE InsertarMatriculaSiNoExiste

@id_matricula INT,

@id_estudiante INT,

@id_asignatura INT,

@nota DECIMAL(4,2)

AS

BEGIN

IF NOT EXISTS (
SELECT 1

FROM matriculas

WHERE id_estudiante = @id_estudiante AND id_asignatura = @id_asignatura

BEGIN

INSERT INTO matriculas (id_matricula, id_estudiante, id_asignatura, nota)

VALUES (@id_matricula, @id_estudiante, @id_asignatura, @nota);

PRINT 'Matrícula registrada exitosamente';

END

ELSE

BEGIN

PRINT 'El estudiante ya está matriculado en esta asignatura';

END

END

------------------------------------------------------------------------------

EXEC InsertarMatriculaSiNoExiste

@id_matricula =700,

@id_estudiante =1002,

@id_asignatura =201,

@nota=4.3;

------------------------------------------------------------------------------

IF EXISTS (SELECT 1 FROM matriculas WHERE id_estudiante = 1001)

PRINT 'El estudiante está matriculado';

ELSE

PRINT 'El estudiante no cuenta con matrícula';

DECLARE @contador INT = 1;


WHILE @contador <= 5

BEGIN

PRINT 'Interacion numero ' + CAST(@contador AS VARCHAR);

IF @contador = 3

BREAK;

SET @contador = @contador + 1;

END

------------------------------------------------------------------------------

SELECT nota,

CASE

WHEN nota >= 4.5 THEN 'Excelente'

WHEN nota >= 3.0 THEN 'Aprobada'

ELSE 'Reprobo'

END AS resultado

FROM matriculas;

------------------------------------------------------------------------------

CREATE PROCEDURE MostrarEstudianteSiExiste

@id INT

AS

BEGIN

IF NOT EXISTS (SELECT 1 FROM estudiantes WHERE id_estudiante = @id)

BEGIN

PRINT 'El estudiante no se encontró';

RETURN;

END
SELECT * FROM estudiantes WHERE id_estudiante = @id;

END

------------------------------------------------------------------------------

EXEC MostrarEstudianteSiExiste @id =1021;

------------------------------------------------------------------------------

------------------------------------------------------------------------------

BEGIN TRY

DECLARE @x INT = 1, @y INT = 0, @resultado INT;

SET @resultado = @x / @y;

PRINT 'Resultado: ' + CAST(@resultado AS VARCHAR);

END TRY

BEGIN CATCH

PRINT 'Ocurrió un error: ' + ERROR_MESSAGE();

END CATCH

-------------------------------------------------------------------------------

CREATE PROCEDURE EvaluarYActualizarNota

@id_estudiante INT,

@id_asignatura INT,

@nuevaNota DECIMAL(4,2)

AS

BEGIN

DECLARE @nota_Actual DECIMAL(4,2);

DECLARE @intentos INT = 1;


IF NOT EXISTS (

SELECT 1

FROM matriculas

WHERE id_estudiante = @id_estudiante AND id_asignatura = @id_asignatura

BEGIN

PRINT 'El estudiante no se encuentra matriculado';

RETURN;

END

BEGIN TRY

SELECT @nota_Actual = nota

FROM matriculas

WHERE id_estudiante = @id_estudiante AND id_asignatura = @id_asignatura;

PRINT 'Nota actual: ' + CAST(@nota_Actual AS VARCHAR);

WHILE @intentos <= 3

BEGIN

IF @nuevaNota > @nota_Actual

BEGIN

UPDATE matriculas

SET nota = @nuevaNota

WHERE id_estudiante = @id_estudiante AND id_asignatura = @id_asignatura;

PRINT 'Nota actualizada, su nueva nota es: ' + CAST(@nuevaNota AS


VARCHAR);
DECLARE @clasificacion VARCHAR(20);

SET @clasificacion = CASE

WHEN @nuevaNota >= 4.5 THEN 'Excelente'

WHEN @nuevaNota >= 3.0 THEN 'Aprobó'

ELSE 'Reprobó'

END;

PRINT 'Clasificación: ' + @clasificacion;

BREAK;

ELSE

BEGIN

PRINT 'La nueva nota no es mayor. Intento ' + CAST(@intentos AS VARCHAR);

SET @intentos = @intentos + 1;

END

END

IF @intentos > 3

BEGIN

PRINT 'Se superó el número de intentos permitidos';

RETURN;

END

END TRY

BEGIN CATCH
PRINT 'Error detectado: ' + ERROR_MESSAGE();

END CATCH

END

------------------------------------------------------------------------------

EXEC EvaluarYActualizarNota

@id_estudiante =1001,

@id_asignatura= 201,

@nuevaNota=4.3;

------------------------------------------------------------------------------

CREATE TABLE Rectoras (

id_rectora INT PRIMARY KEY,

nombre VARCHAR(100),

fecha_inicio DATE,

correo VARCHAR(100)

);

------------------------------------------------------------------------------

INSERT INTO Rectoras (id_rectora, nombre, fecha_inicio, correo) VALUES

(1, 'Laura Martínez', '2022-01-10', 'laura.m@[Link]'),

(2, 'Camila Gómez', '2023-03-15', 'cgomez@[Link]'),

(3, 'Ana María', '2025-01-10', 'Ana.m@[Link]'),

(4, 'Francisco Samaca', '2020-03-11', 'laura.m@[Link]'),

(5, 'Víctor Aristizabal', '2021-06-20', 'victor.a@[Link]');

------------------------------------------------------------------------------

SELECT

id_rectora,
UPPER (nombre) AS nombre_mayusculas,

LEN (nombre) AS longitud_nombre,

correo

FROM Rectoras;

------------------------------------------------------------------------------

SELECT

nombre,

fecha_inicio,

GETDATE ()AS fecha_Actual,

DATEPART (YEAR, fecha_inicio) AS año_ingreso

FROM Rectoras;

------------------------------------------------------------------------------

SELECT

nombre,

fecha_inicio,

DATEDIFF (YEAR, fecha_inicio, GETDATE()) AS años_en_el_cargo,

CASE

WHEN DATEDIFF (YEAR, fecha_inicio, GETDATE()) >=2 THEN 'Antigua'

ELSE 'Reciente'

END

AS Antigüedad

FROM Rectoras;

------------------------------------------------------------------------------

SELECT

nombre,

CAST (fecha_inicio AS VARCHAR) AS fecha_texto,


CONVERT (VARCHAR, fecha_inicio, 103) AS fecha_formato

FROM Rectoras;

------------------------------------------------------------------------------

SELECT

nombre,

ISDATE ('2025-01-15') AS fecha_valida

FROM Rectoras;

------------------------------------------------------------------------------

ALTER TABLE Rectoras

ADD sedes VARCHAR (100);

------------------------------------------------------------------------------

ALTER TABLE Rectoras

ALTER COLUMN sedes INT

------------------------------------------------------------------------------

CREATE TABLE rectora (id INT IDENTITY (1,1) PRIMARY KEY,

nombre VARCHAR (100),

fecha_inicio DATE);

------------------------------------------------------------------------------

TRUNCATE TABLE Rectoras; ----Elimina los registros

------------------------------------------------------------------------------

DROP TABLE Rectoras;--- Elimina la tabla completa

------------------------------------------------------------------------------

BEGIN TRAN

UPDATE estudiantes

SET estrato= 2
WHERE id_estudiante=1001;

COMMIT;

---ROLLBACK---

------------------------------------------------------------------------------

BEGIN TRY

BEGIN TRAN

UPDATE estudiantes SET estrato = 3 WHERE id_estudiante = 1002;


DECLARE @x INT = 1, @y INT = 0;

SELECT @x / @y;
COMMIT;
END TRY
BEGIN CATCH
PRINT 'Ocurrió un error: ' + ERROR_MESSAGE();
ROLLBACK;

END CATCH

------------------------------------------------------------------------------
SELECT @@TRANCOUNT;

------------------------------------------------------------------------------

SELECT nombre,[Link]

FROM estudiantes

INNER JOIN matriculas m

ON

e.id_estudiante =m.id_estudiante

------------------------------------------------------------------------------


Clase 19/05/2025

-------------------------------------------------------------------------------
---LEFT JOIN--
-------------------------------------------------------------------------------
SELECT [Link], [Link]
FROM estudiantes e
LEFT JOIN matriculas m ON e.id_estudiante = m.id_estudiante;
----------------------------------------------------------------------------
SELECT [Link], [Link]
FROM profesores p
LEFT JOIN asignaturas a ON p.id_profesor = a.id_profesor;
----------------------------------------------------------------------------
SELECT [Link], [Link]
FROM asignatura a
LEFT JOIN grupo g ON a.id_asignatura = g.id_asignatura;
---------------------------------------------------------------------------
SELECT a.nombre_aula, [Link]
FROM aulas a
LEFT JOIN horarios d ON a.id_aula = d.id_aula;
----------------------------------------------------------------------------
---RIGHT---
----------------------------------------------------------------------------
SELECT [Link], [Link]
FROM estudiantes e
RIGHT JOIN matriculas m ON e.id_estudiante = m.id_estudiante;
------------------------------------------------------------------------------
SELECT [Link], [Link]
FROM profesores p
RIGHT JOIN asignaturas a ON p.id_profesor = a.id_profesor;
-----------------------------------------------------------------------------
SELECT a.nombre_aula, [Link]
FROM aulas a
RIGHT JOIN horarios d ON a.id_aula = d.id_aula;
-----------------------------------------------------------------------------
--UNION--
-----------------------------------------------------------------------------
SELECT nombre AS Nombres FROM profesores
UNION
SELECT nombre FROM estudiantes
-----------------------------------------------------------------------------
SELECT id_asignatura FROM grupos
UNION
SELECT id_asignatura FROM matriculas
-----------------------------------------------------------------------------
SELECT genero AS generos FROM estudiantes
UNION
SELECT genero FROM profesores
----------------------------------------------------------------------------
SELECT id_asignatura FROM asignaturas
UNION
SELECT id_asignatura FROM matriculas
-------------------------------------------------------------------------------
---UNION ALL---
-------------------------------------------------------------------------------
SELECT nombre AS Nombres FROM profesores
UNION ALL
SELECT nombre FROM estudiantes;
-------------------------------------------------------------------------------
SELECT id_asignatura AS ID FROM asignaturas
UNION ALL
SELECT id_asignatura FROM matriculas
-------------------------------------------------------------------------------
---REPASO---20/05/2025--
-------------------------------------------------------------------------------
CREATE PROCEDURE obtenerEstudiante
@id_estudiante INT
AS
BEGIN
SELECT
FROM estudiantes
WHERE id_estidiante = @id_estudiante
END
------------------------------------------------------------------------------
EXEC obtenerEstudiante @id_estudiante=
------------------------------------------------------------------------------
SELECT nombre, estrato, genero
FROM estudiantes
WHERE estrato >= 2
------------------------------------------------------------------------------
UPDATE estudiantes
SET estrato = 3
WHERE id_estudiante = 1003;
------------------------------------------------------------------------------
DELETE FROM matriculas
WHERE nota < 2.0;
------------------------------------------------------------------------------
---FUNCIONES DEFINIDAS---TIPO ESCALAR---
------------------------------------------------------------------------------
DECLARE @nombre VARCHAR (100);
DECLARE @promedio_General DECIMAL(4.2);
SELECT @nombre = nombre
FROM estudiantes
WHERE id_estudiante = 1003;
SELECT @promedio_General = AVG(nota)
FROM matriculas;
SELECT @nombre AS Nombre_Estudiantes;
SELECT @promedio_General AS Promedio;
PRINT 'El promedio general es de' +CAST(promedio_General AS VARCHAR);
------------------------------------------------------------------------------
---FUNCIONES DEFINIDAS---TIPO TABLAS---
------------------------------------------------------------------------------
DECLARE @tablaTemporal TABLE (
id INT
nombre VARCHAR (100));
INSERT INTO @tablaTemporal (id, nombre)
VALUES (1,'Pepe'), (2,'Felipe'), (4, 'Cristian');
SELECT* FROM @tableTemporal;

SELECT id
FROM @tablaTemporal
WHERE id > 103;
------------------------------------------------------------------------------
CREATE TABLE #TemporalPadres(
id INT
nombre VARCHAR (100));
INSERT INTO #TemporalPadres (id, nombre)
VALUES (201,'Pepe'), (202,'Felipe'), (203, 'Cristian');
SELECT* FROM #TemporalPadres;
);
------------------------------------------------------------------------------
CREATE TABLE ##TempMinTic (
id INT
nombre VARCHAR (100));
INSERT INTO ##TempMinTic (id, nombre)
VALUES (101,'Pepe'),(102,'Felipe'), (103,'Felipe'), (104, 'Cristian');
SELECT* FROM ##TempMinTic;
);


● RIGHT Priorizo la tabla de la derecha
● LEFT Priorizo la tabla de la izquierda

------------------------------------------------------------------------------
---VISTAS (DESDE EL ENTORNO GRÁFICO---
------------------------------------------------------------------------------

CREATE VIEW vistaNotaEstudiante


AS
SELECT
[Link],
[Link],
[Link]
FROM estudiantes e
INNER JOIN matriculas m ON e.id_estudiante = m.id_estudiante
INNER JOIN asignaturas a ON m.id_asignatura = a.id_asignatura;
SELECT
FROM* FROM vistaNotaEstudiante

También podría gustarte