Está en la página 1de 39

SQL: Structured Query

Language
Lenguaje de consultas
estructuradas

Research Group on Data Mining


Grupo de Investigación en Minería de Datos – (Midas)
Research Group on Artificial Life
Grupo de Investigación en Vida Artificial – (Alife)
Computer and System Department
Engineering School
Universidad Nacional de Colombia
Introducción SQL: Structured Query Language –1–

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Introducción SQL: Structured Query Language –2–

Introducción

SQL lenguaje usado para definir, manipular, y controlar bases de


datos relacionales
Definido por ANSI (American National Standards Institute)
Comandos SQL se pueden dividir en tres categorı́as:
DDL (Data definition language)
create, alter, drop
DML (Data manipulation language)
select, insert, update, delete
DCL (Data control language)
grant, revoke

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Introducción SQL: Structured Query Language –3–

Operaciones básicas sobre la Base de Datos

Crear, Leer, Actualizar, Borrar


Create, Reed, Update, Delete
(CRUD)
Creación/Borrado de tablas y BD
Alteración de las tablas
Inserción de datos
Borrado de datos
Consulta de datos
Actualización de datos

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación Base de Datos SQL: Structured Query Language –4–

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación Base de Datos SQL: Structured Query Language –5–

Creación de una Base de Datos

Para crear una base de Datos en MySQL, se usa la instrucción CREATE


SCHEMA.

−− Crea una b a s e de d a t o s ( schema ) l l a m a d a l i b r e r i a ( s e
−− r e c o m i e n d a no u s a r t ı́ l d e s en l o s nombres de l o s
−− o b j e t o s de l a s b a s e s de d a t o s ) .
CREATE SCHEMA libreria ;
 
Luego de creada la Base de Datos es necesario seleccionarla para operar
sobre ella. Se usa la instrucción USE:

−− S e l e c c i o n a l a b a s e de d a t o s l i b r e r i a
USE libreria ;
 

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación Base de Datos SQL: Structured Query Language –6–

Tablas
Objeto de Bases de Datos

Una Tabla es un objeto de base de datos que almacena datos en filas y


columnas:

Tabla → relación del modelo relacional

1 Nombre de la tabla y de cada columna (modelo fı́sico de la BD)


2 Determinar las propiedades de cada columna. Una de las propiedades
es el tipo de dato (modelo fı́sico de la BD)

LIBRO
libId libNombre libPub
1001 Cien años de soledad 1967
1002 La vorágine 1924
1003 Marı́a 1867
1004 Cóndores no se entierran todos los dı́as 1971

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language –7–

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language –8–

Creación de Tablas I
Propiedades de los atributos

Al crear una tabla es necesario especificar las propiedades de los atributos.


Sintaxis básica de crear la tabla:

CREATE TABLE nombre_tabla (
nombre_columna lista de propiedades ,
...
nombre_columna lista de propiedades ,
[ referencias ]
);
 
Algunas propiedades básicas de un atributo son:
Tipo de dato ENUM (Lista de valores del dominio)
NULL | NOT NULL PRIMARY KEY
IDENTITY o AUTOINCREMENTAL FOREIGN KEY
DEFAULT

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language –9–

Creación de Tablas II
Tipos de Datos en MySQL
Numéricos Cadenas de caracteres
INT (Integer) CHAR(n) donde n es la longitud de la
SMALLINT cadena de caracteres
TINYINT VARCHAR(n) es una cadena de tamaño
variable cuya longitud máxima es n.
MEDIUMINT
VARBINARY(n) es una cadena que
BIGINT almacena cadenas de binarias de bits
FLOAT(n) donde n es la precisión Fecha y Hora
DOUBLE(i,j) o REAL(i,j) donde i es el DATE → YYYY-MM-DD
número total de digitos y j es el número
de dı́gitos decimales TIME → HH:MM:SS
DECIMAL (i,j) o NUMERIC (i,j) donde TIMESTAMP → Incluye fecha y hora
i es la precisión y j la cantidad de más un mı́nimo de 6 fracciones
dı́gitos decimales decimales para los segundos y con
TIME ZONE opcional (depende del
gestor de BD)
Más tipos de datos y sus descripciones en:
https://dev.mysql.com/doc/refman/8.0/en/data-types.html

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 10 –

Creación de Tablas III


Propiedad NULL | NOT NULL

Un NULL representa un valor desconocido o que no aplica


Para valores numéricos, NULL no es igual a 0
Para caracteres, NULL no es igual a ” ” ( en blanco)
NULL no se considera considera menor que, mayor que, o igual a
cualquier otro valor
Dos NULL no se consideran iguales

