INTRODUCCION A BASE DE DATOS

DEFINICION

Es un conjunto de tablas relacionadas entre sí, con un mínimo de redundancia.




Tabla en las base de datos, se refiere al tipo de modelado de datos, donde se guardan los
datos recogidos por un programa. Su estructura general se asemeja a la vista general de un
programa de Hoja de Calculo.

Las tablas se componen de dos estructuras:

Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de
los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres y direcciones,
cada fila contendrá un nombre y una dirección.

Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente
a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único,
como una dirección, o un número de teléfono, un nombre, etc.

A los campos se les puede asignar, además, propiedades especiales que afectan a los
registros insertados. El campo puede ser definido como índice o autoincrementable, lo cual
permite que los datos de ese campo cambien solos o sean el principal indicar a la hora de
ordenar los datos contenidos.
TIPOS DE DATOS BASICOS SOPORTADOS POR MYSQL

1 Tipos numéricos:



Integer, Int: número entero con o sin signo. Con signo el rango de valores va desde -2147483648 a
2147483647. Sin signo el rango va desde 0 a 429.4967.295

Float: número pequeño en coma flotante de precisión simple. Los valores válidos van desde -
3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38.
Todos los tipos de datos Numericos

                       Tipo de Campo            Tamaño de Almacenamiento

                           TINYINT                          1 byte

                          SMALLINT                         2 bytes

                        MEDIUMINT                          3 bytes

                             INT                           4 bytes

                          INTEGER                          4 bytes

                           BIGINT                          8 bytes

                          FLOAT(X)                        4 ú 8 bytes

                            FLOAT                          4 bytes

                           DOUBLE                          8 bytes

                     DOUBLE PRECISION                      8 bytes

                            REAL                           8 bytes

                                              M+2 bytes sí D > 0, M+1 bytes sí D
                        DECIMAL(M,D
                                                             =0

                                              M+2 bytes if D > 0, M+1 bytes if D
                       NUMERIC(M,D)
                                                             =0
Tipo fecha:

Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de
diciembre de 9999. El formato de almacenamiento es de año-mes-dia

DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las
0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59
segundos. El formato de almacenamiento es de año-mes-diahoras:minutos:segundos

TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El
formato de almacenamiento depende del tamaño del campo:

                  Tamaño                         Formato

                     14    AñoMesDiaHoraMinutoSegundoaaaammddhhmmss

                     12      AñoMesDiaHoraMinutoSegundoaammddhhmmss

                      8                    ñoMesDiaaaaammdd

                      6                    AñoMesDiaaammdd

                      4                       AñoMesaamm

                      2                           Año aa




Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838,
59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS'
Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo
puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o
cuatro dígitos.

                                   Tipo de      Tamaño de
                                   Campo      Almacenamiento

                                    DATE          3 bytes

                                 DATETIME         8 bytes

                                 TIMESTAMP        4 bytes

                                    TIME          3 bytes

                                    YEAR           1 byte




Tipo de cadena:

VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255
caracteres.



                    Tipo de campo                 Tamaño de Almacenamiento

                           CHAR(n)                             n bytes

                      VARCHAR(n)                              n +1 bytes

                  TINYBLOB, TINYTEXT                       Longitud+1 bytes

                      BLOB, TEXT                        Longitud +2 bytes

                    MEDIUMBLOB,
                                                        Longitud +3 bytes
                    MEDIUMTEXT

                 LONGBLOB, LONGTEXT                     Longitud +4 bytes

                                              1 ó dos bytes dependiendo del número
               ENUM('value1','value2',...)
                                                             de valores

                                               1, 2, 3, 4 ó 8 bytes, dependiendo del
                SET('value1','value2',...)
                                                         número de valores




Diferencia de almacenamiento entre los tipos Char y VarChar

                                                 Almace              Almace
                   Valor         CHAR(4)                 VARCHAR(4)
                                                namiento            namiento

                     ''                ''        4 bytes          "           1 byte

                    'ab'             'ab '       4 bytes         'ab'         3 bytes

                   'abcd'            'abcd'      4 bytes        'abcd'

                 'abcdefgh'          'abcd'      4 bytes        'abcd'     5 bytes



                           COMANDOS Y CLAUSULAS BASICAS DE MYSQL
Show : muestra las bases de datos dentro de MYSQL



Ejemplo SHOW DATABASES;



CREATE DATABASE :Crea una base de datos



Ejemplo CREATE DATABASE agenda;



USE: sirve para indicar cual base de datos se va a utilizar

Ejemplo USE agenda;



DESCRIBE: indica la composición de la tabla;

Ejemplo DESCRIBEPersona;



CREATE TABLE: crea una tabla dentro de la base de datos seleccionada.

CREATE TABLE Persona (codigoVARCHAR(20) NOT NULL PRIMARY KEYN, nombre VARCHAR(20),
apellido VARCHAR(20), teléfono INT(20));




ALTER TABLE.  Sirve para modificar las propiedades de una tabla tales como nombre,
eliminación de columnas , inserción de nuevas columnas, cambio de tipo de datos de la
columna, índices , etc.



Ejemplo de Alter table

Comienza con una tabla t1 que se crea como se muestra:
mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));

