You are on page 1of 12

Sesin 2

Laboratorio de Base de Datos

Sesin 2
I. OBJETIVOS

LENGUAJE SQL: MySQL

Introducir y conocer el manejo de las sentencias SQL. Integrar las sentencias SQL al Gestor de Base de Datos MySQL. Examinar la sintaxis de las sentencias SQL en MySQL. II. TEMAS A TRATAR III. 1. Introduccin al SQL Creacin de Bases de Datos Creacin de Tablas Eliminar Bases de Datos Insercin de Registros Cambiar la estructura de la Tabla Modificar Registros Claves Forneas Eliminar Registros

MARCO TERICO Introduccin al SQL

El Lenguaje de consulta estructurado (SQL, Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas. Una de sus caractersticas es el manejo del lgebra y el clculo relacional permitiendo lanzar consultas con el fin de recuperar, de una forma sencilla, informacin de inters de una base de datos, as como tambin hacer cambios sobre la misma. SQL engloba dos lenguajes: DDL (Data Definition Language) Lenguaje de Definicin de Datos, es el lenguaje que se usa para crear bases de datos y tablas, y para modificar sus estructuras, as como los permisos y privilegios. (CREATE, ALTER, DROP Y TRUNCATE). DML (Data Manipulation Language) Lenguaje de Manipulacin de Datos, es el que se usa para modificar y obtener datos desde las bases de datos. (INSERT, UPDATE, DELETE, SELECT).

1. CREACIN DE BASE DE DATOS


Cada conjunto de relaciones que componen un modelo completo forma una base de datos. Desde el punto de vista de SQL, una base de datos es slo un conjunto de relaciones (o tablas), y para organizarlas o distinguirlas se accede a ellas mediante su nombre. A nivel de sistema operativo, cada base de datos se guarda en un directorio diferente.

Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

Debido a esto, crear una base de datos es una tarea muy simple. Claro que, en el momento de crearla, la base de datos estar vaca, es decir, no contendr ninguna tabla. Vamos a crear y manipular nuestra propia base de datos, al mismo tiempo que nos familiarizamos con la forma de trabajar de MySQL. Para empezar, crearemos una base de datos para nosotros solos, y la llamaremos "prueba". Para crear una base de datos se usa una sentencia CREATE DATABASE:
mysql> CREATE DATABASE prueba; Query OK, 1 row affected (0.03 sec)

Podemos averiguar cuntas bases de datos existen en nuestro sistema usando la sentencia SHOW DATABASES. Para seleccionar una base de datos se usa el comando USE, que no es exactamente una sentencia SQL, sino ms bien de una opcin de MySQL.
mysql> USE prueba; Database changed

2. CREACIN DE TABLAS
La parte un tanto complicada es decidir la estructura que debe tener nuestra base de datos: qu tablas se necesitan y qu columnas estarn en cada tabla CREATE TABLE crea una tabla con el nombre dado. A continuacin veremos varios ejemplos para el comando CREATE TABLE para lo cual trabajaremos con nuestra base de datos prueba.
Crear una tabla con la sintaxis ms sencilla
CREATE TABLE CLIENTES (codcli int, nomcli varchar(40), feccli date);

Mostrar la estructura de la tabla


DESCRIBE CLIENTES;

Una vez que visualizamos la estructura debemos fijarnos que aparte de definir el nombre del campo (Field) y el tipo de dato del campo (Type) podemos especificar si el campo creado permite valores Nulos si no los permite (NULL), si es algn campo con clave (KEY), si posee valores por defecto o no (DEFAULT) y algn valor EXTRA que analizaremos ms adelante. La sintaxis para definir columnas es la siguiente:
nombre_col tipo [NOT NULL | NULL] [DEFAULT valor_por_defecto] [AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string'] [definicin_referencia]

Veamos cada una de las opciones por separado

Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

VALORES NULOS Al definir cada columna podemos indicar si contendrn o no valores nulos. La opcin por defecto es que se permitan valores nulos, NULL, y para que no se permitan debemos usar NOT NULL. Hay que tener en cuenta que una clave primaria no debe permitir valores nulos.
CREATE TABLE CLIENTE1 (codcli INT NOT NULL, nomcli VARCHAR(40), feccli DATE); DESCRIBE CLIENTE1;

VALORES POR DEFECTO Cuando se le asigna un valor por defecto a una columna, automticamente este se asignar este valor cuando no se especifique un valor determinado al aadir filas. Si una columna puede tener un valor nulo, y no se especifica un valor por defecto, se usar NULL como valor por defecto. Por ejemplo, si queremos que el valor por defecto del campo nomcli sea cliente:
CREATE TABLE CLIENTE2 (codcli INT NOT NULL, nomcli VARCHAR(40) DEFAULT cliente, feccli DATE); DESCRIBE CLIENTE2;

CLAVES PRIMARIAS Para definir una clave primaria sobre una columna se usa la palabra KEY o PRIMARY KEY. Solo puede haber una clave primaria por tabla y la columna sobre la que se defina una clave primaria no puede tener valores NULL. Si no se especifica de forma explcita, mysql lo har automticamente.
CREATE TABLE CLIENTE3 (codcli INT PRIMARY VARCHAR(40) DEFAULT cliente, feccli DATE); DESCRIBE CLIENTE3; KEY, nomcli

Usar NOT NULL PRIMARY KEY equivale a PRIMARY KEY, NOT NULL KEY o sencillamente KEY. Tambin se pueden crear claves primarias usando otra sintaxis que mostramos a continuacin. Para usar la misma tabla primero la eliminamos y la volveremos a crear usando una sintaxis diferente.
DROP TABLE CLIENTE3; CREATE TABLE CLIENTE3 (codcli INT, nomcli VARCHAR(40) DEFAULT cliente, feccli DATE NOT NULL, CONSTRAINT PRIMARY KEY (codcli)); DROP TABLE CLIENTE3: CREATE TABLE CLIENTE3 (codcli INT, nomcli VARCHAR(40) DEFAULT cliente, feccli DATE NOT NULL, PRIMARY KEY(codcli));

Pero esta forma tiene ms opciones, entre los parntesis podemos especificar varios nombres de columnas, para construir claves primarias compuestas por varias columnas:
CREATE TABLE CLIENTE4 (codcli INT, nrocli CHAR(2), VARCHAR(40) NOT NULL, PRIMARY KEY(codcli, nrocli)); DESCRIBE CLIENTE4; nomcli

Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

COLUMNAS AUTOINCREMENTADAS En una tabla se puede creer una columna autoincrementada que sea de tipo entero. El valor que se insertara para esa columna, ser calculado automticamente tomando el valor ms alto y sumndole una unidad.
CREATE TABLE CLIENTE5 (codcli INT AUTO_INCREMENT PRIMARY KEY, nomcli VARCHAR(40) DEFAULT cliente, feccli DATE NOT NULL); DESCRIBE CLIENTE5;

COMENTARIOS Adicionalmente, al crear la tabla, podemos aadir un comentario a cada columna. Este comentario sirve como informacin adicional sobre alguna caracterstica especial de la columna, y entra en la documentacin de la base de datos.
CREATE TABLE CLIENTE6 (codcli INT AUTO_INCREMENT PRIMARY KEY COMMENT clave principal, nomcli VARCHAR(40) DEFAULT cliente, feccli DATE NOT NULL); DESCRIBE CLIENTE6;

ELIMINAR UNA TABLA Como ya vimos en unos ejemplos anteriores el comando utilizado para eliminar una tabla es DROP TABLE.
DROP TABLE nombre_tabla

Se pueden aadir las palabras IF EXISTS para evitar errores si la tabla a eliminar no existe.
mysql> DROP TABLE IF EXISTS ciudad;

3. ELIMINAR UNA BASE DE DATOS


De modo parecido, se pueden eliminar bases de datos completas, usando la sentencia DROP DATABASE.
DROP DATABASE db_name

Tambin se puede utilizar las palabras IF EXISTS. Hay que tener cuidado, ya que al borrar cualquier base de datos se elimina tambin cualquier tabla que contenga.

4. INSERCIN DE REGISTROS
La forma ms directa de insertar una fila nueva en una tabla es mediante una sentencia INSERT. En la forma ms simple de esta sentencia debemos indicar la tabla a la que queremos aadir filas, y los valores de cada columna. Las columnas de tipo cadena o fechas deben estar entre comillas sencillas o dobles, para las columnas nmericas esto no es imprescindible, aunque tambin pueden estar entrecomilladas.
INSERT INSERT INSERT INSERT INTO INTO INTO INTO CLIENTE1 CLIENTE1 CLIENTE1 CLIENTE1 VALUES(1, VALUES(2, VALUES(3, VALUES(4, Juan Perez, CURRENT_DATE); Jos Daz, CURRENT_DATE); Julia Gmez, CURRENT_DATE); Andrea Solari, 2008-08-01);

Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

Una vez insertados los registros podemos mostrarlos con el commando SELECT.
SELECT * FROM CLIENTE1;

Si no necesitamos asignar un valor concreto para alguna columna, podemos asignarle el valor por defecto indicado para esa columna cuando se cre la tabla, usando la palabra DEFAULT:
INSERT INTO CLIENTE2 VALUES (1, DEFAULT, 2008-03-09);

Otra opcin consiste en indicar una lista de columnas para las que se van a suministrar valores. A las columnas que no se nombren en esa lista se les asigna el valor por defecto. Este sistema, adems, permite usar cualquier orden en las columnas, con la ventaja, con respecto a la anterior forma, de que no necesitamos conocer el orden de las columnas en la tabla para poder insertar datos:
INSERT INTO CLIENTE2 (codcli, feccli) VALUES (2, CURRENT_DATE), (3, CURRENT_DATE), (4, CURRENT_DATE), (5, CURRENT_DATE);

Otra opcin consiste es utilizar una sentencia de tipo SELECT para indicarle que valores sern insertados en la tabla.
INSERT INTO CLIENTE3 SELECT * FROM CLIENTE1;

Otro ejemplo utilizando SELECT sera el siguiente:


INSERT INTO CLIENTE3 (codcli, feccli) SELECT codcli+1, feccli from cliente1 WHERE codcli=4;

En la tabla creada anteriormente CLIENTE5 se creo una primary key de tipo auto_increment por lo que el siguiente ejemplo lo utilizamos para verificar como funciona el auto_increment. El valor del campo clave codcli se clcula automticamente sin necesidad de asignarle un valor.
INSERT INTO CLIENTE5 (feccli) VALUES (2009-05-21); INSERT INTO CLIENTE5 VALUES (3, Roxana, CURRENT_DATE); INSERT INTO CLIENTE5 (nomcli, feccli) VALUES (Pedro, CURRENT_DATE);

Existe otra sintaxis alternativa, que consiste en indicar el valor para cada columna como se ve en la siguiente sentencia:
INSERT INTO CLIENTE5 SET nomcli=Juan, feccli=2006-05-21;

5. CAMBIAR LA ESTRUCTURA DE LA TABLA


ALTER TABLE permite modificar la estructura de una tabla existente. Por ejemplo, se pueden aadir o eliminar columnas, crear y destruir ndices, cambiar el tipo de una columna existente o renombrar columnas o la propia tabla. Tambin es posible modificar el comentario y el tipo de la tabla. ALTER TABLE trabaja haciendo una copia temporal de la tabla original. La modificacin se realiza durante la copia, a continuacin la tabla original se borra y la nueva se renombra.
5 Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

Esto se hace para realizar que todas las actualizaciones se dirijan a la nueva tabla sin ningn fallo de actualizacin. Mientras ALTER TABLE se ejecuta, la tabla original permanece accesible en lectura para otros clientes. Las actualizaciones y escrituras en la tabla se retrasan hasta que la nueva tabla est preparada. La sintaxis de ALTER TABLE es la siguiente:
ALTER [IGNORE] TABLE tbl_name alter_specification[,alter_specification ...]

Sintaxis para alter_specification:


ADD [COLUMN] create_definition [FIRST | AFTER column_name ] | ADD [COLUMN] (create_definition, create_definition,...) | ADD INDEX [index_name] (index_col_name,...) | ADD [CONSTRAINT [symbol]] PRIMARY KEY (index_col_name,...) | ADD [CONSTRAINT [symbol]] UNIQUE [index_name] (index_col_name,...) | ADD FULLTEXT [index_name] (index_col_name,...) | ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition] | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} | CHANGE [COLUMN] old_col_name create_definition [FIRST | AFTER column_name] | MODIFY [COLUMN] create_definition [FIRST | AFTER column_name] | DROP [COLUMN] col_name | DROP PRIMARY KEY | DROP INDEX index_name | DISABLE KEYS | ENABLE KEYS | RENAME [TO] new_tbl_name | ORDER BY col | CHARACTER SET character_set_name [COLLATE collation_name] | table_options

