Anda di halaman 1dari 19

Asignatura: Sistemas de Base de Datos

TEMA

4
CREAR TABLAS
Introduccin
Probablemente sea usted un usuario experto en un sistema de gestin de base de datos o DBMS (Database Management System). Puede encontrar un DBMS en una biblioteca, en una Web de internet, o en cualquier otro lugar donde se recuperen datos utilizando un ordenador. En este captulo empezaremos a estudiar SQL (Structured Query Language), que es uno de los lenguajes ms populares y utilizados para recuperar y manipular datos de una base de datos. A mediados de los aos 70, se desarroll SQL como el lenguaje de manipulacin de datos para el prototipo de modelo relacional DBMS, System R, bajo el nombre de SEQUEL, en las instalaciones de investigacin de IBM en San Jos (EE. UU.). En 1980, el lenguaje fue renombrado como SQL (aunque tambin se sigue pronunciando secuel, en este libro se utiliza la pronunciacin igualmente popular es-quiu-el) para evitar confusiones con un producto de hardware que no tiene nada que ver llamado SEQUEL. La mayora de los DBMS utilizan una versin de SQL como lenguaje de manipulacin de datos. En este captulo aprenderemos los fundamentos de SQL. Veremos cmo crear tablas y asignar tipos de datos a las columnas. Tambin veremos un tipo especial de valor, llamado valor nulo, y aprenderemos a gestionar estos valores en las tablas. Aprenderemos a insertar datos en las tablas una vez creadas. Por ltimo, aprenderemos a describir el diseo de una tabla utilizando SQL.

Crear y ejecutar comandos SQL


Se pueden llevar a cabo tareas en SQL creando y ejecutando comandos. Para ello, tenemos que utilizar un DBMS con soporte SQL. En este texto utilizaremos Oracle como DBMS en el que crear y ejecutar los comandos. El texto tambin indica algunas diferencias con que nos encontraremos si utilizamos Microsoft SQL Server 2008. Aunque la versin de Oracle que se utiliza en este texto es Oracle Database 10g Express Edition, los comandos que se utilizan en este texto funcionarn igual en cualquier otra versin de Oracle. Puede utilizar Oracle Database Express Edition descargndolo de la web de Oracle, instalndolo y despus utilizndolo con el navegador Microsoft Internet Explorer.

31

Asignatura: Sistemas de Base de Datos

Iniciar Oracle Database Express Edition


Una vez instalado Oracle Database Express Edition, lo iniciamos haciendo clic en el Inicio>Todos los programas>Base de datos Oracle 10g Express Edition>Ir a Pgina Inicial de Base de Datos. Internet Explorer iniciar y cargar la pgina de inicio, que nos solicitar el nombre de usuario y contrasea. (Pregunte a su profesor qu nombre de usuario y contrasea utilizar, o utilice el que especific al instalar la aplicacin (Usuario: system). Si se inicia un navegador diferente, pida ayuda a su profesor. Otros navegadores pueden no soportar por completo los ejemplos de este libro.) Una vez introducida la informacin, haga clic en el botn Conectar. En la figura 3.1 vemos la pgina de inicio de Oracle Database Express Edition. Haga clic en los conos de la pgina de inicio para acceder a las diferentes herramientas. En este texto utilizaremos la herramienta SQL. Las otras herramientas nos permiten administrar la base de datos, trabajar con objetos de la base de datos y ejecutar diferentes utilidades de la base de datos. (Estas funciones van ms all de lo que abarca este libro.)

Figura 3.1. Pgina de inicio de Oracle Database Express Edition. Nota: En la figura vemos que el usuario SYSTEM (administrador) est conectado actualmente. Su profesor podra asignarle otro nombre de usuario al conectarse, en cuyo caso este ser el nombre que aparecer en su pantalla. Existen dos maneras de utilizar las herramientas en Oracle Database Express Edition. Podemos hacer clic en la flecha para que el cono despliegue un men y despus seleccionar una opcin del men. En la figura 3.2 vemos el resultado de hacer clic en la flecha del cono SQL y despus seleccionar la opcin Archivos de Comandos SQL del men SQL. Aparecer un submen de comandos para trabajar con archivos de comandos SQL. Por ejemplo, para crear un archivo de comandos siguiendo esta opcin, haramos clic en la flecha y seleccionaramos Archivos de Comandos SQL>Crear. (Ms adelante veremos ms sobre archivos de comandos.)

32

Asignatura: Sistemas de Base de Datos Tambin podemos hacer clic en el cono para mostrar las opciones como conos en lugar de como submens. Por ejemplo, si hacemos clic en el cono SQL de la pgina de inicio, veremos la pgina SQL de la figura 3.3. Si hacemos clic en la flecha de uno de los conos se desplegar un submen. En la figura vemos los resultados de hacer clic en la flecha del cono Archivos de Comandos SQL, que muestra el submen Archivos de Comandos SQL. Para crear un archivo de comandos con esta opcin, haga clic en el cono SQL de la pgina de inicio, y clic en la flecha del cono Archivos de Comandos>Crear. La opcin elegida depende de sus preferencias.

Figura 3.2. Submen Archivos de Comandos SQL.

Figura 3.3. Submen Archivos de Comandos en la pgina SQL.

33

Asignatura: Sistemas de Base de Datos

Introducir Comandos
Los comandos se introducen en la pgina de comandos SQL. Para acceder a la pgina de Comandos SQL, haga clic en la flecha del cono SQL y selecciones Comandos SQL como vemos en la figura 3.4.

