Sie sind auf Seite 1von 15

Base de datos

Concepto de Base de Datos


Base de Datos es un conjunto exhaustivo no redundante de datos estructurados organizados
independientemente de su utilización y su implementación en máquina accesibles en tiempo real
y compatibles con usuarios concurrentes con necesidad de información diferente y no predicable
en tiempo.

Es decir los datos contemplados son todos los requeridos y se pueden utilizar con diferentes
propósitos y procesos para obtener información que los usuarios requieren de manera particular
en diferentes o similares instancias de tiempo.

La implementación de la base de datos es información almacenada en memoria auxiliar que


permite acceso directo y los programas que manipulan dichos datos.
Datos e información:
Los datos son hechos que se registran en
algún medio, y tienen como característica
ser conocidos, verificables, actualizables y
medibles, en la mayoría de los casos se
requiere una facilidad para recuperarlos.

A partir de los datos se genera información.


Es decir se usan en un proceso se obtiene un
hecho nuevo que se denomina información
el que a su vez puede ser presentado y
almacenado como un nuevo hecho.

Se presenta así un ciclo en el que a partir de El procesamiento de datos origina


la aparición de información.
los datos se obtiene información y al ser
ésta registrada se convierte asi en dato nuevamente para ser utilizado para otros propósitos, por
ejemplo obtener estadísticas, indicadores de gestión, totales, etc. Los datos almacenados en las
tablas de una o más bases de datos vienen a ser parte de la entrada a un procesamiento de datos,
complementándose con otros datos de entrada como parámetros y otros. Los reportes se usan
para mostrar datos e información; en forma indistinta y se usan como las salidas de un sistema
de procesamiento de datos.

Datos
Proceso Información Presentación Reportes

Ventajas de las bases de datos


1. Independencia de datos y tratamiento.
o Cambios en los datos no implica cambio en programas y viceversa (Menor
costo de mantenimiento).
2. Coherencia de resultados.
o Reduce redundancia :
o Acciones lógicamente únicas.
o Se evita inconsistencia.
3. Mejora en la disponibilidad de datos
o No hay dueño de datos (La base de datos es pública, pero el acceso a sus
componentes se puede particularizar).
 Ni las aplicaciones ni los usuarios son dueños.
o Guardamos descripción (La misma idea se aplica en los catálogos).
4. Cumplimiento de ciertas normas.
o Restricciones de seguridad.
o Accesos (Usuarios a datos).
o Operaciones (Operaciones sobre datos).
5. Otras ventajas :
o Es más eficiente la gestión de almacenamiento.
o Efectos sinérgicos.

En las etapas de diseño, implementación y su uso las bases de datos estarán conformadas
siempre por una o más tablas.
Tabla
Una tabla es una colección de datos sobre algún tema específico, tal como por ejemplo los
productos o proveedores de un negocio. Al usar una tabla independiente para cada tema, los
datos se almacenan sólo una vez. Esto tiene como resultado una base de datos más eficaz y
menos errores de entrada de datos. Toda tabla está conformada a su vez de un grupo de
registros. El elemento básico en una tabla es el registro.
Registro
El registro agrupa la información asociada a un elemento de un conjunto, y está compuesto por
campos. Así por ejemplo, un registro correspondiente a un libro no es más que un elemento de
un conjunto: bibliotecas, autores, editoriales, etc. A su vez, ese registro contiene toda la
información asociada al libro, clasificada en campos: título, autor, fecha de edición, editorial,
etc.
Campo, es una
columna de la tabla

Registro, es una
fila en una tabla

Campo
Son las propiedades o características, y propiedades secundarias que se hallan en un registro,
según se definan o complementen el elemento representado por el registro.

Por ejemplo, el registro Empleados tiene los siguientes campos: DNI, Nombre, Apellidos, Edad,
Población, Sueldo. Los campos DNI, Nombre y Apellidos son elementos o campos
característicos. Los restantes son secundarios.Un archivo o tabla es un conjunto de registros con
la misma estructura:

DNI Nombre Apellidos Edad Ciudad Sueldo


