0% encontró este documento útil (0 votos)
148 vistas22 páginas

Practica Introducción A MySQL - LDD

El lenguaje SQL fue desarrollado en los años 1970 para permitir el acceso y manipulación de datos almacenados en sistemas de gestión de bases de datos relacionales. SQL incluye lenguajes para definir esquemas de datos, manipular datos e insertar, actualizar y eliminar registros de las tablas de una base de datos. SQL se ha convertido en el lenguaje estándar para interactuar con la mayoría de los sistemas de gestión de bases de datos relacionales.

Cargado por

Fran Zepeda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
148 vistas22 páginas

Practica Introducción A MySQL - LDD

El lenguaje SQL fue desarrollado en los años 1970 para permitir el acceso y manipulación de datos almacenados en sistemas de gestión de bases de datos relacionales. SQL incluye lenguajes para definir esquemas de datos, manipular datos e insertar, actualizar y eliminar registros de las tablas de una base de datos. SQL se ha convertido en el lenguaje estándar para interactuar con la mayoría de los sistemas de gestión de bases de datos relacionales.

Cargado por

Fran Zepeda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 22

Breve descripción de SQL

El modelo relacional fue propuesto por primera vez


por E. F. Codd en 1970. D. D. Chamberlin y otros en el
Laboratorio de investigación San José de IBM
desarrollaron un lenguaje ahora llamado SQL, o
Structured Query Language (lenguaje de consulta
estructurado) como un sublenguaje de datos para el
modelo relacional. Originalmente nombrado SEQUEL, el lenguaje se presentó en una
serie de ponencias que comenzaron en 1974, y se usó en un sistema relacional
prototipo llamado System R, que desarrolló IBM a finales de la década de 1970. Otros
primeros sistemas de gestión de bases de datos relacionales prototipos incluyeron
INGRES, que se desarrolló en la Universidad de California en Berkeley, y el Peterlee
Relational Test Vehicle, creado en el Laboratorio científico IBM del Reino Unido. El
System R se evaluó y refinó durante un periodo de varios años y se convirtió en la
base del primer sistema IBM de gestión de base de datos relacional disponible
comercialmente, SQL/DS, que se anunció en 1981. Otro primer sistema de gestión
de base de datos comercial, Oracle, se desarrolló a finales de la década de 1970 con
el uso de SQL como su lenguaje. El DB2 de IBM, que también usa SQL como su
lenguaje, se lanzó en 1983. Microsoft SQL Server, MySQL, Informix, Sybase, dBase,
Paradox, r:Base, FoxPro y muchos otros sistemas de gestión de bases de datos
relacionales han incorporado SQL.

En este apartado se presenta una visión general de SQL basada en la norma SQL-92
ampliamente implementada. El lenguaje SQL tiene varios componentes:
Lenguaje de definición de datos (LDD): El LDD de SQL proporciona órdenes para
la definición de esquemas de relación, borrado de relaciones, creación de índices y
modificación de esquemas de relación.
Lenguaje interactivo de manipulación de datos
(LMD): El LMD de SQL incluye un lenguaje de
consultas, basado tanto en el álgebra relacional como
en el cálculo relacional de tuplas. Incluye también
órdenes para insertar, borrar y modificar tuplas
(registros) de la base de datos.

Definición de vistas: El LDD de SQL incluye órdenes para la definición de vistas.


Control de transacciones: SQL incluye órdenes para la especiación del comienzo y
final de transacciones.
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

SQL incorporado y SQL dinámico. SQL dinámico e incorporado define cómo se


pueden incorporar las instrucciones SQL en lenguajes de programación de propósito
general, tales como C, C++, Java, PL/I, Cobol, Pascal y Fortran.
Integridad. El LDD de SQL incluye órdenes para la especificación de las restricciones
de integridad que deben satisfacer los datos almacenados en la base de datos. Las
actualizaciones que violen las restricciones de integridad se rechazan.

Autorización. El LDD de SQL incluye órdenes para especificar derechos de acceso


para las relaciones y vistas.