Figura 3.4. Iniciar un nuevo comando SQL. Despus de seleccionar la opcin Introducir Comando en el submen Comandos SQL, se abrir la pgina Comandos SQL que vemos en la figura 3.5. Introducimos el comando en la parte superior de esta pgina, llamada Panel de Edicin SQL y despus hacemos clic en el botn Ejecutar para ejecutar el comando y mostrar sus resultados en la parte inferior de la pgina, llamada panel de resultados.

Figura 3.5. Iniciar un nuevo comando SQL.

34

Asignatura: Sistemas de Base de Datos Despus de hacer clic en el botn Ejecutar, los resultados aparecen en el Panel de resultados. Observe que los comandos Inicio>SQL>Comandos SQL se refieren a la parte superior del Panel de Edicin de SQL. Esta referencia se denomina ruta. Podemos hacer clic en las pginas de la ruta para volver hacia atrs una o ms pginas. Por ejemplo, para volver a la pgina de inicio, haga clic en Inicio dentro de la ruta.

Crear una tabla


Antes de empezar a aadir datos a una tabla, debemos describir al DBMS el diseo de la tabla. Ejemplo 1 Describir el diseo de la tabla tVendedor al DBMS. Para describir el diseo de una tabla se utiliza el comando CREATE TABLE. La palabra TABLE va seguida del nombre de la tabla que se va a crear despus de los nombres y tipos de datos de las columnas que contiene la tabla. El tipo de datos indica qu tipo de datos puede contener la columna (por ejemplo, caracteres, nmeros o fechas), as como el mximo nmeros de caracteres o dgitos que puede almacenar. Las restricciones en los nombres de las tablas y columnas son las siguientes: 1. 2. 3. 4. Los nombres no pueden exceder de 30 caracteres. Los nombres deben de comenzar con una letra. Los nombres pueden contener letras, nmeros y guiones bajos (_). Los nombres no pueden contener espacios.

En la figura 3.6 vemos el comando SQL que crea la tabla tVendedor.


CREATE TABLE tVendedor (codiVende CHAR(2) PRIMARY KEY, apeVende VARCHAR(15), nombreVende VARCHAR(15), direcVende VARCHAR(15), ciudadVende VARCHAR(15), comiToVende DECIMAL(7,2), porCoVende DECIMAL(3,2));

Figura 3.6. Iniciar un nuevo comando SQL. Este comando CREATE TABLE, que utiliza las funciones de definicin de datos de SQL, describe una tabla llamada tVendedor. La tabla contiene 7 columnas: codiVende, apeVende, nombreVende, direcVende, ciudadVende, comiToVende y porCoVende. La columna codiVende puede almacenar dos caracteres y es la clave principal de la tabla. La columna apeVende puede almacenar hasta 15 caracteres. La columna comiToVende puede almacenar slo nmeros, los cuales estn limitados a siete dgitos, incluyendo dos posiciones decimales. De manera similar, la columna porCoVende puede almacenar tres nmeros, incluyendo dos posiciones decimales. Se puede pensar en el comando SQL de la figura 3.6 como crear una tabla vaca con encabezados de columnas para cada nombre de columna. En SQL, los comandos son de formato libre, es decir, no hay ninguna regla que indique que una tabla en concreto deba comenzar en una posicin en concreto de la lnea. Por ejemplo, podemos haber escrito el comando CREATE TABLE que vemos en la figura 3.6 de esta manera:

35

Asignatura: Sistemas de Base de Datos


CREATE TABLE tVendedor (codiVende CHAR(2) PRIMARY KEY, apeVende VARCHAR(15), nombreVende VARCHAR(15), direcVende VARCHAR(15), ciudadVende VARCHAR(15), comiToVende DECIMAL(7,2), porCoVende DECIMAL(3,2));

La manera en que el comando CREATE TABLE de la figura 3.6 se escribi hace que el comando sea ms legible. En este libro haremos hincapi en la legibilidad al escribir comandos SQL. Nota: SQL no es sensible a las maysculas, podemos escribir comandos, utilizando maysculas o minsculas. Sin embargo, hay una excepcin a esta regla. Cuando insertamos caracteres como valores en una tabla, tenemos que utilizar correctamente las maysculas o minsculas, segn proceda. Para crear la tabla tVendedor de Oracle, haga clic en el panel de edicin de SQL, escriba el comando CREATE TABLE que vemos en la figura 3.7, y haga clic en el botn Ejecutar de la parte derecha del panel de edicin de SQL para ejecutar el comando y crear la tabla. En la figura 3.7 tambin vemos el mensaje que aparece en el Panel de resultados una vez ejecutado el comando, que indica que la tabla fue creada.

Figura 3.7. Ejecutar el comando CREATE TABLE para la tabla tVendedor. Nota para usuarios de SQL Server Microsoft SQL Server 2008 es un DBMS diseado para ser utilizado en aplicaciones clienteservidor. Podemos ejecutar Microsoft SQL Server 2008 desde nuestro propio equipo a travs de un conjunto de herramientas de cliente de base de datos llamadas SQL Server Management Studio. Management Studio incluye una ventana de edicin de consultas que podemos utilizar para ejecutar comandos SQL. Si utiliza Management Studio y se conecta a una base de datos de su equipo local, acepte los valores predefinidos para el tipo de servidor, el nombre de servidor y la autenticacin, y despus haga clic en el botn Conectar del cuadro de dilogo Conectar con el servidor. Cuando aparece Management Studio, haga doble clic en Base de Datos, abra la base de datos en la que quiere ejecutar comandos SQL y despus haga clic en el botn Nueva Consulta de

