Elemento de competencia 1: Utilizar correctamente las Sentencias de SQL para
la, implementación y manipulación, de bases de datos, siguiendo las
especificaciones del modelo relacional.
Ruta de aprendizaje
Fuente: Oralia Cortés G. (2013). Módulo de Diseño de Base de Datos 2
Resultados esperados del aprendizaje
Al terminar el estudio de los temas, el estudiante deberá estar en capacidad de:
A) En cuanto a habilidades
Administrar la base de datos en el DBGS SQL server
Utilizar las diferentes sentencias del DDL para la implementación de la base de
datos
Utilizar las sentencias del DML para la Manipulación y administración de la
base de datos.
Utilizar las sentencias DML para generar consultas multitablas, de resumen,
subconsultas y tablas de referencias cruzadas.
B) En cuanto a conocimientos
Identificar y caracterizar el Sistema de gestión de bases de datos (SGBD) SQL
Server.
Interpretar una herramienta para la gestión de la base de datos.
Conceptualizar acerca de las definiciones de las operaciones para la definición
y manipulación de base de datos.
C) En cuanto a actitudes:
Analítico para representar las necesidades y requerimientos que definen las
situaciones propuestas.
Asertivo para comprobar el grado de eficiencia de los proyectos y prácticas
que se definen y se diseñan.
Creativo para seleccionar los medios y mecanismos más adecuados en cada
situación.
Atento en cada fase de desarrollo de la base de datos.
Organizado y ético en el manejo de la información
Persistente en el logro de resultados exitosos
Responsable, frente al desarrollo de situaciones propuestas de bases de
datos del medio que lo rodea.
Asertivo en la aplicación de estrategias para la solución de problemas que
requieren como solución bases de datos
Introducción
Las bases de datos se conciben como un elemento importante y fundamental en el
medio Informático, teniendo en cuenta que la información se considera como el activo
de mayor valor, tanto a nivel particular como corporativo lo cual hace necesario
implementar soluciones viables mediante el uso de las bases de datos
complementadas con otras herramientas.
En el elemento de competencia 1 se comprueba la definición y manipulación y de
las base de datos involucrando las sentencias DDL y DML del SQL para construir y
manipular las bases de datos relacionales.
Desarrollo temático
Fuente: Oralia Cortés G. (2013). Módulo de Diseño de Base de Datos 2
Tema 1: Herramienta de software para gestionar bases de datos SQL Server.
SQL Server: Es un servidor de bases de datos producido por Microsoft basado en el
modelo relacional.
Imagen tomada de: http://www.mssqltips.com/sqlservertip/1418/sql-server-2008-first-
impressions/ obtenida el 07 de octubre de 203.
En el siguiente documento introducción_SQL_server.pdf encuentra un paso a paso
como crear la base de datos utilizando el administrador corporativo de SQL Server.
Tema 2: DDL para la implementación de las bases de datos.
En esta lección, conocerás los conceptos básicos para poder implementar las bases
de datos utilizando comandos DDL del SQL.
Imagen realizada por: Oralia Cortés Grajales
DDL: Lenguaje de definición de datos.
Descripción
Comando
Utilizado para crear objetos como nuevas bases de datos, tablas, campos e
CREATE
índices
DROP Empleado para eliminar objetos como tablas e índices, vistas.
Utilizado para modificar objetos como las tablas agregando campos o
ALTER
cambiando la definición de los campos.
Estando en el ambiente de trabajo SQL server en New Query le da doble clic
apareciendo un editor donde puede escribir los siguientes comandos
Imagen realizada por: Oralia Cortés Grajales
Antes de iniciar con este proceso de creación de bases datos utilizando los comandos
DDL (lenguaje de definición de da datos) es necesario recordar los tipos de taos que
tiene el sql en el siguiente docuemento tipos de datos en sql server.pdf una vez
revisado los tipos de datos damos inicio a la construccion de esta base de datos
Construcción.
/* Crear la base de datos*/
/**********ejecuta esta linea ************/
create database Construccion
/* activa la base de datos construccion*/
/********solo ejecuta estalinea************/
use Construccion
/* Crear tabla oficio mirar el comando abajo*/
create table tblOficio(Tipo_Oficio varchar(30),
Bonificacion int,
check(Bonificacion >= 30000 and Bonificacion <= 80000),
Horas_Semana int,
check(Horas_Semana >= 30 and Horas_Semana <= 60),
Primary key (Tipo_Oficio))
/**Selecciona todo el bloque de la tabla y ejecuta***/
/*** nota si la tabla le queda mal construida con este comando drop table
nom_tabla la puede borrar luego la arregla y la vuelve a ejecutar****/
/*Crear tabla Trabajador*/
create table tblTrabajador(Cedula int,
Nombre varchar(50) not null,
Valor_Hora int,
/*check es el comando que se utiliza para hacer las validaciones*/
check(Valor_Hora >= 7000 and Valor_Hora <= 20000),
Tipo_Oficio varchar(30),
primary key (Cedula),
foreign key (Tipo_Oficio)references
tblOficio(Tipo_Oficio))
/*Crear tabla Area*/
create table tblArea(Cod_Area varchar(10),
Nom_Area Varchar(30),
Estrato int,
check(Estrato >= 1 and Estrato <= 7),
primary key (Cod_Area))
/*Crear tabla edificio*/
create table tblEdificio(Iden_Edif int,
Direccion varchar(30),
Tipo varchar (30),
Calidad int,
check (Calidad >= 1 and Calidad <= 5),
Categoria int,
check(Categoria >= 1 and Calidad <= 5),
Cod_Area varchar (10)
primary key (Iden_Edif),
foreign key(Cod_Area)references tblArea(Cod_Area))
/*Crear tabla Asignar*/
create table tblAsignar(Cedula int,
Iden_Edif int,
Fecha_I datetime,
Num_Dias int,
check (Num_Dias > 0),
Primary key(Cedula,Iden_edif),
foreign key(Cedula) references tbltrabajador(cedula),
foreign key(Iden_edif) references tblEdificio(Iden_Edif))
Este es el digrama correspondiente a la base de datos que acbamos de crear.
tblTrabajador
Cedula
Nombre
Valor_Hora
Tipo_Oficio
tblAsignar
Cedula
Iden_Edif
Fecha_I
Num_Dias
tblOficio
Tipo_Oficio
Bonificacion
tblEdificio
Horas_Semanas Iden_Edif
Direccion
Tipo
Calidad
Categoria
Cod_Area
tblArea
Cod_Area
Nom_Area
Estrato
Comandos alterar tabla
Ejemplo
create database modifica
use modifica
create table empleado
ced int ,
nom varchar(10),
salario int
create table tarea
cod_t int ,
nom_t varchar(50),
valor_t int
/*adicionar campo
...adicionar el campo telefono para empleado
*/
alter table empleado add telefono int not null
/*modificar campo
...cambiar el tamaño del campo nombre del empleado por 50
*/
alter table empleado alter column nom varchar(50) not null
/*eliminar campo
...eliminar el campo valor_t
*/
alter table tarea drop column valor_t
/*adicionar clave principal
...modifico campo para q no acepte null y adiciono la clave principal
*/
alter table empleado alter column ced int not null
alter table empleado add primary key (ced)
/*adicionar clave principal para tarea*/
alter table tarea alter column cod_t int not null
alter table tarea add primary key (cod_t)
/*adicionar clave foranea
...adicionar clave foranea ced en tarea*/
alter table tarea add ced int not null
alter table tarea add foreign key (ced) references empleado(ced) ON delete
cascade ON update cascade
/*adicionar regla de validacion
...validar q salario entre 500000 y 1500000*/
alter table empleado add constraint ck_salario check (salario>=500000 and
salario<=1500000)
/*****Borrar tabla***********/
Drop table nombretabla
Creación de índices
Son "estructuras" que organizan los datos en una tabla. El objetivo de los índices
es acelerar el acceso a los datos mediante operaciones físicas más rápidas y
efectivas. Para entender mejor la importancia de un índice pongamos un ejemplo;
imagínate que tienes delante las páginas amarillas, y deseas buscar el teléfono de
Manuel Salazar que vive en Alicante. Lo que harás será buscar en ese pesado
libro la población Alicante, y guiándote por la cabecera de las páginas buscarás los
apellidos que empiezan por S de Salazar. De esa forma localizarás más rápido el
apellido Salazar. Pues bien, enhorabuena, has estado usando un índice.
Pues el objetivo de definir índices en SQL Server es exactamente para conseguir
el mismo objetivo: acceder más rápido a los datos.
Consideraciones para usar índices
que, etc.
ialmente"
Tomado de Microsoft SQL Server Management Studio Express - Community
Technology Preview (CTP) November 2005:
http://www.desarrollaconmsdn.com/msdn/CursosOnline/Curso_SQL_Server/index.ht
ml
Ejemplo:
/*Crear índice único*/
CREATE UNIQUE INDEX nom_indce ON nom_tabla(campo)
/*Crear índice con duplicado*/
CREATE INDEX nom_indce ON nom_tabla(campo)
/*borrar indice*/
DROP INDEX nom_tabla. Nom_indice
En esta lección, conocerás los conceptos básicos para poder realizar, consultar y
modificar la base de datos utilizando comandos sql.
/*Crear índice único*/
CREATE UNIQUE INDEX nom_indce ON nom_tabla(campo)
/*Crear índice con duplicado*/
CREATE INDEX nom_indce ON nom_tabla(campo)
/*borrar indice*/
DROP INDEX nom_tabla. Nom_indice.
En el siguiente documento Otro ejemplo de bases de datos.pdf encuentra otro
ejemplo de bases de datos creada paso a paso con comandos DDL del SQL.
Al dar click sobre el archivo DB_ACADEMICA.sql inmediatamente abrira el archivo
en la herramienta Sql Server y pude ejecutar el scrpt y generar el diagrama de bases
de datos.
“Otras restricciones (UNIQUE, CHECK, DEFAULT)
Además, existen restricciones que "acotan", limitan, o establecen el valor de una
columna en ciertas condiciones. Se llaman restricciones (CONSTRAINTS), y forman
parte del estandard SQL-99. Estas restricciones que vamos a ver son: restricción
UNIQUE, restricción CHECK, y restricción DEFAULT.
Restricción UNIQUE
La restricción UNIQUE establece que el valor de cada columna de una fila sea único,
Por ejemplo, en la tabla clientes podemos tener una clave primaria como ID, y
además tener una columna NIF que establecemos que sea única: lo que
internamente implementa SQL Server, es que cada vez que se intente hacer una
modificación, o inserción de un valor para esa columna, antes de realizar la
operación, se asegura que el nuevo/modificado valor es único en el conjunto de filas
de la tabla.
La restricción UNIQUE se implementa en T-SQL con la palabra clave
UNIQUE; por ejemplo, si queremos que la columna Nombre de la tabla
Clientes sea única, podríamos ejecutar el siguiente código T-SQL:
ALTER TABLE dbo.Clientes
ADD CONSTRAINT RestriccionNombreUnico UNIQUE (Nombre).
Restricción CHECK
La restricción CHECK establece que el valor de la columna se ajuste a ciertas
condiciones. Se define para limitar el valor que pueda tener la columna; por ejemplo,
se puede definir que la columna Importe sea de un valor positivo mayor que cero.
SQL Server, se encargará de "validar" el valor que tendrá la columna cuando se
intente hacer una modificación, o inserción de un valor para esa columna. En caso de
que el valor no cumpla la restricción, se generará una excepción y se cancelará la
operación en curso.
La restricción CHECK se implementa en T-SQL con la palabra clave
CHECK; por ejemplo, si queremos que la columna Cantidad de la tabla
Pedidos sea un valor mayor que cero, podríamos ejecutar el siguiente
código T-SQL:
ALTER TABLE dbo.Pedidos
ADD CONSTRAINT RestriccionCantidad CHECK (Cantidad>0).
Restricción DEFAULT
La restricción DEFAULT establece el valor para una columna cuando no se ha
especificado valor en la sentencia de inserción. SQL Server, comprobará si la
sentencia de inserción establece un valor para la columna, y en caso negativo,
establecerá el valor por defecto.
La restricción DEFAULT se implementa en T-SQL con la palabra clave
DEFAULT; por ejemplo, si queremos añadir una columna Importe a la
tabla Pedidos, y su valor por defecto sea cero, podríamos ejecutar el
siguiente código T-SQL:
ALTER TABLE dbo.Pedidos
ADD Importe DEFAULT (0). “
Tomado de Microsoft SQL Server Management Studio Express - Community
Technology Preview (CTP) November 2005:
http://www.desarrollaconmsdn.com/msdn/CursosOnline/Curso_SQL_Server/index.ht
ml
Tema 3: DML del SQL para la manipulación de bases de datos.
Con este tema se darán a conocer los conceptos básicos para poder manipular las
bases de datos utilizando comandos SQL.
Imagen realizada por: Oralia Cortés Grajales
DML: Lenguaje de manipulación de datos
Cláusula Descripción
SELECT Utilizada para especificar los campos y datos que se van a mostrar
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
Utilizada para especificar las condiciones que deben reunir los registros que se
WHERE
van a seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos específicos
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
Utilizada para ordenar los registros seleccionados de acuerdo con un orden
ORDER BY
específico
OPERADORES LÓGICOS
Operador Uso
Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si
AND
ambas son ciertas.
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdero si
OR
alguna de las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.
OPERADORES DE COMPARACIÓN
Operador Uso
< Menor que
> Mayor que
<> Distinto de
<= Menor o Igual que
>= Mayor o Igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo
Utilizado para especificar registros de una base de datos
In
Para realizar consultas que extraen información de la base de datos se utilizan las
siguientes clausulas.
Consultas de selección
o Selección de columnas y cláusula FROM
o Cláusula WHERE
o Cláusula JOIN
o Cláusula GROUP BY
o Cláusula TOP
o Cláusula Having
o Cláusula Order by
Consultas de modificación
o Sentencia INSERT
o Sentencia UPDATE
o Sentencia DELETE
Consultas de Selección
Permiten recuperar información de la base de datos. Se muestra cómo elegir las
columnas de las tablas a recuperar, y cómo aplicar distintos tipos de cláusulas como
WHERE, JOIN, GROUP BY, y TOP en la consulta.
Selección de columnas y cláusula FROM
Usando la cláusula FROM cuáles son las tablas, vistas, funciones, tablas derivadas o
expresiones de tablas comunes involucradas en la consulta.
Consultas en SQL Server
Como recomendación, deberás intentar ser lo más selectivo posible en las
columnas a incluir en la cláusula SELECT. ¿Por qué razón? ¿Recuerdas la
estructura de los índices? Si deseamos todas las columnas de una tabla,
estaremos "forzando" a SQL Server a acceder al nivel de datos de las
páginas (recuerda: abajo del todo), y estaremos limitando la efectividad de
los índices diseñados en las tablas.
El contrapunto de éste comentario es la parte de desarrollo, si generamos
código "genérico" que recupera todas las columnas porque las columnas
serán necesarias unas veces si y otras no, estaremos penalizando el
rendimiento del servidor SQL Server Express pero estaremos ganando
tiempo de desarrollo...
Para ejecutar una consulta desde SQL Server 2005 Management Studio Express,
conectaremos a la base de datos DemoMSDN, desde una de las opciones
marcada en la siguiente imagen en recuadro rojo:
A continuación deberás escribir el siguiente texto para rellenar unas cuantas filas
en la tabla clientes (veremos luego la sentencia INSERT):
INSERT Clientes SELECT 'Julia Herrera', 'Alicante';
INSERT Clientes SELECT 'Javier Álvarez', 'Madrid';
Para ello, copia el texto en la ventana de texto, y pulsa F5, o el botón Execute para
ejecutar la sentencia.
Borra el texto de la sentencia, y escribe el siguiente texto:
SELECT Id AS Identificador, Nombre FROM Clientes;
Ejecuta la instrucción y verás como resultado todas las filas de la tabla Clientes.
Fíjate que la columna de base de datos Id, ahora parece que se llama
Identificador. Esto es un alias de columna; habrá ocasiones en las que necesites
personalizar el nombre de columna que se muestra.
Desde Management Studio, también se puede ver la información de la tabla de
forma similar a como se presenta en Access; para ello, deberás seleccionar la
tabla que quieres editar, botón derecho del ratón, y elegir la opción "Open Table"
como aparece en la siguiente imagen:
Y como resultado tendremos:
Deberás tener cuidado con abrir tablas muy grandes, porque el proceso de
carga es más costoso cuanto mayor sea el tamaño de la tabla. Sin
embargo, en la versión 2005 de las herramientas administrativas, tenemos
la posibilidad de cancelar consultas mientras se está realizando la petición;
fíjate en el botón marcado en color rojo en la siguiente imagen; pulsando
dicho botón se solicita al servidor que se cancele la consulta.
Cláusula WHERE
La cláusula WHERE se utiliza para aplicar filtros al conjunto de resultados; para
ello existen operadores lógicos AND, OR, NOT, EXISTS con los condicionantes <,
>, =, y BETWEEN. No hay límite para el número de condiciones a establecer. El
orden de prioridad de los operadores lógicos es NOT, seguido de AND y OR. Se
pueden utilizar paréntesis para suplantar esta prioridad en una condición de
búsqueda.
Cuando se necesita recuperar información de más de una tabla, se suele
especificar cuáles son las filas coincidentes entre ambas tablas (columnas Clave
Ajena / Clave Primaria que vimos en la lección anterior). Para ello, hay una serie
de operadores que condicionan dicho filtro.
Tomado de: Microsoft SQL Server Management Studio Express - Community
Technology Preview (CTP) November 2005:
http://www.desarrollaconmsdn.com/msdn/CursosOnline/Curso_SQL_Server/index.ht
ml
INNER JOIN
Específica que se devuelvan todos los pares de filas coincidentes. Las filas no
coincidentes se descartan del resultado. Si no se especifica ningún tipo de
combinación, éste es el tipo por defecto.
Ejemplos de consultas creadas en la base de datos constructora del tema 2.
Abrimos el editor del sql server y activamos la base de datos DB_constructora
/* insertamos datos en cada tabla*/
/* insertamos datos en cada tabla, los datos deben corresponder con el orden
dado en la definición*/
/**Para ver los datos de oficio seleccionamos y ejecutamos*******/
Select * from tbloficio
/********insertar registros para trabajador************/
/*sugerencia ejecute por linea para que reconozca facilmente el erro si lo hay**/
into tbltrabajador values(1235,'Annie',12500,'Electrico')
Insert into tbltrabajador values(1311,'Roberto',15750,'Decorador')
Insert into tbltrabajador values(1412,'Carlos',13700,'Decorador')
Insert into tbltrabajador values(1415,'Lina',12500,'Decorador')
Insert into tbltrabajador values(1418,'Pedro',10000,'Carpintero')
Insert into tbltrabajador values(1520,'Luis',11750,'Electrico')
Insert into tbltrabajador values(1525,'Juan',20000,'Arquitecto')
Insert into tbltrabajador values(2920,'Raul',10000,'Carpintero')
Insert into tbltrabajador values(3001,'Gabriel',15500,'Decorador')
Insert into tbltrabajador values(3231,'Alvaro',17400,'Decorador')
Insert into tbltrabajador values(4446,'Mario',8200,'Albañil')
Insert into tbltrabajador values(8520,'Bernardo',8500,'Albañil')
/*Para la tabla area*/
Insert into tblarea values('a10','Sur',2)
Insert into tblarea values('a11','Sur',4)
Insert into tblarea values('a12','Norte',3)
Insert into tblarea values('a13','Norte',2)
/*Para la tabla edificio*/
Insert into tbledificio values(111,'calle1213','Oficina',3,2,'a10')
Insert into tbledificio values(210,'calle1222','Oficina',4,3,'a10')
Insert into tbledificio values(215,'calle1215','Comercio',5,3,'a11')
Insert into tbledificio values(312,'calle1313','Oficina',5,2,'a13')
Insert into tbledificio values(435,'calle1513','Comercio',2,4,'a13')
Insert into tbledificio values(460,'calle1263','Almacen',4,4,'a12')
Insert into tbledificio values(520,'calle1223','Residencia',3,5,'a10')
Insert into tbledificio values(820,'calle1245','Almacen',3,5,'a10')
/*Para la tabla asignar*/
Insert into tblasignar values(1235,111,'02/02/02',25)
Insert into tblasignar values(1235,210,'01/03/02',5)
Insert into tblasignar values(1235,520,'02/02/02',25)
Insert into tblasignar values(1235,820,'01/03/02',5)
Insert into tblasignar values(1235,215,'02/07/02',10)
Insert into tblasignar values(1235,312,'02/02/02',10)
Insert into tblasignar values(1235,435,'01/02/04',22)
Insert into tblasignar values(1235,460,'02/02/05',21)
Insert into tblasignar values(1412,210,'02/02/02',22)
Insert into tblasignar values(1412,312,'02/02/02',14)
Insert into tblasignar values(1418,435,'02/02/02',23)
Insert into tblasignar values(1418,460,'02/02/02',10)
Insert into tblasignar values(3231,312,'02/02/02',25)
Insert into tblasignar values(3231,111,'02/02/02',13)
Insert into tblasignar values(4446,111,'02/02/02',18)
Este es el digrama correspondiente a la base de datos que acbamos de crear.
tblTrabajador
Cedula
Nombre
Valor_Hora
Tipo_Oficio
tblAsignar
Cedula
Iden_Edif
Fecha_I
Num_Dias
tblOficio
Tipo_Oficio
Bonificacion
tblEdificio
Horas_Semanas Iden_Edif
Direccion
Tipo
Calidad
Categoria
Cod_Area
tblArea
Cod_Area
Nom_Area
Estrato
Consultas sobre la base de datos
Operaciones en la clausula select
1. *: muestra todos los campos de la tabla
/*Mostrar todos los datos de los trabajadores*/
SELECT *
FROM TBLtrabajador
2. Distinct: muestra los datos sin repetir valores.
/*Mostrar los oficios de los trabajadores con Distinct*/
SELECT DISTINCT tipo_oficio
FROM TBLtrabajador
3. As: renombra las columnas de la consulta
/*Mostrar los oficios de los trabajadores renombrado en oficio.t*/
SELECT tipo_oficio as oficio
FROM TBLtrabajador
4. Operaciones aritméticas: se pueden multiplicar, sumar, restar y dividir
columnas.
/*Hallar el nombre del trabajador con el valor hora aumentado el 3%*/
SELECT NOMBRE,valor_hora + valor_hora * 0.3 AS PORCENTAJE
FROM TBLtrabajador
5. Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de
registros para devolver un único valor que se aplica a un grupo de registros.
AVG Utilizada para calcular el promedio de los valores de un campo
determinado.
COUNT Utilizada para devolver el número de registros de la selección.
SUM Utilizada para devolver la suma de todos los valores de un campo
MAX Utilizada para devolver el valor más alto de un campo especificado.
MIN Utilizada para devolver el valor más bajo de un campo especificado.
/*Hallar el total el máximo de los valores hora*/
SELECT SUM(valor_hora) AS total, MAX(valor_hora) AS maximo
FROM TBLtrabajador
Operaciones en la clausula where
1. Operadores de Comparación
< Menor que
Mayor que
<>Distinto de
<= Menor o Igual que
>= Mayor o Igual que
= Igual que
/*Hallar los nombres de los trabajadores que tienen un valor hora mayor que
10000*/
select nombre
from TBLtrabajador
where valor_hora>10000
2. BETWEEN: Utilizado para especificar un intervalo de valores.
/*Hallar los nombres de los trabajadores que tienen un valor hora entre
10000 y 30000*/
SELECT nombre, valor_hora
FROM TBLtrabajador
WHERE (valor_hora BETWEEN 10000 AND 30000)
3. LIKE: Utilizado en la comparación de un modelo
/* Hallar el nombre del trabajador que el nombre tenga la cadena ar*/
select *
from TBLtrabajador
where nombre like '%ar%'
4. In: Utilizado para especificar registros de una base de datos
/*Hallar los datos de los trabajadores Nelson Fernando o Gabriel*/
select *
from TBLtrabajador
where nombre in(‘Nelson’,’ Fernando’,’ Gabriel’)
Consultas Que alteran el contenido de la tabla
Sentencia INSERT
/*La sintaxis para insertar datos en una tabla mediante una fila por vez es la
siguiente: */
Sintaxis
INSERT INTO "nombre_tabla" VALUES ("valor1", "valor2", ...)
Ejemplo: insert into estudiante values (2008131001,'oscar',2895463,'cll 10')
Sentencia UPDATE
Sintaxis
UPDATE <nombre_tabla>
SET <campo1> = <valor1>
{[,<campo2> = <valor2>,...,<campoN> = <valorN>]}
[ WHERE <condicion>];
/*Ejemplo cambiar el nombre de oscar por Pedro*/
UPDATE Estudiante
SET nombre = 'Pedro'
WHERE nombre = 'oscar'
Sentencia DELETE
Sintaxis
DELETE FROM <nombre_tabla>
[ WHERE <condicion>];
/*Ejemplo borra los registros que cumplan la condición con nombre Pedro.*/
DELETE FROM estudiante
WHERE nombre = 'Pedro';
Tema 4: Consultas más Avanzadas
Las consultas pueden involucrar varias tablas, clausulas de agrupacion, selección de
grupos, subconsultas y referencias cruzadas.
En el siguiente documento consultas_avanzadas. Pdf puede aplicar consultas más
avanzadas o más elaboradas para la base de datos constructora que viene
trabajando como ejemplo.
Consulta de referencias cruzadas
A veces es necesario hacer girar los resultados, de forma que las columnas se presenten
horizontalmente y las filas se presenten verticalmente.
Ejemplo
/******referencias cruzadas****/
“Create database referenciascruzadas
USE referenciascruzadas
GO
CREATE TABLE Pivot
( Year SMALLINT,
Quarter TINYINT,
Amount DECIMAL(2,1) )
GO
INSERT INTO Pivot VALUES (1990, 1, 1.1)
INSERT INTO Pivot VALUES (1990, 2, 1.2)
INSERT INTO Pivot VALUES (1990, 3, 1.3)
INSERT INTO Pivot VALUES (1990, 4, 1.4)
INSERT INTO Pivot VALUES (1991, 1, 2.1)
INSERT INTO Pivot VALUES (1991, 2, 2.2)
INSERT INTO Pivot VALUES (1991, 3, 2.3)
INSERT INTO Pivot VALUES (1991, 4, 2.4)
GO
Ésta es la instrucción SELECT que se utiliza para crear resultados girados:
SELECT Year,
SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,
SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,
SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,
SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4
FROM Northwind.dbo.Pivot
GROUP BY Year
GO
Esta instrucción SELECT realiza también el tratamiento de una tabla en la que hay varias
filas por cada trimestre. La cláusula GROUP BY combina todas las filas de Pivot de un año
determinado en una única fila del resultado. Cuando se realiza la operación de
agrupamiento, las funciones CASE de los agregados SUM se aplican de tal forma que los
valores Amount de cada trimestre se agregan a la columna adecuada del conjunto de
resultados, y se agrega 0 a las columnas del conjunto de resultados del resto de los
trimestres.
Si los resultados de esta instrucción SELECT se usan como entrada de una hoja de
cálculo, es fácil para la hoja de cálculo calcular un total para cada año. Cuando se usa
SELECT desde una aplicación, puede ser más fácil mejorar la instrucción SELECT para
calcular el total anual. Por ejemplo:
SELECT P1.*, (P1.Q1 + P1.Q2 + P1.Q3 + P1.Q4) AS YearTotal
FROM (SELECT Year,
SUM(CASE P.Quarter WHEN 1 THEN P.Amount ELSE 0 END) AS Q1,
SUM(CASE P.Quarter WHEN 2 THEN P.Amount ELSE 0 END) AS Q2,
SUM(CASE P.Quarter WHEN 3 THEN P.Amount ELSE 0 END) AS Q3,
SUM(CASE P.Quarter WHEN 4 THEN P.Amount ELSE 0 END) AS Q4
FROM Pivot AS P
GROUP BY P.Year) AS P1
GO “
Tomado de Database tool for MS SQL. Obtenido el 13 de octubre de 2013 de
http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/sql-
server/respuestas/208707/referancias-cruzadas
FUENTES DE ESTUDIO
Introducción_sql server.pdf En el siguiente enlace encuentra un tutorial que le
guía paso a paso como crear las bases de datos en la interfaz gráfica de SQL
server. Tomado de: Microsoft SQL Server 2005, Express edition, Obtenido en
Internet el 23 de agosto de 2013.
http://www.desarrollaconmsdn.com/msdn/CursosOnline/Curso_SQL_Server/ind
ex.html
Tipos de datos.pdf: En el documento encuentra los tipos de datos utilizados por
SQL Server 2008 Obtenido en Internet el 23 de septiembre de 2013 de
http://technet.microsoft.com/es-es/library/ms172424.aspx
Consultas_avanzadas. Pdf: En el siguiente documento puede aplicar consultas
más avanzadas o más elaboradas para la base de datos constructora que
viene trabajndo como ejemplo. Documento aelborado por Oralia Cortés G
Microsoft® SQL Server® 2008 R2 SP2 - Express Edition. Obtenido en Internet el
23 de septiembre de 2013 de http://www.microsoft.com/es-
co/download/details.aspx?id=30438.
En esta dirección puede descargar e instalar el programa y las ayudas para el
DBGS SQL Server 2008.
http://issuu.com/ngiraldo/docs/basesdatos: Aquí encuentra un módulo de base de
datos perteneciente a un proyecto PAV(proyecto de Aprendizaje Virtual) donde Oralia
Cortés Grajales participó con los contenidos y se dejó en la web para apoyo a todos
los temas de bases de datos.
Conclusión
Se concluye en esta competencia que el estudiante maneja el lenguaje DDL y DML
para la gestión de los datos almacenados en la base de datos relacional, para la
aplicación de situaciones reales, es muy importante tener claros las peticiones que
hace el usuario ya que por medio de la estructura creada y las consultas se pueden
satisfacer estas necesidades planteadas inicialmente por el cliente. Esto le
proporciona la infraestructura requerida para la elaboración de los sistemas de apoyo
a la toma de decisiones y para los sistemas de información que requieren de bases
de datos.
Referencias
Aprenda SQL Server. Recuperado de http://www.slideshare.net/fsilvasys/aprenda-
sql-server
Creación de tablas SQL Server 2008. Recuperado de
http://www.slideshare.net/jeshito111/creacion-de-tablas-sql-server-2008-9301819
Curso de SQL Server. Aulaclic. Recuperado de http://www.aulaclic.es/sqlserver/
Database tool for MS SQL. Todoexpertos Recuperado de
http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/sql-
server/respuestas/208707/referancias-cruzadas
Date, C.J. (1993). Introducción a los Sistemas de Bases de Datos. México: Addison-
Wesley.
Gestor de base de datos. Recuperado de
http://tombasededatos.wordpress.com/category/clases/page/2/
Hansen, G., & Hansen, J. (1997). Diseño y administración de Bases de Datos.
México: Prentice Hall.
Korth, H., Silbershatz, A., & Sudarshan, S. (2006). Fundamentos de Bases de Datos.
Madrid: McGraw-Hill.
Microsoft SQL Server Management Studio Express - Community Technology Preview
(CTP) November 2005. Recuperado de
http://www.desarrollaconmsdn.com/msdn/CursosOnline/Curso_SQL_Server/index.ht
ml
Microsoft® SQL Server® 2008 R2 SP2 - Express Edition. Recuperado de
http://www.microsoft.com/es-co/download/details.aspx?id=30438.
Proyecto P.A.V. Plataforma de Aprendizaje Virtual Recuperado de
http://es.scribd.com/doc/44997183/BasesdeDatos.
Tipos de datos utilizados por SQL Server 2008 Recuperado de
http://technet.microsoft.com/es-es/library/ms172424.aspx
Tutorial desde 0: Crear base de datos en SQL Server 2005/2008 usando SQL Server
Management Studio Express. Web Telemática. Recuperado de
http://webtelematica.wordpress.com/2010/02/16/tutorial-desde-0-crear-base-de-datos-
en-sql-server-20052008-usando-sql-server-management-studio-express/