miércoles, 16 de julio de 2014

Lenguaje de bases de datos


DDL (LENGUAJE DE DEFINICIÓN DE DATOS)

Sencillo lenguaje artificial para definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático

LAS SENTENCIAS MARCADAS COMO “DDL”, SON LAS SIGUIENTES: 

CREATE: CREA OBJETOS DENTRO DE UNA BASE DE DATOS. 
ALTER: MODIFICA OBJETOS DENTRO DE UNA BASE DE DATOS. 
DROP: ELIMINA OBJETOS DENTRO DE UNA BASE DE DATOS. 

LAS SENTENCIAS SON LLAMADAS DE “DEFINICIÓN”, PORQUE ESTAS SI INTERVIENEN EN LA VIDA DE UN OBJETO, ASÍ COMO DE LOS DATOS RELACIONADOS AL OBJETO, LAS CLAUSULAS QUE SE ENCUENTRAN DENTRO DE LOS DDLS SE UTILIZAN PARA CREAR, ALTERAR Y MODIFICAR: TABLAS, VISTAS, LLAVES, ÍNDICES, ETC. 

TODOS LOS DATOS RELACIONADOS A UNA TABLA QUE SE ELIMINA TAMBIÉN SERÁN BORRADOS, POR ELLO ESTAS CLAUSULAS SON PARA DEFINIR LA MANERA CÓMO VA A TRABAJAR UN OBJETO DETERMINADO.




DML(Lenguaje de manipulación de datos)

permite el manejo y procesamiento del contenido de la base de datos. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático


DML (LENGUAJE DE MANIPULACIÓN DE DATOS) 

LAS SENTENCIAS MARCADAS COMO “DML”, SON LAS SIGUIENTES: 
• SELECT: DEVUELVE LA INFORMACIÓN QUE SE LE SOLICITA POR MEDIO DE LAS CONDICIONES QUE POSEE. 
• INSERT: INSERTA DATOS EN LAS TABLAS QUE SE ENCUENTRAN DEFINIDAS DENTRO DE UNA O VARIAS TABLAS. 
• UPDATE: ACTUALIZA LA INFORMACIÓN DENTRO DE UNA O VARIAS TABLAS. 
• DELETE: ELIMINA DATOS EN UNA O VARIAS TABLAS. 

ESTAS SENTENCIAS SON LLAMADAS DE MANIPULACIÓN DE DATOS DEBIDO A QUE NO INTERFIEREN EN LA VIDA DE LOS OBJETOS DENTRO DE UNA BASE DE DATOS, SINO QUE SOLAMENTE INTERFIEREN EN LA “MANIPULACIÓN” DE LOS DATOS QUE SE ENCUENTRAN EN DICHA BASE DE DATOS. 




jueves, 26 de junio de 2014

Lenguajes En Base De Datos.


LENGUAJES EN BASE DE DATOS

En un sistema gestor de base de datos como lo es MYSQL se encuentran dos tipos de lenguajes los cuales son:

* Lenguaje de Definición de Datos (DDL): Es el lenguaje que permite describir y/o definir cada una de las estructuras que almacenan los datos así como los procedimientos o funciones para consultarlos.

Sentencia Create

Create - Para crear una nueva base de datos, tabla, índice, o consulta almacenada. Una sentencia CREATE en SQL crea un objeto dentro de un sistema de gestión de bases de datos relacionales (RDBMS).

Sentencia CREATE TABLE

Un comando CREATE muy común es el CREATE TABLE. El uso típico es:
CREATE [TEMPORARY] TABLE [nombre de la tabla] ( [definiciones de columna] ) [parámetros de la tabla].

* Lenguaje de Manipulacion de Datos (DML): En un idioma que proporciona los sistemas gestores de base de datos que nos permite llevar a cabo las tareas de consultar o modificar de los datos obtenidos en las bases de datos. 
Se clasifican en dos grandes grupos:
En este tipo de lenguaje el más fundamental que da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.
En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento específico para obtener esa información.

lunes, 23 de junio de 2014

Comandos DDL y DML


Las sentencias SQL se dividen en dos categorías; Lenguaje de definición de datos
data definition language (DDL) yLenguaje de manipulación de datos ;data manipulation language (DML).