36

Asignatura: Sistemas de Base de Datos la barra de herramientas. Escriba el comando SQL en la ventana de edicin de consultas que se abra, y despus haga clic en el botn Ejecutar de la barra de herramientas para ejecutar el comando. El comando que vemos en la figura 3.9 crea la tabla tVendedor y muestra un mensaje en el panel Mensajes para indicar que el comando tuvo xito.

Figura 3.9. Microsoft SQL Server 2008 para crear una tabla.

Corregir errores en comandos SQL


Imagine que ejecut la tabla tVendedor utilizando el comando CREATE TABLE de la figura 3.10, que contiene varios errores. En lugar de mostrar un mensaje de que la tabla se cre con xito. Oracle muestra un mensaje de error sobre el problema que encontr. Al revisar el comando, ver que VARCHAR est mal escrito en la lnea 4, que en la lnea 5 falta una coma, que se omiti la columna ciudadVende y que habra que eliminar la lnea 6. Si ejecutamos un comando SQL y Oracle muestra un error, podemos usar el ratn y las flechas de desplazamiento del teclado para situar el punto de insercin en la posicin adecuada para corregir esos errores utilizando las mismas tcnicas que utilizaramos en un procesador de texto. Por ejemplo, podemos utilizar el cursor para seleccionar la palabra VARCHR de la lnea 4 y escribir VARCHAR. Despus podramos utilizar el cursor para mover el punto de insercin al final de la lnea 5 y escribir la coma que falta, y despus pulsar Intro para insertar la informacin que falta para crear la columna ciudadVende. Podemos utilizar el cursor para seleccionar el contenido de la lnea 7 y despus pulsar Supr para eliminarlo. Una vez hechos estos cambios, hacemos clic en el botn Ejecutar para ejecutar de nuevo el comando. Si el comando contiene errores adicionales, ver un mensaje de error de nuevo. Si el comando es correcto, ver el mensaje de que la tabla fue creada.

37

Asignatura: Sistemas de Base de Datos


CREATE TABLE tVendedor (codiVende CHAR(2) PRIMARY KEY, apeVende VARCHAR(15), nombreVende VARCHR(15), direcVende VARCHAR(15) xxx VARCHAR(15), comiToVende DECIMAL(7,2), porCoVende DECIMAL(3,2));

Figura 3.10. Comando CREATE TABLE con errores.

Eliminar una tabla


Despus de crear una tabla, es posible que nos demos cuenta de que hemos aadido una columna que no necesitamos o que asignamos el tipo de datos o tamao equivocados a una columna. Otra manera de corregir errores en una tabla es eliminando la tabla y volviendo a empezar. Por ejemplo, imagine que escribi un comando CREATE TABLE que contena una columna llamada apVende en lugar de apeVende o que defini una columna como CHAR(5) en lugar de CHAR(%). Imagine que no descubre el error y que ejecuta el comando, creando una tabla con esos problemas. En este caso, puede eliminar toda la tabla utilizando el comando DROP TABLE y volver a crear la tabla utilizando el comando CREATE TABLE correcto. Para eliminar una tabla, ejecute el comando DROP TABLE, seguido del nombre de la tabla que quiere eliminar y de un punto y coma. Por ejemplo, para eliminar la tabla tVendedor, escribira el siguiente comando y despus hara clic en el botn Ejecutar:

DROP TABLE tVendedor;

Al eliminar una tabla tambin se borran todos los datos que hubiera escrito en ella. Es necesario comprobar cuidadosamente los comandos CREATE TABLE antes de ejecutarlos y corregir cualquier problema antes de aadir datos. Ms adelante veremos cmo cambiar la estructura de una tabla sin tener que borrarla entera. Preguntas y Respuestas Pregunta: Cmo puedo corregir un error que comet al crear una tabla? Respuesta: Ms adelante veremos cmo cambiar una tabla para hacer las correcciones necesarias. De momento, la manera ms sencilla es eliminar la tabla utilizando el comando DROP TABLE y despus ejecutando el comando correcto CREATE TABLE.

Tipos de datos
Para cada columna de una tabla, debemos especificar el tipo de datos a utilizar para almacenar el tipo de datos que contendr la columna. En la tabla 3.1 se describen los tipos de datos ms habituales en la base de datos.

38