Ejemplo
Para una tabla persona, con atributos nombre y email.
El atributo ”email” puede ser NULL, ya que no todas las personas
tienen correo electrónico.
El nombre es NOT NULL, todas las personas tienen nombre

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 11 –

Creación de Tablas IV
Propiedad IDENTITY o AUTOINCREMENTAL

El servidor automáticamente asigna un número secuencial (único) a la


columna que tiene la propiedad de IDENTITY o
AUTOINCREMENTAL en el momento de insertar datos en la tabla.
Propiedades:
Sólo puede existir una por tabla
Debe de ser de tipo numérico sin posiciones decimales
No se puede actualizar
No acepta valores tipo NULL
Inicia por default en 1.
Ejemplo
Los códigos e identificadores: el Id de una persona, de un
empleado, de un estudiante, etc.

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 12 –

Creación de Tablas V
Propiedad DEFAULT

Los atributos pueden tener valores por defecto. Es decir, en el momento


de la inserción si no hay valor para ese atributo se insertará el valor
definido por defecto.
Ejemplo
Para una tabla persona, con atributos nombre, email y paı́s de nacimiento.
El atributo ”pais” puede tener un valor por defecto, en caso de que la
mayorı́a de personas sean de Colombia el valor por defecto pueder ser
”Colombia”
El atributo nombre no puede tener un valor por defecto.

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 13 –

Creación de Tablas VI
Propiedad ENUM
Los atributos pueden tener una lista de valores permitidos, usando ENUM.
En el momento de la inserción solo podrá tener un valor de esa lista.
Ejemplos
El ”tipo de identificación”, valores: CC, TI, NUIP, Pasaporte
La ”forma de pago” de una venta, valores: Efectivo, Tarjeta Crédito,
Tarjeta Débito, Transferencia, PSE

Ejemplo

CREATE TABLE venta (
vta_fatura integer AUTO_INCREMENT ,
vta_ id_clie nte integer NOT NULL ,
vta_fecha date NOT NULL ,
vta_total double ( 6 , 1 ) NULL ,
vta_pago ENUM ( ’ E f e c t i v o ’ , ’ T a r j e t a Cr é d i t o ’ , ’ T a r j e t a Dé b i t o ’ , ’ T r a n s f e r e n c i a ’
, ’ PSE ’ ) ,
vta_trans varchar ( 2 0 ) DEFAULT ” E l e c t r ó n i c a ”
);


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 14 –

Creación de Tablas VII


Llave Primaria - Primary Key

Atributo que no repite valor (único), que se utiliza para identificar cada
registro como único. Se utiliza la instrucción PRIMARY KEY
Ejemplo
Los códigos, los números de identificación, los números de las facturas.

CREATE TABLE libro (
libId integer NOT NULL PRIMARY KEY ,
libNombre char ( 5 0 ) NOT NULL ,
libPub smallint NULL
 );


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 15 –

Creación de Tablas VIII


Llave Primaria - Primary Key

Pueden haber llaves primarias compuestas, es decir que se componen da


mas de un atributo. En este caso se especifica al final de la definición de
los atributos de la tabla.
Ejemplo

−− T a b l a con l l a v e p r i m a r i a c o m p u e s t a de t r e s a t r i b u t o s
CREATE TABLE venta (
vta_i d_cliente integer NOT NULL ,
v ta _i d_ p ro ducto integer NOT NULL ,
vta_cantidad integer NULL ,
vta_fecha date NOT NULL ,
vta precio double ( 6 , 1 ) NULL ,
vta_total double ( 6 , 1 ) NULL ,
PRIMARY KEY ( vta_id_cliente , vta_id_producto , vta_fecha )
);


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 16 –

Creación de Tablas VIII


Llave Foraneas - Foreign Key
Para definir un atributo como referencia a otro atributo en otra tabla se
usa la expresion FOREIGN KEY al final de la definición de todos los
atributos de la tabla.

FOREIGN KEY ( atributo ) REFERENCES
tabla_referencia ( atributo_tabla_referencia )
 
Ejemplo

−− v t a i d c l i e n t e e s un a t r i b u t o que e s l l a v e f o r á nea . R e f e r e n c i a a l a t r i b u t o id cliente
−− de l a t a b l a c l i e n t e
CREATE TABLE venta (
vta_ id_factura INT NOT NULL ,
vta_ id_cliente INT NOT NULL ,
vta_cantidad INT ,
PRIMARY KEY ( vta_id_factura ) ,
FOREIGN KEY ( vta_id_cliente ) REFERENCES cliente ( id_cliente )

);


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 17 –

Creación de Tablas IX
Sintaxis en SQL