CHANGE

Se puede renombrar una columna usando una clusula CHANGE old_col_name create_definition. Para hacerlo, hay que especificar los nombres antiguo y nuevo de la columna y el tipo que la columna tiene. Por ejemplo:
CREATE TABLE t1 (codigo INT, nombre VARCHAR(20)); INSERT INTO t1 VALUES (1, Jaime Luna); ALTER TABLE t1 CHANGE codigo codtip char(2);

Si se quiere cambiar el tipo de una columna, pero no su nombre, la sintaxis de CHANGE sigue necesitando un nombre de columna antiguo y nuevo, aunque mantenga en mismo nombre.
Para modificar que un campo no permita permita valores nulos:
ALTER TABLE t1 CHANGE nombre nombre VARCHAR(30) NOT NULL;

Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

Para modificar el valor por defecto de un campo:


ALTER TABLE t1 CHANGE nombre nombre nombre_cliente; INSERT INTO T1 (codtip) VALUES (02); SELECT * FROM t1; VARCHAR(30) DEFAULT

MODIFY

Para cambiar el tipo de un campo y asignarle una clave primaria:


ALTER TABLE t1 MODIFY codtip CHAR(4) PRIMARY KEY; DESCRIBE t1;

Para modificar que un campo no permita permita valores nulos:


ALTER TABLE t1 MODIFY nombre VARCHAR(30) NOT NULL; DESCRIBE t1;

Para modificar el valor por defecto de un campo:


ALTER TABLE t1 MODIFY nombre VARCHAR(30) DEFAULT cliente;

RENAME

Para renombrar la tabla t1 a t2;


ALTER TABLE t1 RENAME t2;

ADD Y DROP

En el siguiente ejemplo se quiere modificar la estructura de la tabla t2 de forma que el campo codtip deje de ser clave primaria, que el campo codtip se le cambie el nombre por tipo y que se agrege un campo ms cuyo nombre sea codigo y sea la nueva clave primaria de la tabla.
ALTER TABLE t2 DROP PRIMARY KEY; ALTER TABLE t2 CHANGE codtip tipo CHAR(4); ALTER TABLE t2 ADD codigo INT AUTO_INCREMENT PRIMARY KEY; DESCRIBE t2;

6. MODIFICAR REGISTROS
Podemos modificar valores de las filas de una tabla usando la sentencia UPDATE. En su forma ms simple, los cambios se aplican a todas las filas, y a las columnas que especifiquemos.
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

Vamos a crear la tabla poblacin que contiene la informacin de ciertas ciudades indicando su poblacin.
CREATE TABLE POBLACION (codigo INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(20), poblacion double);

Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