Asignatura: Sistemas de Base de Datos Tabla 3.1. Tipos de datos utilizados habitualmente. Tipo de Dato Descripcin
Almacena una serie de caracteres de longitud n. Este tipo de datos se utiliza para columnas que contienen letras y caracteres especiales y para columnas que contienen nmeros que no se utilizan en ningn clculo. Por ejemplo, cmo ni el cdigo de vendedor ni de cliente se utilizarn para ningn clculo, las columnas codiVende y codiClien tendrn asignadas el tipo de datos CHAR. Alternativa a CHAR que almacena una serie de caracteres de hasta n caracteres de longitud. A diferencia de CHAR, slo se almacena la serie real de caracteres. S, por ejemplo, una seria de 20 caracteres se almacena en una columna CHAR(30), ocupar 30 caracteres (20 caracteres ms 10 espacios en blanco). Si se almacena en una columna VARCHAR(30), slo ocupar 20 espacios. En general, las tablas que utilizan VARCHAR en lugar de CHAR ocupan menos espacio, pero el DBMS no las procesar tan rpidamente durante las consultas y actualizaciones. Sin embargo, ambas son opciones legtimas. En este texto utilizaremos VARCHAR y CHAR. Almacena datos de fecha. El formato especfico en el que se almacenan las fechas vara en funcin de la implantacin de SQL. En Oracle las fechas se ponen entre comillas simples y tienen el formato DD-MM-AAAA (por ejmplo, 15-10-2010 es 15 de octubre de 2010). En SQL Server, utilice el tipo de datos DATETIME para almacenar fechas. Almacena un nmero decimal de p dgitos de longitud, siendo q de esos dgitos posiciones decimales a la derecha del punto decimal. Por ejemplo, el tipo de datos DECIMAL(5,2) representa un nmero con tres posiciones a la izquierda y dos a la derecha del decimal (por ejemplo, 100.00). El contenido de las columnas de DECIMAL, se pueden usar para hacer clculos. Tambin se puede usar el tipo de datos NUMBER(p,q) tanto en Oracle como en SQL Server para almacenar un nmero decimal. Almacena integrales, que son nmeros sin ninguna parte decimal. El rango vlido es desde -2147483648 hasta 2147483647. Se puede utilizar el contenido de las columnas INT para clculos. Si escribimos AUTO_INCREMENT detrs de INT, crearemos una columna para la que SQL generar automticamente un nmero secuencial nuevo cada vez que aadamos una nueva fila. Esta sera la opcin adecuada para que, si quisiramos, por ejemplo, el DBMS generara un valor para una clave principal. Almacena integrales, pero utiliza menos espacio que el tipo de datos INT. El rango vlido es desde -32768 hasta 32767. SMALLINT es una opcin mejor que INT cuando estamos seguros de que esa columna almacenar nmeros dentro del rango indicado. El contenido de las columnas SMALLINT se puede utilizar para clculos.

CHAR(n)

VARCHAR(n)

DATE

DECIMAL(p,q)

INT

SMALLINT

Valores nulos
De vez en cuando, cuando introducimos una fila nueva a una tabla o modificamos una ya existente, los valores para una o ms columnas son desconocidos o no estn disponibles. Por ejemplo, podemos aadir el nombre y direccin de un cliente a una tabla aunque el cliente no tenga un valor asignado o un lmite de crdito establecido. En otros casos, algunos valores pueden no llegar conocidos nunca, por ejemplo, puede haber un cliente que no tenga vendedor. En SQL esta situacin se gestiona utilizando un valor especial para representar casos en que el valor real es desconocido, no disponible o no aplicable. Este valor especial se denomina valor de datos nulo, o simplemente un cero. Al crear una tabla, podemos especificar si permitir ceros en las columnas individuales o no. 39

Asignatura: Sistemas de Base de Datos

Preguntas y respuestas Pregunta: Debera permitirse que un usuario pudiera introducir valores nulos en la clave principal? Respuesta: No, la clave principal debe identificar en exclusiva a una fila determinada, lo cual sera imposible si se permitieran los ceros. Por ejemplo, si almacenamos dos registros de clientes sin valores en la columna de la clave principal, no tendramos forma de diferenciarlos. En SQL se utiliza la clusula NOT NULL en un comando CREATE TABLE para indicar columnas que no pueden contener valores nulos. Por defecto se permiten los ceros, las columnas para las que no especificamos NOT NULL pueden aceptar valores nulos. Por ejemplo, imaginemos que las columnas apeVende y nombreVende de la tabla tVendedor no pueden aceptar valores nulos, pero todo el resto de columnas de la tabla tVendedor s pueden. Esto se consigue con el siguiente comando CREATE TABLE:
CREATE TABLE tVendedor (codiVende CHAR(2) PRIMARY KEY, apeVende VARCHAR(15) NOT NULL, nombreVende VARCHAR(15) NOT NULL, direcVende VARCHAR(15), ciudadVende VARCHAR(15), comiToVende DECIMAL(7,2), porCoVende DECIMAL(3,2));

Si cresemos la tabla tVendedor con este comando CREATE TABLE, el DBMS rechazara cualquier intento de almacenar un valor nulo tanto en la columna apeVende como en la columna nombreVende. Sin embargo, el sistema aceptara un intento de almacenar un valor nulo en la columna direcVende, porque la columna direcVende puede aceptar valores nulos. Como la columna de la clave principal no puede aceptar valores nulos, no es necesario que especifiquemos la columna codiVende como NOT NULL.

Aadir filas a una tabla


Una vez creada una tabla en una base de datos, podemos cargar datos en ella utilizando el comando INSERT.

Comando INSERT
El comando INSERT aade filas a una tabla. Escribiremos INSERT INTO seguido del nombre de la tabla en la que estamos aadiendo datos. Despus, escribimos la palabra VALUES seguida de los valores especficos que se insertarn entre parntesis. Al aadir filas a las columnas de caracteres, asegrese, de que los valores vayan entre comillas simples (por ejemplo, kaiser). Tambin hay que poner atencin a las maysculas y minsculas, pues los datos de caracteres se almacenan tal y como los introducimos.

40

Asignatura: Sistemas de Base de Datos

Nota: Los datos deben ir entre comillas simples si el tipo de datos de la columna es carcter (CHAR), aunque los datos contengan nmeros. Si necesitamos introducir un apstrofe (comilla simple) en una columna, escribiremos dos comillas simples. Por ejemplo, para escribir el nombre OToole en la columna apeVende, tendramos que escribir OToole como valor en el comando INSERT.