112233 Luis Pérez 56 Lima 2300
441266 Ángel López 43 Lima 2200
362477 José Sánchez 36 Lima 2500
213699 Alberto Juárez 40 Trujillo 2800
Tabla de empleados
En el ejemplo siguiente, podría extraerse la información relacionada en las dos tablas, por medio
del campo común DNI; por ejemplo: Buscar en la tabla los puestos de trabajo desempeñados y
la antigüedad del empleado con nombre igual Luis"

Lenguaje de Gestión de Base de datos


Hasta la década de los 80, las personas que preparaban las consultas e informes de una base de
datos debían ser programadores. Los programas para administrar bases de datos poseen un
lenguaje de consulta sencillo y estandarizados, semejantes al lenguaje natural, el proceso de
consulta puede hacerlo cualquier usuario mediante un lenguaje escrito asequible.

El lenguaje de gestión de bases de datos más conocido y en uso en la actualidad es el SQL,


Structured Query Language, que es un lenguaje estándar internacional, comúnmente aceptado
por los fabricantes de generadores de bases de datos.

El SQL trabaja con estructura cliente/servidor sobre una red de computadores. El cliente es el
equipo de cómputo que inicia la consulta; el servidor es el equipo de cómputo que atiende esa
consulta. El equipo cliente utiliza toda su capacidad de proceso para trabajar; se limita a solicitar
datos al equipo servidor, sin depender para nada más del exterior. Estas peticiones así como las
respuestas son transferencias de textos que cada equipo cliente se encarga de sacar por pantalla,
presentar en informes tabulados, imprimir, guardar, etc., dejando el equipo servidor libre.
El SQL permite:

 Definir una base de datos mediante tablas.


 Almacenar información en tablas.
 Seleccionar la información que sea necesaria de la base de datos.
 Realizar cambios en la información y estructura de los datos.
 Combinar y calcular datos para conseguir la información necesaria.

SQL es el lenguaje de comunicación entre el programa cliente y programa servidor, el motor de


base de datos es un programa servidor, en el que está la base de datos propiamente dicha.

El usuario accede con alguno de los programas cliente disponible para hacer consultas al motor
de base de datos. En este libro se explica como emplear SQL para:

 Crear y modificar la estructura de una tabla de datos.


 Seleccionar información de una tabla.
 Añadir datos a una tabla.
 Introducir información en una tabla.
 Realizar consultas entre tablas con campos comunes.
Para el desarrollo de los ejercicios puede crear una base de datos en SQL Server la que se
denominará Planilla se incluirá en ella algunas tablas parte de este trabajo consiste en la
definición de los campos o columnas de las tablas, labor que se conoce como definición de la
estructura de las tablas.
Además se insertará algunos registros en dichas tablas, se eliminará registros en una tabla y se
modificarán datos en las tablas. Otras operaciones disponibles son las consultas o búsquedas.
Estructura de una tabla
Una base de datos está varias tablas. Las columnas de una tabla poseen una estructura en la que
se indica el tamaño de las columnas y el tipo de dato de cada una de ellas.

Por ejemplo se tienen dos tablas: Areas y Empleados, la primera representa las diferentes áreas
dentro de una organización y la segunda a los empleados que laboran en la misma.

Estructura de la Tabla Area:

Estructura de la Tabla Empleado:

Creación de una tabla


Antes de cualquier consulta a una base de datos debe crearse una tabla e introducir la
información. En nuestro caso creamos las dos tablas que vamos a utilizar como ejemplo lo
siguiente se puede ejecutar desde el Analizador de consultas del MS SQL Server™, antes debe
de estar creada la base de datos Planilla:

CREATE TABLE Area (Area_Codigo Integer, Area_Nombre Char(14), Ubicacion Char (13))

El comando crear tabla (CREATE TABLE) indica al servidor que nombre queremos poner a la
tabla, los nombres de las columnas de la tabla: código de departamento, nombre del
departamento y localidad y el tipo de información que cada columna va a contener.

La columna Area_Codigo tendrá información numérica (2 dígitos), Area_Nombre tendrá 14


caracteres y Ubicacion tendrá 13 caracteres; de este modo especificamos la longitud máxima de
cualquier dato que pueda ser almacenado en las columnas de la tabla.

