Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Language
Lenguaje de consultas
estructuradas
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
Introducción
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
Tablas
Objeto de Bases de Datos
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
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
Creación de Tablas I
Propiedades de los atributos
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
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
Creación de Tablas IV
Propiedad IDENTITY o AUTOINCREMENTAL
Creación de Tablas V
Propiedad DEFAULT
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 ”
);
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
);
Creación de Tablas IX
Sintaxis en SQL
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
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
);
Ejemplo
Ejecutar en la bd libreria:
SHOW TABLES ;
DESCRIBE LIBRO ;
SHOW COLUMNS FROM LIBRO ;
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
Borrado de Tablas
Sintaxis Simplificada
Ejemplo
−− b o r r a l a t a b l a a u t o r
DROP TABLE autor
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
Inserción de Datos I
Sintaxis Simplificada
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 ) ;
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 ;
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 ” ) ;
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
Actualización de Datos
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
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
Borrado de Datos
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
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 ;
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
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
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.
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.
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.