Insertamos registros en la tabla creada:


INSERT INTO POBLACION (nombre, poblacin) VALUES (Berlin, 6600000), (Londres, 11000000), (Madrid, 7920000), (Pars, 10120000);

Y ahora, actualizaremos la tabla poblacin aumentando en un 10% la poblacin de todas las ciudades de la tabla poblacin usando esta sentencia:
UPDATE POBLACION SET poblacion=poblacion*1.10;

Podemos, del mismo modo, actualizar el valor de ms de una columna, separandolas en la seccin SET mediante comas:
UPDATE poblacion SET codigo=codigo+10, poblacion=poblacion*0.97; SELECT * FROM POBLACION;

En este ejemplo hemos incrementado el valor de la columna 'clave' en 10 y disminuido el de la columna 'poblacion' en un 3%, para todas las filas. Pero no tenemos por qu actualizar todas las filas de la tabla. Podemos limitar el nmero de filas afectadas de varias formas. La primera es mediante la clusula WHERE. Usando esta clusula podemos establecer una condicin. Slo las filas que cumplan esa condicin sern actualizadas:
UPDATE poblacion nombre=Pars; SET POBLACION=POBLACION*1.03 WHERE

En este caso slo hemos aumentado la poblacin de las ciudades cuyo nombre sea 'Pars'. Las condiciones pueden ser ms complejas. Existen muchas funciones y operadores que se pueden aplicar sobre cualquier tipo de columna, y tambin podemos usar operadores booleanos como AND u OR. Otra forma de limitar el nmero de filas afectadas es usar la clusula LIMIT. Esta clusula permite especificar el nmero de filas a modificar:
UPDATE poblacion SET codigo=codigo-10 LIMIT 2;