Ejemplo 2 Aadir el vendedor 20 a la tabla tVendedor En la figura 3.11 vemos el comando para este ejemplo. Observe que las series de caracteres (20,kaiser,Valerie, etc.) van entre comillas simples. Cuando ejecutamos el comando, el registro se aade a la tabla tVendedor.
INSERT INTO tVendedor VALUES ('20','Kaiser','Valerie','624 Randall','Grove',20542.50,0.05);

Figura 3.11. Comando INSERT para el primer registro de la tabla tVendedor. Nota: Asegrese de escribir los valores con maysculas o minsculas tal y como aparecen en las figuras, para evitar ms tarde problemas al recuperar los datos de la base de datos.

Ejemplo 3 Aada los vendedores 35 y 65 a la tabla tVendedor. Podramos introducir y ejecutar nuevos comandos INSERT para aadir las filas nuevas a la tabla. Sin embargo, una manera ms sencilla y rpida de aadir esas nuevas filas a la tabla es utilizando el ratn y el teclado para modificar el comando INSERT anterior y ejecutarlo para aadir el registro para el segundo vendedor, como vemos en la figura 3.12.

INSERT INTO tVendedor VALUES ('35','Hull','Richard','532 Jackson','Sheldon',39216.00,0.07);

Figura 3.12. Comando INSERT para aadir la segunda fila a la tabla tVendedor.

Para aadir la tercera fila a la tabla, se puede modificar y ejecutar el comando INSERT de nuevo para el tercer vendedor, como vemos en la figura 3.13.

INSERT INTO tVendedor VALUES ('65','Perez','Juan','1626 Taylor','Fillmore',23487.50,0.05);

Figura 3.13. Comando INSERT para aadir la tercera fila a la tabla tVendedor.

41

Asignatura: Sistemas de Base de Datos

Insertar una fila que contiene valores nulos


Para introducir un valor nulo en una tabla, se utiliza una forma especial del comando INSERT en la que se identifican los nombres de las columnas que aceptarn valores no nulos, y luego se listan esos valores no nulos despus del comando VALUES, como vemos en el ejemplo 4. Ejemplo 4 Aada el vendedor 85 a la tabla tVendedor. Su nombre es Tina Webb. Todas las columnas excepto codiVende, apeVende y nombreVende son cero. En este caso, no introducimos un valor nulo, sino solo los valores no nulos. Para ello, debemos indicar precisamente qu valores estamos introduciendo al listar las columnas correspondientes como vemos en la figura 3.15. El comando que vemos en la figura 3.14 indica que estamos introduciendo datos slo en las columnas codiVende, apeVende y nombreVende, y que no estamos introduciendo valores en ninguna otra columna, las otras columnas contendrn valores nulos.
INSERT INTO tVendedor (codiVende, apeVende, nombreVende) VALUES ('85','Webb','Tina');

Figura 3.14. Insertar una fila en la tabla tVendedor que contiene valores nulos.

Ver datos de la tabla


Para ver los datos de una tabla utilizaremos el comando SELECT, que describiremos ms adelante con mayor detalle. Ejemplo 05 Muestre todas las filas y columnas de la tabla tVendedor Podemos utilizar una versin sencilla del comando SELECT para mostrar todas las filas y columnas de una tabla escribiendo la palabra SELECT, seguida de un asterisco, seguido de la palabra FROM y del nombre de la tabla que contiene los datos que queremos ver. Al igual que con otros comandos SQL, el comando finaliza con un punto y coma. En Oracle, escribimos el comando que vemos en la figura 3.15 y despus hacemos clic en el botn Ejecutar para mostrar los resultados.
SELECT * FROM tVendedor;

Figura 3.15. Comando SELECT para ver datos de la tabla.

42

Asignatura: Sistemas de Base de Datos

Corregir errores de una tabla


Una vez ejecutado un comando SELECT para ver los datos de una tabla, podemos ver que necesitamos cambiar un valor en una columna. Se puede utilizar el comando UPDATE que vemos en la figura 3.20 para cambiar un valor en una tabla. El comando UPDATE de la figura 3.21 cambia el apellido a Perry en la fila en que el cdigo de vendedor es 85.
UPDATE tVendedor SET apeVende = 'Perry' WHERE codiVende = '85';

Figura 3.20. Comando UPDATE para cambiar un valor. El comando SELECT de la figura 3.21 muestra los resultados del comando UPDATE de la figura 3.21, donde el apellido correspondiente al cdigo de vendedor 85 es Perry.
SELECT * FROM tVendedor;

Figura 3.21. Apellido cambiado para el cdigo de vendedor 85. Si tenemos que eliminar una fila en una tabla, podemos utilizar el comando DELETE. El comando DELETE de la figura 3.22 elimina todas las filas en que el cdigo de vendedor sea 85. El comando SELECT de la figura 3.23 muestra los datos actualizados.
DELETE FROM tVendedor WHERE codiVende = '85';

Figura 3.22. Comando DELETE para eliminar una fila.

SELECT * FROM tVendedor;

Figura 3.23. Cdigo de vendedor 85 eliminado de la tabla tVendedor.

43

Asignatura: Sistemas de Base de Datos