Lenguaje de Definición de Datos (LDD)

El DDL (en inglés Data Definition Language, o DDL) es la parte del lenguaje SQL que
realiza la función de definición de datos del SGBD. Fundamentalmente se encarga
de la creación, modificación y eliminación de los objetos de la base de datos (es decir
de los metadatos). Por supuesto es el encargado de la creación de las tablas.

Cada usuario de una base de datos posee un esquema. El esquema suele tener el
mismo nombre que el usuario y sirve para almacenar los objetos de esquema, es
decir los objetos que posee el usuario.
Esos objetos pueden ser: tablas, vistas, índices y otros objetos relacionados con la
definición de la base de datos. Los objetos son manipulados y creados por los
usuarios.

En principio sólo los administradores y los usuarios propietarios pueden acceder a


cada objeto, salvo que se modifiquen los privilegios del objeto para permitir el
acceso a otros usuarios.
El LDD es la parte del SQL que más varía de un sistema a otro ya que esa área tiene
que ver con cómo se organizan internamente los datos y eso, cada sistema lo hace
de una manera u otra.
El LDD de SQL permite la especificación no sólo de un conjunto de relaciones, sino
también de alguna información relativa a esas relaciones, incluyendo:

• El esquema de cada relación.


• El dominio de valores asociado a cada atributo.
• Las restricciones de integridad.
• El conjunto de índices que se deben mantener por cada relación.
• Información de seguridad y autorización para cada relación.

1
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

• La estructura de almacenamiento físico de cada relación en disco.

El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el


que se encarga de la modificación de la estructura de los objetos de la base de datos.
Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.

Los comandos más importantes del lenguaje de definición de datos (DDL) SQL son
los siguientes:

o CREATE TABLE
o CREATE INDEX
o ALTER TABLE
o RENAME TABLE
o DROP TABLE
o DROP INDEX

Para iniciar una nueva sesión contra el servidor de MySQL deberemos utilizar una
aplicación cliente que nos permita comunicar las peticiones que queremos indicarle
al servidor. Para iniciar un nuevo cliente: Abrir una consola del SO.

La órden >mysql -u root -h localhost -p

Obtiene el siguiente resultado

Veamos que significan cada uno de los parámetros pasados al cliente: u identifica
que usuario intenta acceder. h el host o máquina del cliente, identifica desde que
computador nos queremos conectar. p petición de password iterativo. Por defecto
nos estamos conectando como root (administrador) pero pueden conectarse al
sistema múltiples usuarios una vez que han sido agregados. Para salir del Shell mysql
exit
Comandos de MYSQL
mysql> help

List of all MySQL commands:


Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.

2
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

ego (\G) Send command to mysql server, display result vertically.


exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given
outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing
binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
resetconnection(\x) Clean session context.
query_attributes(\) Sets string parameters (name1 value1 name2 value2 ...)
for the next query to pick up.

For server side help, type 'help contents'

La instrucción tee se utiliza para la captura de la salida de la consola de MySQL.

Desactivar tee

La instrucción source se utiliza para ejecutar archivos en MySQL

prompt Significado

mysql> Listo para un nuevo comando.

-> A la espera de la siguiente línea de comando de varias líneas.

‘> A la espera de la siguiente línea, a la espera de la finalización de una


cadena que comenzó con una sola comilla ("'").

3
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

“> A la espera de la siguiente línea, a la espera de la finalización de una


cadena que comenzó con una comilla doble ("").