Se procede de forma análoga con la tabla Empleado con el comando CREATE TABLE:

CREATE TABLE Empleado (Empleado_Codigo Integer NOT NULL,


Empleado_Nombre Varchar(20), Cargo Char(9), Jefe Integer,
Fecha_Contratacion DateTime, Sueldo_Basico Decimal(7,2),
Comision Decimal(7,2), Area_Codigo Integer)
En esta tabla se ha definido la columna código de empleado (Empleado_Codigo) como no nula,
esto significa que cada campo de esa columna debe contener un valor. Esta especificación NOT
NULL es un ejemplo de como el motor analiza los valores que se introducen en cada campo y
comprueba que se cumple lo especificado.
Introducción de la información
Tan pronto como se ha creado la tabla, puede comenzarse a introducir líneas o registros de
información mediante comando INSERT:

INSERT INTO Area VALUES (10, 'Ventas', ' San Borja')

En este comando, primero se nombra la tabla de la base de datos en la que se quiere hacer la
inserción de los datos (Area), y a continuación la lista de valores que van a ir en cada columna
(10, 'Ventas', 'San Borja').

INSERT INTO Area ( Ubicacion, Area_Codigo , Area_Nombre ) VALUES ('Miraflores', 20,


'Contabilidad')

En este ejemplo se hace mención específica, de los contenidos para cada campo. Lo cual trae
como ventaja, el que no se necesita obligatoriamente indicar los campos en el orden en que esta
diseñada la tabla.

En el ejemplo siguiente no se hace mención a los campos pero si a los datos y se indica
unicamente los datos y el orden que tienen en la estructura de la tabla.

INSERT INTO Area VALUES (30, 'Finanzas', 'San Isidro')

En los siguientes ejemplos se pondrán las instrucciones para insertar registros en la tabla
Empleados:

INSERT INTO Empleado VALUES (1, 'José', 'GERENTE', 0, '20040327', 5000, 0, 10)
INSERT INTO Empleado VALUES (2, 'Allan', 'ANALISTA', 1, '20040327', 2500, 0, 10)
INSERT INTO Empleado VALUES (3, 'Eduardo', 'ANALISTA', 1, '20040327', 3000, 0, 10)

Los cual significa que, todos los registros anteriores corresponden a empleados del área de
Ventas, debido a que se ha puesto el valor 10 en el último campo en los tres registros, el que es
el código del área de Ventas en la tabla Area.

Otra indicación es que los empleados Allan y Eduardo tiene como jefe al empleado José, lo que
se deduce del valor 1 puesto en el orden que corresponde al campo Jefe en las dos últimas
inserciones de los registros.
Búsqueda de información en una tabla
La operación más común en una base de datos es solicitar información, y se conoce como la
búsqueda o Query. El comando SELECT va seguido de FROM y en otros casos seguido de
WHERE. SELECT especifica las columnas, FROM especifica las tablas y con WHERE
especifica las condiciones. Si no hay condiciones de búsqueda se presentarán las columnas
completas, sin restricciones.

SELECT Area_Codigo, Area_Nombre, Ubicacion FROM Area

Dará como resultado lo siguiente:


Si se quiere ver el contenido de toda la tabla Area, puede sustituirse toda la lista de columnas
por un asterisco:

SELECT * FROM Area

Se verá lo mismo que en el caso anterior.


Búsqueda de Información en tablas

El orden en el que vemos las columnas (Area_Nombre, Area_Codigo ) es en el que se ha puesto


en el comando SELECT:

SELECT Area_Nombre, Area_Codigo FROM Area

Dará como resultado lo siguiente:

Para seleccionar determinados registros o filas de la base de datos, debe añadirse una condición
con el comando WHERE al usar SELECT... FROM:

SELECT * FROM Empleado WHERE Jefe = 1

Lo anterior obtiene todas las filas correspondientes a los empleados cuyo jefe tiene por código
de empleado el número 1. WHERE obliga al motor a buscar en la información de la tabla y
mostrar solo aquellas líneas o registros que cumple la condición.

Condiciones múltiples para una búsqueda