Preguntas y respuestas Pregunta: Cmo podemos corregir errores en nuestros datos? Respuesta: El mtodo para corregir un error depende del tipo de error que hay que corregir. Si aadimos una fila que no debera estar en la tabla, utilizamos un comando DELETE para eliminarla. Si olvidamos aadir una fila, podemos utilizar el comando INSERT para aadirla. Si aadimos una fila que contiene datos incorrectos, podemos utilizar un comando UPDATE para hacer las correcciones necesarias. Tambin se puede utilizar un comando DELETE para eliminar la fila que contiene el error y despus utilizar un comando INSERT para insertar la fila correcta.

Guardar comandos SQL


Oracle nos permite guardar un comando para volverlo a utilizar de nuevo sin necesidad de volverlo a escribir. En muchos DBMS se guardan los comandos en un archivo de comandos, o simplemente en un archivo de texto con la extensin .sql. Cuando utilizamos Oracle para crear un archivo de comandos, Oracle lo almacena en un lugar especial llamado repositorio de archivos de comandos. Si queremos guardar un archivo de comandos en el sistema local de archivos como puede ser un disco duro o dispositivo USB, podemos hacerlo descargando el archivo de comandos. Cuando necesitamos utilizar un archivo de comandos almacenado en el sistema local de archivos, pero que no est guardado en Oracle, podemos cargarlo para poder usarlo en Oracle. Siga los pasos que se detallan a continuacin para crear y utilizar archivos de comandos en Oracle Database Express Edition. Si utiliza una versin diferente de Oracle u otro DBMS, utilice la ayuda o consulte la documentacin del sistema para determinar cmo llevar a cabo estas mismas tareas. Para crear un archivo de comandos: 1) Cargue la pgina de inicio de Oracle Database Express Edition y conctese. 2) Haga clic en la flecha del icono SQL, selecciones Comandos SQL>Crear. Se abrir la pgina del Editor de Archivo de comandos. 3) Escriba un nombre para el archivo de comandos en el cuadro de texto Nombre del archivo de comandos. 4) Haga clic en el cuadro de texto de la pgina para activarlo, y escriba los comandos a guardar en el archivo de comandos. Haga clic en botn ejecutar para ejecutar los comandos guardados en el archivo cuando lo necesite. 5) Una vez finalizado, haga clic en el botn Guardar. Volver a la pgina de Archivos de comandos SQL y aparecer el archivo de comandos creado como un cono en la pgina. Para ver, editar o ejecutar un archivo de comandos existente, siga los siguientes pasos: 1) Abra la pgina de inicio de Oracle Database Express Edition y conctese. 2) Haga clic en la flecha del icono SQL, selecciones Archivos de comandos SQL>Ver. 3) Haga clic en el icono del archivo de comandos que desee. El archivo de comandos aparecer en la pgina Editor de Archivo de comandos. Puede utilizar esta pgina para ver el contenido del archivo de comandos o hacer cambios en l editando los comandos que contiene. Si modifica un archivo de comandos, haga clic en el botn Guardar para guardar los cambios. 4) Para ejecutar un archivo de comandos, haga clic en el botn Ejecutar. Se abrir la pgina de Ejecutar archivo de comandos y le preguntar si confirma que quiere ejecutar el archivo de comandos. Haga clic en el botn Ejecutar de la pgina Ejecutar archivo de 44

Asignatura: Sistemas de Base de Datos comandos. Se abrir la pgina Resultados de gestin de archivos de comandos y mostrar el nombre del archivo de comandos y un icono en la columna ver resultados. Para ver los resultados del comando guardado en el archivo de comandos, haga clic en el icono de la columna Ver resultados. Cuando haya terminado de utilizar un archivo de comandos o ya no necesite almacenarlo, puede borrarlo. Para borrar un archivo de comandos siga estos pasos: 1) Siga las instrucciones anteriores para ver el archivo de comandos. 2) Haga clic en el botn Suprimir de la pgina Editor de archivo de comandos. 3) Haga clic en el botn Aceptar para confirmar la supresin. Para descargar un archivo de comandos del repositorio de archivos de comandos para guardarlo como un archivo, se debe cumplir con los siguientes pasos: 1) Siga las instrucciones anteriores para ver el archivo de comandos. 2) Haga clic en el botn Descargar. Se abrir el cuadro de dilogo Descarga de archivos. 3) Haga clic en el botn Guardar del cuadro de dilogo, y despus guarde el archivo en la ubicacin deseada. 4) Haga clic en el botn Cerrar para cerrar el cuadro de dilogo Descarga completa. Para cargar un archivo de comandos al repositorio de archivos de comandos, realice los siguientes pasos: 1) Abra la pgina de inicio de Oracle Database Express Edition y conctese. 2) Haga clic en la flecha del icono SQL y seleccione Archivos de comandos SQL>Cargar. Se abrir la pgina Cargar archivo de comandos. 3) Haga clic en el botn Examinar. Se abrir el cuadro de dilogo Elegir archivo. Navegue y seleccione el archivo de comandos para cargar. Haga clic en el botn Abrir. (Si quiere cargar el archivo de comandos con un nombre diferente, escriba el nuevo nombre en el cuadro de texto nombre.) 4) Haga clic en el botn Cargar de la pgina Cargar archivo de comandos. Aparecer un icono para el archivo de comandos en la pgina Archivos de comandos SQL.

Nota para usuarios de SQL Server