En este ejemplo hemos decrementado en 10 unidades la columna clave de las dos primeras filas. Esta clusula se puede combinar con WHERE, de modo que slo las 'n' primeras filas que cumplan una determinada condicin se modifiquen.

7. CLAVES FORNEAS
En MySQL slo existe soporte para claves forneas en tablas de tipo InnoDB. Sin embargo, esto no impide usarlas en otros tipos de tablas. La diferencia consiste en que en esas tablas no se verifica si una clave fornea existe realmente en la tabla referenciada, y que no se eliminan filas de una tabla con una definicin de clave fornea. Para hacer esto hay que usar tablas InnoDB.
8 Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

CREATE TABLE nombre definicin_de_columnas [CONSTRAINT [smbolo]] FOREIGN KEY [nombre_index] (nombre_col_index,...) [REFERENCES nombre_tabla [(nombre_col,...)] [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE] [ON DELETE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT] [ON UPDATE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT]]

Es imprescindible que la columna que contiene una definicin de clave fornea est indexada. Pero esto no debe preocuparnos demasiado, ya que si no lo hacemos de forma explcita, MySQL lo har por nosotros de forma implcita. Debido a que cuando se crea una clave fornea, se hace referencia a registros de la tabla principal, debe definirse que accin se tomar cuando se borren o actualicen registros de la tabla que posee la clave fornea. Por lo que se maneja las siguientes opciones:
ON DELETE <opcin>,

indica que acciones se deben realizar en la tabla actual si se borra una fila en la tabla referenciada.
ON UPDATE <opcin>,

es anlogo pero para modificaciones de claves.

Existen cinco acciones diferentes que se pueden considerar. Veamos lo que hace cada una de ellas:
RESTRICT: esta opcin impide eliminar o modificar filas en la tabla referenciada si existen filas con el mismo valor de clave fornea. CASCADE: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado de clave, implica borrar las filas con el mismo valor de clave fornea o modificar los valores de esas claves forneas. SET NULL: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado de clave, implica asignar el valor NULL a las claves forneas con el mismo valor. NO ACTION: las claves forneas no se modifican, ni se eliminan filas en la tabla que las contiene. SET DEFAULT: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado implica asignar el valor por defecto a las claves forneas con el mismo valor.

El siguiente ejemplo define una clave fornea en la columna 'id' de la tabla telefonos, que hace referencia a la columna 'id' de la tabla 'personas'. La definicin incluye las tareas a realizar en el caso de que se elimine y se actualice una fila en la tabla 'personas'.
Create table personas (id int auto_increment primary key, nombre varchar(40), fecha date); Create table telefonos(numero char(12), id int not null, constraint foreign key(id) references personas (id) on delete cascade on update cascade);

Si se intenta borrar una fila de 'personas' con un determinado valor de 'id', tambin se eliminaran las filas de la tabla telfonos que tengan el mismo valor en id.

Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

Si se modifica el valor de la columna 'id' en la tabla 'personas', se modificarn los valores de la columna 'id' para mantener la relacin.