Sintaxis SQL simplificada para Crear una Tabla o relación:



CREATE TABLE nombre_tabla (
nomb re_columna tipo_dato [ AUTO_INCREMENT ] [ [ PRIMARY ] KEY ] [ NULL | NOT NULL ] [
DEFAULT {valor ) } ] ,
...
nomb re_columna tipo_dato [ AUTO_INCREMENT ] [ [ PRIMARY ] KEY ] [ NULL | NOT NULL ] [
DEFAULT {valor ) } ] ,
FOREIGN KEY nombre_atributo REFERENCES nombre_tabla_ref ( n o m b r e_ a t r i b u t o _r e f )
 );

Ejemplo

−− C r e a l a t a b l a p e r s o n a con c u a t r o a t r i b u t o s
CREATE TABLE persona (
perID integer AUTO_INCREMENT PRIMARY KEY ,
perNombre char ( 3 0 ) NOT NULL ,
perCorreo char ( 3 0 ) NULL ,
perPais ENUM ( ’ A r g e n t i n a ’ , ’ A l e m a n i a ’ , ’ C o l o m b i a ’ , ’ I t a l i a ’ , ’Mé x i c o ’ , ’ Espa ñ a ’ , ’EUA ’ )
DEFAULT ” C o l o m b i a ”
 );


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 18 –

Creación de Tablas X
Recomendaciones para el desarrollo
Crear todas las tablas a través de un script
Facilita la recreación de los objetos
Sirve como material permanente de referencia

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 19 –

Creación de Tablas XI
En MySQL

Ejemplo

CREATE SCHEMA libreria ;
USE libreria ;
CREATE TABLE libro (
libId integer NOT NULL PRIMARY KEY ,
libNombre char ( 5 0 ) NOT NULL ,
libPub smallint NULL
);

CREATE TABLE autor (


autId integer AUTO_INCREMENT PRIMARY KEY ,
autApellido varchar ( 3 0 ) NOT NULL DEFAULT ” ” ,
autNombre varchar ( 5 0 ) NOT NULL ,
autEmail char ( 3 0 ) NULL ,
autPais ENUM ( ’ A r g e n t i n a ’ , ’ A l e m a n i a ’ , ’ C o l o m b i a ’ , ’ I t a l i a ’ , ’Mé x i c o ’ , ’ Espa ñ a ’ , ’EUA ’ )
DEFAULT ” C o l o m b i a ”
);

CREATE TABLE venta (


vtaId integer AUTO_INCREMENT PRIMARY KEY ,
vtaFecha date NOT NULL ,
libId integer NOT NULL ,
vtaCantidad smallint NOT NULL ,
FOREIGN KEY ( libId ) REFERENCES libro ( libId ) ,
);


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Creación de tablas - CREATE TABLE SQL: Structured Query Language – 20 –

Creación de Tablas XII


Verificación de la creación de tablas

Para verificar la creación de tablas se usa:



SHOW TABLES ;
 
Para revisar la estructura de una tabla:

SHOW COLUMNS FROM nombre_tabla ;
 
Para ver la descripción de la tabla se usa:

DESCRIBE nombre_tabla ;
 

Ejemplo
Ejecutar en la bd libreria:

SHOW TABLES ; 

DESCRIBE LIBRO ; 

SHOW COLUMNS FROM LIBRO ;


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Borrado de tablas - DROP TABLE SQL: Structured Query Language – 21 –

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Borrado de tablas - DROP TABLE SQL: Structured Query Language – 22 –

Borrado de Tablas
Sintaxis Simplificada

Comando DROP. Borra el objeto tabla con sus datos. Sintaxis


Simplificada para drop:

DROP TABLE table_name
 

Ejemplo
−− b o r r a l a t a b l a a u t o r
DROP TABLE autor
 

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Inserción de Datos - INSERT SQL: Structured Query Language – 23 –

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Inserción de Datos - INSERT SQL: Structured Query Language – 24 –

Inserción de Datos I
Sintaxis Simplificada

Sintaxis INSERT Simplificada:



INSERT [ INTO ] nombre_tabla [ ( lista_columnas ) ]
{ VALUES ( lista_valores ) | sentencia_select }
 

Ejemplo

−− I n s e r t a un r e g i s t r o en l a t a b l a l i b r o u s a n d o l i s t a
−− de c o l u m n a s . Asume que l a l l a v e p r i m a r y e s a u t o i n c r e m e n t a l
INSERT INTO libro ( libId , libNombre , libPub ) VALUES ( ” E l o l v i d o que s e r e m o s ” , 2 0 0 5 ) ;