Lenguaje de definición de datos (DDL: Data Definition Language):Sencillo
lenguaje artificial para definir y describir los objetos  de la base de datos, su estructura, relaciones y restricciones.
Posee dos subconjuntos de instruciones
Lenguaje de definición del almacenamiento de los datos
(DSDL: Data Storage Definition Language): permite especificar
características físicas de la base de datos Por ejemplo volúmenes y archivos donde van a ser almacenados los datos


Lenguaje de control de datos (DCL: Data Control Language): encargado del control y seguridad de los datos
Lenguaje de manipulación de datos (DML)
Las sentencias de lenguaje de manipulación de datos (DML)
son utilizadas para gestionar datos dentro de los schemas. Algunos ejemplos:
•             SELECT - para obtener datos de una base de datos.
•             INSERT - para insertar datos a una tabla.
•             UPDATE - para modificar datos existentes dentro de una tabla.
•             DELETE - elimina todos los registros de la tabla; no borra los espacios asignados a los registro




domingo, 22 de junio de 2014

DDL: "lenguaje de definición de datos" y DML: "lenguaje de manipulación de datos"

DML:

Es un lenguaje dado por un sistema de gestión de base de datos para hacer consultas o cambios dentro de la estructura. Entre los más conocidos tenemos el SQL; un comando usual usado aquí es el INSERT.


DDL:

Este es el que permite modificar la estructura de los campos y tablas de la base de datos, usando los comandos CREATE, ALTER, DROP y TRUNCATE.
Este lenguaje permite definir, crear, suprimir, cambiar y/o controlar el almacenamiento de datos por parte del sistema de gestión de bases de datos así como los campos, registros y tablas de la base de datos.



Tipos de datos más comunes:

Entre los más comunes se encuentran: INT, CHAR, VARCHAR, DATE, DATETIME, YEAR, DECIMAL, ETC.


Ejemplo:

CREATE TABLE áreas
(
código char (3) not null,
nombre char (55) not null
departamento char (3) not null,
Primary Key (código)
Foreign key (departamento) REFERENCES departamentos
ON DELETE SET NULL ON UPDATE CASCADE);
ON DELETE SET NULL Significa que si se borra algún departamento de la tabla.
departamentos el campo departamento de las filas de la tabla areas que le reverenciaban se pone como Null.
ON UPDATE CASCADE Significa que si se modifica el código_dpto de una fila de la tabla.
departamento, también se modificara en las filas de la tabla áreas que le referencian.
CREATE TABLE departamentos
(

Web-Grafía del ejemplo: 

http://html.rincondelvago.com/lenguajes-de-manipulacuion-y-definicion-de-datos.html

Vídeo referente al tema:



LENGUAJES DDL & DML

El DDL

 (Data Definition Language, o Data Description Language según autores), es la parte del SQL dedicada a la definición de la base de datos, consta de sentencias para definir la estructura de la base de datos, permite definir gran parte del nivel interno de la base de datos. Por este motivo estas sentencias serán utilizadas normalmente por el administrador de la base de datos.
La definición de la estructura de la base de datos incluye tanto la creación inicial de los diferentes objetos que formarán la base de datos, como el mantenimiento de esa estructura. Las sentencias del DDL utilizan unos verbos que se repiten para los distintos objetos. Por ejemplo para crear un objeto nuevo el verbo será CREATE y a continuación el tipo de objeto a crear. CREATE DATABASE es la sentencia para crear una base de datos, CREATE TABLE nos permite crear una nueva tabla, CREATE INDEX crear un nuevo índice… Para eliminar un objeto utilizaremos el verbo DROP (DROP TABLE, DROP INDEX…) y para modificar algo de la definición de un objeto ya creado utilizamos el verbo ALTER (ALTER TABLE, ALTER INDEX…).
Los objetos que veremos en este tema son:

Bases de datos
Tablas
Vistas
Índices
Como ya hemos comentado, las sentencias DDL están más orientadas al administrador de la base de datos, es el que más las va a utilizar, el programador tiene que conocer cuestiones relativas a la estructura interna de una base de datos, pero no tiene que ser experto en ello por lo que el estudio del tema se centrará en las sentencias y sobre todo en las cláusulas que pensamos pueden ser útiles a un programador y no entraremos en mucho detalle en cuanto a la estructura física de la base de datos y en la administración de la misma.




El DML 
se compone de las instrucciones para el manejo de los datos, para insertar nuevos datos, modificar datos existentes, para eliminar datos y la más utilizada, para recuperar datos de la base de datos. Veremos que una sola instrucción de recuperación de datos es tan potente que permite recuperar datos de varias tablas a la vez, realizar cálculos sobre estos datos y obtener resúmenes.

El DML interactúa con el nivel externo de la base de datos por lo que sus instrucciones son muy parecidas, por no decir casi idénticas, de un sistema a otro, el usuario sólo indica lo que quiere recuperar no cómo se tiene que recuperar, no influye el cómo están almacenados los datos.

Es el lenguaje que utilizan los programadores y los usuarios de la base de datos.

A lo largo del curso se explicarán cada una de las formas de explotación de la base de datos. Dependiendo de tu perfil profesional (programador o administrador) o de tu interés personal te resultará más útil un bloque u otro.







''DDL & DML''


DDL= lenguaje de definición de datos

  • lenguaje que define la estructura
  • su especificación puede cambiar de un gestor de bases de datos a otro
  • define como el sistema que organiza internamente los datos
  • se encarga de la creación, modificación y eliminación de los objetos de la base de datos
  • una base de datos posee un esquema. el esquema suele tener el mismo nombre que el ususario y sirve para almacenar los datos del esquema.

1) create = crear
2 )alter=modificar
3 )drop=eliminar
4 )rename=renombrar
5 )truncate=eliminar