A veces WHERE va seguido de más de una condición:

SELECT Empleado_Nombre, Cargo, Sueldo_Basico FROM Empleado


WHERE Cargo = 'ANALISTA' AND Sueldo_Basico >=100
En este caso se piden los datos del nombre, trabajo, salario de aquellos empleados de la tabla
cuyo empleo sea 'ANALISTA' y su salario mayor o igual que 100:

Para las condiciones alternativas, negativas (excluyentes) se utilizan los comandos OR, y NOT.
Así por ejemplo:
SELECT Empleado_Nombre, Cargo, Sueldo_Basico FROM Empleado
WHERE Cargo = 'GERENTE' OR Sueldo_Basico >=100

pide los datos de empleados con cargo 'GERENTE' o su salario sea mayor que 100:

El siguiente ejemplo pide un listado con los nombres, cargos y número de área de los empleados
cuyo cargo sea 'ANALISTA' y su código de área sea distinto de 10.

SELECT Empleado_Nombre, Cargo, Sueldo_Basico FROM Empleado


WHERE Cargo = 'ANALISTA' AND Área_Codigo <> 10
Y su resultado es el siguiente:

Mediante los comandos BEETWEEN y AND pueden pedirse datos comprendidos en algún
rango determinado. El ejemplo siguiente el nombre y el salario de los empleados cuyo salario
esté comprendido entre 800 y 900:

SELECT Empleado_Nombre, Sueldo_Basico


FROM Empleado WHERE Sueldo_Basico BETWEEN 2500 AND 3500

El comando IN permite seleccionar líneas cuyo campo contenga uno de los valores de una lista
especificada entre paréntesis:

SELECT * FROM Area WHERE Area_Codigo IN (10,30)

En este ejemplo, como la lista está compuesta por sólo 2 valores, podría haberse empleado OR
para realizar la misma búsqueda:

SELECT * FROM Area WHERE Area_Codigo ='10' OR Area_Codigo ='30';

Búsquedas por palabras incompletas


Pueden seleccionarse líneas de información mediante búsquedas de palabras incompletas:
buscar empleados en cuyo nombre tenga una 'u' en el 3er lugar:

SELECT Empleado_Nombre FROM Empleado WHERE Empleado_Nombre LIKE '_ _u%'


En este ejemplo se utiliza el operador LIKE de SQL. Además, mediante el signos de _ se
especifica las dos posiciones ('_ _R%'), y el signo % indica que puede seguir cualquier cadena
de caracteres. De acuerdo a la siguiente tabla:

Símbolo Descripción Ejemplo


% Cualquier cadena de WHERE Empleado_Nombre LIKE '%la%'
cero o más busca los nombres que contengan la 'la' en
caracteres. cualquier parte del nombre.
_ Cualquier carácter WHERE Empleado_Nombre LIKE '_osé'
(subrayado) individual busca todos los nombres de cuatro letras que
finalicen con osé (José, etc.).
[] Carácter individual WHERE Empleado_Nombre LIKE '[G-
de intervalo ([a-f]) o L]ina' busca nombres de empleados que
del conjunto terminen con ina y comiencen con cualquier
([abcdef]). carácter individual entre G y L, por ejemplo
Gina, Lina, etc.
[^] Carácter individual WHERE Empleado_Nombre LIKE 'A[^l]%'
que no se encuentre busca todos los nombres de empleados que
en el intervalo ([^a- comienzan con Al y en los que la siguiente
f]) o el conjunto letra no sea l.
([^abcdef]).

Los operadores BETWEEN, IN y LIKE, pueden ir precedidos por NOT y unidos con AND y
OR, para formar una búsqueda tan completa como se necesite.
Cómo se ordena el resultado de una búsqueda
En todos los ejemplos hasta ahora, las líneas resultado de las búsquedas han estado en un orden
aleatorio, determinado por el motor. Puede controlarse el orden de las líneas seleccionadas
añadiendo la opción ORDER BY al final de nuestro comando SELECT.