Para renombrar la tabla de t1 a t2:

mysql> ALTER TABLE t1 RENAME t2;

Para cambiar la columna a desde INTEGER a TINYINT NOT NULL (dejando el mismo
nombre), y para cambiar la columna b desde CHAR(10) a CHAR(20) así como dejarla de b a
c:

mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

Para añadir una nueva columna TIMESTAMP llamada d:

mysql> ALTER TABLE t2 ADD d TIMESTAMP;

Para añadir índices en las columnas d y a:

mysql> ALTER TABLE t2 ADD INDEX (d), ADD INDEX (a);

Para borrar la columna c:

mysql> ALTER TABLE t2 DROP COLUMN c;

Para añadir una nueva columna entera AUTO_INCREMENT llamada c:

mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
->     ADD PRIMARY KEY (c);

Tenga en cuenta que indexamos c (como PRIMARY KEY), ya que las columnas
AUTO_INCREMENT deben indexarse, y también que declaramos c como NOT NULL, ya que las
columnas de clave primara no pueden ser NULL.



CAMBIAR EL ORDEN DE LOS CAMPOS




Para poder cambiar el orden de los mismos contamos con el parámetro MODIFY
COLUMN como parte de la función ALTER TABLE.

Ejemplo:

ALTER table `mitabla`
          MODIFY COLUMN `mi_campo_X` varchar(100)
          AFTER `mi_otro_campo`;
Es importante indicar correctamente el tipo de campo del campo que queremos mover.



SI se quiere actualizar o modificar un campo

UPDATE `cumpleanos`.`persona` SET `apellido`='SALLEG' WHERE `codigo`='01';