DML= lenguaje de manipulación de datos 

las sentencias DMLson aquellas utilizadas para insertar, borrar, modificar y consultar los datos en una base de datos.


1) select= seleccionar
2) insert= insertar
3)  update= modificar
4) delete= borrar








DLL & DML

                 DLL &  DML


DDL=LENGUAJE DE DEFINICIÓN DE DATOSDML=LENGUAJE DE MANIPULACIÓN DE DATOS 


DDL=LENGUAJE DE DEFINICIÓN DE DATOS:



 ( DDL ) Es un lenguaje de programación para definir estructuras de datos como:

* Lenguaje que define la estructura.
* Su especificación puede cambiar de un gestor de base de datos a otro.
*Define como el sistema internamente organiza los datos.
*Una base de datos posee un esquema que suele tener el mismo nombre del usuario y sirve para almacenar los objetos de esquema osea del usuario.

HAY 4 OPERACIONES BÁSICAS 
Create 
 Para crear una nueva base de datos, tabla, índice, o consulta almacenada. Una sentencia CREATE en SQL crea un objeto dentro de un sistema de gestión de bases de datos relacionales (RDBMS). Los tipos de objetos que se pueden crear depende del RDBMS que esté siendo utilizado, pero la mayoría soportan la creación de tablas, índices, usuarios, sinónimos y bases de datos. Algunos sistemas (como PostgreSQL ) permiten CREATE, y otros coman dos DDL, en el interior de una transacción y por lo tanto puede ser revertido. Otras que se incluyen dentro del DDL, pero que su existencia depende de la implementación del estándar SQL que lleve a cabo el gestor de base de datos son GRANT y REVOKE, los cuales sirven para otorgar permisos o quitarlos, ya sea a usuarios específicos o a un rol creado dentro de la base de datos.
