fundamento de base de datos
Translate
viernes, 21 de noviembre de 2014
RESUMEN UNIDAD VII
BASES DE DATOS ORIENTADAS A OBJETOS.
Necesidad de los tipos de datos complejos.
Las aplicaciones de bases de datos tradicionales consisten en tareas de procesamiento de datos, tales como la banca y la gestión de nóminas. Dichas aplicaciones presentan conceptualmente tipos de datos simples. En los últimos años, la demanda ha incrementado las formas de abordar los tipos de datos más complejos.Mientras una dirección completa puede ser vista como un elemento de datos atómico de tipo cadena de caracteres, esta forma de verlo escondería detalles como la calle, la población, la provincia, y el código postal que podrían ser interesantes para las consultas. Por otra parte, si una dirección se representa dividiéndola en componentes (calle, población, provincia y código postal)
las consultas escritas serían más complicadas, pues tendrían que mencionar cada campo. Una alternativa mejor es permitir tipos de datos estructurados, que admiten un tipo dirección con subpartes calle, población, provincia y código postal.
Modelado de datos orientado a objetos.
Estructura de los objetos
Hablando en general, los objetos se corresponden con las entidades del modelo E-R. El paradigma orientado a objetos está basado en el encapsulamiento de los datos y del código relacionados con cada objeto en una sola unidad cuyo contenido no es visible desde el exterior. Conceptual mente, todas las interacciones entre cada objeto y el resto del sistema se realizan mediante mensajes. Por tanto, la interfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mensajes permitidos. En general, cada objeto está asociado con;
• Un conjunto de variables que contiene los datos del objeto; las variables se corresponden con los atributos del modelo E-R.
• Un conjunto de mensajes a los que responde; cada mensaje puede no tener parámetros, tener uno o
varios.
• Un conjunto de métodos, cada uno de los cuales es código que implementa un mensaje; el método
devuelve un valor como respuesta al mensaje.
Clases de objetos
Generalmente, en una base de datos hay muchos objetos similares. Por similar se entiende que responden a los mismos mensajes, utilizan los mismos métodos y tienen variables del mismo nombre y del mismo tipo. Sería un derroche definir por separado cada uno de estos objetos. Por tanto, los objetos parecidos se agrupan para formar una clase. Cada uno de estos objetos se denomina ejemplar de su clase. Todos los objetos de una 194 clase comparten una definición común, pese a que se diferencien en los valores asignados a las variables.
Herencia
Los esquemas de las bases de datos orientadas a objetos suelen necesitar gran número de clases. Frecuentemente, sin embargo, varias de las clases son parecidas entre sí. Por ejemplo, supóngase que se tiene una base de datos orientada a objetos en la aplicación bancaria. Cabe esperar que la clase de los clientes del banco sea parecida a la clase de los empleados en que ambas definan variables para nombre, dirección, etcétera. Sin embargo, hay algunas variables específicas de los empleados (sueldo, por ejemplo) y otras específicas de los clientes (interés-préstamo, por ejemplo). Sería conveniente definir una representación de las variables comunes en un solo lugar. Esto sólo puede hacerse si se combinan los empleados y los clientes en una sola clase. Para permitir la representación directa de los parecidos entre las clases hay que ubicarlas en una jerarquía de especializaciones (la relación «ES») como la definida en el Capítulo 2 para el modelo entidad-relación. Por ejemplo, se puede decir que empleado es una especialización de persona, dado que el conjunto de los empleados es un subconjunto del conjunto de personas. Es decir, todos los empleados son personas. De manera parecida, cliente es una especialización de persona. El concepto de jerarquía de clases es parecido al de especialización del modelo entidad-relación. Los empleados y los clientes pueden representarse mediante clases que son especializaciones de la clase persona. Las variables y los métodos específicos de los empleados se asocian con la clase empleado. Las variables y los métodos específicos de los clientes se asocian con la clase cliente. Las variables y los métodos que se aplican tanto a empleados como a clientes se asocian con la clase persona.
Herencia múltiple
La herencia múltiple permite a las clases heredar variables y métodos de múltiples superclases. La relación entre clases y subclases se representa mediante un grafo acíclico dirigido (GAD) en el que las clases pueden tener más de una superclase.
Identidad de los objetos
Los objetos de las bases de datos orientadas a objetos suelen corresponder a entidades del sistema modelado por la base de datos. Las entidades conservan su identidad aunque algunas de sus propiedades cambien con el tiempo. De manera parecida, los objetos conservan su identidad aunque los valores de las variables o las definiciones de los métodos cambien total o parcialmente con el tiempo. Este concepto de identidad no se aplica a las tuplas de las bases de datos relacionales. En los sistemas relacionales las tuplas de una relación sólo se distinguen por los valores que contienen. La identidad de los objetos es un concepto de identidad más potente que el que suele hallarse en los lenguajes de programación o en los modelos de datos que no se basan en la programación orientada a objetos.
Continentes de objetos
Se pueden utilizar las referencias entre objetos para modelar diferentes conceptos del mundo real. Uno de estos objetos es el de continentes de objetos.
Lenguajes Orientados a Objetos.
Hasta el momento se han abordado los conceptos básicos de la programación orientada a objetos en un nivel abstracto. Para poder utilizarlos en la práctica en un sistema de bases de datos hay que expresarlos en algún lenguaje. Esta expresión puede realizarse de dos maneras:
1. Los conceptos de la programación orientada a objetos se utilizan simplemente como herramientas de diseño y se codifican, por ejemplo, en una base de datos relacional. Se sigue este enfoque cuando se utilizan los diagramas entidad-relación para modelar los datos y luego se convierten de manera manual en un conjunto de relaciones.
2. Los conceptos de la programación orientada a objetos se incorporan en un lenguaje que se utiliza para trabajar con la base de datos.
jueves, 13 de noviembre de 2014
lunes, 10 de noviembre de 2014
SEGUNDA UNIDAD V
presentacion ALGEBRA RELACIONAL
Problema #1
Supongamos que se nos ha encargado el diseño de una biblioteca digital. Para
realizar nuestra tarea, hemos de comenzar diseñando la base de datos que dará soporte a las
distintas aplicaciones que posteriormente se irán implementando. En principio, la única
información de la que disponemos es la siguiente:
· Nuestra biblioteca digital ha de almacenar información bibliográfica (título, autor, edición,
ISBN…) de distintos títulos.
· Cada título de nuestra biblioteca digital se encuentra almacenado en una o varias URLs
alternativas.
· Además, cada título se encuentra catalogado: un título puede corresponder a una o más
categorías diferentes. Dichas categorías, por su parte, se encuentran organizadas de forma
jerárquica (una categoría puede tener varias subcategorías, si bien sólo puede estar
englobada por una supercategoría).
· Los usuarios del sistema han de identificarse para poder utilizar nuestra biblioteca digital,
que utilizará las técnicas más avanzadas de protección de datos.
· Al estilo de algunas librerías de Internet como Amazon, los usuarios del sistema podrán
evaluar y escribir comentarios acerca de los títulos albergados en la biblioteca. La
evaluación se hará clasificando los títulos de 1 a 5 estrellas en función de las preferencias
del usuario y el conjunto de las evaluaciones realizadas por los distintos usuarios servirá
para recomendar unos títulos frente a otros.
Diseñar una base de datos relacional que nos permita almacenar toda la información relativa a
nuestra biblioteca digital:
a) Identificar las entidades de nuestro modelo y los atributos correspondientes a cada una de
tales entidades.
b) Analizar las relaciones existentes entre las distintas entidades y determinar su cardinalidad
(uno a uno, uno a muchos, muchos a muchos).
c) Dibujar un diagrama entidad/relación que represente el esquema lógico correspondiente al
modelo de datos definido por las entidades y relaciones obtenidas en los apartados
anteriores.
d) A partir del diagrama, obtener el conjunto de tablas que nos permitirá implementar nuestro
modelo en un sistema gestor de bases de datos relacionales.
problema #2
Supongamos que se nos ha encargado el diseño de una base de datos que sirva de soporte al
sistema de gestión de las nóminas de una empresa. Tras analizar detenidamente el problema,
averiguamos que nuestro sistema debe cumplir los siguientes requisitos:
• La empresa tiene un conjunto de empleados trabajando con contrato (un empleado puede
firmar varios contratos a lo largo de su carrera profesional).
• Para cada empleado, el sistema almacena sus datos personales (DNI, nombre, apellidos,
teléfono, dirección) y el número de su cuenta corriente para realizar las transferencias
correspondientes a las nóminas.
• Cada contrato firmado por un empleado tiene una fecha de alta, una fecha de baja (nula si el
contrato es indefinido), una categoría asociada y un puesto de destino.
• El sueldo base de un empleado depende de su categoría.
• En función del puesto de destino del empleado, el empleado puede recibir uno o varios
complementos, que se sumarán al sueldo base del empleado.
• Además, por su antigüedad en la empresa, el empleado cobrará trienios (cuyo importe
depende de la categoría de su contrato actual).
• Por último, el empleado también cobrará complementos por los cargos que desempeñe
(durante la duración de su ocupación del cargo, que no tiene por qué coincidir con la de su
contrato).
• De las percepciones salariales indicadas en los puntos anteriores, la nómina de cada empleado
incluirá una serie de deducciones (p.ej. aportaciones seguro social, impuesto sobre la renta )
• El sistema debe almacenar todas las nóminas emitidas mensualmente e incluir
automáticamente tanto los distintos conceptos correspondientes a percepciones salariales del
empleado como los distintos tipos de deducciones a los que está sujeta su nómina.
problema #3
Problema de diseño de bases de datos
Supongamos que se nos ha encargado el desarrollo de un sistema de información para
una galería de arte. Tras analizar el problema, hemos obtenido la siguiente lista de requisitos:
• El sistema ofrecerá información acerca de las distintas exposiciones que estén programadas
(título, descripción, fecha de inauguración y fecha de clausura).
• En cada exposición se expondrán obras de distintos artistas. Cada obra vendrá identificada
por un número de registro. El sistema informará acerca del título, artista, estilo y precio de
salida de cada una de las obras de arte expuestas en las exposiciones.
• Cada obra tiene un propietario, que suele ser el artista que la creó, aunque esto no es
necesariamente así.
• Las obras expuestas se pueden comprar haciéndole ofertas a sus propietarios. Al término de
la exposición, el propietario de una obra puede vender la obra a la persona que haya
realizado la mejor oferta.
NOTA: Es esencial que en la base de datos no se almacenen datos de forma redundante, para lo
cual hemos de tener en cuenta que una misma persona puede ser propietaria de una obra de arte
y realizar ofertas para comprar otras obras de arte. De hecho, incluso puede ser responsable de
la creación de alguna de las obras expuestas.
Diseñe una base de datos relacional para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades,
indicando explícita mente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las
entidades y las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro
modelo en un sistema gestor de bases de datos relacionales, indicando las claves primarias
de todas y cada una de las tablas de nuestra base de datos.
jueves, 6 de noviembre de 2014
miércoles, 5 de noviembre de 2014
Lenguaje SQL
Definicion de datos en SQL.
La estructura básica de una base de datos
relacional.
La tabla es la unidad básica de gestión
de datos en una base de datos relacional en SQL. El esquema de la tabla está
definida por las columnas y sus tipos.
Una tabla es un objeto de una base de
datos que almacena datos en una colección de filas y columnas. Una tabla se define por las columnas que
contiene. Así los datos pueden organizarse de forma similar a una hoja de
cálculo.
Recordar que una Tabla es lo mismo que
una Relación.
Para definir una tabla se debe decidir
qué columnas definir y que tipo de datos, como por ejemplo datos de caracteres
o numéricos, se permite que haya en cada columna.
También
se debe decidir sobre un rango permisible a esos datos – por ejemplo, podría
decidirse permitir hasta 30 caracteres o números de 4 bytes. Estos atributos se
especifican mediante la asignación a cada columna de un tipo de datos, que es
un conjunto de atributos que determinan que tipo y rango de datos puede
albergar esa columna.
La asignación de tipos de datos a una
columna fija los siguientes atributos:
ü
La clase de datos que la columna puede contener, como caracteres, enteros o
imagines.
ü
El tamaño o longitud de los datos de una columna.
ü
La precisión del número (solo para tipos numéricos) - esto es, el número de dígitos que puede
contener un número.
ü
La escala del número (sólo para tipos numéricos) – esto es, el número de
dígitos que pueden almacenarse a la derecha del punto decimal.
A continuación se darán a conocer un
conjunto de tipos de datos pertenecientes a SQL SERVER. Cada SGBD posee sus
tipos de datos que varían en nombre pero no en conceptos.
Tipos de Datos SQL SERVER:
Numéricos: BIT, INT, SMALLINT, DECIMAL,
NUMERIC, MONEY, SMALMONEY, FLOAT.
Fechas: DATETIME, SMALLDATETIME.
String: CHAR, VARCHAR, TEXT, NCHAR,
NVARCHAR, NTEXT.
String
Binarias : BINARY, VARBINARY, IMAGE
Creación de Tablas
El
comando CREATE TABLE tiene por finalidad crear una nueva tabla en la base de
datos. SQL SERVER permite hasta dos billones de tablas por base de datos y
hasta 1024 columnas por tabla. No existe limite para la cantidad de filas por
tabla, salvo
por el espacio físico disponible.
Nomenclatura:
CREATE TABLE
table_name ( { <column_definition> | column_name as
computed_colum_expression | <table_constraint> } [, …. N] [ON { filegroup
| DEFAULT} ] [ TEXTIMAGE_ON {filegroup | DEFAULT ]
Table_name.
Es el nombre de la tabla que se va a crear.
<Column_definition>.
Especifica el tipo de datos de la columna de la tabla.
Eliminación de Tablas
Tal como existe una sentencia para crear
tablas existe una para borrarlas por completo de un esquema (schema, este se
define por lo nombres de usuarios definidos para la base de datos).
Nomenclatura:
DROP TABLE
nombre_tabla_a_eliminar
Ejemplo:
DROP TABLE
Demo2
Uso de Valores NULL
Un valor NULL es un valor desconocido al
que se le refiere como NULL.
La admisión de nulos de una columna se
refiere a la posibilidad de la columna de aceptar o rechazar valores NULL.
Un valor NULL en una columna indica
normalmente que no se ha introducido nada para una fila particular de datos
porque el valor es desconocido, no aplicable, no definido o se ha de añadir en
un momento posterior.
Los valores NULL no son ni valores vacíos
ni valores 0; sus valores verdaderos son desconocidos - así no hay dos valores NULL que sean iguales.
Valor por DEFECTO
A
las columnas también se les puede colocar un valor por defecto, en el caso de
que no se ingresen datos en esa fila. Para poder hacer esto la columna debe ser
pensada para aceptar datos NULL.
Nomenclatura:
nombre_atributo tipo_de_dato
DEFAULT (Valor)
Ejemplo:
CREATE
TABLE ejemplo (
atributo1 int NOT NULL,
atributo2 char DEFAULT (‘A’),
atributo3 int DEFAULT(1)
)
Propiedad IDENTITY
Al crear una tabla se puede especificar
una columna como columna de identidad añadiendo la propiedad IDENTITY a la
definición de la columna.
Si se crea una columna con la propiedad
IDENTITY se genera automáticamente un valor de fila para esa columna, basándose
en un valor semilla y un valor de incremento.
Ejemplo:
valor semilla (1) y valor
incremento (2)
Para
la primera fila el valor del atributo sería 1
Para
la segunda fila el valor del atributo sería 3
Nomenclatura:
Nombre_Atributo
tipo_dato IDENTITY (valor semilla, valor incremento)
ALTER TABLE
La instrucción ALTER TABLE se utiliza
para modificar la definición o los
atributos de una tabla.
Se pueden modificar columnas, eliminar
atributos, modificar restricciones, añadir atributos, etc.
Nomenclatura:
ALTER TABLE nombre_tabla
(tipo de cambio) ALTER COLUMN, ADD, DROP.
Estructura basica de las consultas en SQL.
En la mayoría de casos el comando mas utilizado dentro del lenguaje SQL me atrevo a decir que es el comando SELECT ya que este permite realizar las consultas sobre los datos que tenemos en la BD obteniendo así los datos de la misma.
Para ir entrando mas en materia, dentro de SQL encontramos los siguientes lenguajes DML, DDL, DCL, se preguntarán ustedes y eso que significa, ahora les explico.
DML En inglés esto significa Data Manipulation Languaje o sea es un Lenguaje de manipulación de datos, como su mismo nombre lo indica, con este podemos realizar lo siguiente, Insertar registros en la BD, Actualizar registros en la BD, Borrar registro en la BD, entre otros, los comandos utilados para este lenguajes son los siguientes:
- Insert: Permite insertar registros en las tablas
- Update: Permite Actualizar el contenido de los registros dentro de las tablas
- Delete: permite borrar registros de una tabla
DDL En inglés esto significa, Lenguaje de Definición de Datos o sea es un Lenguaje que me permite modificar la estructura de las tablas de la BD, cuando me refiero a modificar la estructura de las tablas, esto significa por ejemplo,Crear una tabla, Borrar una trabla, Trunca una tabla, Renombrar una tabla o en su defecto Alterar una tabla. Los comandos usados para esto son los siguientes.
- Create: Permite crear una tabla
- Drop: Permite eliminar la tabla por completo incluyendo toda su estructura
- Truncate: Permite eliminar el contenido completo de una tabla, similar al comando DELETE pero este es más rápido, en su momento les indicaré porque razón.
- Rename: Permite cambiar el nombre de una tabla.
- Alter: Permite alterar la estructura de una tabla, agregando columnas, modificando tipos de datos, etc.
DCL: En inglés esto significa, Data Control Languaje o sea Lenguaje de Control de Datos, como su mismo nombre lo indica, nos permite administrar los derechos y restricciones que se les aplica a los usuarios sobre el nivel de acceso que ellos pueden tener a la BD, los comando usados son.
- Grant: Permite asignar permisos.
- Revoke: Permite retirar los permisos.
INSTRUCCIONES DE TRANSFERENCIA: Sirve para poder administrar las modificaciones creadas por las instrucciones DML. Como por ejemplo, deshacer algo que se haya realizado, o confirmar lo que se ha realizado. Las instrucciones de transferencia son las siguientes:
- Commit: Se usa para confirmar algún tipo de modificación realizada en la BD.
- Rollback: Se usa para deshacer algún tipo de modificación realizada en la BD.
- Savepoint: Marca un punto de referencia en alguna modificación para poder hacer un Rollback parcial. Algo similar a como funciona un punto de restauración.
- Cabe mencionar que existe sentencias SQL que se auto-confirman y estas no se pueden regresar.
Operaciones sobre conjuntos en SQL.
Entity SQL proporciona varias operaciones de conjuntos muy eficaces. Por ejemplo, incluye operadores de conjuntos del estilo de los de SQL como UNION, INTERSECT, EXCEPT y EXISTS. Entity SQL también es compatible con operadores para la eliminación de duplicados (SET), la prueba de pertenencia a un grupo (IN) y las combinaciones (JOIN). En los temas siguientes se describen los operadores de conjuntos de Entity SQL.
- ANYELEMENT (Entity SQL) Extrae un elemento de una colección de varios valores.
ANYELEMENT ( expression )
- EXCEPT (Entity SQL) Devuelve una colección de los valores distintos de la expresión de consulta situada a la izquierda del operando EXCEPT, que no se devuelven también en la expresión de consulta situada a la derecha del operando EXCEPT. Todas las expresiones deben ser del mismo tipo o de un tipo base común o derivado como expression.
expression EXCEPT expression
- FLATTEN (Entity SQL) Convierte una colección de colecciones en una colección plana. La nueva colección contiene los mismos elementos que la colección anterior, pero sin una estructura anidada.
FLATTEN ( collection )
- INTERSECT (Entity SQL) Devuelve una colección de los valores distintos que devuelven las expresiones de consulta situadas a los lados izquierdo y derecho del operando INTERSECT. Todas las expresiones deben ser del mismo tipo que expression o de un tipo base común o derivado.
expression INTERSECT expression
- [NOT] EXISTS (Entity SQL) Determina si una colección está vacía.
[NOT] EXISTS ( expression )
- [NOT] IN (Entity SQL) Determina si un valor determinado coincide con algún valor de una colección.
value [ NOT ] IN expression
- OVERLAPS (Entity SQL) Determina si dos colecciones tienen elementos comunes.
expression OVERLAPS expression
- La expresión SET se usa para convertir una colección de objetos en un conjunto produciendo una colección nueva en la que se han quitado todos los elementos duplicados.
SET ( expression )
Combina los resultados de dos o más consultas en una sola colección.
expression
UNION [ ALL ]
expression
actividad 22-10-14
TIPOS DE DATOS EN SQL.
Tipos numéricos:
Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que están en coma flotante (con decimales) y los que no.
TinyInt: es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255
Bit ó Bool: un número entero que puede ser 0 ó 1
SmallInt: número entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de valores es de 0 a 65535.
MediumInt: número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a16777215.
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
BigInt: número entero con o sin signo. Con signo el rango de valores va desde -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615.
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.
xReal, Double: número en coma flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308
Decimal, Dec, Numeric: Número en coma flotante desempaquetado. El número se almacena como una cadena
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
|
DECIMAL(M,D
|
M+2 bytes sí D > 0, M+1 bytes sí D = 0
|
NUMERIC(M,D)
|
M+2 bytes if D > 0, M+1 bytes if D = 0
|
2 Tipos fecha:
A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes esta comprendido entre 0 y 12 y que el día esta comprendido entre 0 y 31.
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-dia horas: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ñoMesDiaHoraMinutoSegundo aaaammddhhmmss
|
12
|
AñoMesDiaHoraMinutoSegundo aammddhhmmss
|
8
|
ñoMesDia aaaammdd
|
6
|
AñoMesDia aammdd
|
4
|
AñoMes aamm
|
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 Campo
|
Tamaño de Almacenamiento
|
DATE
|
3 bytes
|
DATETIME
|
8 bytes
|
TIMESTAMP
|
4 bytes
|
TIME
|
3 bytes
|
YEAR
|
1 byte
|
3 Tipos de cadena:
Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres.
VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres.
Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo Test y los tipo BLOB (Binary large Object)
La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo test se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta.
Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros.
TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres.
Blob y Text: un texto con un máximo de 65535 caracteres.
MediumBlob y MediumText: un texto con un máximo de 16.777.215 caracteres.
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 los paquetes pueden tener un máximo de 16 Mb.
Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos
Set: un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores.
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, MEDIUMTEXT
|
Longitud +3 bytes
|
LONGBLOB, LONGTEXT
|
Longitud +4 bytes
|
ENUM('value1','value2',...)
|
1 ó dos bytes dependiendo del número de valores
|
SET('value1','value2',...)
|
1, 2, 3, 4 ó 8 bytes, dependiendo del número de valores
|
Diferencia de almacenamiento entre los tipos Char y VarChar
Valor
|
CHAR(4)
|
Almace
namiento |
VARCHAR(4)
|
Almace
namiento |
''
|
''
|
4 bytes
|
"
|
1 byte
|
'ab'
|
'ab '
|
4 bytes
|
'ab'
|
3 bytes
|
'abcd'
|
'abcd'
|
4 bytes
|
'abcd'
| |
'abcdefgh'
|
'abcd'
|
4 bytes
|
'abcd'
| 5 bytes |
CREATE DATABASE
USE NOM_DATABASE
CREATE TABLE
INSERT INTO
SHOW TABLES
SELECT
Suscribirse a:
Entradas (Atom)