`> A la espera de la siguiente línea, a la espera de la finalización de un


identificador que comenzó con una comilla simple invertida("').

/*> A la espera de la siguiente línea, a la espera de la finalización de un


comentario que comenzó con /*.

Información sobre la base de Datos y Tablas


Mostrar las BBDD en el sistema. mysql> show databases;
Mostrar las tablas de la BBDD
seleccionada. Antes de
ejecutar el mysql> show tables;
commandomysql>use mysql
esto pondrá a la
Muestra las columnas
base de datos del sistema de unamysql
tabla
de mysql> show columns from mysql.user;
activa.
la BBDD seleccionada. En el
ejemplo latodas
Muestra tablalas
uservariables
de la BBDD
mysql.
cargadas
en el servidor
mysql> show variables;
(primer ejemplo). El segundo
mysql> show variables like ‟stora%‟
ejemplo muestra las
variables en el servidor que
empiezan por la
Mostrar los privilegios
palabra stora, el de
% usuario.
es un mysql> show grants for root@localhost;
Los posibles privilegios que el
usuariocomodín mysql> show privileges;
Mostrar el juego de caracteres
mysql> show character set;
soportado por el sistema.
Muestra la estructura de la tabla. En
el mysql> describe mysql.user;
ejemplo la tabla user de la
Muestra el usuario actual.
BBDD MySQL. mysql> select user();
Muestra la base de datos actual mysql> select database();
Muestra los warnings de mysql mysql> show warnings;

4
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

1. Creación de base de datos

Lógicamente sólo es posible crear una base de datos si se tienen privilegios DBA
(DataBase Administrator).

El comando SQL de creación de una base de datos es CREATE DATABASE.


Sintaxis:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_option] ...

create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] {'Y' | 'N'}
}

CREATE DATABASE crea una base de datos con el nombre que se establece en
db_name. Para usar esta declaración, necesita el privilegio CREATE para la base de
datos. CREATE SCHEMA es sinónimo de CREATE DATABASE.
Cada uno create_option especifica una característica de la base de datos. Las
características de la base de datos se almacenan en el diccionario de datos.

• La CHARACTER SET opción especifica el juego de caracteres predeterminado de


la base de datos. Puede visualizar el formato con el comando SHOW CHARSET.
• La COLLATE opción especifica la clasificación de la base de datos
predeterminada. Puede visualizar los Collation existentes en mysql con el
comando SHOW COLLATION.
• La ENCRYPTION opción, introducida en MySQL 8.0.16, define el cifrado de base
de datos predeterminado, que es heredado por las tablas creadas en la base
de datos.

5
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

Este comando crea una base de datos con el nombre que se indique.

Ejemplo:

Cuando se usa la cláusula IF NOT EXISTS, MySQL devolverá una advertencia en lugar
de un error si la base de datos especificada ya existe.
Ejemplo:

Ejemplos:
Mysql nos devuelve error al intentar crear dos veces la misma base de datos (no
puede repetirse el nombre).

En este ejemplo se usa la sentencia IF EXISTS:

Al visualizar las advertencias de MySQL se aprecia que la base de datos anterior (db1)
no se creó porque ya existe.

Creación de una base de datos con codificación UTF8:

6
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

Con el siguiente comando se crea una base de datos llamada czech_slovak_names y


su codificación es KEYBC S2.

2. Seleccionar una base de datos

USE db_name

El comando USE db_name le dice a MySQL que use la base de datos db_name como
la base de datos por defecto para los comandos siguientes. Sigue siendo la base
de datos por defecto hasta el final de la sesión o hasta que se realiza otro
comando USE.
Ejemplos:

3. Mostrar las bases de datos


Sintaxis:
SHOW {DATABASES | SCHEMAS}
[LIKE 'pattern' | WHERE expr]

SHOW DATABASES enumera las bases de datos en el host del servidor MySQL. SHOW SCHEMAS
es sinónimo de SHOW DATABASES.

La cláusula LIKE , si está presente, indica qué nombres de base de datos deben
coincidir. La cláusula WHERE se puede dar para seleccionar filas usando condiciones
más generales.

Solo ve las bases de datos para las que tiene algún tipo de privilegio, a menos que
tenga el privilegio global SHOW DATABASES.

7
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

Ejemplo:

Visualizar las bases de datos cuyo nombre inicia con la letra d

4. Modificar una base de datos


ALTER DATABASE le permite cambiar las características globales de una base de datos.
Estas características se almacenan en el fichero db.opt en el directorio de la base de
datos. Para usar ALTER DATABASE, necesita el permiso ALTER en la base de datos.
Sintaxis:
ALTER {DATABASE | SCHEMA} [db_name]
modificaciones [, modificaciones2] ...

modificaciones:
[DEFAULT] CHARACTER SET nombre_charset
| [DEFAULT] COLLATE nombre_collate

Ejemplo
En este ejemplo se creará una base de datos llamada modificar con formato latin y
collation latin1_spanish_ci, luego se modifica a formato utf16 y collation
utf16_general_ci.

Creamos la base de datos:

8
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

CREATE DATABASE modificar


CHARACTER SET latin1
COLLATE latin1_spanish_ci;

Modificamos el formato de caracteres:


ALTER DATABASE modificar CHARACTER SET utf16 COLLATE utf16_general_ci;

5. Eliminar una base de datos


Sintaxis:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

DROP DATABASE elimina todas las tablas de la base de datos y elimina la base de
datos. Para usar DROP DATABASE, necesita el privilegio DROP en la base de datos.
IF EXISTS se utiliza para evitar que se produzca un error si la base de datos no existe.

DROP DATABASE devuelve el número de tablas que se eliminaron.

La declaración DROP DATABASE elimina del directorio de base de datos dado aquellos
archivos y directorios que MySQL puede crear durante el funcionamiento normal.

Ejemplos:
Antes de eliminar las bases de datos en los siguientes ejemplos, comprobaremos los
esquemas que han sido creados en el servidor, para ello se utiliza la sentencia SHOW
DATABASES:

9
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

En este ejemplo se elimina la base de datos db1 y luego comprobamos que se haya
eliminado:

En el siguiente ejemplo eliminaremos la base de datos db2:

para evitar que retorne error al eliminar una base de datos no existe, se utiliza IF
EXISTS:

6. Creación de tablas: Sentencia CREATE TABLE


Deben cumplir las siguientes reglas:

• Deben comenzar con una letra.


• Sólo se permiten utilizar letras del alfabeto (inglés), números o el signo de
• subrayado (también el signo $ y #, pero esos se utilizan de manera especial por
lo que no son recomendados)
• No puede haber dos tablas con el mismo nombre para el mismo esquema
(pueden coincidir los nombres si están en distintos esquemas)
• No puede coincidir con el nombre de una palabra reservada SQL (por ejemplo,
no se puede llamar SELECT a una tabla)

10
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

• En el caso de que el nombre tenga espacios en blanco o caracteres nacionales


(permitido sólo en algunas bases de datos), entonces se suele entrecomillar con
comillas dobles. En el estándar SQL 99 se pueden utilizar comillas dobles al poner el
nombre de la tabla a fin de hacerla sensible a las mayúsculas (se diferenciará entre
“FACTURAS” y “Facturas”)
Sentencia CREATE TABLE
La sintaxis de esta sentencia es muy compleja, ya que existen muchas opciones y
muchas posibilidades diferentes a la hora de crear una tabla. La sintaxis básica es la
siguiente:
CREATE TABLE [esquema.] nombreDeTabla
(
nombre_de_columna1 tipo_de_dato [DEFAULT valor] [restricciones]
[, nombre_de_columna2 tipo_de_dato [DEFAULT valor] [restricciones]
]
);

Sin embargo, como se mencionaba anteriormente esta sintaxis puede ser muy
compleja porque existen muchas opciones a la hora de crear una tabla, por lo que
una apreciación más extendida de la sintaxis CREATE TABLE podría ser de la siguiente
forma:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nombre_tabla
(create_definition,...)
[table_options]
[partition_options]

CREATE TABLE crea una tabla con el nombre dado. Debe tener el permiso CREATE
para la tabla. De forma predeterminada, las tablas se crean en la base de datos
predeterminada, utilizando el motor InnoDB de almacenamiento. Se produce un
error si la tabla existe, si no hay una base de datos predeterminada o si la base de
datos no existe.
Ejemplo:
Mysql> CREATE TABLE proveedores (nombre VARCHAR(25));

Crea una tabla con un solo campo de tipo VARCHAR.

11
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

Ejemplo:

CREATE TABLE persona(


nombre CHAR(30),
direccion CHAR(40),
telefono CHAR(9)
);

En este caso con el comando anterior se crea una tabla llamada persona en la base
de datos en uso. La tabla contiene tres columnas, nombre, dirección y teléfono todas
de tipo carácter y de longitudes de 30, 40 y 15 respectivamente. Si se intenta guardar
en ellas valores que sobrepasen esos límites, serán truncados para poderlos
almacenar.
Ejemplo:
El siguiente ejemplo crea una tabla llamada "persona2" que contiene cinco
columnas: ID , Apellido , Nombre , Dirección y Ciudad :
CREATE TABLE persona2 (
ID INT,
Apellido VARCHAR(255),
Nombre VARCHAR (255),
Dirección VARCHAR (255),
Ciudad VARCHAR(255)
);

12
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

La tabla persona2 representado en con diagrama relacional seria de la siguiente


forma:

Las columnas Apellido, Nombre, Dirección y Ciudad son de tipo varchar y


contendrán caracteres, y la longitud máxima de estos campos es de 255 caracteres.

Al ejecutar el script SQL anterior en la línea de comandos cliente de MySQL, se


obtiene el resultado:

Se puede observar que en esta ocasión no hubo necesidad de ejecutar la orden USE
base_de_datos, puesto que una vez se especifica la base de datos donde se trabajara
esta será la que permanezca en uso hasta finalizar la sesión o hasta especificar otra
base de datos con la orden USE nuevamente.
Ejemplo
CREATE TABLE usuario(
idsuario INT ,
nombre VARCHAR(30),
clave VARCHAR (30)
);

13
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

Tablas temporales: MySQL permite la creación de tablas temporales, visibles


exclusivamente en la sesión abierta, y guardar datos entre consultas. La creación de
una tabla temporalsólo requiere la utilización de la palabra temporary en cualquier
formato del comando create table.
CREATE TEMPORARY TABLE nueva_tabla ...;

1. Mostrar tablas de una base de datos


Sentencia: SHOW TABLES
Para consultar cuántas tablas y qué nombres tienen en una base de datos, se usa la
sentencia SHOW TABLES.

El comando SHOW TABLES le permite mostrar si una tabla es una tabla base o una
vista. Para incluir el tipo de tabla en el resultado, utilice la siguiente forma de SHOW
TABLES.

14
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

SHOW FULL TABLES;

2. Consultar estructura de una tabla


Sentencia: Describe
Sintaxis:
DESCRIBE nombre_tabla;

Ejemplo:

El comando DESCRIBE, permite obtener la estructura de una tabla. DESCRIBE


proporciona información sobre las columnas de una tabla. col_name puede ser un
nombre de columna o una cadena que contenga los caracteres comodín SQL '%' and
'_' para obtener salida sólo para las columnas cuyos nombres coincidan con la
cadena. No es necesario escribir las cadenas entre comillas.

Sintaxis más detallada:

15
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

DESCRIBE nombre_tabla [nombre_columna | wild]

Ejemplo:
Mysql> DESCRIBE persona2 Apellido;

3. Sentencia DROP TABLE


Se utiliza para borrar una relación de una base de datos. Dicha orden borra de la
base de datos toda la información sobre la relación eliminada.

Esta instrucción tiene una repercusión más drástica que la instrucción: delete from.

Primero consultamos las tablas en la base de datos:

Por ultimo eliminamos la tabla persona:

16
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

La diferencia en ambas instrucciones es que en la primera (DROP) se borran todas


las filas de la relación y la relación misma, en cambio, en la segunda (DELETE) solo se
borran todas las filas, es decir, se conserva la relación.
Al borrar una tabla:

- Desaparecen todos los datos


- Cualquier vista y sinónimo referente a la tabla seguirá existiendo, pero ya no
funcionará (conviene eliminarlos)
- Las transacciones pendientes son aceptadas (COMMIT), en aquellas bases de
datos que tengan la posibilidad de utilizar transacciones.
- Lógicamente, sólo se pueden eliminar las tablas sobre las que tenemos
permisos de borrado.

Normalmente, el borrado de una tabla es irreversible, y no hay


ninguna petición de confirmación, por lo que conviene ser muy
cuidadoso con esta operación.

4. Sentencia TRUNCATE TABLE

TRUNCATE TABLE es similar a la instrucción DELETE; no obstante, TRUNCATE TABLE es


más rápida y utiliza menos recursos de registros de transacciones y de sistema.

Sintaxis:
TRUNCATE TABLE nombre_tabla;

TRUNCATE TABLE vacía una tabla por completo. Requiere el privilegio DROP.
Lógicamente, TRUNCATE TABLEes similar a una DELETE declaración que elimina
todas las filas, o una secuencia de declaraciones DROP TABLE y CREATE TABLE.

Ejercicios Resueltos
1- Cree una tabla que contenga los siguientes atributos:

17
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

Usuario
Columna Tipo de dato Longitud
ID_Usuario Entero 6
Nombre Cadena variable 25
Email Cadena variable 50
Fecha_Registro Cadena variable 20
Telefono Cadena fija 8

CREATE TABLE `Usuario` (


`ID_Usuario` INT(6),
`Nombre` VARCHAR(25) NOT NULL,
`Email` VARCHAR(50) NOT NULL,
`Fecha_Registro` VARCHAR(25) NOT NULL,
`Telefono` CHAR(25) NOT NULL
);

2- Escriba el código SQL necesario para crear la tabla Empleado con las siguientes
características:

Empleados
Columna Tipo de dato Longitud máx.
ID_Empleado INTEGER
Apellido VARCHAR 20
Nombre VARCHAR 10
Titulo VARCHAR 30
Titulo_Cortesia VARCHAR 25
Fecha_Nac DATE
Fecha_Alta DATE
Direccion VARCHAR 60
Ciudad VARCHAR 15
Region VARCHAR 15
Cod_Postal VARCHAR 10
Pais VARCHAR 15
Region VARCHAR 15
Cod_Postal CHAR 5
Ciudad VARCHAR 15
Telefono VARCHAR 8
Extension CHAR 4
Fotografia LONGBLOB

18
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

Notas MEDIUMTEXT
Salario FLOAT

CREATE TABLE `Empleados` (


`ID_Empleado` INTEGER NOT NULL AUTO_INCREMENT,
`Apellido` VARCHAR(20) NOT NULL,
`Nombre` VARCHAR(10) NOT NULL,
`Titulo` VARCHAR(30),
`Titulo_Cortesia` VARCHAR(25),
`Fecha_Nac` DATETIME,
`Fecha_Alta` DATETIME,
`Direccion` VARCHAR(60),
`Ciudad` VARCHAR(15),
`Region` VARCHAR(15),
`Cod_Postal` CHAR(5),
`Pais` VARCHAR(15),
`Telefono` VARCHAR(24),
`Extension` VARCHAR(4),
`Fotografia` LONGBLOB,
`Notas` MEDIUMTEXT NOT NULL,
`Salario` FLOAT
);

Ejercicio utilizando llave primaria y llave foránea

19
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

create table facultad(


codigo_facultad varchar(2),
nombre_facultad varchar(30),
constraint facultadpk primary key(codigo_facultad)
);

create table carrera(


codigo_carrera varchar(3),
nombre_carrera varchar(30),
codigo_facultad varchar(2),
constraint carrerapk primary key(codigo_carrera),
constraint carrerafk foreign key(codigo_facultad) references
facultad(codigo_facultad) on update cascade on delete cascade
);

Ejercicios Propuestos

1- Escriba el código SQL necesario para crear las siguientes tres tablas:

Tabla turista:

Tabla Hotel:

20
BASE DE DATOS I – LENGUAJE DE DEFINICIÓN DE DATOS

Tabla Reserva:

2- Rellene la tabla siguiente a partir de las tablas anteriores:

Columna Tipo de dato Longitud Máxima

21

También podría gustarte