Ejemplo 
CREATE TABLE TABLA_NOMBRE (
cl integer not null
nombre VARCHAR (50)
fecha_nac DATE NOT NULL,
PRIMARY KEY (my_field1, my_field 2)

Sentencia CREATE TABLE

Un comando CREATE muy común es el CREATE TABLE. El uso típico es:
CREATE [TEMPORARY] TABLE [nombre de la tabla] ( [definiciones de columna] ) [parámetros de la tabla].
(agregar columna a una tabla):
ALTER TABLE TABLA NOMBRE (
ADD NUEVO_ CAMPO INT UNSIGNED)

 ALTER

Se utiliza para hacer modificaciones en sentencias SQL Para eliminar una tabla de una base de datos tenemos la sentencia DROP TABLE. Con ella quitamos una o varias definiciones de tabla y todos los datos, índices, desencadenadores, restricciones y especificaciones de permisos que tengan esas tablas. Las vistas o procedimientos almacenados que hagan referencia a la tabla quitada se deben quitar explícitamente con DROP VIEW o DROP PROCEDURE. Su sintaxis es:
   DROP TABLE [nbBaseDatos.[nbEsquema].|nbEsquema.]nbTabla[ ,...n ] [ ; ]
(agregar columna a una tabla):
ALTER TABLE TABLA NOMBRE (
ADD NUEVO_ CAMPO INT UNSIGNED)

 DROP

SENTENCIA PARA BORRAR LA TABLA.
DROP TABLE NOMBRE_DE_TABLA
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo:
DROP TABLE TABLA_NOMBRE
Ejemplo 2:
ALTER TABLE TABLA_NOMBRE
(DROP COLUMN CAMPO_NOMBRE 1)

Sentencia ALTER

Se utiliza para hacer modificaciones en sentencias SQL Para eliminar una tabla de una base de datos tenemos la sentencia DROP TABLE. Con ella quitamos una o varias definiciones de tabla y todos los datos, índices, desencadenadores, restricciones y especificaciones de permisos que tengan esas tablas. Las vistas o procedimientos almacenados que hagan referencia a la tabla quitada se deben quitar explícitamente con DROP VIEW o DROP PROCEDURE. Su sintaxis es:
   DROP TABLE [nbBaseDatos.[nbEsquema].|nbEsquema.]nbTabla[ ,...n ] [ ; ]
Ejemplo 1:
TRUNCATE TABLE TABLA_NOMBRE

DML=LENGUAJE DE MANIPULACIÓN DE DATOS 

Son DML : Select Insert Delete Update Se clasifican en dos grandes grupos:
  • lenguajes de consulta procedimentales
Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.
  • lenguajes de consulta no procedimentales
En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento especifico para obtener esa información.
Son utilizadas para insertar borrar modificar y consultar los datos de una base de datos.
Las sentencias DML son las siguientes:
* Selec * Insert *Update *Delete

Select

SELECT columna [, columna2, ..., columnan] FROM tabla [, tabla2, ..., tablan] [WHERE condición] [GROUP BY columna/s] [HAVING condición] [ORDER BY columna/s]; Ejemplos: 1. SELECT * FROM alumnos; Esta consulta nos mostraría todo lo que hay dentro de la tabla alumnos (el asterisco significa todo). 2. SELECT nombre_alumno, fecha_nacimiento, nota_media, dni FROM alumnos WHERE fecha_nacimiento BETWEEN '1990/12/21' AND '1995/11/20' ORDER BY nota_media; Pedimos que muestre las columnas nombre_alumno, fecha_nacimiento, nota_media y dni de los alumnos que nacieron entre el 21/12/1990 y 20/11/1995 ordenados por la nota media. UPDATE UPDATE tabla SET columna = nuevovalor, [, columna2 = nuevovalor,... columnan = nuevovalor] [WHERE condicion] Ejemplos: 1. UPDATE empleados SET salario = salario+500; Esta sentencia aumenta 500 al salario de todos los campos de la tabla empleados. 2. UPDATE empleados SET nombre = "Paquito" where num_empleado = 1; Esta sentencia actualiza el nombre del empleados número 1 a "Paquito". DELETE 1. DELETE from empleados; Borra todos los datos de la tabla empleados; 2. DELETE from empleados where numero_emp = 3; Elimina la fila del empleado numero 3.

DDL Y DML

                                                                 




DDL=LENGUAJE DE DEFINICIÓN DE DATOS

DML=LENGUAJE DE MANIPULACIÓN DE DATOS 


Son los dos lenguajes que trabajan en los gestores de bases de datos dividiendo los comandos en Creación, Modificación y Manipulación.


DML:
Un lenguaje de Manipulación de Datos (Data Manipulation Languaje (DML) es un lenguaje proporcionado por el sistema de gestión de bases de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.

Lenguajes procedimentales. En este tipo de lenguaje el más mensote que da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.


  • Lenguajes de consulta no procedimentales
En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento específico para obtener esa información.

DDL:
El lenguaje de Definición de datos, en inglés Data Definition Language (DLL), 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.


El lenguaje de definición de datos permite:
.Definir y crear una nueva tabla
.Suprimir una tabla que ya no se necesita
.Cambiar la definición de una tabla existente
.Definir una tabla virtual (o vista) de datos)
.Construir un índice para hacer más rápido el acceso a una tabla
.Controlar el almacenamiento físico de los datos por parte del SGBD


.CREATE
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.
Ejemplo 1 (creación de una tabla):
CREATE TABLE TABLA_NOMBRE (
cl integer not null
nombre VARCHAR (50)
fecha_nac DATE NOT NULL,
PRIMARY KEY (my_field1, my_field 2)
ALTER
Este comando permite modificar la estructura de un objeto- Se pueden agregar / quitar campos a una tabla, modificar el tipo de un campo, agregar / quitar índices a una tabla, modificar un trigger, etc.
Ejemplo 1 (agregar columna a una tabla):
ALTER TABLE TABLA NOMBRE (
ADD NUEVO_ CAMPO INT UNSIGNED
)
DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo 1:
DROP TABLE TABLA_NOMBRE
Ejemplo 2:
ALTER TABLE TABLA_NOMBRE
(
DROP COLUMN CAMPO_NOMBRE 1
)
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DELETE, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande, la desventaja es que TRUNCATE solo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando truncate borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
Ejemplo 1:
TRUNCATE TABLE TABLA_NOMBRE

Lenguaje de definición de datos y Lenguaje de manipulación de datos

DDL(Lenguaje de definición de datos; data definition language) y DML(Lenguaje de manipulación de datos ;data manipulation language).

Son los dos lenguajes qu trabajan en MY SQL dividiendo los comandos en Creación/Modificación y Manipulación.

Lenguaje de definición de datos (DDL)

Es el utilizado para crear y modificar la estructura de las tablas.
SENTENCIAS(Ejemplos):
  • CREATE - para crear objetos en la base de datos.
  • ALTER - modifica la estructura de la base de datos.
  • DROP - borra objetos de la base de datos.
  • TRUNCATE - elimina todos los registros de la tabla, incluyendo todos los espacios asignados a los registros.

Lenguaje de manipulación de datos (DML)

Es el lenguaje de manipulación de datos, utilizado para gestionar datos 
SENTENCIAS(Ejemplos):
  • SELECT - para obtener datos de una base de datos.
  • INSERT - para insertar datos a una tabla.
  • UPDATE - para modificar datos existentes dentro de una tabla.
  • DELETE - elimina todos los registros de la tabla; no borra los espacios asignados a los registros.


lunes, 16 de junio de 2014

como crear una base de datos

Bases de datos

Campos numéricos

Vamos a ir mencionando los nombres de los distintos campos numéricos y a explicar cómo son:
  1. Bit y Bool: un número de 1 bit, es decir, o un 0 o un 1, sólo puede tomar ambos valores.
  2. Tinyint: número entero que si le ponemos signo estará entre -128 y 127, y sin signo entre 0 y 255 (para los más entendidos, un número de 8 bites, o de un byte). No podemos poner un número fuera de ese rango o dará error.
  3. SmallInt: número comprendido entre -32768 y 32767, o sin signo entre 0 y 65535 (número de 16 bits/2 bytes).
  4. MediumInt: comprendido entre -8388608 y 8388607, o sin signo entre 0 y 16777215 (24 bites/3 bytes).
  5. Int (o integer): número entre -2147483648 y 2147483647, o sin signo entre 0 y 4294967295 (32 bites/4 bytes).
  6. BigInt: número entre -9.223.372.036.854.775.808 y 9.223.372.036.854.775.807, o sin signo entre 0 y 18.446.744.073.709.551.615 (64 bites/8 bytes).
  7. Float: número decimal en punto flotante de precisión simple. Los valores válidos van desde -3.402823466x10^38 a -1.175494351x10^-38, o desde 1.175494351x10^-38 a 3.402823466x10^38 (decimales en punto flotante de 4 bytes).

  8. Double: número decimal en punto flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157x10^308 a -2.2250738585072014x10^-308, o desde 2.2250738585072014x10^-308 a 1.7976931348623157x10^308 (decimales en punto flotante de 8 bytes).
  9. Decimal: yo os aconsejo este para almacenar número decimales. hay que indicarle dos valores separados por una coma llamémosles "M,D". Este tipo de campo es el más preciso, M sería la presición o el número de dígitos totales, y D el número de dígitos decimales que tendrá.

Fechas

Pasamos a los tipos de campo que más trabajo me dieron en su momento, jeje:
  1. Date: el formato en que lo guarda es año-mes-día, y guarda desde el año 1001 al 9999.
  2. DateTime: el formato es año-mes-día hora:minuto:segundo, y guarda desde el año 1001 al 9999.
  3. TimeStamp: en este caso el formato lo elijes tu en función del tamaño de caracteres que le pongas al campo. Sólo llega entre 1970 y 2037. Según el tamaño de caracteres quedará de la siguiente forma:
  4. Tamaño Formato
    14 aaaammddhhmmss
    12 aammddhhmmss
    8 aaaammdd
    6 aammdd
    4 aamm
    2 aa
  5. Time: el formato es hora:minuto:segundo, con un rango desde -838 horas a 838 horas.
  6. Year: guarda solo un año de entre 1901 y 2155, que puede tener sólo dos cifras o las cuatro, dependiendo del tamaño de caracteres que le pongamos.

Campos de texto

  1. Char: es una cantidad fija de caracteres (los que le digamos, si le decimos 5 siempre tendrás que guardar 5 caracteres). El máximo que le podemos indicar es 255.
  2. VarChar: cantidad finita de caracteres con un máximo de 255, aunque podemos indicarle que este máximo sea menor.
  3. TinyText y TinyBlob: Texto con una longitud máximo de 255 caracteres.
  4. Blob y Text: texto con un máximo de 65535 caracteres. Text es también muy usado, aunque no tanto como varchar.
  5. MediumBlob y MediumText: texto con un máximo de 16.777.215 caracteres.
  6. LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicación os paquetes puleden tener un máximoo puede ocupar más de 16 Mb.
  7. Enum: campo que puede tener un único valor de una lista que se especifica.
  8. Set: un campo que puede contener ninguno, uno ó varios valores de una lista.

Ejemplo:
mysql> CREATE DATA BASE HOSPITAL;



mysql> CREATE TABLE MEDICO (CED_MEDICO VARCHAR(12), PRIMARY KEY(CED_MEDICO),  NOM_MEDICO VARCHAR(25), APELLIDO_MEDICO VARCHAR(30), TARJETA_PRO VARCHAR (20), CELULAR VARCHAR(10), CORREO VARCHAR(40) , ESPECIALIDAD TEXT) ENGINE=INNODB;


mysql> CREATE TABLE PACIENTE (NUM_DOCUMENTO VARCHAR(12), PRIMARY KEY(NUM_DOCUMENTO),
NOMBRES_PACIENTE VARCHAR (25), APELLIDO_PACIENTE VARCHAR (30), TIPO_DOCUMENTO VARCHAR (20), DIRECCION VARCHAR (25), CELULAR VARCHAR (10), CORREO VARCHAR (40), CED_MEDICO VARCHAR (12), FOREIGN KEY (CED_MEDICO) REFERENCES MEDICO (CED_MEDICO)) ENGINE=INNODB;

mysql> CREATE TABLE HISTORIAL (ID_HIST INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID_HIST),
FECHA_INGRESO VARCHAR (8), TRATAMIENTO TEXT, INTERVENCION VARCHAR (20), FECHA_SALIDA VARCHAR (8), CONTRAINDICACIONES TEXT, NUM_DOCUMENTO VARCHAR (12), FOREIGN KEY (NUM_DOCUMENTO) REFERENCES PACIENTE (NUM_DOCUMENTO)) ENGINE=INNODB;

mysql> CREATE TABLE ENFERMEDAD (COD_ENFERMEDAD VARCHAR(30) , PRIMARY KEY(COD_ENFERMEDAD),
NOM_ENFERMEDADES VARCHAR (25), SINTOMAS TEXT, ID_HIST INT NOT NULL AUTO_INCREMENT, FOREIGN KEY (ID_HIST) REFERENCES HISTORIAL (ID_HIST)) ENGINE=INNODB;

mysql> CREATE TABLE ANALISIS_MEDICO (COD_EXAMEN VARCHAR(30) , PRIMARY KEY(COD_EXAMEN),
TIPO_EXAMEN VARCHAR (40), INSTRUCCIONES TEXT) ENGINE=INNODB;

mysql> CREATE TABLE REALIZANDO (ID_REALIZANDO INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID_REALIZANDO), ID_HIST INT NOT NULL AUTO_INCREMENT, FOREIGN KEY (ID_HIST) REFERENCES HISTORIAL (ID_HIST), COD_EXAMEN VARCHAR(30), FOREIGN KEY (COD_EXAMEN) REFERENCES ANALISIS_MEDICO (COD_EXAMEN)) ENGINE=INNODB;