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;
 

No hay comentarios.:

Publicar un comentario