Ing Nestor Raul Suarez Perpiñan
Ing Nestor Raul Suarez Perpiñan
Ing Nestor Raul Suarez Perpiñan
Objetivo: Conocer y aplicar correctamente los principales comandos, clausulas y operadores del
lenguaje SQL en el sistema gestor de base de datos Sql Server.
INTRODUCCIÓN
Los modelos conceptuales deben poseer una serie de propiedades: expresividad, simplicidad,
minimalidad y formalidad. El modelo conceptual más utilizado es el denominado Modelo
Entidad-Relación (MER), que se basa en los conceptos de entidades, relaciones, atributos,
dominios de atributos, identificadores y jerarquías de generalización. En la metodología del
diseño conceptual se construye un esquema conceptual local para cada vista de cada usuario o
grupo de usuarios.
En el diseño lógico como su nombre lo indica se obtiene un esquema lógico basado en un modelo
conceptual previamente definido. Los esquemas lógicos resultantes se integran para formar un
esquema lógico global que represente completamente al base de datos a implementar. Uno de los
esquemas lógico más usado en el diseño de bases de datos es el denominado Modelo Relacional
(MR)
El diseño básico de una base de datos está formado por entidades, relaciones, atributos, dominios
de atributos y otros elementos, estos diseños se completan documentándolos en el denominado
diccionario de datos.
GUÍA N° 1 – BASES DE DATOS
Educación Media Superior Programación de Software
SED/SENA Grado 11
Ing. Néstor Raúl Suarez Perpiñan
Página 2 de 11
El lenguaje de consulta estructurada (SQL por sus siglas en inglés Structured Query Language), es
un lenguaje normalizado que mediante un sistema de gestión de bases de datos relacionales
permite especificar y realizar diversos tipos de operaciones tales como la definición de la
estructura de una base de datos y la manipulación de los datos. Una de sus características más
relevantes es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el
fin de recuperar de forma sencilla información de bases de datos, así como hacer cambios sobre
ella. El lenguaje SQL está conformado por una serie de comandos, clausulas, operadores y
funciones de agregado que al ser combinadas genera una “sentencia” con la que se le indica al
SGBD la tarea, proceso o transacción que ha de realizar. En el lenguaje SQL se tiene principalmente
dos tipos de comandos denominados comandos DDL y Comandos DML respectivamente.
EL Lenguaje de Definición de datos (LDD) (En inglés – “Data Definition Language” o DDL),
corresponde a un conjunto de comandos que permiten la creación y modificación de de los
diferentes objetos que conforman la estructura de una base de datos. En el lenguaje SQL los
comandos u operaciones básicas DDL son: CREATE, ALTER, DROP y TRUNCATE.
1. CREATE: Este comando permite crear un nuevo objeto dentro de la base de datos. Entre
posibles objetos a crear se tiene por ejemplo: tablas, vistas, índices, trigger, funciones,
procedimientos o cualquier otro objeto que el motor de la base de datos soporte.
2. ALTER: Este comando permite modificar la estructura de un objeto. Por medio de este
comando se puede agregar/quitar campos a una tabla, modificar el tipo de un campo,
agregar quitar índices a una tabla, modificar un trigger, etc.
3. DROP: Este comando permite eliminar un objeto de la base de datos. Entre estos objetos
se tiene: una tabla, vista, índice, trigger, función,procedimiento o cualquier otro objeto
que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
4. TRUNCATE: Este comando trunca todo el contenido de una tabla. La ventaja sobre el
comando DELETE, es que si se va a borrar todo el contenido de una tabla, es mucho más
rápido, especialmente si la tabla es muy grande, este borra la tabla, la vuelve a crear
(reinicia los campos autonuméricos) y no ejecuta ninguna Transacción.
Nota: IDENTITY(0,1)se utiliza solo cuando el campo se necesita definir como AUTONUMERICO
CONSTRAINT FK_TablaForanea_TablaPrimaria
FOREIGN KEY (CampoFK)
REFERENCES TablaPrimaria (CampoPK);
);
Nota:
✓ CampoPK corresponde al campo llave primaria de la relación
✓ CampoFK corresponde al campo llave foránea de la relación
GUÍA N° 1 – BASES DE DATOS
Educación Media Superior Programación de Software
SED/SENA Grado 11
Ing. Néstor Raúl Suarez Perpiñan
Página 5 de 11
1. INSERTAR DATOS
INSERT INTO Nombre_tabla (campo1, campo2...)
VALUES (valor 1,'valor 2'...) ;
Nota:
✓ Si el campo es alfanumérico (char/varchar) el valor a ingresar debe ir entre comillas
sencillas (’valor’)
✓ Si el campo es numérico (int/numeric) el valor a ingresar va sin comillas (valor)
2. MODIFICAR DATOS
UPDATE Nombre_tabla SET campo1 = valor1, campo2 = 'valor2' ...
WHERE Condición;
Nota:
✓ Si el campo a actualizar es alfanumérico (char/varchar) el valor a ingresar debe ir entre
comillas sencillas (‘valor’)
✓ Si el campo a actualizar es numérico (int/numeric) el valor a ingresar va sin comillas
(valor)
✓ La condición puede ser simple (Campo = Valor) o compuesta (Campo1 = Valor1 AND
Campo2 = Valor2 …)
3. ELIMINAR DATOS
DELETE FROM Nombre_tabla WHERE Condición;
Nota:
✓ La condición puede ser simple (Campo = Valor) o compuesta (Campo1 = Valor1 AND
Campo2 = Valor2 …)
4. CONSULTAR DATOS
4.1 SELECT * FROM Nombre_tabla;
Nota:
✓ La condición puede ser simple (Campo = Valor) o compuesta (Campo1 = Valor1 AND
Campo2 = Valor2 …)
GUÍA N° 1 – BASES DE DATOS
Educación Media Superior Programación de Software
SED/SENA Grado 11
Ing. Néstor Raúl Suarez Perpiñan
Página 6 de 11
Las consultas en SQL Server se pueden hacer de forma especializada usando comandos como los
mostrados a continuación:
Cuando se tienen varias condiciones, se pueden utilizar los operadores logicos en conjunto con los
operadores de comparación:
GUÍA N° 1 – BASES DE DATOS
Educación Media Superior Programación de Software
SED/SENA Grado 11
Ing. Néstor Raúl Suarez Perpiñan
Página 7 de 11
Ejemplo de consulta:
SELECT * FROM Tabla WHERE (a=1 AND B>5 OR C='Mil');
El comando de consulta se puede utilizar acompañado de la cláusula LIKE, el cual permite manejar
patrones, es decir, permite especificar un patron de referencia para realizar comparaciones, y los
registros que tengan este patrón en el campo especificado se van a obtener independientemente
si están en mayúscula o minúscula.
La cláusula LIKE se utiliza usando el símbolo “%” teniendo las siguientes alternativas;
En este ejemplo se obtienen todos los registros de la tabla persona que empiezan con Per, no
importa que tenga después.
Cuando existen varias condiciones sobre un mismo campo en una sola sentencia, se tiene
la posibilidad de usar SELECT combinado con la cláusula IN:
Ejemplo: SELECT * FROM Tabla WHERE (id [NOT] IN (valor1, valor2, valor3,....,valorn))
GUÍA N° 1 – BASES DE DATOS
Educación Media Superior Programación de Software
SED/SENA Grado 11
Ing. Néstor Raúl Suarez Perpiñan
Página 8 de 11
En este ejemplo la salida de un GROUP BY está ordenada según los valores del campo sobre el
que se agrupa. La ordenación se realiza por defecto en orden ascendente (ASC) para hacerlo
en orden descendente se añade la palabra clave DESC:
SELECT ciudad, COUNT(ciudad) FROM usuario GROUP BY ciudad DESC HAVING COUNT(ciudad)<1
TALLER
1. Abra el software de administración de SQL SERVER y usando los comandos mostrados en esta
guía implemente una base de datos que corresponda con el Modelo Relacional propuesto.
2. Una vez terminado genere el script (Secuencia de comandos) que realiza las siguientes tareas
sobre las tablas correspondientes:
3. Cuando cada una de las tablas tengan información almacenada ejecute las consultas que se
muestran a continuación, explique qué datos arrojan y saque sus propias conclusiones sobre
en qué situaciones o bajo qué circunstancias se podrían usar cada una de las consultas.
✓ Consulta N° 1
Select
Estudiantes.identificacion,
Estudiantes.Nombre,
Estudiantes.Apellido,
Estudiantes.grado,
Colegios.Nombre
FROM
Estudiantes,Colegios
✓ Consulta N° 2
Select
Count(*) as Numero_De_Estudiantes
FROM
Estudiantes,Colegios
Where Estudiantes.NitColegio = Colegios.NitColegio
AND Estudiantes.Grado = 1001
AND Colegios.Nombre = 'Colegio Enrique Olaya Herrera'
✓ Consulta N° 3
Select
Estudiantes.identificacion,
Estudiantes.Nombre,
Estudiantes.Apellido,
Estudiantes.grado,
Colegios.Nombre
FROM
Estudiantes,Colegios
Where Estudiantes.NitColegio = Colegios.NitColegio
AND Estudiantes.Apellido Like '%o%'
GUÍA N° 1 – BASES DE DATOS
Educación Media Superior Programación de Software
SED/SENA Grado 11
Ing. Néstor Raúl Suarez Perpiñan
Página 11 de 11
✓ Consulta N° 4
Select
*
FROM
Libros,Materias,Biblioteca
Where Libros.Id_materia = Materias.Id_Materia
AND Libros.Id_Biblioteca = Biblioteca.Id_Biblioteca
✓ Consulta N° 5
Select
Libros.nombre As Nombre_Libro,
Libros.autor,
Libros.NumEjemplares,
Materias.nombre As Nombre_Materia,
Biblioteca.Nombre AS Nombre_Biblioteca
FROM
Libros,Materias,Biblioteca
Where Libros.Id_materia = Materias.Id_Materia
AND Libros.Id_Biblioteca = Biblioteca.Id_Biblioteca
✓ Consulta N° 6
Select
Count(*) as Cantidad_Libros,
Max(Libros.Numejemplares) AS Mayor_Numero_Ejemplares,
Min(Libros.Numejemplares) AS Menor_Numero_Ejemplares,
Sum(Libros.Numejemplares) AS Total_Ejemplares,
Avg(Libros.Numejemplares) AS Promedio_Ejemplares
FROM
Libros,Materias,Biblioteca
Where Libros.Id_materia = Materias.Id_Materia
AND Libros.Id_Biblioteca = Biblioteca.Id_Biblioteca