Como ejemplo suponga que desea obtener una lista de los empleados que trabajan en el área 10
pero ordenados por su salario. Esta ordenación no está limitada a un orden ascendente o a un
único criterio, así por ejemplo, pueden ordenarse los empleados por puesto de trabajo, y dentro
de esta ordenación (los trabajos) por orden de salarios:

SELECT Cargo, Sueldo_Basico, Empleado_Nombre


FROM Empleado
ORDER BY Cargo, Sueldo_Basico DESC

Donde DESC indica orden descendente (de mayor a menor), y cuyo resultado es el siguiente:
Cómo se evitan las líneas repetidas en un listado Supóngase que se desea obtener una lista de
los cargos en la empresa. Si se pide una columna completa

SELECT Cargo FROM Empleado

Al no haber ninguna condición en nuestra búsqueda, el motor trae a la pantalla todos los valores
de la columna Cargo. En la lista obtenida hay repeticiones que pueden eliminarse especificando
DISTINCT al escribir la búsqueda:

SELECT DISTINCT Cargo FROM Empleado

Expresiones aritméticas y funciones para el manejo de texto


Expresiones aritméticas
Para construir una expresión aritmética deben combinarse a la vez nombres de columnas y
constantes numéricas con una operación aritmética. Por ejemplo:

SELECT Empleado_Nombre, Sueldo_Basico, Comision, Sueldo_Basico + Comision


FROM Empleado
WHERE Cargo='ANALISTA'

Se obtiene un listado con una tercera columna que es la suma de salario y comisiones. La
columna de la suma no es una columna real, es decir no está almacenada en nuestra base de
datos, pero se construye dinámicamente como resultado de una búsqueda, y se puede operar con
la columna resultado como si se tratara de una columna real.

Se adjuntan las principales funciones aritméticas:


Funciones aritméticas significado
 - Suma
 Resta
 Producto
 / División
 POWER exponenciación
 ROUND redondeo
 TRUNC trunca a entero
 ABS valor absoluto
Funciones para el manejo de textos
Las funciones aritméticas nos permiten manipular información numérica, de forma parecida las
funciones para manejo de texto character strings functions permiten manipular los campos que
contienen texto.

El ejemplo siguiente busca en la tabla Empleado los registros cuyo campo Empleado_Nombre
suene parecido a 'Alan':

SELECT Empleado_Nombre FROM Empleado


WHERE SOUNDEX(Empleado_Nombre) = SOUNDEX('Alan')

Se adjuntan las principales funciones de texto:


Funciones de texto significado
 | concatena textos
 LENGTH mide la longitud de un texto
 SUBSTR corta un texto
 INSTR inserta un texto dentro de otro
 UPPER pone en mayúsculas
 LOWER pone en minúsculas
 SOUNDEX sonido de un texto
Formato de fecha
Al crear la tabla Empleado se definió la columna Empleado_Fecha_Contratacion ( fecha de
contrato ) como información tipo fecha (Empleado_Fecha_Contratacion DATE). El formato
estándar será Día-mes-año (03-Sept-93), pero pueden utilizarse otros formatos. Para cambiar de
formato, se puede utilizar el operador TO_ (nombre_de_columna name, formato).

En el siguiente ejemplo se listan algunos datos de los empleados que trabajan en el Areao 30 y
la fecha en formato DY DD MM YY (día de la semana, día, mes, año):

SELECT Empleado_Nombre, Cargo,


Convert ( Varchar, Fecha_Contratacion, 103)
FROM Empleado WHERE Area_Codigo = 10

Operaciones aritméticas con fechas

Además de poder dar formato a la fecha, pueden realizarse operaciones aritméticas en los
campos de fechas:

SELECT GETDATE()
GETDATE( ) siempre nos da la fecha del día (fecha interna del equipo servidor).
Búsquedas anidadas (subqueries)
Supóngase, por ejemplo, que se desea obtener una lista con todos los empleados que tienen el
mismo empleo que KING, puede omitirse el empleo de KING y el motor lo busca, en lo que
constituiría una búsqueda subordinada o subbúsqueda:

SELECT Empleado_Nombre, Cargo FROM Empleado


WHERE Cargo = (SELECT Cargo FROM Empleado WHERE Empleado_Nombre = 'Eduardo')