SQL Server puede almacenar archivos de comandos en cualquier carpeta del sistema local. Todos los archivos de comandos creados en SQL Server son archivos de texto con extensin .sql. Para crear un archivo de comandos en SQL Server, siga estos pasos: 1) Abra el SQL Server Management Studio y haga clic en el botn Conectar del cuadro de dilogo Conectar con el servidor. 2) Abra la base de datos y haga clic en el botn Nueva consulta. 3) Escriba el comando o comandos a guardar en el archivo de comandos. Cuando sea necesario, haga clic en el botn Ejecutar para ejecutar los comandos guardados en el archivo de comandos. 4) Una vez finalizado, haga clic en el botn Guardar, navegue hasta la ubicacin donde quiere guardar el archivo de comandos, y despus escriba el nombre del archivo de comandos.

45

Asignatura: Sistemas de Base de Datos

Para ver, editar o ejecutar un archivo de comandos existente, siga los siguientes pasos: 1) Abra el SQL Server Management Studio y haga clic en el botn Conectar del cuadro de dilogo Conectar con el servidor. 2) Abra la base de datos adecuada y despus haga clic en el botn Nueva consulta. 3) Haga clic en el botn Abrir archivo de la barra de herramientas. 4) Navegue hasta la carpeta que contiene el archivo de comandos, seleccione el archivo de comandos y haga clic en el botn Abrir del cuadro de dilogo Abrir archivo. (Si se abre el cuadro de dilogo Conectarse al motor de base de datos, haga clic en el botn Conectar.) El archivo de comandos aparece en la ventana de edicin de consultas. El contenido del archivo de comandos se puede ver, as se facilita su edicin. Si edita un archivo de comandos, haga clic en el botn Guardar para guardar los cambios. 5) Para ejecutar un archivo de comandos, haga clic en el botn Ejecutar.

Crear las dems tablas de la base de datos


Para crear las dems tablas de la base de datos de Premiere Products, tenemos que ejecutar los comandos adecuados CREATE TABLE e INSERT. Es conveniente guardar estos comandos como archivos de comandos para poder volver a crear la base de datos, si es necesario, ejecutando los archivos de comandos. Nota: El profesor puede facilitarle los archivos de comandos para crear las tablas de la base de datos de Premiere Products, y para aadir datos en ella. En la figura 3.24 vemos el comando CREATE TABLE para la tabla tCliente. Observe que la columna nombreClien viene especificada como NOT NULL. Adems, la columna codiClien es la clave principal de la tabla. Con esta columna designada como clave principal, el DBMS rechazar cualquier intento de almacenar un nmero de cliente que ya existe en la tabla.
CREATE TABLE tCliente (codiClien CHAR(3) PRIMARY KEY, nombreClien VARCHAR(30) NOT NULL, direcClien VARCHAR(15), ciudadClien VARCHAR(15), balanClien DECIMAL(7,2), limiCreClien DECIMAL(7,2), codiVende CHAR(2), FOREIGN KEY (codiVende) REFERENCES tVendedor(codiVende));

Figura 3.24. Comando CREATE TABLE para la tabla tCliente. Una vez creada la tabla tCliente, podemos crear otro archivo de comandos que contenga los comandos INSERT para aadir las filas de clientes a la tabla. Cuando un archivo de comandos contiene ms de un comando, cada uno debe terminar con un punto y coma. En la figura 3.25 vemos los comandos INSERT para aadir filas a la tabla tCliente. Ya hemos visto que para introducir un apstrofe (comilla simple) en el valor de un campo, hay que escribir dos comillas simples, como vemos en el nombre del primer comando INSERT (Als Appliance and Sport) de la figura 3.25.

46

Asignatura: Sistemas de Base de Datos En la figura 3.26 a 3.31 vemos los archivos de comandos para los comandos CREATE TABLE e INSERT para crear e insertar datos en las tablas tPedido, tArtculo y tDetalleArticulo de la base de datos Premiere Products. En la figura 3.26 tenemos el comando CREATE TABLE para la tabla tPedido. En la figura 3.27 vemos los comandos INSERT para cargar datos en la tabla tPedido. Observe como se introducen las fechas. La figura 3.28 contiene el comando CREATE TABLE para la tabla tArticulo. La figura 3.29 contiene los comandos INSERT para cargar datos a la tabla tArticulo.
INSERT INTO tCliente VALUES
('148','Al''s Appliance and Sport','2837 Greenway','Fillmore',6550.00,7500.00,'20');

INSERT INTO tCliente VALUES


('282','Brookings Direct','3827 Devon','Grove',431.50,10000.00,'35');

INSERT INTO tCliente VALUES


('356','Ferguson''s','382 Wildwood','Northfield',5785.00,7500.000,'65');

INSERT INTO tCliente VALUES


('408','The Everything Shop','1828 Raven','Crystal',5285.25,5000.00,'35');

INSERT INTO tCliente VALUES


('462','Bargains Galore','3829 Central','Grove',3412.00,10000.00,'65');

INSERT INTO tCliente VALUES


('524','Kline''s','838 Ridgeland','Fillmore',12762.00,15000.00,'20');

INSERT INTO tCliente VALUES


('608','Johnson''s Department Store','372 Oxford','Sheldon',2106.00,10000.00,'65');

INSERT INTO tCliente VALUES


('687','Lee''s Sport and Appliance','282 Evergreen','Altonville',2851.00,5000.00,'35');

INSERT INTO tCliente VALUES


('725','Deerfield''s Four Seasons','282 Columbia','Sheldon',248.00,7500.00,'35');

INSERT INTO tCliente VALUES


('842','All Season','28 Lakeview','Grove',8221.00,7500.00,'20');

Figura 3.25. Comando INSERT para la tabla tCliente.