8. ELIMINAR REGISTROS
Para eliminar filas se usa la sentencia DELETE. La sintaxis es muy parecida a la de UPDATE:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM table_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

Es ms frecuente que slo queramos eliminar ciertas filas que cumplan determinadas condiciones. La forma ms normal de hacer esto es usar la clusula WHERE:
DELETE FROM poblacion WHERE codigo=2;

Si queremos eliminar todos los datos de la tabla usaramos la siguiente sentencia:


DELETE FROM poblacion;

Sin embargo, existe una sentencia alternativa, TRUNCATE, que realiza la misma tarea de una forma mucho ms rpida. La diferencia es que DELETE hace un borrado secuencial de la tabla, fila a fila. Pero TRUNCATE borra la tabla y la vuelve a crear vaca, lo que es mucho ms eficiente.
TRUNCATE poblacion;

10

Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

IV. ACTIVIDADES

1. Realice cada uno de los ejemplos y ejercicios vistos en el marco terico y los indicados por el Docente.
V. EJERCICIOS 1. Utilizando las sentencias del lenguaje SQL, realice los siguientes ejercicios. 2. Tenemos la siguiente base de datos: CAPACITACION EMPRESAS codemp (PK) int Autoincrement nomemp Varchar(30) NOT NULL diremp Varchar(50) NOT NULL fonemp Varchar(12) NOT NULL estemp enum(A,X) NOT NULL PERSONAL codper (PK) int NOT NULL codemp (PK, FK) int NOT NULL nomper Varchar(30) NOT NULL MATRICULAS nrodoc (PK) Varchar(15) NOT NULL codalu (FK) int NOT NULL codcur (FK) int NOT NULL fecmat Date monto Decimal(12,2) NOT NULL estmat ENUM(A,X) NOT NULL ALUMNOS codalu (PK) int Autoincrement nomalu Varchar(30) NOT NULL diralu Varchar(30) NOT NULL estalu ENUM(A,X) NOT NULL codemp (FK) int NOT NULL codper (FK) int NOT NULL

CURSOS codcur (PK) nombre Varchar(30) NOT NULL costo Decimal(10,2) NOT NULL fecini Date fecfin Date estcur ENUM(A,X) NOT NULL

3. Escriba las sentencias de creacin de BD y creacin de tablas respectivas. 4. Adicione los siguientes campos en las tablas indicadas.

ALUMNOS
sexalu ENUM(M,F) NOT NULL; fecnac Date fonalu Varchar (12)

PERSONAL
claper Varchar(15) NOT NULL estper ENUM(A,X) NOT NULL

CURSOS
nrohor int NOT NULL nrovac int NOT NULL

MATRICULAS
n1 n2 n3 pr 11 int int int int Ing. Oscar Ramrez Valdez

Sesin 2

Laboratorio de Base de Datos

5. Inserte por lo menos 6 registros en cada una de las tablas, teniendo en cuenta la relacin que tiene las mismas y la integridad de los datos. 6. Actualice la tabla alumno de modo que todos los alumnos que pertenezcan a la empresa cuyo cdigo es 3, tengan estado A. 7. Actualice la tabla alumno de modo que todos los alumnos que pertenezcan a la empresa cuyo cdigo es 1, tengan estado X. 8. Actualice la tabla cursos de modo que todos los cursos tengan un costo de S/.120. 9. Actualice la tabla personal de modo que todos los trabajadores que pertenecen a la empresa cuyo cdigo es 2, tengan la clase Contratado y el estado A. 10. Actualice la tabla cursos de modo que todos los cursos tengan un nmero de vacantes de 25 alumnos. 11. Elimine las matriculas que tengan estado X. 12. Se desea eliminar los alumnos que pertenecen a la empresa 2. Qu debera suceder con los registros de la tabla matriculas para esos alumnos? 13. Cmo se podra cargar los datos a la tabla clientes desde un archivo TXT? Pruebe su respuesta. 14. Cmo se podra enviar los datos de una tabla hacia un archivo texto TXT? Pruebe su respuesta.

12

Ing. Oscar Ramrez Valdez

You might also like