El motor realiza las búsquedas anidadas antes, por que necesita el resultado de estas para las
búsquedas.

Como ejemplo adicional puede buscarse el empleado que gana más que la media de todos los
salarios de los empleados:

SELECT Empleado_Nombre, Sueldo_Basico FROM Empleado


WHERE Sueldo_Basico > (SELECT AVG(Sueldo_Basico) FROM Empleado)

Modificación de la Información almacenada


Como se ha visto antes, el comando SELECT permite ver un grupo de registros de una o más
tablas. Con SQL también pueden añadirse o modificarse líneas:
UPDATE: Cambia valores almacenados en tablas.
INSERT: Añade líneas a una tabla.
DELETE: Borra líneas a una tabla.
Actualización de datos en la tabla
Si se desease subir el sueldo a todos los analistas (ANALISTA), sería necesario actualizar o
cambiar el valor del salario ( Sueldo_Basico ). Es decir, se debe actualizar, en la tabla de
empleados, el campo de salario en aquellas líneas en que el trabajo sea oficinista. El comando
UPDATE se escribe seguido por la tabla donde realizamos el cambio y para indicar la
actualización, se escribe Set seguido por el cambio, y finalmente la condición (opcional) en la
que se indican las líneas que se van a modificar:

UPDATE Empleado
SET Sueldo_Basico = Sueldo_Basico + 100
WHERE Cargo = 'ANALISTA'
Un mensaje confirmará que la actualización ha tenido lugar.
¿Cómo insertar nuevos registros en una tabla?
El comando INSERT se ha utilizado hasta ahora para introducir líneas de información, pero una
línea cada vez. Sin embargo, puede usarse este comando para añadir un conjunto de líneas desde
una tabla hacia otra. Puede hacerse esto utilizando una búsqueda para definir el conjunto de
líneas que se van a insertar en la tabla.

Supongamos que en nuestra base de datos tenemos una tercera tabla llamada Promocion, con
algunas de las columnas de la tabla Area y queremos introducir en ella la información de todos
los vendedores que tengan de comisión una cifra superior al 25% de su salario, copiando la
información desde la tabla Empleado:

INSERT INTO Promocion (Empleado_Nombre, Cargo, Sueldo_Basico, Comision)


SELECT Empleado_Nombre, Cargo, Sueldo_Basico, Comision
FROM Empleado
WHERE Comision > 0.25 * Sueldo_Basico

El comando Insert utiliza una búsqueda anidada.


Borrado de registros de una tabla
Para borrar se emplea la orden Delete y se puede utilizar con where para determinar los registros
que se quieren borrar. Así por ejemplo, para borrar el área cuyo código es 40 se haría lo
siguiente:

DELETE FROM Area WHERE Area_Codigo = 30

Cuando el motor ha realizado la orden aparece (1 filas afectadas). Puede pedirse un listado de
todos los departamentos para comprobarlo:

SELECT * FROM Area;

Las condiciones para todos esos comandos demuestran como SQL emplea la misma sintaxis
tanto para las búsquedas como para la manipulación de la información. En los comandos
SELECT, UPDATE, INSERT y DELETE, la condición con WHERE es opcional.
Cambios en la Estructura de una Base de datos
Los motores proporcionan los comandos necesarios que se necesitan para modificar la
estructura de las tablas de una base de datos. En esta sección utiliza SQL para:

ALTER TABLE ADD: Añadir una columna a una tabla existente.


ALTER TABLE MODIFY: Hacer una columna existente más larga.

Siguiendo con los ejemplos anteriores, se va a agregar una tabla a la base de datos para poder
definir proyectos y se altera la tabla de empleados para asignar a los empleados estos proyectos,
de manera de tener una relación similar a la que hay entre empleados asignados a las áreas. Se
trata en definitiva de crear una nueva tabla (Proyecto) y practicar los comandos ALTER
TABLE en el diseño de empleados (Empleado).

El cambio en la estructura de la base de datos exige varios pasos. Primero, con el comando
CREATE, hay que añadir la tabla proyectos a la base de datos:

CREATE TABLE Proyecto