−− I n s e r t a un r e g i s t r o en l a t a b l a l i b r o . Se i n s e r t a l a l l a v e
 INSERT INTO libro VALUES ( 2 0 1 , ” E l r e n a c u a j o p a s e a d o r ” , 1 8 6 7 ) ;


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Inserción de Datos - INSERT SQL: Structured Query Language – 25 –

Inserción de Datos II
En MySQL

Ejemplo

−− I n s e r t a r l o s s i g u i e n t e s t r e s r e g i s t r o s en l a t a b l a L i b r o :
INSERT INTO libro ( libId , libNombre , libPub ) VALUES ( 1 0 0 1 , ” C i e n a ñ o s de s o l e d a d ” , 1 9 6 7 ) ;
INSERT INTO libro ( libId , libNombre , libPub ) VALUES ( 1 0 0 2 , ” La Vor á g i n e ” , 1 9 2 4 ) ;
INSERT INTO libro ( libId , libNombre , libPub ) VALUES ( 1 0 0 3 , ”Marı́ a ” , 1 8 6 7 ) ;
−− I n s e r t a r l o s l i b r o s :
−− ”Có n d o r e s no s e e n t i e r r a n t o d o s l o s dı́ a s ” p u b l i c a d o en 1971 con ID 1 0 0 4 ,
−− ” E l r e n a c u a j o p a s e a d o r ” p u b l i c a d o en 1867 con ID 1 0 0 5 ) ;
 

−− Para v e r i f i c a r l a s a c t u a l i z a c i o n e s , e j e c u t a r a n t e s y d e s p u é s d e l INSERT
SELECT ∗ FROM libro ;
SELECT ∗ FROM autor ;
 

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Inserción de Datos - INSERT SQL: Structured Query Language – 26 –

Inserción de Datos III


En MySQL

Ejemplo (continuación)

−− I n s e r t a r l o s d o s r e g i s t r o s en l a t a b l a Autor , s o l o s e i n s e r t a n nombre y a p e l l i d o .
INSERT INTO autor ( autApellido , autNombre ) VALUES ( ” Garc ı́ a Má r q u e z ” , ” G a b r i e l ” ) ;
INSERT INTO autor ( autApellido , autNombre ) VALUES ( ” I s a a c s ” , ” J o r g e ” ) ;
−− I n s e r t a r un a u t o r con a u t P a i s
INSERT INTO autor ( autApellido , autNombre , autPais ) VALUES ( ” A l i g h i e r i ” , ” Dante ” , ” I t a l i a
”) ;
−− I n s e r t a r un a u t o r con c o r r e o
INSERT INTO autor ( autApellido , autNombre , autEmail ) VALUES ( ” Trueba ” , ” F e r n a n d o ” , ”
f t r u e b a @ g m a i l . com” ) ;

INSERT INTO autor ( autApellido , autNombre ) VALUES ( ” R i v e r a ” , ” J o s e E u s t a s i o ” ) ;


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Actualización de datos - UPDATE SQL: Structured Query Language – 27 –

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Actualización de datos - UPDATE SQL: Structured Query Language – 28 –

Actualización de Datos

Sintaxis UPDATE simplificada:



UPDATE nombre_tabla
SET columna1=valor1 , columna2=valor2 , ...
WHERE condicion
 

Ejemplo

−− A c t u a l i z a e l I d d e l l i b r o con I d = 1003
UPDATE libro SET libPub =2000 WHERE libId = 1 0 0 3 ;
−− A c t u a l i z a e l Nombre d e l l i b r o con I d = 1003
 UPDATE libro SET libNombre = ” La Casa Grande ” , libPub =1962 WHERE libId = 1 0 0 3 ;


−− Para v e r i f i c a r l a s a c t u a l i z a c i o n e s , e j e c u t a r a n t e s y d e s p u é s d e l UPDATE
∗ FROM libro ;
 SELECT 

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Borrado de datos - DELETE SQL: Structured Query Language – 29 –

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Borrado de datos - DELETE SQL: Structured Query Language – 30 –

Borrado de Datos

Sintaxis DELETE simplificada:



DELETE FROM nombre_tabla WHERE condicion
 
La condición es opcional. Si no se usa borra todos los datos de la tabla.
Ejemplos
Borra los libros con año de publicación menor a 1990

DELETE FROM libro where libPub < 1 9 9 0 ;

Borra todos los datos de la tabla libro.

DELETE FROM libro ;


Actividad. Borrar tres registros de la tabla autor con alguna condición

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Alteración/Modificación de tablas - ALTER TABLE SQL: Structured Query Language – 31 –

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Alteración/Modificación de tablas - ALTER TABLE SQL: Structured Query Language – 32 –