Introduccion base de datos

  • 1.
    INTRODUCCION A BASEDE DATOS DEFINICION Es un conjunto de tablas relacionadas entre sí, con un mínimo de redundancia. Tabla en las base de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de Hoja de Calculo. Las tablas se componen de dos estructuras: Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres y direcciones, cada fila contendrá un nombre y una dirección. Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único, como una dirección, o un número de teléfono, un nombre, etc. A los campos se les puede asignar, además, propiedades especiales que afectan a los registros insertados. El campo puede ser definido como índice o autoincrementable, lo cual permite que los datos de ese campo cambien solos o sean el principal indicar a la hora de ordenar los datos contenidos.
  • 2.
    TIPOS DE DATOSBASICOS SOPORTADOS POR MYSQL 1 Tipos numéricos: Integer, Int: número entero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295 Float: número pequeño en coma flotante de precisión simple. Los valores válidos van desde - 3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38. Todos los tipos de datos Numericos Tipo de Campo Tamaño de Almacenamiento TINYINT 1 byte SMALLINT 2 bytes MEDIUMINT 3 bytes INT 4 bytes INTEGER 4 bytes BIGINT 8 bytes FLOAT(X) 4 ú 8 bytes FLOAT 4 bytes DOUBLE 8 bytes DOUBLE PRECISION 8 bytes REAL 8 bytes M+2 bytes sí D > 0, M+1 bytes sí D DECIMAL(M,D =0 M+2 bytes if D > 0, M+1 bytes if D NUMERIC(M,D) =0
  • 3.
    Tipo fecha: Date: tipofecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de año-mes-dia DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-diahoras:minutos:segundos TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento depende del tamaño del campo: Tamaño Formato 14 AñoMesDiaHoraMinutoSegundoaaaammddhhmmss 12 AñoMesDiaHoraMinutoSegundoaammddhhmmss 8 ñoMesDiaaaaammdd 6 AñoMesDiaaammdd 4 AñoMesaamm 2 Año aa Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS'
  • 4.
    Year: almacena unaño. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos. Tipo de Tamaño de Campo Almacenamiento DATE 3 bytes DATETIME 8 bytes TIMESTAMP 4 bytes TIME 3 bytes YEAR 1 byte Tipo de cadena: VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255
  • 5.
    caracteres. Tipo de campo Tamaño de Almacenamiento CHAR(n) n bytes VARCHAR(n) n +1 bytes TINYBLOB, TINYTEXT Longitud+1 bytes BLOB, TEXT Longitud +2 bytes MEDIUMBLOB, Longitud +3 bytes MEDIUMTEXT LONGBLOB, LONGTEXT Longitud +4 bytes 1 ó dos bytes dependiendo del número ENUM('value1','value2',...) de valores 1, 2, 3, 4 ó 8 bytes, dependiendo del SET('value1','value2',...) número de valores Diferencia de almacenamiento entre los tipos Char y VarChar Almace Almace Valor CHAR(4) VARCHAR(4) namiento namiento '' '' 4 bytes " 1 byte 'ab' 'ab ' 4 bytes 'ab' 3 bytes 'abcd' 'abcd' 4 bytes 'abcd' 'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes COMANDOS Y CLAUSULAS BASICAS DE MYSQL
  • 6.
    Show : muestralas bases de datos dentro de MYSQL Ejemplo SHOW DATABASES; CREATE DATABASE :Crea una base de datos Ejemplo CREATE DATABASE agenda; USE: sirve para indicar cual base de datos se va a utilizar Ejemplo USE agenda; DESCRIBE: indica la composición de la tabla; Ejemplo DESCRIBEPersona; CREATE TABLE: crea una tabla dentro de la base de datos seleccionada. CREATE TABLE Persona (codigoVARCHAR(20) NOT NULL PRIMARY KEYN, nombre VARCHAR(20), apellido VARCHAR(20), teléfono INT(20)); ALTER TABLE. Sirve para modificar las propiedades de una tabla tales como nombre, eliminación de columnas , inserción de nuevas columnas, cambio de tipo de datos de la columna, índices , etc. Ejemplo de Alter table Comienza con una tabla t1 que se crea como se muestra:
  • 7.
    mysql> CREATE TABLEt1 (a INTEGER,b CHAR(10)); Para renombrar la tabla de t1 a t2: mysql> ALTER TABLE t1 RENAME t2; Para cambiar la columna a desde INTEGER a TINYINT NOT NULL (dejando el mismo nombre), y para cambiar la columna b desde CHAR(10) a CHAR(20) así como dejarla de b a c: mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20); Para añadir una nueva columna TIMESTAMP llamada d: mysql> ALTER TABLE t2 ADD d TIMESTAMP; Para añadir índices en las columnas d y a: mysql> ALTER TABLE t2 ADD INDEX (d), ADD INDEX (a); Para borrar la columna c: mysql> ALTER TABLE t2 DROP COLUMN c; Para añadir una nueva columna entera AUTO_INCREMENT llamada c: mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, -> ADD PRIMARY KEY (c); Tenga en cuenta que indexamos c (como PRIMARY KEY), ya que las columnas AUTO_INCREMENT deben indexarse, y también que declaramos c como NOT NULL, ya que las columnas de clave primara no pueden ser NULL. CAMBIAR EL ORDEN DE LOS CAMPOS Para poder cambiar el orden de los mismos contamos con el parámetro MODIFY COLUMN como parte de la función ALTER TABLE. Ejemplo: ALTER table `mitabla` MODIFY COLUMN `mi_campo_X` varchar(100) AFTER `mi_otro_campo`;
  • 8.
    Es importante indicarcorrectamente el tipo de campo del campo que queremos mover. SI se quiere actualizar o modificar un campo UPDATE `cumpleanos`.`persona` SET `apellido`='SALLEG' WHERE `codigo`='01';