(Proyecto_Codigo Integer Not Null, Proyecto_Nombre Char(5), Presupuesto Number(7,2))

En segundo lugar, con el comando INSERT, se introducen algunas líneas:

INSERT INTO Proyecto VALUES (101, 'Alpha', 96000)


INSERT INTO Proyecto VALUES (102, 'Beta', 85000)
INSERT INTO Proyecto VALUES (103, 'Gamma', 24000)

Que son los proyectos en curso dentro de la empresa. Los datos introducidos en la nueva tabla,
pueden examinarse con el comando SELECT actuando sobre la nueva tabla proyectos
(Proyecto):

SELECT * FROM Proyecto

Finalmente para que puedan hacerse búsquedas relacionales sobre las tablas Proyecto y
Empleado, debe añadirse una columna a Empleado denominada número de proyecto
(Proyecto_Codigo), para que las tablas tengan alguna columna en común. Con este fin se utiliza
el comando ALTER TABLE:

ALTER TABLE Empleado ADD Proyecto_Codigo Integer

A este comando se le indica el nombre de la tabla a modificar, la columna que se quiere añadir,
y el tipo de información y su longitud máxima. Ahora puede seleccionarse la tabla Empleado y
ver que en cada línea hay un campo más.

SELECT * FROM Empleado

Antes de ver más ejemplos vamos a insertar más registros:

INSERT INTO Empleado VALUES (4, 'Ana', 'GERENTE', 0, '20040328', 5250, 0, 20, 102)

INSERT INTO Empleado VALUES (5, 'Alicia', 'Contadora', 4, '20040328', 2750, 0, 20, 102)

INSERT INTO Empleado VALUES (6, 'Manuel', 'Contador', 4, '20040328', 2400, 0, 20, 102)

INSERT INTO Empleado VALUES (7, 'Mariella', 'Auxiliar', 5, '20040328', 1600, 0, 20, 102)

Como ejemplo del comando UPDATE, van a reasignarse todos los empleados del Area 20 y
todos los vendedores al proyecto 101:

UPDATE Empleado
SET Proyecto_Codigo = 101
WHERE Area_Codigo = 20 OR Cargo = 'Contador'

Saldrá el siguiente mensaje:

(4 filas afectadas)
Puede consultarse la tabla para confirmar la actualización:

Para completar el ejemplo, se asignan el resto de empleados -los que no tienen proyecto
asociado- al proyecto 102:

UPDATE Empleado
SET Proyecto_Codigo=102

WHERE Proyecto_Codigo IS Null

La actualización de las líneas con el número de proyecto, completa la modificación de la base


de datos ejemplo y permite relacionar los empleados con los proyectos como antes se hacía con
las áreas. Es posible, ahora que las tablas tienen un campo común, el número de proyecto, hacer
búsquedas relacionales:

SELECT Empleado_Nombre, Cargo, Area_Codigo, Proyecto_Nombre


FROM Empleado, Proyecto
WHERE Empleado.Proyecto_Codigo = Proyecto.Proyecto_Codigo
¿Cómo modificar la capacidad de los datos de una columna?
En la definición de la tabla de datos se asigna a cada columna una capacidad. Pero puede
plantearse en un momento dado, cambiar el ancho o capacidad de una columna. En el ejemplo
siguiente, al intentar actualizar una columna con el valor 105000,

UPDATE Proyecto
SET Presupuesto = 105000
WHERE Proyecto_Codigo = 103

Error de desbordamiento aritmético al convertir numeric al tipo de datos numeric.


Se terminó la instrucción.

El SQL Server notifica un error debido a que esa columna sólo tiene capacidad para 7 dígitos
incluyendo la coma y los dos decimales (7,2). Se necesita modificar la definición de la columna
Presupuesto, manteniendo el tipo de información que contiene pero haciéndola más ancha:

ALTER TABLE Proyecto ALTER COLUMN Presupuesto Decimal(8,2)

Y aparece:

(3 filas afectadas)

Una vez modificada la capacidad, la orden se procesa correctamente.

UPDATE Proyecto
SET Presupuesto = 105000
WHERE Proyecto_Codigo = 103

Das könnte Ihnen auch gefallen