Alterar Tablas I
Sintaxis ALTER simplificada:

ALTER TABLE nombre_tabla
ADD nombre_columna definicion_columna ,
| DROP nombre_columna ,
| RENAME COLUMN nombre_actual TO nombre_nuevo
 
Ejemplo

−− A d i c i o n a un a t r i b u t o de p r e c i o a l i b r o con v a l o r p o r d e f e c t o en 0
ALTER TABLE libro ADD libPrecio double ( 7 , 1 ) DEFAULT 0 ;
−− B o r r a una columna
ALTER TABLE autor DROP fechaNto ;
−− Renombra un a t r i b u t o
 ALTER TABLE autor RENAME COLUMN autEmail TO autCorreo ;


−− Para v e r i f i c a r l o s cambio , e j e c u t a r a n t e s y d e s p u é s de l a i n s t r u c c i ón
SELECT ∗ FROM libro ;
SELECT ∗ FROM autor ;
 

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Alteración/Modificación de tablas - ALTER TABLE SQL: Structured Query Language – 33 –

Alterar Tablas II

Ejemplo
Para el ejemplo de la librerı́a, suponer que un libro es escrito por un solo
autor. Por lo que se desea incluir el atributo del identificador del autor en
la tabla libro como llave foránea a la tabla autor.

ALTER TABLE libro ADD autID integer FOREIGN KEY ( autID ) REFERENCES autor ( autID ) ;

Insertar a los libros el correspondiente identificador del autor:

UPDATE libro SET autID=1 WHERE libId =1001

¿Qué sucede con la siguiente instrucción?, si no funciona ¿Cuál es la
razón?

UPDATE libro SET autID=10 WHERE libId =1005


León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Problemas SQL: Structured Query Language – 34 –

Agenda

1 Introducción
2 Creación Base de Datos
3 Creación de tablas - CREATE TABLE
4 Borrado de tablas - DROP TABLE
5 Inserción de Datos - INSERT
6 Actualización de datos - UPDATE
7 Borrado de datos - DELETE
8 Alteración/Modificación de tablas - ALTER TABLE
9 Problemas

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Problemas SQL: Structured Query Language – 35 –

Problemas I
Crear BD y cargar script
Problema
1 Bajar el script museo.sql
Usando la aplicación Workbench, en File del menú principal y la opción
open script cargar el script museo.sql
Ejecutar el script haciendo click en el botón execute (rayo)
Verificar si los datos fueron cargados con el comando SHOW (todas las
tablas)

SHOW columns FROM obra ;
SHOW columns FROM exposicion ;
 
Verificar si tienen datos

SELECT ∗ FROM obra ;
SELECT ∗ FROM exposicion ;
 
Explique las tablas y que relación existen entre ellas.

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Problemas SQL: Structured Query Language – 36 –

Problemas II
cargar script - corregir errores

Problema
2 Bajar el script veterinariaN.sql
Usando la aplicación Workbench, en File del menú principal y la opción
open script cargar el script veterinariaN.sql
Ejecutar el script
Corregir el script con cada uno de los errores que se van generando y
ejecutar nuevamente el script hasta que este totalmente correcto y
quede creada la bases de datos completamente.

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN


Problemas SQL: Structured Query Language – 37 –

Problemas III
SQL

Problema
3 Escribir la sentencia SQL para crear una tabla que guarde la siguiente
información: Se desea almacenar información de Pelı́culas, como el
tı́tulo que debe ser obligatorio, tema que puede ser opcional, género
que debe ser obligatorio, pero si no se conoce el género por defecto se
le colocará la cadena ”desconocido”. También se debe incluir el
a~no del estreno que debe ser obligatorio , el id de la pelı́cula será el
identificador único y es un número consecutivo. Deberá tener una llave
foránea a una tabla director con el ID del director de la pelı́cula.
Insertar datos a la tabla creada
Alterar la tabla para incluir un atributo numérico que permita guardar
la duración de la pelı́cula en minutos. Por defecto colocar la duración
en 0.
Alterar la tabla para incluir un atributo numérico que permita guardar
una calificación de la pelı́cula.
Actualizar la calificación de las pelı́culas que tienen año de estreno
anterior al 2000, colocar una calificación de 0.0
León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN
Problemas SQL: Structured Query Language – 38 –

Problemas IV
Problema
4 Implementar las tablas del siguiente diagrama E/R.

Insertar datos a las tablas


Generar un script (file.sql) con las instrucciones de creación e inserción
de datos.

León, Gómez, Rodrı́guez, Cubides & Sierra Programación de Computadores – UN

También podría gustarte