CREATE TABLE tPedido (codiPedi CHAR(5) PRIMARY KEY, fechaPedi DATE, codiClien CHAR(3), FOREIGN KEY (codiClien) REFERENCES tCliente(codiClien));

Figura 3.26. Comando CREATE TABLE para la tabla tPedido. La figura 3.30 contiene el comando CREATE TABLE para la tabla tDetallePedido. Observe como est definida la clave principal cuando consiste en ms de una columna. La figura 3.31 contiene los comandos INSERT para cargar datos en la tabla tDetallePedido.
INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO tPedido tPedido tPedido tPedido tPedido tPedido tPedido VALUES VALUES VALUES VALUES VALUES VALUES VALUES ('21608','10/20/2010','148'); ('21610','10/20/2010','356'); ('21613','10/21/2010','408'); ('21614','10/21/2010','282'); ('21617','10/23/2010','608'); ('21619','10/23/2010','148'); ('21623','10/23/2010','608');

Figura 3.27. Comando INSERT para la tabla tPedido.

47

Asignatura: Sistemas de Base de Datos


CREATE TABLE (codiArti descripArti stockArti claseArti almaArti precioUArti tArticulo CHAR(4) PRIMARY KEY, VARCHAR(25) NOT NULL, SMALLINT, CHAR(2), CHAR(1), DECIMAL(7,2));

Figura 3.28. Comando CREATE TABLE para la tabla tArtculo.


INSERT INTO tArticulo VALUES ('AT94','Iron',50,'HW','3',24.95); INSERT INTO tArticulo VALUES ('BV06','Home Gym',45,'SG','2',794.95); INSERT INTO tArticulo VALUES ('CD52','Microwave Oven',32,'AP','1',165.00); INSERT INTO tArticulo VALUES ('DL71','Cordless Drill',21,'HW','3',129.95); INSERT INTO tArticulo VALUES ('DR93','Gas Rang',8,'AP','2',495.00); INSERT INTO tArticulo VALUES ('DW11','Washer',12,'AP','3',399.99); INSERT INTO tArticulo VALUES ('FD21','Stand Mixer',22,'HW','3',159.95); INSERT INTO tArticulo VALUES ('KL62','Dryer',12,'AP','1',349.95); INSERT INTO tArticulo VALUES ('KT03','Dishwasher',8,'AP','3',595.00); INSERT INTO tArticulo VALUES ('KV29','Treadmill',9,'SG','2',1390.00);

Figura 3.29. Comando INSERT para la tabla tArtculo.


CREATE TABLE tDetallePedido (codiPedi CHAR(5), codiArti CHAR(4), cantiArti SMALLINT, precioCoArti DECIMAL (7,2), PRIMARY KEY (codiPedi, codiArti), FOREIGN KEY (codiPedi) REFERENCES tPedido(codiPedi), FOREIGN KEY (codiArti) REFERENCES tArticulo(codiArti));

Figura 3.30. Comando CREATE TABLE para la tabla tDetallePedido.


INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO INTO INTO tDetallePedido tDetallePedido tDetallePedido tDetallePedido tDetallePedido tDetallePedido tDetallePedido tDetallePedido tDetallePedido VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES ('21608','AT94',11,21.95); ('21610','DR93',1,495.00); ('21610','DW11',1,399.99); ('21613','KL62',4,329.95); ('21614','KT03',2,595.00); ('21617','BV06',2,794.95); ('21617','CD52',4,150.00); ('21619','DR93',1,495.00); ('21623','KV29',2,1290.00);

Figura 3.31. Comando INSERT para la tabla tDetallePedido.

48

Asignatura: Sistemas de Base de Datos

Describir una tabla


El comando CREATE TABLE define la estructura de una tabla listando sus columnas, tipos de datos y longitudes de columnas. El comando CREATE TABLE tambin indica que columnas no pueden aceptar ceros. Cuando trabajamos con una tabla, puede que no tengamos acceso al comando CREATE TABLE que se utiliz para crearla. Por ejemplo, la tabla puede haberla creada otro programador, o puede que la creramos hace tiempo y no hubisemos guardado el comando. Podemos examinar la estructura de la tabla para ver los detalles sobre las columnas. Cada DBMS proporciona un mtodo para examinar la estructura de una tabla. Ejemplo 06 Describa la tabla tVendedor. En Oracle podemos utilizar el comando DESCRIBE para listar todas las columnas de una tabla y sus propiedades. En la figura 3.32 vemos el comando DESCRIBE para la tabla tVendedor. El resultado indica el nombre de cada columna de la tabla, junto con su tipo de datos y longitud. El valor 1 en la clave principal indica la columna de la clave principal de la tabla. El signo de comprobacin en la columna Nulo indica una columna que puede aceptar valores nulos. (Las columnas Precisin, Escala, Valor por defecto y Comentario de los resultados van ms all del mbito aqu tratado.)

Nota para usuarios de SQL Server


En SQL Server ejecutamos el comando sp_columns para listar todas las columnas de una tabla. El siguiente comando listar todas las columnas de la tabla tVendedo: EXEC SP_COLUMNS tVendedor El resultado indicar el nombre de cada columna de la tabla tVendedor, junto con su tipo de datos y longitud. El valor 1 en la columna Nulo indica una columna que puede aceptar valores nulos. (El resto de columnas que aparecen en los resultados van ms all de lo tratado aqu.)

Figura 3.32. Comando DESCRIBE para la tabla tVendedor.

49

Anda mungkin juga menyukai